Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Microsoft Agent Framework prend en charge la création d’agents qui utilisent les modèles Claude d’Anthropic.
Inférence de modèle direct par rapport au Kit de développement logiciel (SDK) Claude Agent
La prise en charge d’Anthropic au sein d’Agent Framework se présente sous deux formes distinctes.
| Integration | Type | Boucle et outils de l’agent | À utiliser quand |
|---|---|---|---|
| Inférence de modèle direct (cette page) |
AnthropicClient et variantes hébergées par un fournisseur, encapsulées avec Agent(client=...) |
Votre application gère la boucle de l’Agent Framework, les sessions, le middleware, les outils de fonctions et les outils hébergés pris en charge par Anthropic. | Vous souhaitez utiliser Claude comme modèle pour un agent standard d’Agent Framework appartenant à l’application. |
| Kit de développement logiciel (SDK) de l’agent Anthropic Claude |
ClaudeAgent, construit de manière directe |
Le runtime de l’agent de codage de Claude possède des sessions, des autorisations, des outils de fichier et d’interpréteur de commandes intégrés, ainsi que le comportement MCP. | Vous souhaitez l’environnement d’exécution et le modèle d’autorisations gérés de l’agent de codage de Claude. |
Getting Started
Ajoutez les packages NuGet requis à votre projet.
dotnet add package Microsoft.Agents.AI.Anthropic --prerelease
Si vous utilisez Microsoft Foundry, ajoutez également :
dotnet add package Anthropic.Foundry --prerelease
dotnet add package Azure.Identity
Configuration
Variables d’environnement
Configurez les variables d’environnement requises pour l’authentification anthropice :
# 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
Vous pouvez obtenir une clé API à partir de la console anthropice.
Pour Microsoft Foundry avec la clé API
$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"
Pour Microsoft Foundry avec Azure CLI
$env:ANTHROPIC_RESOURCE="your-foundry-resource-name" # Subdomain before .services.ai.azure.com
$env:ANTHROPIC_CHAT_MODEL_NAME="claude-haiku-4-5"
Note
Lorsque vous utilisez Microsoft Foundry avec Azure CLI, assurez-vous d’être connecté avec az login et d’avoir accès à la ressource Foundry. Pour plus d’informations, consultez la documentation Azure CLI.
Création d’un agent anthropique
Création d’un agent de base (API publique Anthropic)
La façon la plus simple de créer un agent anthropic à l’aide de l’API publique :
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?"));
Utilisation d’Anthropic sur Foundry
Une fois que vous avez configuré Anthropic sur Microsoft Foundry, vous pouvez l'utiliser avec l'authentification par clé API :
Authentification par clé API
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?"));
Authentification des informations d’identification Azure
Pour les environnements où les informations d’identification Azure sont préférées :
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?"));
Avertissement
DefaultAzureCredential est pratique pour le développement, mais nécessite une considération minutieuse en production. En production, envisagez d’utiliser des informations d’identification spécifiques (par exemple ManagedIdentityCredential) pour éviter les problèmes de latence, la détection involontaire des informations d’identification et les risques de sécurité potentiels liés aux mécanismes de secours.
Tip
Consultez les exemples .NET pour obtenir des exemples exécutables complets.
Tools
| Tool | Status | Remarques |
|---|---|---|
| Outils de fonction | ✅ | Instances standard AIFunction via AIFunctionFactory.Create(...). |
| Approbation de l’outil | ✅ | Fourni par le client de chat qui invoque la fonction ; fonctionne avec tout appel à un outil-fonction. |
| Interpréteur de code | ❌ | Non pris en charge par le client .NET Anthropic aujourd’hui. |
| Recherche de fichiers | ❌ | Non prise en charge. |
| Recherche web | ❌ | Non pris en charge par le client .NET Anthropic aujourd’hui. |
| Outils MCP hébergés | ✅ | Soutenu. |
| Outils MCP locaux | ✅ | Soutenu. |
Pensée étendue
Configurez le raisonnement d’Anthropic à l’aide de la représentation brute des messages et utilisez TextReasoningContent à partir de réponses standard ou en flux continu.
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);
}
}
}
Compétences anthropices
les compétences gérées par Anthropic peuvent créer des fichiers via l’environnement d’exécution de code hébergé. L’exemple répertorie les compétences disponibles, configure la compétence PowerPoint et télécharge le fichier généré.
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}");
Utilisation de l’agent
L’agent est standard AIAgent et prend en charge toutes les opérations d’agent standard.
Pour plus d’informations sur l’exécution et l’interaction avec les agents, consultez les didacticiels de prise en main de l’agent .
Prerequisites
Installez le package Microsoft Agent Framework Anthropic.
pip install agent-framework-anthropic --pre
Configuration
Variables d’environnement
Configurez les variables d’environnement requises pour l’authentification anthropice :
# 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"
Vous pouvez également utiliser un .env fichier à la racine de votre projet :
ANTHROPIC_API_KEY=your-anthropic-api-key
ANTHROPIC_CHAT_MODEL=claude-sonnet-4-5-20250929
# ANTHROPIC_BASE_URL=https://your-custom-endpoint.com # optional
Vous pouvez obtenir une clé API à partir de la console anthropice.
Getting Started
Importez les classes requises à partir de Agent Framework :
import asyncio
from agent_framework import Agent
from agent_framework.anthropic import AnthropicClient
Création d’un agent anthropique
Création d'un agent basique
La façon la plus simple de créer un agent anthropice :
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)
Utilisation de la configuration explicite
Vous pouvez fournir une configuration explicite au lieu de vous appuyer sur des variables d’environnement :
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)
Utilisation d’une URL de base personnalisée
Passez base_url directement à AnthropicClient pour le pointer vers n’importe quel point de terminaison compatible Anthropic, tel qu’un déploiement hébergé par Foundry. Cela vous permet de conserver le même AnthropicClient code et de modifier uniquement le point de terminaison, plutôt que de passer à 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 revient à la variable d'environnement ANTHROPIC_BASE_URL lorsqu'elle n'est pas passée explicitement.
Utilisation d’Anthropic sur Foundry
Une fois que vous avez configuré Anthropic on Foundry, vérifiez que les variables d’environnement suivantes sont définies :
ANTHROPIC_FOUNDRY_API_KEY="your-foundry-api-key"
ANTHROPIC_FOUNDRY_RESOURCE="your-foundry-resource-name"
ANTHROPIC_CHAT_MODEL="claude-haiku-4-5"
Créez ensuite l’agent comme suit :
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)
Note
Si vous préférez configurer un point de terminaison complet compatible avec Anthropic au lieu d’un nom de ressource, définissez ANTHROPIC_FOUNDRY_BASE_URL en plus de ANTHROPIC_FOUNDRY_API_KEY.
Utilisation de Anthropic sur Amazon Bedrock
AnthropicBedrockClient achemine l’inférence du modèle Claude 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"
Aucun exemple Runnable Agent Framework n’est actuellement publié pour AnthropicBedrockClient.
Utilisation de Anthropic sur Google Vertex AI
AnthropicVertexClient achemine l’inférence du modèle Claude 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>"
Aucun exemple Runnable Agent Framework n’est actuellement publié pour AnthropicVertexClient.
Tools
AnthropicClient propose les fabriques d’outils hébergées par Anthropic ainsi que la prise en charge des outils de fonction standard. Utilisez client.get_*_tool(...) pour créer un outil et le faire passer via tools= sur Agent(...).
| Tool | Usine / construction | Status | Remarques |
|---|---|---|---|
| Outils de fonction | Transmettre n’importe quel objet appelable Python ou @ai_function |
✅ | Appelé localement dans votre processus de Python. |
| Approbation de l’outil | Géré par le client de conversation d’invocation de fonctions du framework | ✅ | Fonctionne avec tout appel de fonction-outil. |
| Interpréteur de code | client.get_code_interpreter_tool() |
✅ | Obligatoire pour Anthropic Skills. |
| Recherche de fichiers | n/a | ❌ | Non exposé par l’API Anthropic. |
| Recherche web | client.get_web_search_tool() |
✅ | Recherche web hébergée Anthropic. |
| Outils MCP hébergés | client.get_mcp_tool(name=..., url=...) |
✅ | Serveurs MCP distants appelés par Anthropic. |
| Outils MCP locaux | MCPStreamableHTTPTool / MCPStdioTool |
✅ | S’exécute au sein de votre processus. |
Pour obtenir des exemples plus riches : combinaison de MCP hébergés, de recherche web, de pensée étendue et de compétences Anthropic, consultez Hosted Tools ci-dessous.
Fonctionnalités de l’agent
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)
Réponses en continu
Obtenez des réponses à mesure qu’elles sont générées pour une meilleure expérience utilisateur :
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()
Outils hébergés
Les agents anthropices prennent en charge les outils hébergés tels que la recherche web, MCP (Model Context Protocol) et l’exécution du 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)
Pensée étendue (raisonnement)
Anthropic prend en charge les capacités de pensée étendues par le biais de la thinking fonctionnalité, ce qui permet au modèle de montrer son processus de raisonnement :
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()
Compétences anthropices
Anthropic fournit des compétences managées qui étendent les fonctionnalités de l’agent, telles que la création de présentations PowerPoint. Les compétences nécessitent que l’outil Interpréteur de code fonctionne :
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.")
Exemple complet
# 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())
Utilisation de l’agent
L’agent est standard Agent et prend en charge toutes les opérations d’agent standard.
Pour plus d’informations sur l’exécution et l’interaction avec les agents, consultez les didacticiels de prise en main de l’agent .
Anthropic
Le anthropicprovider package crée des agents à l’aide de l’API Anthropic.
Installation
go get github.com/microsoft/agent-framework-go
Créer un agent Anthropic
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()
Options personnalisées
Transmettez des paramètres propres à Anthropic à l’aide de anthropicprovider.MessageNewParams :
resp, err := a.RunText(ctx, "Hello!",
anthropicprovider.MessageNewParams(anthropic.MessageNewParams{
MaxTokens: 500,
}),
).Collect()
Tip
Consultez l’exemple Anthropic pour obtenir un exemple complet.