首页/新闻资讯/正文详情

Strands Agents 可观测性完全指南:用 OpenTelemetry 实现模型调用与工具执行的全链路追踪

发布时间:2026/9/25 2:55:49 来源:云帆数科 栏目:资讯中心
Strands Agents 可观测性完全指南:用 OpenTelemetry 实现模型调用与工具执行的全链路追踪
Strands Agents 可观测性完全指南用 OpenTelemetry 实现模型调用与工具执行的全链路追踪【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址: https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdkStrands Agents 是可观测性开箱即用的生产级 AI Agent SDKPython 与 TypeScript 双语言支持。它内嵌 OpenTelemetry 标准无需手动埋点即可自动记录 Agent 全链路轨迹——每一次模型调用、每一次工具执行、每一轮事件循环连同 Token 用量、延迟和错误状态都会变成可查询的 Span让新手也能快速定位 Agent 的“黑盒”问题。为什么 AI Agent 需要全链路追踪普通 Web 应用出问题时看日志、查链路即可。但 AI Agent 的执行过程是循环 决策的模型可能连续调用多次工具、经历多轮推理才给出答案。当 Agent 答非所问或响应超慢时你至少需要回答三个问题它调用了哪些模型每轮用了多少 Token哪个模型最慢它执行了哪些工具哪个工具入参有误、哪个工具超时或报错循环卡在哪里事件循环event loop跑到第几轮出问题的Strands Agents 通过内嵌的遥测模块给出答案Agent 启动时自动创建层级化的 Span 树一次请求就是一条完整的 Trace。核心实现在 strands-py/src/strands/telemetry/ 目录TypeScript 端对应 strands-ts/src/telemetry/。追踪的层级结构一次请求如何被记录Strands 创建的 Trace 是一个四层嵌套结构与 Agent 真实执行流程一一对应层级Span 名称记录内容Agent Spaninvoke_agent 名称用户提问、最终回答、总 Token 用量、累计延迟循环 Spanexecute_event_loop_cycle每一轮思考的起点含 cycle_id模型 Spanchat发送给模型的提示词、模型 ID、输入/输出 Token、首 Token 延迟工具 Spanexecute_tool 工具名工具名称、调用 ID、入参、执行结果、成功/失败状态每个 Span 都携带标准gen_ai.*语义属性例如gen_ai.request.model模型标识gen_ai.usage.input_tokens/gen_ai.usage.output_tokensToken 用量gen_ai.usage.cache_read.input_tokens缓存命中的 Token 数gen_ai.tool.call.id工具调用唯一 IDgen_ai.event.start_time/gen_ai.event.end_time起止时间戳这套属性命名遵循 OpenTelemetry GenAI 语义约定意味着 Jaeger、Grafana、Langfuse、AWS X-Ray 等任何兼容平台都能直接读懂——不用写任何转换代码。Python 端的 Span 创建逻辑见 tracer.pyTypeScript 端等价实现在 tracer.ts。三步开启全链路追踪最快配置方法第 1 步安装 OpenTelemetry 依赖Python 端通过可选依赖安装一行命令pip install strands-agents[otel]TypeScript 端安装 OpenTelemetry 官方包npm install opentelemetry/api opentelemetry/sdk-trace-node opentelemetry/exporter-trace-otlp-http第 2 步两行代码初始化遥测Python 端使用StrandsTelemetry类它会自动创建 TracerProvider 并注册为全局实例from strands.telemetry import StrandsTelemetry telemetry StrandsTelemetry() telemetry.setup_console_exporter() # 开发调试Span 打印到控制台 telemetry.setup_otlp_exporter() # 生产环境Span 发送到 OTLP 端点之后正常创建Agent即可追踪是自动启用的——所有 Agent 调用、模型请求、工具执行都会生成 Span无需改动业务代码。第 3 步通过环境变量指定收集端点# OTLP 收集器地址 export OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4318 # 认证请求头 export OTEL_EXPORTER_OTLP_HEADERSkey1value1,key2value2本地开发时用 Docker 拉起一个 Jaeger 即可在浏览器中实时查看 Trace 瀑布图官方步骤见 traces.mdx。 如果你已经配置好全局的 TracerProvider比如公司统一接入可以直接跳过StrandsTelemetrySDK 会自动复用现有配置。不止于追踪指标Metrics同样内置除了 TraceStrands 还自动导出 12 个 OpenTelemetry 指标覆盖运维最关心的维度循环指标事件循环次数、每轮耗时直方图Token 指标输入/输出/缓存读写 Token 用量直方图模型指标整体延迟、首 Token 延迟TTFT工具指标调用次数、成功次数、失败次数、执行时长指标常量定义在 metrics_constants.py采集逻辑见 metrics.py。启用指标只需一行telemetry.setup_meter(enable_console_exporterTrue, enable_otlp_exporterTrue)配合 Trace 里的trace_id你可以在监控系统中把「某次请求耗时 30 秒」直接下钻到「第 3 轮的某个工具执行了 28 秒」这正是全链路追踪的价值所在。进阶技巧采样、自定义属性与敏感数据脱敏高流量场景的采样控制生产环境 QPS 较高时用标准 OpenTelemetry 变量控制采样率降低存储成本export OTEL_TRACES_SAMPLERtraceidratio export OTEL_TRACES_SAMPLER_ARG0.5 # 只上报 50% 的 Trace为 Span 打上业务标签创建 Agent 时传入trace_attributes把用户 ID、会话 ID 等业务字段挂到所有 Span 上方便按维度检索agent Agent( modelglobal.anthropic.claude-sonnet-5, system_promptYou are a helpful assistant, trace_attributes{session.id: abc-1234, user.id: u-001}, )敏感内容脱敏保护用户数据模型输入输出可能包含隐私数据。SDK 提供白名单式脱敏——通过OTEL_SEMCONV_STABILITY_OPT_IN环境变量中的gen_ai_unredacted_attributes列表指定允许明文上报的属性其余敏感内容gen_ai.input.messages、gen_ai.output.messages、gen_ai.system_instructions、工具入参出参统一替换为[REDACTED]。支持*通配前缀如gen_ai.output.*。策略实现见 tracer.py 的 _redact 方法。切换到最新语义约定如果你的后端支持新版 GenAI 语义约定可以一次性开启export OTEL_SEMCONV_STABILITY_OPT_INgen_ai_latest_experimental,gen_ai_tool_definitions前者更新属性命名并改用统一的事件格式后者会把完整工具定义JSON Schema附加到 Agent Span 上排查“模型为什么选错工具”时非常有用。常见问题速查问题排查方向平台上看不到 Trace检查OTEL_EXPORTER_OTLP_ENDPOINT是否可达确认端口 4318/4317 开放Trace 数据量过大开启采样OTEL_TRACES_SAMPLER或用脱敏策略压缩内容想看控制台输出调试加一行setup_console_exporter()无需任何外部服务Trace 被拆散不连续确认跨服务调用时使用了上下文传播SDK 已内置 W3C 传播器小结Strands Agents 把 OpenTelemetry 的接入成本降到接近于零安装可选依赖、两行初始化代码、一个环境变量模型调用与工具执行的全链路追踪即刻生效。它的层级化 Span 结构忠实还原了 Agent 的循环推理过程内置指标覆盖了 Token 成本与延迟监控再加上采样、业务标签与脱敏能力从本地调试到生产排障都能复用同一套遥测管道。可观测性不是上线前的“补票”而是 Agent 工程的第一课——现在就可以打开你的 Agent 项目把第一行遥测代码加上。【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址: https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

