SuperAPI AI 工具集

otel-genai-instrumentation

智能体与模型

查看项目

更新于 10-15 22:14

技能介绍

用途:指导为 GenAI/LLM 与智能体应用接入 OpenTelemetry 埋点并发送到 Honeycomb,基于 OTel GenAI 语义约定(资料标注 v1.40.0,Development 状态)。

前置条件:需先完成基础 OTEL 配置(SDK 初始化、OTEL_SERVICE_NAME、OTEL_EXPORTER_OTLP_* 等环境变量、OTLP 导出器与 Honeycomb API Key),并确认基础 span 已上报;基础配置参见 otel-instrumentation 技能。

关键要求:写代码前先询问用户是否捕获提示词与模型响应(内容捕获利于调试工具调用失败、规划循环与死锁,但可能含敏感信息、PII 或机密数据);必须设置 export OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental,否则不会创建 GenAI span;每个 span 必须设置 gen_ai.operation.name 与 gen_ai.conversation.id,后者在同一会话内保持一致;必须实现 force_flush(),在每次顶层调用后刷新,避免进程提前退出导致 span 静默丢失,不要用 shutdown() 替代。

主要能力:Python 与 Node.js 提供官方自动埋点包(OpenAI、Anthropic、Claude Agent SDK、Google GenAI、Vertex AI、LangChain、OpenAI Agents、Weaviate 等,含最低 SDK 版本要求);Go、Java 等需手动埋点。定义 chat、text_completion、generate_content、embeddings、retrieval、execute_tool、create_agent、invoke_agent、invoke_workflow 等 span 类型及命名规则("{operation} {identifier}")。

使用方式:pip install 对应包后 Instrumentor().instrument() 或使用 opentelemetry-instrument;Node.js 用 npm install 并在 OTel Node SDK 注册。手动埋点需在调用前设置请求属性、调用后设置响应与用量属性,并处理 error.type 与 span 状态。

适用场景与限制:适用于调试与开发、非敏感数据或已做过滤的环境;生产敏感数据、PII/健康/金融信息不建议开启内容捕获。资料未提供具体价格与完整代码示例,细节需查阅上游语义约定与参考文件。