开发与工程 opentelemetrygenai-tracingagent-observabilitypytest-testinglangchainllamaindexotel-spans

Monocle GenAI 追踪框架

基于 OpenTelemetry 的 GenAI 应用与智能体追踪框架:几行代码甚至零代码,即可将黑盒智能体运行过程转化为结构化、可断言的 OTLP 追踪。

FollowAgents 评估 · FARS-2.1
不推荐
58/ 100 五分制 2.9 / 5
1 2 3 4 5 6
1信任安全14 / 29 · 2.4/5

该库是 OpenTelemetry 追踪 SDK,默认将追踪导出到本地 ./monocle 目录,属于较小权限面;扣分点:CLI 钩子会写入 ~/.claude/、~/.codex/ 等全局位置,钩子内容未在证据中展示。CLI *-setup 是交互式的,提供 global/project 与认证方式选择,用户确认处理尚可(2)。数据流(span、导出器、metamodel)文档清楚(2),但扣分:追踪默认包含 prompt/response/user_id 等敏感属性,未见脱敏或敏感数据处理指引(sensitive_data_handling 仅 1)。依赖安全有 CodeQL、OpenSSF badge 与 SECURITY.md(2);但 SECURITY.md 声称依赖版本固定,而提供的 requirements.txt 完全未固定版本,存在矛盾。外部效果:向 Okahu 云/浏览器登录/写全局钩子均为显式交互流程,未见隐蔽外传,扣 2 分因钩子持久化的实际行为无法静态核实。无卸载/回滚说明(1)。来源归属:Apache-2.0、LF AI & Data、维护者链接清晰(2)。

2可靠稳定6 / 14 · 2.1/5

README 与 SECURITY.md、metamodel 路径等基本自洽(2);扣分点:依赖固定声明与 requirements.txt 不一致。依赖可用性:requirements.txt 未固定版本(pytest、mistralai、llama-index 等裸名),可复现性弱(1)。错误信息:测试辅助代码用 logger.info 吞异常并返回笼统 'Failure' 消息(1)。

3适用触发14 / 18 · 3.9/5

受众(应用开发者、平台工程师、企业 SRE)与场景描述充分(3)。能力边界:支持矩阵明确列出已支持与 🔜 未支持项(2)。触发精度:自动插桩范围按框架列出,scope API 语义清楚(2)。环境适配:in-code、wrapper、CLI 钩子多种模式(2);扣分:各框架版本兼容范围未说明。

4规范维护11 / 18 · 3.1/5

文档结构良好:docs/、examples/、test_tools/ 分层清晰(2)。安装说明直接(pip install monocle_apptrace / monocle_test_tools,2);扣分:PyPI 包名 monocle_apptrace vs 发布链接 monocle-apptrace 存在不一致。命名稳定性总体一致(2)。示例丰富但缺少 FAQ/排错(2)。已知局限仅以 roadmap/🔜 间接体现,无明确限制章节(1)。LICENSE 完整 Apache-2.0(3)。证据中无 CHANGELOG 或版本历史(1)。维护责任:SECURITY.md 引用 MAINTAINER.md、3 个工作日响应承诺(2)。

5有效结果9 / 13 · 3.5/5

输出为结构化 OTel span JSON,可被任意后端与 VS Code 扩展消费,可用性好(2)。边际价值:把测试断言建立在追踪事实(agent 调用、token、耗时)上是差异化能力(2)。成本收益:轻量初始化、CI 友好,静态看收益明确(2);扣分:云评估依赖 Okahu 外部服务,成本不透明。

6证据核验4 / 8 · 2.5/5

关键声明(metamodel 路径、测试工具包路径、CLI 命令)可指向仓库内文件(2)。跨源印证弱:仅静态文件样本,未执行、安装包与源码一致性未验证(1)。事实与推断分离:支持矩阵中 🔜 与 🟢 区分明确,本文仅对可见文件下结论(2)。

证据充分度: 评估于 2026年9月10日 审查版本 6e8535076bd9
使用前请注意
  • CLI *-setup 默认在全局目录(~/.claude/、~/.codex/、~/.copilot/)安装钩子,建议审查钩子内容并优先使用 --project 模式。
  • 追踪默认包含 prompt/response、user_id、tenant_id 等属性,导出到云端或共享存储前应评估敏感数据暴露风险。
  • SECURITY.md 声称依赖版本固定,但示例 requirements.txt 完全未固定;生产使用请自行锁定版本。
  • 评估与云导出依赖 Okahu 商业服务,注意供应商绑定与数据外流。
  • 未提供钩子卸载/回滚说明,安装前请确认可手动移除。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Monocle 是 Linux Foundation AI & Data 旗下的开源项目,本仓库提供其 Python 实现(monocle_apptrace),定位为面向 GenAI 应用的可观测层。核心由三部分组成:定义智能体、提示词、工具调用与向量操作等实体的元模型(span_format.),自动生成 span 的框架适配器,以及 OTLP 兼容的追踪导出。初始化一次 setup_monocle_telemetry() 即可自动插桩 LangChain、LlamaIndex、Google ADK、OpenAI、Anthropic 等主流框架,默认将追踪导出为本地 JSON 文件,也可接入云存储或任意 OTEL 后端。配套的 monocle_test_tools 包基于 pytest,让你对追踪本身做断言(智能体调用、工具行为、token 成本),而不只是输入输出对。适合需要调试、可靠性与合规能力的应用开发者、平台工程师和企业 SRE 团队。