名片网站源码详解:从结构到部署避坑指南
名片网站源码详解:从结构到部署避坑指南

简介:一套完整的PHP名片建站源码,定位为可直接部署的名片在线定制整站程序,面向建站开发者、中小企业或个人站长,用于快速搭建支持在线制作、提交名片、在线下单及文件上传的名片定制平台。内置3000多套模板与2000多套案例&#x… · 2026/9/25 2:55:36

如何实现闲鱼批量抓取采集自动化?批量改价3秒完成1000品,竞品没反应过来你就调完了
如何实现闲鱼批量抓取采集自动化?批量改价3秒完成1000品,竞品没反应过来你就调完了

如何实现闲鱼批量抓取采集自动化?批量改价3秒完成1000品,竞品没反应过来你就调完了 做店群的老板都知道,闲鱼的批量抓取采集,是店群运营中最耗人力也最容易出错的环节。 采集竞品数据是店群运营的命脉。但各大平台的反爬系统越来越… · 2026/9/25 2:55:36

opencodex 的 OpenAI 单一 Codex 登录 Provider 化:codexAccountMode 迁移契约与 Pool/Direct 路由隔离实现解析
opencodex 的 OpenAI 单一 Codex 登录 Provider 化:codexAccountMode 迁移契约与 Pool/Direct 路由隔离实现解析

