首页 教程 常见问题

13.19 Agent SDK 可观测性

监控和调试 Agent SDK 代理——让你的代理行为可观测。

为什么需要可观测性

代理应用比传统应用更难调试,因为:

日志记录

import logging
import json
from datetime import datetime

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("claude-agent")

def log_interaction(messages, response, cost):
    """记录每次代理交互。"""
    entry = {
        "timestamp": datetime.now().isoformat(),
        "messages": len(messages),
        "response_tokens": response.usage.output_tokens,
        "input_tokens": response.usage.input_tokens,
        "cost": cost,
        "model": response.model
    }
    logger.info(json.dumps(entry))

    # 保存到文件
    with open("agent-log.jsonl", "a") as f:
        f.write(json.dumps(entry) + "\n")

追踪工具调用

class ToolTracer:
    def __init__(self):
        self.traces = []

    def trace_tool_call(self, name, input_data, result, duration):
        self.traces.append({
            "tool": name,
            "input": str(input_data)[:100],
            "result_size": len(str(result)),
            "duration_ms": duration,
            "timestamp": datetime.now().isoformat()
        })

    def get_summary(self):
        """获取工具使用摘要。"""
        from collections import Counter
        counts = Counter(t["tool"] for t in self.traces)
        return dict(counts.most_common())

集成可观测性平台

可以集成第三方可观测性服务:

下一步