Anthropic Claude

agent-framework-claude esegue il wrapping di Claude Agent SDK come ClaudeAgent. Usa il runtime dell'agente gestito di Claude, le sessioni, il modello di autorizzazione, gli strumenti predefiniti e il supporto MCP durante l'esposizione delle interfacce di esecuzione e streaming di Agent Framework.

Questa integrazione è diversa dal provider di modelli Anthropic, che usa Claude come modello dietro un agente agent Framework di proprietà dell'applicazione.

Prerequisiti

  • Installare e configurare l'interfaccia della riga di comando di Claude Code.
  • Scegliere un modello Claude e la modalità di autorizzazione.
  • Eseguire l'agente in una directory di lavoro vincolata quando si abilitano gli strumenti di file o shell.

Installare il pacchetto

pip install agent-framework-claude --pre

Configuration

Variabile Purpose
CLAUDE_AGENT_MODEL Modello Claude usato dal runtime gestito.
CLAUDE_AGENT_PERMISSION_MODE Modalità di autorizzazione predefinita per gli strumenti predefiniti e MCP.
CLAUDE_AGENT_CLI_PATH Percorso esplicito facoltativo dell'interfaccia della riga di comando di Claude Code.
CLAUDE_AGENT_CWD Directory di lavoro esposta al runtime.
CLAUDE_AGENT_MAX_TURNS Numero massimo facoltativo di turni dell'agente.
CLAUDE_AGENT_MAX_BUDGET_USD Budget dei costi facoltativo per un'esecuzione.

Crea un ClaudeAgent

ClaudeAgent supporta le esecuzioni regolari e di streaming e può esporre gli strumenti di funzione di 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")

Altri esempi illustrano:

  • Strumenti di file e shell incorporati di Claude.
  • Gestione interattiva delle autorizzazioni.
  • Server MCP locali e remoti.
  • Persistenza e ripresa della sessione.
  • Recupero di URL e più regole di autorizzazione.

Considerazioni sulle autorizzazioni

  • Iniziare con la modalità di autorizzazione di Claude Agent SDK meno permissiva che supporta l'attività.
  • Richiedere l'approvazione esplicita per shell, file, rete o altre operazioni di effetto collaterale.
  • Non esporre le credenziali tramite variabili di ambiente o file leggibili nella directory di lavoro dell'agente.

Passaggi successivi