agent-prism
把 AI Agent 的追踪数据变成可视化图表,让 LLM 应用调试像调试普通 Web 服务一样直观
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
把 AI Agent 的追踪数据变成可视化图表,让 LLM 应用调试像调试普通 Web 服务一样直观
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:凌晨两点,你盯着屏幕上密密麻麻的 JSON 日志,一个 LLM 驱动的 AI Agent 刚刚崩溃了——但你完全不知道它在哪一步"想歪了"。计划执行出错?工具调用失败?还是重试逻辑陷入死循环?你只能靠人工"考古"那些毫无结构的日志来猜测。
AgentPrism 正是为解决这个问题而生:由知名前端开发工作室 Evil Martians(以 Ruby on Rails 优化和开源贡献闻名)开源的 React 组件库,专门把 AI Agent 的执行追踪数据变成清晰的层级可视化图表,让调试 AI 应用变得像调试普通 Web 服务一样直观。
AI Agent 与传统软件最大的不同在于"行为的不确定性"。一个 Agent 会规划(Plan)、行动(Act)、观察(Observe),并根据反馈重试(Retry)——这个循环可能执行几十步,每一步都涉及 LLM API 调用、工具执行、多模态输入输出。当 Agent 行为偏离预期时,开发者往往只能面对一团 JSON 泥沼,靠经验和直觉猜测问题出在哪一步。
OpenTelemetry(OTel)作为云原生观测标准,已经被各大 LLM 提供商(OpenAI、Anthropic、Google)广泛采用来标准化追踪数据格式。但从原始的 OTLP 格式到人类可读的可视化界面之间,仍然存在巨大的体验鸿沟。AgentPrism 正是填平这道鸿沟的桥梁——它接收标准 OTLP 格式数据,输出开箱即用的 React 可视化组件。
AgentPrism 提供两种使用方式,满足不同场景需求:
开箱即用(TraceViewer):一行代码嵌入完整的追踪查看器,包含左侧轨迹列表、中间树形层级视图、右侧详情面板,支持搜索、展开/折叠、桌面端和移动端自适应布局。
按需组合(独立组件):开发者可以单独引入 TraceList、TreeView、DetailsView 等组件,构建完全自定义的追踪界面。数据层还提供了多个开箱即用的适配器:
openTelemetrySpanAdapter:处理 OpenTelemetry OTLP 标准格式(覆盖 OpenAI、Anthropic、Google 等主流 LLM 提供商的追踪数据)langfuseSpanAdapter:处理 Langfuse 观测平台导出的数据格式所有适配器遵循统一接口,提供 convertRawDocumentsToSpans()(转换为规范化的 TraceSpan 树)、getSpanCost()(获取 Token 消耗和费用)、getSpanStatus() 等实用方法,开发者无需关心底层数据格式细节。
项目采用 pnpm workspace monorepo 架构,分为 5 个独立包:
| 包 | 说明 |
|---|---|
@evilmartians/agent-prism-types | TypeScript 类型定义,TraceRecord、TraceSpan 等核心接口 |
@evilmartians/agent-prism-data | 数据适配器层,封装 OTLP/Langfuse 格式转换逻辑 |
@evilmartians/agent-prism-ui | 核心 React 组件,Tailwind CSS 样式 + Radix UI 原语 |
@evilmartians/agent-prism-sandbox | Vite 构建的在线 Demo,展示完整使用方式 |
storybook | 组件 Storybook 文档站,每个组件独立故事 |
技术栈选型非常现代:React 19(最新稳定版)、Tailwind CSS 3(OKLCH 色彩空间的主题系统)、TypeScript 严格模式、Radix UI 无头组件库。构建系统使用 Vite,开发体验极佳。代码质量方面,ESLint + Prettier + TypeScript strict 全面覆盖,commitlint 规范提交格式。
值得注意的是,项目要求 Node.js >= 24.0(2026年6月的最新版本),pnpm >= 10.0,对工具链版本要求较高。ESLint 配置引入了 eslint-plugin-perfectionist(智能排序 import)、eslint-plugin-tailwindcss(Tailwind 类名排序检查)等现代插件。
AgentPrism 不提供独立的部署服务,而是作为 React 组件库直接嵌入到你的项目中。安装流程非常简洁:
# 1. 复制 UI 组件源码(通过 degit 拉取)
npx degit evilmartians/agent-prism/packages/ui/src/components src/components/agent-prism
# 2. 安装数据处理包和类型包
npm install @evilmartians/agent-prism-data @evilmartians/agent-prism-types
# 3. 安装 Radix UI 依赖和图标库
npm install @radix-ui/react-collapsible @radix-ui/react-tabs lucide-react react-json-pretty react-resizable-panels
这种方式的优势是组件源码直接在你的项目中,没有额外运行时依赖,性能最优;缺点是需要手动管理更新。目前包尚未发布到 npm registry(private: true),需要通过 degit 方式安装最新源码。
AgentPrism 支持丰富的语义属性标准,这也是它能兼容多平台数据的核心原因:
gen_ai.* 属性(模型名称、Token 消耗、费用等)llm.*、retrieval.* 属性gen_ai.usage.cost这一设计使得 AgentPrism 能作为通用层,屏蔽底层追踪平台的差异,统一输出可视化界面——无论你的 Agent 跑在 LangChain、LlamaIndex、还是自研框架上,只要输出 OTLP 格式就能接入。
需要注意的是,AgentPrism 目前处于 Alpha 阶段,API 尚未稳定,生产环境使用存在接口变更风险。项目以 monorepo 形式开发,私有包(private: true)尚未发布到 npm,每次更新需要重新执行 degit。Node.js >= 24.0 的要求对部分团队的工具链也是升级门槛。另外,项目没有提供 Docker 支持,不适合需要容器化部署的场景。
不过考虑到 Evil Martians 的工程能力(代表作:Webpack 核心维护者、PostgreSQL 优化博客等)和项目的清晰定位,这个 Alpha 版本的可视化质量和架构设计已经相当成熟,值得在开发阶段作为主力调试工具使用。

图1:AgentPrism 官方博客配图,展示了项目的核心定位——让 AI Agent 的行为可被可视化追踪。
362 颗星对于一个 2024 年底才开源的 React 工具库来说增长稳健。考虑到 AI Agent 开发框架(LangChain、AutoGPT、CrewAI 等)正快速普及,对应的调试工具需求必然会同步增长。AgentPrism 填补了一个真实的市场空白:没有专门的 Agent 追踪可视化标准库之前,开发者只能用 Jaeger、Zipkin 等通用分布式追踪工具勉强对付,体验远不够友好。
Evil Martians 选择在 OpenTelemetry 生态上构建是非常聪明的策略——不绑定特定框架,通过 OTel 的广泛采用获得数据源覆盖广度,同时借助 OTEL 的标准化保证数据格式的稳定性。这个思路类似于"Lodash 之于 JavaScript 数据处理":不发明新的轮子,而是把现有标准工具变得更易用。