SuperAPI AI 工具集

maple-agent-tracing-langchain

智能体与模型

查看项目

更新于 10-16 06:45

技能介绍

用途:把 LangChain 与 LangGraph 智能体(Python,以及 TypeScript 的 LangChain.js/LangGraph.js)接入 Maple 追踪。目标是每次对话对应一个 Maple Agent Session,每次 invoke()/stream() 对应一个 turn(一条 trace),可读的对话记录、带 token 的聊天模型 span、带名称与结果的工具 span、失败工具标记为 failed、子智能体各自独立泳道。

机制:使用 openinference-instrumentation-langchain(scope 为 openinference.instrumentation.langchain)。Maple 按运行的 thread_id 分组会话,并从 span 读取对话记录、token 与工具调用。推荐 TraceConfig(enable_genai_semconv=True),同时输出标准 GenAI 属性(gen_ai.conversation.id 来自运行元数据 session_id > conversation_id > thread_id,gen_ai.input/output.messages 为 {role, parts} 形式)。TypeScript/JavaScript 的 JS instrumentor 没有 GenAI 双写,需额外加一个 span processor,并参考 references/typescript.md。

主要步骤:先检测语言与版本(Python 需 >=3.10,已测试 langchain 1.4.2、langgraph 1.2.12、langchain-core 1.6.5、langchain-openai 1.6.6、Python 3.12),检查已有 OTel 配置,避免重复 provider 或重复 span。配置 key 与区域:美国 https://ingest.maple.dev,欧盟 https://ingest.eu.maple.dev,请求头 Authorization=Bearer <key>;无 key 时可用字面量 MAPLE_TEST,并提示用户到 Settings → Ingestion 替换;不要把 maple_sk_ 私钥放进浏览器代码。安装 openinference-instrumentation-langchain>=0.1.76、openinference-instrumentation>=0.1.66、opentelemetry-sdk>=1.45、opentelemetry-exporter-otlp-proto-http>=1.45,创建 tracing.py,注册 AgentSpans 与 BatchSpanProcessor(OTLPSpanExporter()),并在入口最先导入。必须在每次 agent/graph 调用(含流式与 HITL 恢复)传入 configurable.thread_id 作为会话 id;普通 LangChain 链改用 metadata.thread_id。工具异常会自动标记 span 为 ERROR;子智能体需唯一 name= 并加入 AGENT_NAMES。长驻服务无需处理,脚本/CLI 用 provider.shutdown(),Lambda 等用 provider.force_flush()。

限制:工具 span 无 gen_ai.tool.call.id,聊天模型 span 无 gen_ai.response.id;成本显示 unpriced;带 checkpointer 时每个模型 span 会重复完整历史;HITL 的暂停与恢复会显示为同一会话中的两个 turn;不建议使用 LangSmith OTel 导出。资料未提供收费、价格与平台支持等更多信息。