Laminar
为 AI Agent 提供追踪、评测、信号告警与调试查询的一体化可观测平台。
按维度查看评分与理由
证据显示:README 提到匿名遥测,但未说明数据流向;有可选的 LLM 提供商配置,涉及 API 密钥;有 Slack 集成,可能发送通知。扣分:未提供用户确认机制,未说明数据保留和删除,未提供回滚机制,依赖安全信息不足。
证据显示:有 CI 工作流(backend-build-and-test.yml)和测试文件(cache-exists-expiry.test.ts, slack-handle-interaction.test.ts),表明有一定测试覆盖。扣分:依赖可用性未明确,失败消息处理在 Slack 测试路由中有错误处理,但整体失败消息不充分。
证据显示:README 提供了多种使用场景(tracing, signals, evals, MCP/CLI, dashboards, datasets),有 TS/Python 快速入门,支持自托管和托管平台。扣分:能力边界未明确,触发精度(如 signals 的触发条件)未详细说明,环境适配(如自定义 Postgres schema)有说明但有限。
证据显示:README 结构清晰,有安装说明(docker compose, npm, pip),有示例代码,有 Apache-2.0 许可证。扣分:命名稳定性未明确,已知限制未列出,版本变更日志未提供,维护责任未明确。
证据显示:输出可用性(UI, dashboards, SQL 查询)有说明,边际价值(20x 压缩,高性能)有声称。扣分:成本效益未量化,性能声称无基准测试支持。
证据显示:README 中的功能列表有文档链接,但未提供具体证据。扣分:声称(如 20x 压缩)无基准测试支持,跨来源验证不足,事实与推断未明确分离。
- 匿名遥测默认开启,需设置 LAMINAR_TELEMETRY_DISABLED=true 才能关闭,但未说明收集的具体数据。
- LLM 提供商配置涉及 API 密钥,需确保安全存储,避免泄露。
- Slack 集成可能发送通知,需注意权限和用户确认。
这个 Agent 能做什么,适合哪些场景?
Laminar 是面向 AI Agent 的开源可观测平台,覆盖追踪、Signals、Evals、仪表盘和数据集标注。它提供 OpenTelemetry 原生 SDK,可自动追踪 Vercel AI SDK、Browser Use、Stagehand、LangChain、OpenAI、Anthropic 和 Gemini 等调用。平台可通过 MCP 或 CLI 让编码 Agent 以 SQL 查询 traces、spans、metrics 和 events,并据此排查问题。自托管可用 Docker Compose 启动,轻量部署的界面默认位于 localhost:5667;生产环境可使用完整 Compose 栈或托管平台。服务端 AI 功能和 AI worker 可配置 Gemini、OpenAI 兼容端点或 AWS Bedrock 上的 Anthropic Claude。
应用通过 TS SDK 的 Laminar.initialize({ projectApiKey }) 或 Python 的 Laminar.initialize(project_api_key=...) 接入。SDK 可自动采集已支持框架和模型提供商的调用;也可用 TS 的 observe({name: 'poemWriter'}, async ...) 包装函数,或用 Python 的 @observe() 标注函数,记录函数输入、输出及执行相关 trace 数据。Laminar 将这些数据用于实时 trace 查看、span 全文搜索、trace/metrics/events 仪表盘,以及 Evals 结果可视化和比较。用户还能用 MCP 或 CLI 对 traces、spans、metrics、events 执行 SQL 查询,让编码 Agent 基于运行记录调查和调试;Signals 会读取每次 Agent run,并在匹配用自然语言描述的行为时发送 Slack 提醒。
- 使用 OpenAI、Anthropic 或 Gemini 的 Agent 团队,需要自动记录模型调用并回看一次任务运行中的 trace 与 span。
- 在 LangChain、Vercel AI SDK、Browser Use 或 Stagehand 上构建 Agent 的工程师,希望以较少接入代码获得追踪数据。
- 在 CI/CD 或本地运行评测的开发团队,需要用 Evals SDK 和 CLI 执行评测,并在界面比较结果。
- 需要排查线上 Agent 循环或异常行为的运维人员,可将“agent is stuck in a loop”一类行为定义为 Signal,并接收 Slack 提醒。
- 希望让编码 Agent 通过 MCP 或 CLI 以 SQL 查询 trace、metric 和 event 数据来协助定位问题的团队。
- 需要在自有环境保存和查看可观测数据的团队,可用 Docker Compose 部署并通过本地 UI 访问。
这个 Agent 有哪些优点和局限?
- 同时提供自动化模型/框架追踪和显式 observe 包装或装饰器,适合从快速接入到自定义业务函数追踪的不同粒度需求。
- 将 tracing、Signals、Evals、SQL 查询、仪表盘和数据标注放在同一平台,减少在多套工具间搬运运行与评测数据。
- 支持 MCP 和 CLI 查询运行数据,可将可观测性数据直接纳入编码 Agent 的调查与调试流程。
- 以 Rust 实现,并声明提供 20 倍 trace 压缩、实时 trace 引擎、span 全文搜索和 gRPC exporter。
- 既提供 Docker Compose 自托管路径,也提供托管平台;服务端 LLM 功能可选择 Gemini、OpenAI 兼容服务或 AWS Bedrock。
- 自托管 SDK 必须额外配置
baseUrl和正确端口,README 没有给出完整可复制的配置示例。 - 前端 AI 功能(chat-with-trace、SQL-with-AI)及服务端 AI workers 依赖外部 LLM provider 与相应密钥或 AWS 凭证。
- 快速 Compose 部署被定位为轻量使用或快速开始;生产部署建议托管平台或
docker-compose-full.yml,意味着生产方案需要额外评估。 - 自托管默认收集匿名使用遥测;若不接受,需在
.env显式设置LAMINAR_TELEMETRY_DISABLED=true。 - 共享 Postgres 时使用自定义 schema 仍可能与另一项 Drizzle 管理服务的迁移 journal 产生冲突,需要人工处理。
如何安装或部署这个 Agent?
自托管快速启动:
git clone https://github.com/lmnr-ai/lmnr
cd lmnr
docker compose up -d启动后可在 http://localhost:5667 打开 UI。SDK 接入前需创建项目并生成 project API key;README 明确要求自托管 SDK 配置 baseUrl 与正确端口,但未给出可直接复制的完整 SDK 自托管配置值。若要启用前端 AI 功能或服务端 AI workers,在仓库根目录 .env 中选择 LLM_PROVIDER=gemini 并设置 LLM_API_KEY,或 LLM_PROVIDER=openai 并设置 LLM_API_KEY,或选择 LLM_PROVIDER=bedrock 并配置 AWS 凭证和 AWS_REGION。
如何使用这个 Agent?
TypeScript:先执行 npm add @lmnr-ai/lmnr,然后调用 Laminar.initialize({ projectApiKey: process.env.LMNR_PROJECT_API_KEY });用 observe({name: 'poemWriter'}, async (topic) => { ... }) 包装需要追踪的函数。Python:执行 pip install --upgrade 'lmnr[all]',调用 Laminar.initialize(project_api_key="<LMNR_PROJECT_API_KEY>"),再以 @observe() 标注函数。部署完成后,在 UI 查看 traces 和评测结果;需要面向编码 Agent 的诊断时,通过已提供的 MCP 或 CLI 查询 traces、spans、metrics 和 events。
常见问题
能否完全自托管?
docker-compose-full.yml。哪些 LLM 提供商可用于平台的 AI 功能?
是否一定要改写每个函数?
observe 或 Python 的 @observe()。自托管时是否会发送遥测数据?
LAMINAR_TELEMETRY_DISABLED=true 可以退出。