monocle2ai/monocle
Monocle is a framework for tracing GenAI app code. This repo contains implementation of Monocle for GenAI apps written in Python.
What it solves
Monocle 为生成式 AI 应用和代理提供可观测性和测试功能。它将“黑盒” AI 代理转化为透明的逐步追踪,使开发者能够在关联的时间轴上看到每一次模型调用、工具调用和向量查询。它还通过允许对实际执行追踪进行断言(例如,验证调用了哪些工具),而不仅仅检查最终输出,解决了 AI 代理的测试难题。
How it works
Monocle 是基于 OpenTelemetry 构建的 GenAI 专用可观测性层。它使用 元模型 来标准化将代理、提示词和向量操作等实体映射到 span 属性。它为流行框架(如 LangChain、LlamaIndex 和 Haystack)提供 仪表适配器,能够自动创建追踪,无需手动接线。这些追踪以 OTLP 兼容的 span 形式发出,可发送到任何标准可观测性后端,或通过 Okahu VS Code 扩展进行可视化。
Who it’s for
- 应用开发者:希望在不编写定制 OpenTelemetry 代码的情况下追踪 GenAI 应用。
- 平台和基础设施工程师:倾向于通过包装器或运算符注入追踪,而不是重构应用代码。
- 企业和 SRE:需要标准化、符合 OTel 的追踪以及面向 CI 的 AI 流水线测试。
Highlights
- 原生 OpenTelemetry 支持:发出兼容任何 APM 或收集器的标准 OTLP span。
- 自动仪表化:支持广泛的代理框架、LLM 提供商和向量存储。
- 基于追踪的测试:包含
monocle-test-tools,可通过 pytest 对代理行为、工具使用、令牌成本和持续时间进行断言。 - 灵活部署:提供代码内初始化和零代码包装器/运算符模式,适用于 AWS Lambda 等环境。
- AI 助手追踪:提供针对 Claude CLI、OpenAI Codex CLI 和 GitHub Copilot 的专用设置钩子。