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.
agent-framework-claude verpakt de Claude Agent SDK als ClaudeAgent. Het maakt gebruik van de beheerde agentruntime van Claude, sessies, het machtigingsmodel, ingebouwde tools en MCP-ondersteuning, en stelt daarbij de interfaces voor uitvoeren en streamen van Agent Framework beschikbaar.
Deze integratie verschilt van de Anthropic modelprovider, die Claude gebruikt als model achter een Agent Framework-agent die eigendom is van een toepassing.
Prerequisites
- Installeer en configureer de Claude Code CLI.
- Kies een Claude-model en machtigingsmodus.
- Voer de agent uit in een beperkte werkmap bij het inschakelen van hulpprogramma's voor bestanden of shells.
Installeer het pakket
pip install agent-framework-claude --pre
Configuration
| Veranderlijk | Purpose |
|---|---|
CLAUDE_AGENT_MODEL |
Het Claude-model dat door de beheerde runtime wordt gebruikt. |
CLAUDE_AGENT_PERMISSION_MODE |
Standaardmachtigingsmodus voor ingebouwde en MCP-hulpprogramma's. |
CLAUDE_AGENT_CLI_PATH |
Optioneel expliciet pad naar de Claude Code CLI. |
CLAUDE_AGENT_CWD |
Werkmap die toegankelijk is voor de runtime. |
CLAUDE_AGENT_MAX_TURNS |
Optioneel maximum aantal beurten van de agent. |
CLAUDE_AGENT_MAX_BUDGET_USD |
Een optionele kostenlimiet voor een uitvoering. |
Expliciete nulwaarden voor max_turns en max_budget_usd worden doorgestuurd naar de Claude Agent SDK. Alleen niet-ingestelde waarden (None) worden weggelaten.
Een ClaudeAgent maken
ClaudeAgent biedt ondersteuning voor reguliere en streaming-uitvoeringen en kan hulpprogramma's voor Agent Framework-functies beschikbaar maken.
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")
Aanvullende voorbeelden laten zien:
- Bestands- en shellhulpmiddelen ingebouwd in Claude.
- Interactieve afhandeling van machtigingen.
- Lokale en externe MCP-servers.
- Sessiebehoud en hervatten.
- Opeenvolgende werkstromen die voorafgaande berichten doorgeven tussen Claude-agenten.
- URL's ophalen en meerdere machtigingsregels.
Wanneer ClaudeAgent meerdere berichten ontvangt, verzendt het één prompt die deze als gespreksgeschiedenis presenteert en elk bericht van een rolaanduiding voorziet. Deze benadering behoudt rolgrenzen tijdens overdrachten tussen agenten, maar speelt de systeemeigen meerrollengeschiedenis van Claude niet opnieuw af en deelt geen Claude-sessie. Eén gebruikersbericht blijft ongewijzigd.
Overwegingen met betrekking tot machtigingen
- Begin met de minst permissieve Claude Agent SDK-machtigingsmodus die ondersteuning biedt voor de taak.
- Expliciete goedkeuring vereisen voor shell-, bestands-, netwerk- of andere bewerkingen met side-effect.
- Stel referenties niet beschikbaar via omgevingsvariabelen of leesbare bestanden in de werkmap van de agent.