mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
46326b6b93
* Add additional openai specific error observers and move them to openai project * Address PR comments
46326b6b93
·
2026-05-21 13:54:47 +00:00
History
What this sample demonstrates
This sample demonstrates how to use a HarnessAgent with the Harness AIContextProviders (TodoProvider and AgentModeProvider) for interactive research tasks with web search capabilities powered by Azure AI Foundry. The HarnessAgent pre-configures function invocation, per-service-call chat history persistence, and context-window compaction.
Key features showcased:
- HarnessAgent — a pre-configured agent that wraps a
ChatClientAgentwith function invocation, per-service-call persistence, and context-window compaction - ToolApproval — the agent is wrapped with
UseToolApproval()to allow auto-approving tools once confirmed - 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
/todoscommand — 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:
- An Azure AI Foundry project with a deployed model (e.g.,
gpt-5.4) - 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:
- Enter a research topic — the agent will analyze it and create a plan with todos
- Review and adjust — provide feedback on the plan, ask for changes, or approve it
- Type
/todos— to see the current todo list at any time - Watch execution — once approved, tell the agent to proceed and it will work through each todo
- Type
exit— to end the session
The prompt and agent output are colored by the current mode: cyan during planning, green during execution.