Skip to main content

Documentation Index

Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt

Use this file to discover all available pages before exploring further.

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 服务器操作