安装 monocle_apptrace 后,调用一次 setup_monocle_telemetry(workflow_name=...) 即完成 OpenTelemetry 接线、元模型配置和对已支持框架的自动插桩;框架适配器为智能体运行、工具调用、LLM 推理和检索查询自动创建标准化 span。默认导出为 ./monocle 目录下的 JSON 追踪文件(monocle_trace_{workflow}_{trace_id}_{timestamp}.),也可导出到 stdout、Azure Blob、AWS S3、GCS、PostgreSQL、ClickHouse、Okahu 云等。通过 monocle_trace_scope / monocle_trace_scope_method 可为 span 附加 user_id、tenant_id 等业务上下文。配套的 monocle_test_tools 提供 expected() 流式断言(called_agent、called_tool、under_token_limit、under_duration)以及 MonocleValidator 多轮会话评估;还支持零代码的包装模式(monocle-apptrace claude-setup / codex-setup / copilot-setup)为 Claude CLI、Codex CLI、GitHub Copilot 注册钩子。

  1. 应用开发者想在不逐个函数手写 OpenTelemetry 代码的情况下,追踪任意环境中的 LangChain 或 LlamaIndex 智能体的每次模型调用与工具调用。
  2. 平台/基础设施团队希望通过包装模式(不修改产品代码)为多租户 AI 平台注入追踪,并用 tenant_id scope 区分租户。
  3. QA 工程师用 monocle_test_tools 在 CI/CD 中断言智能体确实调用了正确的工具、输出符合预期且 token 用量在预算内。
  4. SRE 团队需要将 GenAI 追踪送入既有 OTEL 收集器、APM 或 Okahu 云做生产环境监控与排障。
  5. 使用 Claude Code、Codex CLI 或 GitHub Copilot 的开发者想追踪这些 AI 编程助手与代码库的交互过程。
  6. 需要评估多轮会话质量(角色遵循度、知识保留度)的团队,可基于 session_id 聚合追踪并运行 agentic_sessions 评估。

这个 Agent 有哪些优点和局限?

优点
  • GenAI 专用元模型将智能体、工具、向量操作映射为标准化 span 属性,追踪结构一致,人和自动化程序都易消费。
  • 框架覆盖面广且为一等支持:LangGraph、LlamaIndex、Google ADK、CrewAI、AWS Strands、Microsoft Agent Framework、FastMCP/A2A 等自动插桩。
  • 原生说 OpenTelemetry:OTLP span 可直接接入现有收集器、后端和仪表盘,无需换追踪模型。
  • monocle_test_tools 让测试断言追踪本身(智能体调用、工具参数、token 成本、会话质量),而非仅输入输出。
  • 提供零代码包装模式和 AI 编程助手钩子,平台团队无需改动产品代码即可注入追踪。
局限
  • TypeScript 等非 Python 语言需使用单独仓库(monocle-typescript),本仓库仅为 Python 实现。
  • 部分集成尚未完成:Azure ML、Google Function、OpenSearch、Milvus 均标记为 🔜 进行中。
  • 深度依赖 OpenTelemetry 生态,若现有可观测栈不兼容 OTLP,需要额外适配。
  • 完整的评估功能(okahu 评估器、云导出)与 Okahu 云服务相关联,存在供应商生态耦合。
  • 向量化存储支持目前仅 FAISS 已就绪,选型受限。

如何安装或部署这个 Agent?

pip install monocle_apptrace

# 测试框架(可选)

pip install monocle_test_tools

# 为 AI 编程 CLI 注册追踪钩子(可选)

uv tool install monocle_apptrace

monocle-apptrace claude-setup # 或 codex-setup / copilot-setup

需要 Python 运行环境;无强制云凭据,默认本地文件导出即可工作,接入 Okahu 云需 GitHub 登录或粘贴 API key。

如何使用这个 Agent?

from monocle_apptrace import setup_monocle_telemetry
setup_monocle_telemetry(workflow_name="simple_math_app")

# 运行你的应用后,检查 ./monocle/ 下的 JSON 追踪文件,
# 或用 Okahu VS Code 扩展查看甘特图时间线。

# 业务上下文:

from monocle_apptrace.instrumentation.common.instrumentor import monocle_trace_scope

with monocle_trace_scope("user_id", "user-123"):

result = my_agent.run("What's the weather in London?")

# 测试:

from monocle_test_tools import expected

def test_weather_agent():
result = expected(input="What is the weather in London?",

expected_output="weather report for London")
result.called_agent("weather_agent")
result.called_tool("get_weather", agent_name="weather_agent")
result.under_token_limit(5000)

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents