Anthropic Claude

agent-framework-claude encapsula o SDK do Claude Agent como ClaudeAgent. Ele usa o ambiente de execução gerenciado de agentes do Claude, as sessões, o modelo de permissões, as ferramentas integradas e o suporte a MCP, ao mesmo tempo que expõe as interfaces de execução e streaming do Agent Framework.

Essa integração é distinta do provedor de modelos Anthropic, que usa Claude como o modelo por trás de um agente do Agent Framework de propriedade do aplicativo.

Prerequisites

  • Instale e configure a CLI do Claude Code.
  • Escolha um modelo Claude e um modo de permissões.
  • Execute o agente em um diretório de trabalho com restrições ao habilitar ferramentas de arquivo ou shell.

Instalar o pacote

pip install agent-framework-claude --pre

Configuration

Variable Purpose
CLAUDE_AGENT_MODEL Modelo de Claude usado pelo runtime gerenciado.
CLAUDE_AGENT_PERMISSION_MODE Modo de permissão padrão para ferramentas internas e ferramentas MCP.
CLAUDE_AGENT_CLI_PATH Caminho explícito opcional para a CLI do Claude Code.
CLAUDE_AGENT_CWD Diretório de trabalho exposto ao ambiente de execução.
CLAUDE_AGENT_MAX_TURNS Número máximo opcional de turnos de agente.
CLAUDE_AGENT_MAX_BUDGET_USD Orçamento de custo opcional para uma execução.

Criar um ClaudeAgent

ClaudeAgent dá suporte a execuções regulares e de streaming e pode expor ferramentas de função do 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")

Exemplos adicionais demonstram:

  • Ferramentas integradas de arquivos e shell do Claude.
  • Tratamento interativo de permissões.
  • Servidores MCP locais e remotos.
  • Persistência e retomada da sessão.
  • Busca de URLs e múltiplas regras de permissão.

Considerações sobre permissão

  • Comece com o modo de permissão menos permissivo do SDK do Claude Agent que ofereça suporte à tarefa.
  • Exigir aprovação explícita para shell, arquivo, rede ou outras operações de efeito colateral.
  • Não exponha credenciais por meio de variáveis de ambiente ou arquivos legíveis no diretório de trabalho do agente.

Próximas Etapas