AgentsDashboard testing

Dashboard testing

Test registered Runiq agents through the embedded dashboard.

Registered agents appear in the embedded Runiq Dashboard through runtime metadata.

The dashboard is served by the same ASP.NET Core application. It can list agents, show their instructions and attached tools, run chat requests, stream assistant output, and inspect tool call details.

Enable the dashboard

C#
using Runiq.Core;

var app = builder.Build();

app.UseRuniqDashboard(options =>
{
    options.Path = "/dashboard";
    options.Title = "Runiq Workflow Travel Planner";
});

app.Run();

The default path is /runiq. If you set Path = "/dashboard", open /dashboard in the same host application.

What the dashboard reads

Agent visibility comes from runtime metadata and execution events.

Dashboard areaRuntime source
Agents listRegistered Agent instances from AddRuniqServer.
Agent detailsAgent metadata: id, name, instructions, model, reasoning effort, verbosity, tools, and context spaces.
Chat playground/api/agents/{agentId}/chat under the dashboard path.
Streaming outputassistant_delta, tool events, context events, completion, and failure events.
Tool detailsTool metadata and execution events from attached typed tools.

Dashboard examples

Agents list showing Weather Agent, Places Agent, and Planner Agent

Registered agents discovered by the Runiq runtime.

Weather Agent in the embedded Runiq Dashboard playground

Weather Agent in the embedded Runiq Dashboard

Testing Planner Agent

The Workflow Travel Planner sample registers three agents: Weather Agent, Places Agent, and Planner Agent.

For dashboard testing, start with Planner Agent. It is the best user-facing example because it is responsible for the final itinerary and synthesis. Weather Agent and Places Agent are specialist contributors in the workflow.

After registering PlannerAgent.Create(openAiApiKey), open the dashboard and select Planner Agent.

Use an input that gives the planner enough context to produce a final answer:

Text
Create a practical two-day Istanbul trip plan. Keep it low-fatigue. Include weather-aware suggestions, walkable areas, rest breaks, and meal suggestions.

Expected behavior:

AreaWhat to inspect
Agent detailsThe dashboard should show planner-agent, model settings, instructions, and attached tools.
Tool callPlanner Agent should call MealSuggestionTool before finalizing.
Tool resultMeal suggestions should appear as intermediate execution detail.
Final responseThe final answer should be a user-facing itinerary, not raw JSON.
BoundariesThe agent should synthesize the plan and not expose internal tool output directly.

You can also use a prompt that looks like the output of previous workflow steps. This tests Planner Agent as the final synthesis step:

Text
Weather context: Istanbul is partly cloudy and comfortable for walking with a light jacket.
Places context: Prefer Sultanahmet, Galata, Karakoy, and Kadikoy. Keep walking distances moderate.

Create the final two-day itinerary with meal suggestions.

Expected behavior:

AreaWhat to inspect
SynthesisThe agent should use the supplied weather and places context.
Meal toolThe agent should call MealSuggestionTool exactly once unless the tool call fails.
Final answerThe plan should include timing, route flow, weather awareness, rest breaks, and meals.

Testing specialist agents

Weather Agent and Places Agent are still useful to test, but they should read as specialist agents rather than the main product example.

For Weather Agent:

Text
I am planning a light walking day in Istanbul. Give only the weather and comfort contribution for the planner.

Expected behavior:

AreaWhat to inspect
Tool callWeather Agent should call WeatherTool.
ScopeThe response should stay focused on weather and comfort.
BoundaryIt should not create a full itinerary.

For Places Agent:

Text
Suggest walkable places for a low-fatigue Istanbul plan. Give only the places contribution for the final planner.

Expected behavior:

AreaWhat to inspect
Tool callPlaces Agent should call PlacesTool.
ScopeThe response should mention places, area grouping, walking difficulty, and route considerations.
BoundaryIt should not create the final travel plan.

Testing the three agents side by side makes the workflow model clearer: Weather Agent and Places Agent create specialist contributions, while Planner Agent owns the final user-facing itinerary.

Troubleshooting

SymptomLikely cause
Agent is missing from the dashboardIt was not registered with options.AddAgent(...).
Tool is missing from an agentThe tool was not attached with AddTool<TTool>() on that agent.
OpenAI agent fails before provider callThe default OpenAI endpoint requires a valid apiKey.
Tool call is not shownThe model did not request the tool, or the tool is not attached to the agent.
Stream ends with failedInspect errorCode and errorMessage in the stream event.

On this page