Anthropic Claude

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.

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.
  • URL's ophalen en meerdere machtigingsregels.

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.

Volgende stappen