Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
agent-framework-claude paketerar Claude Agent SDK som ClaudeAgent. Den använder Claudes hanterade agentkörtidsmiljö, sessioner, behörighetsmodell, inbyggda verktyg och stöd för MCP och exponerar samtidigt Agent Frameworks gränssnitt för körning och strömning.
Den här integrationen skiljer sig från modellleverantören Anthropic, som använder Claude som modellen bakom en applikationsägd Agent Framework-agent.
Förutsättningar
- Installera och konfigurera Claude Code CLI.
- Välj en Claude-modell och ett behörighetsläge.
- Kör agenten i en begränsad arbetskatalog när du aktiverar fil- eller gränssnittsverktyg.
Installera paketet
pip install agent-framework-claude --pre
Configuration
| Variabel | Purpose |
|---|---|
CLAUDE_AGENT_MODEL |
Claude-modell som används av den hanterade runtime-miljön. |
CLAUDE_AGENT_PERMISSION_MODE |
Standardbehörighetsläge för inbyggda verktyg och MCP-verktyg. |
CLAUDE_AGENT_CLI_PATH |
Valfri explicit sökväg till Claude Code CLI. |
CLAUDE_AGENT_CWD |
Arbetskatalog som är tillgänglig för körmiljön. |
CLAUDE_AGENT_MAX_TURNS |
Valfritt maximalt antal agentvändningar. |
CLAUDE_AGENT_MAX_BUDGET_USD |
Valfri kostnadsbudget för en körning. |
Explicita nollvärden för max_turns och max_budget_usd vidarebefordras till Claude Agent SDK. Endast oinställda (None) värden utelämnas.
Skapa en ClaudeAgent
ClaudeAgent stöder vanliga och strömmade körningar och kan tillhandahålla funktionsverktyg i Agent Framework.
async def non_streaming_example() -> None:
"""Example of non-streaming response."""
print("=== Non-streaming Example ===")
agent = ClaudeAgent(
name="BasicAgent",
instructions="You are a helpful assistant. Keep responses concise.",
tools=[get_weather],
)
async with agent:
query = "What's the weather in Seattle?"
print(f"User: {query}")
result = await agent.run(query)
print(f"Agent: {result.text}\n")
async def streaming_example() -> None:
"""Example of streaming response."""
print("=== Streaming Example ===")
agent = ClaudeAgent(
name="StreamingAgent",
instructions="You are a helpful assistant.",
tools=[get_weather],
)
async with agent:
query = "What's the weather 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")
Ytterligare exempel visar:
- Claude inbyggda fil- och gränssnittsverktyg.
- Interaktiv behörighetshantering.
- Lokala och fjärranslutna MCP-servrar.
- Sessionsbeständighet och återupptagande.
- Sekventiella arbetsflöden som skickar tidigare meddelanden mellan Claude-agenter.
- URL-hämtning och flera behörighetsregler.
När ClaudeAgent tar emot flera meddelanden skickar det en prompt som presenterar dem som konversationshistorik och märker varje meddelande med dess roll. Den här metoden bevarar rollgränser under agentöverlämningar, men den återskapar inte Claudes inbyggda historik för flera roller och delar inte heller en Claude-session mellan agenterna. Ett meddelande för en användare förblir oförändrat.
Behörighetsöverväganden
- Börja med det minst tillåtande Claude Agent SDK-behörighetsläget som stöder uppgiften.
- Kräv uttryckligt godkännande för gränssnitt, fil, nätverk eller andra sidoåtgärder.
- Exponera inte autentiseringsuppgifter via miljövariabler eller läsbara filer i agentens arbetskatalog.