停止猜测:我构建的用于调试失败 AI 代理的 Observability Stack
Source: Dev.to

RAG 流程是个黑箱。我厌倦了猜测为什么我的机器人检索到了错误的上下文,于是构建了一个可靠、可观测的向量检索引擎以及语义内容验证工具。
RAG 与 LLM 验证已成为 AI 开发的新瓶颈。我构建了 MemVault(用于可靠的混合向量检索)和 ContextDiff(用于确定性的 AI 输出验证)。核心问题是可观测性;以下是我的解决方案。
工具 1:MemVault – 可观测的记忆服务器
我创建 MemVault 来解决复杂的检索完整性问题。为许多项目单独部署向量数据库是大材小用,因此我将 MemVault 设计为围绕我们已有的可靠栈——PostgreSQL + pgvector——的稳健开源 Node.js 包装器。
混合搜索 2.0:告别猜测
大多数 RAG 流程仅使用语义搜索,这非常脆弱。MemVault 通过加权的三路混合得分确保可靠性:
| 组件 | 技术 | 权重 |
|---|---|---|
| 语义(向量) | 通过 pgvector 的余弦相似度 | 50 % |
| 精确匹配(关键词) | 使用 Postgres tsvector 的 BM25,适用于 ID、错误码等 | 30 % |
| 时效性(时间) | 衰减函数,优先最近的记忆 | 20 % |
可视化工具:实时调试
MemVault 提供仪表盘,可实时可视化向量搜索过程。你可以立刻看到为何检索到了特定文档以及它的加权得分。
在线演示: (原文中省略链接)
部署选项:选择你的经济现实
- 自托管(MIT 许可证) – 通过 Docker 完全离线运行整个栈(Postgres + Ollama 用于嵌入)。适合注重隐私且零 API 成本的场景。
- 托管 API(RapidAPI) – 使用托管服务,省去维护和基础设施搭建(提供免费层)。
快速开始(NPM SDK)
npm install memvault-sdk-jakops88
工具 2:ContextDiff – 语义输出验证
如果 MemVault 确保你检索到了正确的上下文,ContextDiff 则保证 LLM 不会把它毁掉。
确定性语义验证
ContextDiff 是一个面向生产的 FastAPI/Next.js 单体仓库,执行基于 LLM 的比较,并提供结构化评估:
- 风险评分 – 客观的 0‑100 风险分数以及安全性判定。
- 变更检测 – 标记具体的变更类型并给出理由:
- FACTUAL – 关键主张或确定性水平发生变化(例如 “will” 与 “might”)。
- TONE – 情感或正式程度的转变。
- OMISSION/ADDITION – 信息被删除或新增。
为什么普通 Diff 失效
普通的 diff 工具对 AI 毫无用处。ContextDiff 能检测到将 “Q1 2024” 改为 “early 2024” 是确定性上的语义变化(属于风险),而不仅仅是字符串差异。
使用场景: 高风险内容验证(法律、医疗、金融),必须保持源文本的语义完整性。
演示: (原文中省略链接)
结论:停止在黑暗中调试
可靠的 AI 工程未来依赖于可观测、可验证的系统。如果你已经厌倦了把 RAG 流程当作黑箱,请尝试这些工具。
- MemVault 源代码:(原文中省略链接)
- ContextDiff API 与仓库:(搜索 “ContextDiff”)