Files
westey ae57616b32 .NET: Refactor harness console rendering (#5751)
* Refactor harness console rendering

* Fix formatting issues

* Address PR comments
ae57616b32 · 2026-05-12 15:13:53 +00:00
History
..
2026-05-01 10:52:38 +00:00

What this sample demonstrates

This sample demonstrates how to use a ChatClientAgent with the Harness AIContextProviders (TodoProvider and AgentModeProvider) for interactive research tasks with web search capabilities powered by Azure AI Foundry.

Key features showcased:

  • ChatClientAgent — configured directly with Harness providers for planning and task management
  • Web Search — the agent can search the web for current information via ResponseTool.CreateWebSearchTool()
  • TodoProvider — the agent creates and manages a todo list to track research questions
  • AgentModeProvider — the agent switches between "plan" mode (breaking down the topic) and "execute" mode (answering each research question)
  • Interactive conversation — you can review the agent's plan, provide feedback, and approve before execution begins
  • Streaming output — responses are streamed token-by-token for a natural experience
  • /todos command — view the current todo list at any time without invoking the agent
  • Mode-based coloring — console output is colored based on the agent's current mode (cyan for plan, green for execute)

Prerequisites

Before running this sample, ensure you have:

  1. An Azure AI Foundry project with a deployed model (e.g., gpt-5.4)
  2. Azure CLI installed and authenticated (az login)

Environment Variables

Set the following environment variables:

# Required: Your Azure AI Foundry OpenAI endpoint
export AZURE_FOUNDRY_OPENAI_ENDPOINT="https://your-project.services.ai.azure.com/openai/v1/"

# Optional: Model deployment name (defaults to gpt-5.4)
export AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-5.4"

Running the Sample

cd dotnet
dotnet run --project samples/02-agents/Harness/Harness_Step01_Research

What to Expect

The sample starts an interactive conversation loop. You can:

  1. Enter a research topic — the agent will analyze it and create a plan with todos
  2. Review and adjust — provide feedback on the plan, ask for changes, or approve it
  3. Type /todos — to see the current todo list at any time
  4. Watch execution — once approved, tell the agent to proceed and it will work through each todo
  5. Type exit — to end the session

The prompt and agent output are colored by the current mode: cyan during planning, green during execution.