Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het Microsoft Agent Framework biedt ondersteuning voor het maken van agents die gebruikmaken van de Claude-modellen van Antropic.
Directe modelinferentie versus de Claude Agent SDK
De ondersteuning voor Anthropic in Agent Framework kent twee verschillende vormen.
| Integration | Type | Agentlus en hulpprogramma's | Wanneer gebruiken |
|---|---|---|---|
| Rechtstreekse modelinferentie (deze pagina) |
AnthropicClient en door de provider gehoste varianten, verpakt met Agent(client=...) |
Uw toepassing beheert de Agent Framework-loop, sessies, middleware, functietools en door Anthropic gehoste ondersteunde tools. | U wilt Claude als het onderliggende model voor een Agent Framework-agent van een standaardapplicatie. |
| Anthropic Claude Agent SDK |
ClaudeAgent, rechtstreeks samengesteld |
Claude's coding-agent runtime is eigenaar van sessies, machtigingen, ingebouwde hulpprogramma's voor bestanden en shell en MCP-gedrag. | U wilt de beheerde runtime-omgeving en het toestemmingsmodel van Claude's coderingsagent. |
Aan de slag komen
Voeg de vereiste NuGet-pakketten toe aan uw project.
dotnet add package Microsoft.Agents.AI.Anthropic --prerelease
Als u Microsoft Foundry gebruikt, voegt u ook het volgende toe:
dotnet add package Anthropic.Foundry --prerelease
dotnet add package Azure.Identity
Configuration
Omgevingsvariabelen
Stel de vereiste omgevingsvariabelen in voor antropische verificatie:
# Required for Anthropic API access
$env:ANTHROPIC_API_KEY="your-anthropic-api-key"
$env:ANTHROPIC_CHAT_MODEL_NAME="claude-haiku-4-5" # or your preferred model
U kunt een API-sleutel ophalen uit de Tropic Console.
Voor Microsoft Foundry met API-sleutel
$env:ANTHROPIC_RESOURCE="your-foundry-resource-name" # Subdomain before .services.ai.azure.com
$env:ANTHROPIC_API_KEY="your-anthropic-api-key"
$env:ANTHROPIC_CHAT_MODEL_NAME="claude-haiku-4-5"
Voor Microsoft Foundry met Azure CLI
$env:ANTHROPIC_RESOURCE="your-foundry-resource-name" # Subdomain before .services.ai.azure.com
$env:ANTHROPIC_CHAT_MODEL_NAME="claude-haiku-4-5"
Opmerking
Wanneer u Microsoft Foundry gebruikt met Azure CLI, moet u ervoor zorgen dat u bent aangemeld met az login en toegang hebt tot de Foundry-resource. Zie de Documentatie van Azure CLI voor meer informatie.
Een antropische agent maken
Basic Agent Creation (Antropic Public API)
De eenvoudigste manier om een Antropische agent te maken met behulp van de openbare API:
var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY");
var deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5";
AnthropicClient client = new() { ApiKey = apiKey };
AIAgent agent = client.AsAIAgent(
model: deploymentName,
name: "HelpfulAssistant",
instructions: "You are a helpful assistant.");
// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Hello, how can you help me?"));
Antropisch gebruiken in Foundry
Nadat u Anthropic hebt ingesteld op Microsoft Foundry, kunt u deze gebruiken met API-sleutelverificatie:
Verificatie via een API-sleutel
var resource = Environment.GetEnvironmentVariable("ANTHROPIC_RESOURCE");
var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY");
var deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5";
AnthropicClient client = new AnthropicFoundryClient(
new AnthropicFoundryApiKeyCredentials(apiKey, resource));
AIAgent agent = client.AsAIAgent(
model: deploymentName,
name: "FoundryAgent",
instructions: "You are a helpful assistant using Anthropic on Microsoft Foundry.");
Console.WriteLine(await agent.RunAsync("How do I use Anthropic on Foundry?"));
Verificatie van Azure-aanmeldingsgegevens
Voor omgevingen waar Azure-referenties de voorkeur hebben:
var resource = Environment.GetEnvironmentVariable("ANTHROPIC_RESOURCE");
var deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5";
AnthropicClient client = new AnthropicFoundryClient(
new AnthropicFoundryIdentityTokenCredentials(
new DefaultAzureCredential(),
resource,
["https://ai.azure.com/.default"]));
AIAgent agent = client.AsAIAgent(
model: deploymentName,
name: "FoundryAgent",
instructions: "You are a helpful assistant using Anthropic on Microsoft Foundry.");
Console.WriteLine(await agent.RunAsync("How do I use Anthropic on Foundry?"));
Warning
DefaultAzureCredential is handig voor ontwikkeling, maar vereist zorgvuldige overwegingen in de productieomgeving. Overweeg in productie een specifieke referentie te gebruiken (bijvoorbeeld ManagedIdentityCredential) om latentieproblemen, onbedoelde referentieprobing en potentiële beveiligingsrisico's van terugvalmechanismen te voorkomen.
Tip
Zie de .NET-voorbeelden voor volledige runnable voorbeelden.
Tools
| Tool | Status | Opmerkingen |
|---|---|---|
| Functiehulpmiddelen | ✅ | Standaardinstanties AIFunction via AIFunctionFactory.Create(...). |
| Goedkeuring van hulpprogramma | ✅ | Geleverd door de chatclient die functies aanroept; werkt met elke functie-toolaanroep. |
| Code-interpreter | ❌ | Wordt momenteel niet ondersteund door de .NET Anthropic-client. |
| Zoeken naar bestanden | ❌ | Wordt niet ondersteund. |
| Zoeken op internet | ❌ | Wordt momenteel niet ondersteund door de .NET Anthropic-client. |
| Gehoste MCP-tools | ✅ | Supported. |
| Lokale MCP-hulpprogramma's | ✅ | Supported. |
Denkvorming uitbreiden
Configureer het redeneervermogen van Anthropic via de ruwe berichtrepresentatie en verwerk TextReasoningContent uit reguliere antwoorden of streamingantwoorden.
var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") ?? throw new InvalidOperationException("ANTHROPIC_API_KEY is not set.");
var model = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5";
var maxTokens = 4096;
var thinkingTokens = 2048;
var agent = new AnthropicClient(new ClientOptions { ApiKey = apiKey })
.AsAIAgent(
model: model,
clientFactory: (chatClient) => chatClient
.AsBuilder()
.ConfigureOptions(
options => options.RawRepresentationFactory = (_) => new MessageCreateParams()
{
Model = options.ModelId ?? model,
MaxTokens = options.MaxOutputTokens ?? maxTokens,
Messages = [],
Thinking = new ThinkingConfigParam(new ThinkingConfigEnabled(budgetTokens: thinkingTokens))
})
.Build());
Console.WriteLine("1. Non-streaming:");
var response = await agent.RunAsync("Solve this problem step by step: If a train travels 60 miles per hour and needs to cover 180 miles, how long will the journey take? Show your reasoning.");
Console.WriteLine("#### Start Thinking ####");
Console.WriteLine($"\e[92m{string.Join("\n", response.Messages.SelectMany(m => m.Contents.OfType<TextReasoningContent>().Select(c => c.Text)))}\e[0m");
Console.WriteLine("#### End Thinking ####");
Console.WriteLine("\n#### Final Answer ####");
Console.WriteLine(response.Text);
Console.WriteLine("Token usage:");
Console.WriteLine($"Input: {response.Usage?.InputTokenCount}, Output: {response.Usage?.OutputTokenCount}, {string.Join(", ", response.Usage?.AdditionalCounts ?? [])}");
Console.WriteLine();
Console.WriteLine("2. Streaming");
await foreach (var update in agent.RunStreamingAsync("Explain the theory of relativity in simple terms."))
{
foreach (var item in update.Contents)
{
if (item is TextReasoningContent reasoningContent)
{
Console.WriteLine($"\e[92m{reasoningContent.Text}\e[0m");
}
else if (item is TextContent textContent)
{
Console.WriteLine(textContent.Text);
}
}
}
Antropische vaardigheden
Door Anthropic beheerde vaardigheden kunnen bestanden aanmaken via de gehoste code-uitvoeringsomgeving. Het voorbeeld bevat beschikbare vaardigheden, configureert de PowerPoint vaardigheid en downloadt het gegenereerde bestand.
string apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") ?? throw new InvalidOperationException("ANTHROPIC_API_KEY is not set.");
// Skills require Claude 4.5 models (Sonnet 4.5, Haiku 4.5, or Opus 4.5)
string model = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-sonnet-4-5-20250929";
// Create the Anthropic client
AnthropicClient anthropicClient = new() { ApiKey = apiKey };
// List available Anthropic-managed skills (optional - API may not be available in all regions)
Console.WriteLine("Available Anthropic-managed skills:");
try
{
SkillListPage skills = await anthropicClient.Beta.Skills.List(
new SkillListParams { Source = "anthropic", Betas = [AnthropicBeta.Skills2025_10_02] });
foreach (var skill in skills.Items)
{
Console.WriteLine($" {skill.Source}: {skill.ID} (version: {skill.LatestVersion})");
}
}
catch (Exception ex)
{
Console.WriteLine($" (Skills listing not available: {ex.Message})");
}
Console.WriteLine();
// Define the pptx skill - the SDK handles all beta flags and container configuration automatically
// when using AsAITool(), so no manual RawRepresentationFactory configuration is needed.
BetaSkillParams pptxSkill = new()
{
Type = BetaSkillParamsType.Anthropic,
SkillID = "pptx",
Version = "latest"
};
// Create an agent with the pptx skill enabled.
// Skills require extended thinking and higher max tokens for complex file generation.
// The SDK's AsAITool() handles beta flags and container config automatically.
ChatClientAgent agent = anthropicClient.Beta.AsAIAgent(
model: model,
instructions: "You are a helpful agent for creating PowerPoint presentations.",
tools: [pptxSkill.AsAITool()],
clientFactory: (chatClient) => chatClient
.AsBuilder()
.ConfigureOptions(options =>
{
options.RawRepresentationFactory = (_) => new MessageCreateParams()
{
Model = model,
MaxTokens = 20000,
Messages = [],
Thinking = new BetaThinkingConfigParam(
new BetaThinkingConfigEnabled(budgetTokens: 10000))
};
})
.Build());
Console.WriteLine("Creating a presentation about renewable energy...\n");
// Run the agent with a request to create a presentation
AgentResponse response = await agent.RunAsync("Create a simple 3-slide presentation about renewable energy sources. Include a title slide, a slide about solar energy, and a slide about wind energy.");
// Collect generated files from CodeInterpreterToolResultContent outputs
List<HostedFileContent> hostedFiles = response.Messages
.SelectMany(m => m.Contents.OfType<CodeInterpreterToolResultContent>())
.Where(c => c.Outputs is not null)
.SelectMany(c => c.Outputs!.OfType<HostedFileContent>())
.ToList();
if (hostedFiles.Count > 0)
{
Console.WriteLine("\n#### Generated Files ####");
foreach (HostedFileContent file in hostedFiles)
{
Console.WriteLine($" FileId: {file.FileId}");
// Download the file using the Anthropic Files API
using HttpResponse fileResponse = await anthropicClient.Beta.Files.Download(
file.FileId,
new FileDownloadParams { Betas = ["files-api-2025-04-14"] });
// Save the file to disk
string fileName = $"presentation_{file.FileId.Substring(0, 8)}.pptx";
using FileStream fileStream = File.Create(fileName);
Stream contentStream = await fileResponse.ReadAsStream();
await contentStream.CopyToAsync(fileStream);
Console.WriteLine($" Saved to: {fileName}");
De agent gebruiken
De agent is een standaard AIAgent en ondersteunt alle standaardagentbewerkingen.
Zie de Aan de slag met agent-zelfstudies voor meer informatie over het uitvoeren en interactie met agents.
Prerequisites
Installeer het Microsoft Agent Framework Antropic-pakket.
pip install agent-framework-anthropic --pre
Configuration
Omgevingsvariabelen
Stel de vereiste omgevingsvariabelen in voor antropische verificatie:
# Required for Anthropic API access
ANTHROPIC_API_KEY="your-anthropic-api-key"
ANTHROPIC_CHAT_MODEL="claude-sonnet-4-5-20250929" # or your preferred model
# Optional: override the Anthropic API endpoint (e.g. for Foundry-compatible deployments)
ANTHROPIC_BASE_URL="https://your-custom-endpoint.com"
U kunt ook een .env bestand gebruiken in de hoofdmap van uw project:
ANTHROPIC_API_KEY=your-anthropic-api-key
ANTHROPIC_CHAT_MODEL=claude-sonnet-4-5-20250929
# ANTHROPIC_BASE_URL=https://your-custom-endpoint.com # optional
U kunt een API-sleutel ophalen uit de Tropic Console.
Aan de slag komen
Importeer de vereiste klassen uit het Agent Framework:
import asyncio
from agent_framework import Agent
from agent_framework.anthropic import AnthropicClient
Een antropische agent maken
Basisagent maken
De eenvoudigste manier om een Antropische agent te maken:
from agent_framework import Agent
async def basic_example():
# Create an agent using Anthropic
agent = Agent(
client=AnthropicClient(),
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("Hello, how can you help me?")
print(result.text)
Expliciete configuratie gebruiken
U kunt expliciete configuratie opgeven in plaats van te vertrouwen op omgevingsvariabelen:
from agent_framework import Agent
async def explicit_config_example():
agent = Agent(
client=AnthropicClient(
model="claude-sonnet-4-5-20250929",
api_key="your-api-key-here",
),
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("What can you do?")
print(result.text)
Een aangepaste basis-URL gebruiken
Geef base_url rechtstreeks door aan AnthropicClient om deze te laten verwijzen naar een Anthropic-compatibel eindpunt, zoals een door Foundry gehoste implementatie. Hiermee kunt u dezelfde AnthropicClient code behouden en alleen het eindpunt wijzigen in plaats van over te schakelen naar AnthropicFoundryClient:
from agent_framework import Agent
async def custom_base_url_example():
agent = Agent(
client=AnthropicClient(
model="claude-haiku-4-5",
api_key="your-api-key-here",
base_url="https://your-foundry-resource.services.ai.azure.com/models/anthropic",
),
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("What can you do?")
print(result.text)
base_url valt terug naar de ANTHROPIC_BASE_URL omgevingsvariabele wanneer deze niet expliciet wordt doorgegeven.
Antropisch gebruiken in Foundry
Nadat u Lantropic hebt ingesteld voor Foundry, controleert u of de volgende omgevingsvariabelen zijn ingesteld:
ANTHROPIC_FOUNDRY_API_KEY="your-foundry-api-key"
ANTHROPIC_FOUNDRY_RESOURCE="your-foundry-resource-name"
ANTHROPIC_CHAT_MODEL="claude-haiku-4-5"
Maak vervolgens de agent als volgt:
from agent_framework import Agent
from agent_framework.anthropic import AnthropicFoundryClient
async def foundry_example():
agent = Agent(
client=AnthropicFoundryClient(),
name="FoundryAgent",
instructions="You are a helpful assistant using Anthropic on Foundry.",
)
result = await agent.run("How do I use Anthropic on Foundry?")
print(result.text)
Opmerking
Als u liever een volledig Anthropic-compatibel eindpunt configureert in plaats van een resourcenaam, stelt u ANTHROPIC_FOUNDRY_BASE_URL in, naast ANTHROPIC_FOUNDRY_API_KEY.
Anthropic gebruiken op Amazon Bedrock
AnthropicBedrockClient routeert Claude modeldeductie via Amazon Bedrock.
AWS_ACCESS_KEY_ID="<access-key>"
AWS_SECRET_ACCESS_KEY="<secret-key>"
AWS_REGION="us-east-1"
# Optional:
AWS_PROFILE="<profile>"
AWS_SESSION_TOKEN="<session-token>"
ANTHROPIC_BEDROCK_BASE_URL="<custom-endpoint>"
ANTHROPIC_CHAT_MODEL="anthropic.claude-3-5-sonnet-20241022-v2:0"
Er is momenteel geen runnable Agent Framework-voorbeeld gepubliceerd voor AnthropicBedrockClient.
Anthropic gebruiken op Google Vertex AI
AnthropicVertexClient routeert Claude modeldeductie via Google Vertex AI.
CLOUD_ML_REGION="us-east5"
ANTHROPIC_VERTEX_PROJECT_ID="<google-cloud-project>"
ANTHROPIC_CHAT_MODEL="claude-sonnet-4@20250514"
# Optional:
ANTHROPIC_VERTEX_BASE_URL="<custom-endpoint>"
Er is momenteel geen runnable Agent Framework-voorbeeld gepubliceerd voor AnthropicVertexClient.
Tools
AnthropicClient maakt gehoste Anthropic tool factory's beschikbaar naast de standaard functiehulpmiddelondersteuning. Gebruik client.get_*_tool(...) om een hulpprogramma te bouwen en het via tools= door te geven op Agent(...).
| Tool | Fabriek/ bouw | Status | Opmerkingen |
|---|---|---|---|
| Functiehulpmiddelen | Geef een Python-callable of @ai_function door |
✅ | Lokaal aangeroepen in uw Python proces. |
| Goedkeuring van hulpprogramma | Afgehandeld door de chatclient van het framework voor functieaanroepen | ✅ | Werkt met elke aanroep van een functiehulpmiddel. |
| Code-interpreter | client.get_code_interpreter_tool() |
✅ | Vereist voor Anthropic Skills. |
| Zoeken naar bestanden | n/a | ❌ | Niet beschikbaar gesteld door de Anthropic-API. |
| Zoeken op internet | client.get_web_search_tool() |
✅ | Gehoste webzoekfunctie van Anthropic. |
| Gehoste MCP-tools | client.get_mcp_tool(name=..., url=...) |
✅ | Externe MCP-servers die door Anthropic worden aangeroepen. |
| Lokale MCP-hulpprogramma's | MCPStreamableHTTPTool / MCPStdioTool |
✅ | Wordt uitgevoerd in uw proces. |
Zie hieronder Hosted Tools voor uitgebreidere voorbeelden waarin gehoste MCP, webzoekopdrachten, uitgebreid nadenken en Anthropic Skills worden gecombineerd.
Agent functies
from typing import Annotated
def get_weather(
location: Annotated[str, "The location to get the weather for."],
) -> str:
"""Get the weather for a given location."""
conditions = ["sunny", "cloudy", "rainy", "stormy"]
return f"The weather in {location} is {conditions[randint(0, 3)]} with a high of {randint(10, 30)}°C."
from agent_framework import Agent
async def tools_example():
agent = Agent(
client=AnthropicClient(),
name="WeatherAgent",
instructions="You are a helpful weather assistant.",
tools=get_weather, # Add tools to the agent
)
result = await agent.run("What's the weather like in Seattle?")
print(result.text)
Streamingreacties
Antwoorden ophalen wanneer ze worden gegenereerd voor een betere gebruikerservaring:
from agent_framework import Agent
async def streaming_example():
agent = Agent(
client=AnthropicClient(),
name="WeatherAgent",
instructions="You are a helpful weather agent.",
tools=get_weather,
)
query = "What's the weather like in Portland and in Paris?"
print(f"User: {query}")
print("Agent: ", end="", flush=True)
async for chunk in agent.run(query, stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
Gehoste hulpprogramma's
Antropische agents ondersteunen gehoste hulpprogramma's zoals webzoekopdrachten, MCP (Model Context Protocol) en uitvoering van code:
from agent_framework import Agent
from agent_framework.anthropic import AnthropicClient
async def hosted_tools_example():
client = AnthropicClient()
agent = Agent(
client=client,
name="DocsAgent",
instructions="You are a helpful agent for both Microsoft docs questions and general questions.",
tools=[
client.get_mcp_tool(
name="Microsoft Learn MCP",
url="https://learn.microsoft.com/api/mcp",
),
client.get_web_search_tool(),
],
default_options={"max_tokens": 20000},
)
result = await agent.run("Can you compare Python decorators with C# attributes?")
print(result.text)
Uitgebreid denken (redeneren)
Lantropic biedt ondersteuning voor uitgebreide denkmogelijkheden via de thinking functie, waardoor het model het redeneringsproces kan weergeven:
from agent_framework import Agent
from agent_framework.anthropic import AnthropicClient
async def thinking_example():
client = AnthropicClient()
agent = Agent(
client=client,
name="DocsAgent",
instructions="You are a helpful agent.",
tools=[client.get_web_search_tool()],
default_options={
"max_tokens": 20000,
"thinking": {"type": "enabled", "budget_tokens": 10000}
},
)
query = "Can you compare Python decorators with C# attributes?"
print(f"User: {query}")
print("Agent: ", end="", flush=True)
async for chunk in agent.run(query, stream=True):
for content in chunk.contents:
if content.type == "text_reasoning":
# Display thinking in a different color
print(f"\033[32m{content.text}\033[0m", end="", flush=True)
if content.type == "usage":
print(f"\n\033[34m[Usage: {content.usage_details}]\033[0m\n", end="", flush=True)
if chunk.text:
print(chunk.text, end="", flush=True)
print()
Antropische vaardigheden
Antropic biedt beheerde vaardigheden waarmee agentmogelijkheden worden uitgebreid, zoals het maken van PowerPoint-presentaties. Voor vaardigheden is het hulpprogramma Code-interpreter vereist om te kunnen functioneren:
from agent_framework import Agent, Content
from agent_framework.anthropic import AnthropicClient
async def skills_example():
# Create client with skills beta flag
client = AnthropicClient(additional_beta_flags=["skills-2025-10-02"])
# Create an agent with the pptx skill enabled
# Skills require the Code Interpreter tool
agent = Agent(
client=client,
name="PresentationAgent",
instructions="You are a helpful agent for creating PowerPoint presentations.",
tools=client.get_code_interpreter_tool(),
default_options={
"max_tokens": 20000,
"thinking": {"type": "enabled", "budget_tokens": 10000},
"container": {
"skills": [{"type": "anthropic", "skill_id": "pptx", "version": "latest"}]
},
},
)
query = "Create a presentation about renewable energy with 5 slides"
print(f"User: {query}")
print("Agent: ", end="", flush=True)
files: list[Content] = []
async for chunk in agent.run(query, stream=True):
for content in chunk.contents:
match content.type:
case "text":
print(content.text, end="", flush=True)
case "text_reasoning":
print(f"\033[32m{content.text}\033[0m", end="", flush=True)
case "hosted_file":
# Catch generated files
files.append(content)
print("\n")
# Download generated files
if files:
print("Generated files:")
for idx, file in enumerate(files):
file_content = await client.anthropic_client.beta.files.download(
file_id=file.file_id,
betas=["files-api-2025-04-14"]
)
filename = f"presentation-{idx}.pptx"
with open(filename, "wb") as f:
await file_content.write_to_file(f.name)
print(f"File {idx}: {filename} saved to disk.")
Volledig voorbeeld
# Copyright (c) Microsoft. All rights reserved.
import asyncio
from random import randint
from typing import Annotated
from agent_framework import Agent, tool
from agent_framework.anthropic import AnthropicClient
"""
Anthropic Chat Agent Example
This sample demonstrates using Anthropic with an agent and a single custom tool.
"""
# NOTE: approval_mode="never_require" is for sample brevity. Use "always_require" in production; see samples/02-agents/tools/function_tool_with_approval.py and samples/02-agents/tools/function_tool_with_approval_and_sessions.py.
@tool(approval_mode="never_require")
def get_weather(
location: Annotated[str, "The location to get the weather for."],
) -> str:
"""Get the weather for a given location."""
conditions = ["sunny", "cloudy", "rainy", "stormy"]
return f"The weather in {location} is {conditions[randint(0, 3)]} with a high of {randint(10, 30)}°C."
async def non_streaming_example() -> None:
"""Example of non-streaming response (get the complete result at once)."""
print("=== Non-streaming Response Example ===")
agent = Agent(
client=AnthropicClient(),
name="WeatherAgent",
instructions="You are a helpful weather agent.",
tools=get_weather,
)
query = "What's the weather like in Seattle?"
print(f"User: {query}")
result = await agent.run(query)
print(f"Result: {result}\n")
async def streaming_example() -> None:
"""Example of streaming response (get results as they are generated)."""
print("=== Streaming Response Example ===")
agent = Agent(
client=AnthropicClient(),
name="WeatherAgent",
instructions="You are a helpful weather agent.",
tools=get_weather,
)
query = "What's the weather like in Portland and in Paris?"
print(f"User: {query}")
print("Agent: ", end="", flush=True)
async for chunk in agent.run(query, stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print("\n")
async def main() -> None:
print("=== Anthropic Example ===")
await streaming_example()
await non_streaming_example()
if __name__ == "__main__":
asyncio.run(main())
De agent gebruiken
De agent is een standaard Agent en ondersteunt alle standaardagentbewerkingen.
Zie de Aan de slag met agent-zelfstudies voor meer informatie over het uitvoeren en interactie met agents.
Anthropic
Het anthropicprovider pakket maakt agents met behulp van de Anthropic-API.
Installation
go get github.com/microsoft/agent-framework-go
Een Anthropic-agent maken
import (
"github.com/microsoft/agent-framework-go/agent"
"github.com/microsoft/agent-framework-go/provider/anthropicprovider"
"github.com/anthropics/anthropic-sdk-go"
)
a := anthropicprovider.NewAgent(
anthropic.NewClient(), // uses ANTHROPIC_API_KEY env var
anthropicprovider.AgentConfig{
Model: "claude-sonnet-4-5",
Instructions: "You are a helpful assistant.",
Config: agent.Config{
Name: "ClaudeAgent",
},
},
)
resp, err := a.RunText(ctx, "Tell me a joke.").Collect()
Aangepaste opties
Geef Anthropic-specifieke parameters door met behulp vananthropicprovider.MessageNewParams:
resp, err := a.RunText(ctx, "Hello!",
anthropicprovider.MessageNewParams(anthropic.MessageNewParams{
MaxTokens: 500,
}),
).Collect()
Tip
Zie het Anthropic-voorbeeld voor een volledig voorbeeld.