Claude antropónico

agent-framework-claude encapsula el SDK del agente de Claude como ClaudeAgent. Usa el entorno de ejecución del agente administrado de Claude, las sesiones, el modelo de permisos, las herramientas integradas y la compatibilidad con MCP, a la vez que expone las interfaces de ejecución y de transmisión en flujo de Agent Framework.

Esta integración se diferencia del proveedor de modelos de Anthropic, que utiliza Claude como modelo subyacente de un agente de Agent Framework que pertenece a la aplicación.

Prerequisites

  • Instale y configure la CLI de Claude Code.
  • Seleccione un modelo de Claude y un modo de permisos.
  • Ejecute el agente en un directorio de trabajo restringido al habilitar herramientas de archivo o shell.

Instalar el paquete

pip install agent-framework-claude --pre

Configuration

Variable propósito
CLAUDE_AGENT_MODEL Modelo de Claude usado por el entorno de ejecución administrado.
CLAUDE_AGENT_PERMISSION_MODE Modo de permiso predeterminado para herramientas integradas y MCP.
CLAUDE_AGENT_CLI_PATH Ruta de acceso explícita opcional a la CLI de Claude Code.
CLAUDE_AGENT_CWD Directorio de trabajo expuesto al tiempo de ejecución.
CLAUDE_AGENT_MAX_TURNS Número máximo opcional de turnos de agente.
CLAUDE_AGENT_MAX_BUDGET_USD Presupuesto de coste opcional para una ejecución.

Crea un ClaudeAgent

ClaudeAgent admite ejecuciones de streaming y normales y puede exponer las herramientas de funciones de 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")

Se muestran ejemplos adicionales:

  • Herramientas integradas de archivos y shell de Claude.
  • Control interactivo de permisos.
  • Servidores MCP locales y remotos.
  • Persistencia y reanudación de la sesión.
  • Captura de direcciones URL y varias reglas de permisos.

Consideraciones sobre permisos

  • Comience con el modo de permisos menos permisivo del SDK de Claude Agent que permita realizar la tarea.
  • Requerir aprobación explícita para las operaciones de shell, archivo, red u otras operaciones de efecto secundario.
  • No exponga credenciales a través de variables de entorno ni archivos legibles en el directorio de trabajo del agente.

Pasos siguientes