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 應用。
  • 平台與基礎設施工程師:傾向透過包裝器或 Operator 注入追蹤,而非重構應用程式碼。
  • 企業與 SRE:需要標準化、符合 OTel 的追蹤以及面向 CI 的 AI 流程測試。

Highlights

  • 原生 OpenTelemetry 支援:發出相容任何 APM 或收集器的標準 OTLP span。
  • 自動儀表化:支援廣泛的代理框架、LLM 提供者與向量儲存。
  • 基於追蹤的測試:包含 monocle-test-tools,可透過 pytest 對代理行為、工具使用、代幣成本與執行時間進行斷言。
  • 彈性部署:提供程式碼內初始化與零程式碼包裝器/Operator 模式,適用於 AWS Lambda 等環境。
  • AI 助手追蹤:提供針對 Claude CLI、OpenAI Codex CLI 與 GitHub Copilot 的專屬設定掛鉤。