Skip to main content
Claude Agent SDK 是一个用于构建基于 Claude 的智能体应用的 SDK。LangSmith 提供了与 Claude Agent SDK 的原生集成,能够自动追踪您的智能体执行过程、工具调用以及与 Claude 模型的交互。

安装

安装 Claude Agent SDK 的 LangSmith 集成
uv add langsmith[claude-agent-sdk]

设置

设置您的 API 密钥
export LANGSMITH_TRACING=true
export LANGSMITH_ENDPOINT=https://api.smith.langchain.com
export LANGSMITH_API_KEY=<your_langsmith_api_key>
export LANGSMITH_PROJECT=<your_langsmith_project>

export ANTHROPIC_API_KEY=<your_anthropic_api_key>
您可以在 LangSmith UI设置 中找到您的 LangSmith API 密钥和项目名称。 关于 Anthropic API 密钥,请参考 Claude 控制台

快速开始

要为您的 Claude Agent SDK 应用启用 LangSmith 追踪,请在应用启动时调用 configure_claude_agent_sdk()
import asyncio
from typing import Any

from claude_agent_sdk import (
    ClaudeAgentOptions,
    ClaudeSDKClient,
    create_sdk_mcp_server,
    tool,
)
from langsmith.integrations.claude_agent_sdk import configure_claude_agent_sdk

configure_claude_agent_sdk()


@tool(
    "get_weather",
    "Gets the current weather for a given city",
    {"city": str},
)
async def get_weather(args: dict[str, Any]) -> dict[str, Any]:
    city = args["city"]
    weather_data = {
        "San Francisco": "Foggy, 62°F",
        "New York": "Sunny, 75°F",
        "London": "Rainy, 55°F",
        "Tokyo": "Clear, 68°F",
    }
    weather = weather_data.get(city, "Weather data not available")
    return {"content": [{"type": "text", "text": f"Weather in {city}: {weather}"}]}


async def main() -> None:
    weather_server = create_sdk_mcp_server(
        name="weather",
        version="1.0.0",
        tools=[get_weather],
    )

    options = ClaudeAgentOptions(
        model="claude-sonnet-4-5-20250929",
        system_prompt="You are a friendly travel assistant who helps with weather information.",
        mcp_servers={"weather": weather_server},
        allowed_tools=["mcp__weather__get_weather"],
    )

    async with ClaudeSDKClient(options=options) as client:
        await client.query("What's the weather like in San Francisco and Tokyo?")

        async for message in client.receive_response():
            print(message)


if __name__ == "__main__":
    asyncio.run(main())
配置完成后,所有 Claude Agent SDK 操作都将自动追踪到 LangSmith,包括:
  • 智能体查询与响应
  • 工具调用与结果
  • Claude 模型交互
  • MCP 服务器操作