Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft Agent Framework, Antropik'in Claude modellerini kullanan aracılar oluşturmayı destekler.
Başlangıç Yapmak
Projenize gerekli NuGet paketlerini ekleyin.
dotnet add package Microsoft.Agents.AI.Anthropic --prerelease
Azure Foundry kullanıyorsanız şunları da ekleyin:
dotnet add package Anthropic.Foundry --prerelease
dotnet add package Azure.Identity
Konfigürasyon
Ortam Değişkenleri
Antropik kimlik doğrulaması için gerekli ortam değişkenlerini ayarlayın:
# Required for Anthropic API access
$env:ANTHROPIC_API_KEY="your-anthropic-api-key"
$env:ANTHROPIC_DEPLOYMENT_NAME="claude-haiku-4-5" # or your preferred model
Antropik Konsolu'ndan bir API anahtarı alabilirsiniz.
API Anahtarı ile Azure Foundry için
$env:ANTHROPIC_RESOURCE="your-foundry-resource-name" # Subdomain before .services.ai.azure.com
$env:ANTHROPIC_API_KEY="your-anthropic-api-key"
$env:ANTHROPIC_DEPLOYMENT_NAME="claude-haiku-4-5"
Azure Foundry için Azure CLI kullanarak
$env:ANTHROPIC_RESOURCE="your-foundry-resource-name" # Subdomain before .services.ai.azure.com
$env:ANTHROPIC_DEPLOYMENT_NAME="claude-haiku-4-5"
Uyarı
Azure Foundry'yi Azure CLI ile kullanırken, az login oturum açtığınızdan ve Azure Foundry kaynağına erişiminiz olduğundan emin olun. Daha fazla bilgi için Azure CLI belgelerine bakın.
Antropik Aracı Oluşturma
Temel Aracı Oluşturma (Antropik Genel API)
Genel API'yi kullanarak Antropik aracı oluşturmanın en basit yolu:
var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY");
var deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_DEPLOYMENT_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?"));
API Anahtarı ile Azure Foundry'de Antropik kullanma
Antropik'i Azure Foundry'de ayarladıktan sonra API anahtarı kimlik doğrulaması ile kullanabilirsiniz:
var resource = Environment.GetEnvironmentVariable("ANTHROPIC_RESOURCE");
var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY");
var deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_DEPLOYMENT_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 Azure Foundry.");
Console.WriteLine(await agent.RunAsync("How do I use Anthropic on Foundry?"));
Azure Foundry'de Azure Kimlik Bilgileri ile Anthropic kullanma (Azure CLI Kimlik Bilgileri örneği)
Azure Kimlik Bilgilerinin tercih edildiği ortamlar için:
var resource = Environment.GetEnvironmentVariable("ANTHROPIC_RESOURCE");
var deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_DEPLOYMENT_NAME") ?? "claude-haiku-4-5";
AnthropicClient client = new AnthropicFoundryClient(
new AnthropicAzureTokenCredential(new DefaultAzureCredential(), resource));
AIAgent agent = client.AsAIAgent(
model: deploymentName,
name: "FoundryAgent",
instructions: "You are a helpful assistant using Anthropic on Azure Foundry.");
Console.WriteLine(await agent.RunAsync("How do I use Anthropic on Foundry?"));
/// <summary>
/// Provides methods for invoking the Azure hosted Anthropic models using <see cref="TokenCredential"/> types.
/// </summary>
public sealed class AnthropicAzureTokenCredential(TokenCredential tokenCredential, string resourceName) : IAnthropicFoundryCredentials
{
/// <inheritdoc/>
public string ResourceName { get; } = resourceName;
/// <inheritdoc/>
public void Apply(HttpRequestMessage requestMessage)
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue(
scheme: "bearer",
parameter: tokenCredential.GetToken(new TokenRequestContext(scopes: ["https://ai.azure.com/.default"]), CancellationToken.None)
.Token);
}
}
Uyarı
DefaultAzureCredential geliştirme için uygundur ancak üretimde dikkatli bir şekilde dikkate alınması gerekir. Üretimde gecikme sorunları, istenmeyen kimlik bilgisi yoklama ve geri dönüş mekanizmalarından kaynaklanan olası güvenlik risklerini önlemek için belirli bir kimlik bilgisi (ör ManagedIdentityCredential. ) kullanmayı göz önünde bulundurun.
Tip
Çalıştırılabilir örneklerin tamamı için .NET örneklerine bakın.
Ajanı Kullanma
Aracı standart bir AIAgent'dir ve tüm standart aracı işlemleri destekler.
Aracıları çalıştırma ve aracılarla etkileşim kurma hakkında daha fazla bilgi için bkz. Aracı kullanmaya başlama öğreticileri .
Önkoşullar
Microsoft Agent Framework Antropik paketini yükleyin.
pip install agent-framework-anthropic --pre
Konfigürasyon
Ortam Değişkenleri
Antropik kimlik doğrulaması için gerekli ortam değişkenlerini ayarlayın:
# Required for Anthropic API access
ANTHROPIC_API_KEY="your-anthropic-api-key"
ANTHROPIC_CHAT_MODEL_ID="claude-sonnet-4-5-20250929" # or your preferred model
Alternatif olarak, proje kökünde bir .env dosya kullanabilirsiniz:
ANTHROPIC_API_KEY=your-anthropic-api-key
ANTHROPIC_CHAT_MODEL_ID=claude-sonnet-4-5-20250929
Antropik Konsolu'ndan bir API anahtarı alabilirsiniz.
Başlangıç Yapmak
Aracı Çerçevesi'nden gerekli sınıfları içeri aktarın:
import asyncio
from agent_framework.anthropic import AnthropicClient
Antropik Aracı Oluşturma
Temel Ajan Oluşturma
Antropik aracı oluşturmanın en basit yolu:
async def basic_example():
# Create an agent using Anthropic
agent = AnthropicClient().as_agent(
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("Hello, how can you help me?")
print(result.text)
Açık Yapılandırma Kullanma
Ortam değişkenlerine güvenmek yerine açık yapılandırma sağlayabilirsiniz:
async def explicit_config_example():
agent = AnthropicClient(
model_id="claude-sonnet-4-5-20250929",
api_key="your-api-key-here",
).as_agent(
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("What can you do?")
print(result.text)
Anthropic'i Dökümhanede Kullanma
Anthropic'i Foundry'de ayarladıktan sonra aşağıdaki ortam değişkenlerini ayarladığınızdan emin olun:
ANTHROPIC_FOUNDRY_API_KEY="your-foundry-api-key"
ANTHROPIC_FOUNDRY_RESOURCE="your-foundry-resource-name"
Ardından aracıyı aşağıdaki gibi oluşturun:
from agent_framework.anthropic import AnthropicClient
from anthropic import AsyncAnthropicFoundry
async def foundry_example():
agent = AnthropicClient(
anthropic_client=AsyncAnthropicFoundry()
).as_agent(
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)
Not: Bunun
anthropic>=0.74.0kurulu olması gerekir.
Temsilci Özellikleri
İşlev Araçları
Ajanınızı özel işlevlerle donatın.
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."
async def tools_example():
agent = AnthropicClient().as_agent(
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)
Akış Yanıtları
Daha iyi bir kullanıcı deneyimi için oluşturulan yanıtları alın:
async def streaming_example():
agent = AnthropicClient().as_agent(
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()
Barındırılan Araçlar
Antropik aracılar web araması, MCP (Model Bağlam Protokolü) ve kod yürütme gibi barındırılan araçları destekler:
from agent_framework.anthropic import AnthropicClient
async def hosted_tools_example():
client = AnthropicClient()
agent = client.as_agent(
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(),
],
max_tokens=20000,
)
result = await agent.run("Can you compare Python decorators with C# attributes?")
print(result.text)
Genişletilmiş Düşünme (Akıl Yürütme)
Antropik, modelin thinking akıl yürütme sürecini göstermesini sağlayan özellik aracılığıyla genişletilmiş düşünme özelliklerini destekler:
from agent_framework import TextReasoningContent, UsageContent
from agent_framework.anthropic import AnthropicClient
async def thinking_example():
client = AnthropicClient()
agent = client.as_agent(
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 isinstance(content, TextReasoningContent):
# Display thinking in a different color
print(f"\033[32m{content.text}\033[0m", end="", flush=True)
if isinstance(content, UsageContent):
print(f"\n\033[34m[Usage: {content.details}]\033[0m\n", end="", flush=True)
if chunk.text:
print(chunk.text, end="", flush=True)
print()
Antropik Beceriler
Antropik, PowerPoint sunuları oluşturma gibi aracı özelliklerini genişleten yönetilen beceriler sağlar. Becerilerin çalışması için Kod Yorumlayıcı aracının çalışması gerekir:
from agent_framework import HostedFileContent
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 = client.as_agent(
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[HostedFileContent] = []
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.")
Tam örnek
# Copyright (c) Microsoft. All rights reserved.
import asyncio
from random import randint
from typing import Annotated
from agent_framework import 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 = AnthropicClient(
).as_agent(
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 = AnthropicClient(
).as_agent(
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())
Ajanı Kullanma
Aracı standart bir Agent'dir ve tüm standart aracı işlemleri destekler.
Aracıları çalıştırma ve aracılarla etkileşim kurma hakkında daha fazla bilgi için bkz. Aracı kullanmaya başlama öğreticileri .