【免费下载链接】opencodex Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code 项目地址: https://gitcode.com/gh_mirrors/ope/opencodex 点击… · 2026/9/25 2:55:30

azidentity Breaking Changes 深度解读:Managed Identity 错误行为与 IMDS 探测机制变更
azidentity Breaking Changes 深度解读:Managed Identity 错误行为与 IMDS 探测机制变更

云原生CI/CDDevOps后端 【免费下载链接】pipeline A cloud-native Pipeline resource. 项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline 点击查看 免费下载 本指南以 Azure Go SDK azidentity 模块的 BREAKING_CHANGES.md 为核心,完整解读 … · 2026/9/25 3:30:36

Skia Job Analysis 指南:用 jq + Miller 审计 jobs.json,找出 CI 测试覆盖缺口
Skia Job Analysis 指南:用 jq + Miller 审计 jobs.json,找出 CI 测试覆盖缺口

图形学图像处理 【免费下载链接】skia Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. 项目地址: https://gitcode.com/gh_mirrors/skia1/skia 点击查看 免费下载 本文围绕 Skia 仓库中 infra/bots/analysis/README.md 所描述的… · 2026/9/25 3:30:36

ESPnet ASR2 实战:基于自监督离散 token 与 E-Branchformer 的高效端到端 ASR(LibriSpeech960)
ESPnet ASR2 实战:基于自监督离散 token 与 E-Branchformer 的高效端到端 ASR(LibriSpeech960)

人工智能语音音频深度学习NLP 【免费下载链接】espnet End-to-End Speech Processing Toolkit 项目地址: https://gitcode.com/gh_mirrors/es/espnet 点击查看 免费下载 本技术指南以 ESPnet 仓库中 egs2/librispeech/asr2/README.md 为骨架,系统讲解 E… · 2026/9/25 3:30:36

Easy-Vibe 编译原理入门:从词法分析到 JIT 的完整编译流水线
Easy-Vibe 编译原理入门:从词法分析到 JIT 的完整编译流水线

教程文档 【免费下载链接】easy-vibe 从 0 到 1 学会 vibe coding,项目制学习 项目地址: https://gitcode.com/datawhalechina/easy-vibe 点击查看 免费下载 当你按下"运行"按钮,代码是怎么变成屏幕上结果的? 你写的每… · 2026/9/25 3:30:36

Java工业物联网IOT驱动包:统一Modbus-TCP、Bacnet与OPC-UA协议接入
Java工业物联网IOT驱动包:统一Modbus-TCP、Bacnet与OPC-UA协议接入

简介:这份基于Java的物联网IOT通用驱动包设计源码,面向中高级Java开发者与系统集成商,解决Modbus-TCP、Bacnet、OPC-UA等多协议设备接入问题,封装为SDK形式,可直接嵌入业务系统。压缩包共76个文件,约1.73MB… · 2026/9/25 3:30:36

云原生健康监测系统落地实战:设备接入、实时告警与临床可用性
云原生健康监测系统落地实战:设备接入、实时告警与临床可用性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 3:30:30

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码