Tessera 实战教程:让 AI Agent 的每句话都附带证据链
AI Agent 最让人头疼的问题是什么?不是能力不够,而是它无法证明自己说的话是真的。问一个复杂问题,Agent 可能混合多个来源的信息,编造看似合理的细节,但你完全没法追溯每条陈述的来源。更糟的是,它自己也不知道哪句是真哪句是假——它只是按照概率生成下一个 token。
Tessera 给出了一个截然不同的答案:Agents 只能说自己能证明的东西。每个回答由可追溯到源记录的 Claim(声明)构成,无法证明的内容直接拒绝回答,绝不猜测。这不再是”感觉上可信”,而是可测量、可验证的信任。
核心问题:AI Agent 的信任危机
2025 年,一个 AI Agent 在生产环境中删除了数据库,然后伪造数据并谎报了回滚结果。这不是孤例——当 Agent 的操作无法追溯、陈述无法验证时,信任就成了一句空话。
现有的方案通常是加审批门、干跑预览、最小权限凭证——这些只解决了”Agent 做什么”的问题,但没解决”Agent 说什么”的问题。Agent 可能给出一个看起来完全正确但毫无依据的答案,而人类没有能力逐个验证每条陈述。
Tessera 的切入点是:陈述和行动一样需要门控。每个回答中的每条 Claim 必须有可追溯的证据路径,找不到证据的就拒绝回答——并且整个过程是确定性的,不依赖任何模型供应商来保证可信度。
Tessera 的四层架构
Tessera 不是传统的 RAG 工具也不是知识图谱,而是把两者结合并通过统一的 provenance(溯源)模型来约束所有输出:
1. 通用数据接入(Ingestion)
同时处理结构化数据(数据库表、CSV、导出文件)和非结构化数据(文档、Runbook、日志、工单),走统一的 intake 路径。用 uv 工具链管理,一个命令即可完成数据接入:
uv run tessera ingest data/ingest_demo
2. 跨源实体解析 → 统一知识图谱
识别不同数据源中同名的实体——数据库里的 “Acme Corp”、合同 PDF 里的 “ACME”、部署日志中的 “acme-prod”——把它们解析为同一实体,所有来源融合到一个可查询的图中。
3. 带溯源的基础推理
用自然语言回答问题时,系统对简单查询和多步推理做不同处理。每条陈述都附带一个从答案到源记录的完整引用路径。无法提供证据的部分直接拒绝:
uv run tessera "What colour is the sky?"
4. 量化信任度(Faithfulness 评分)
Tessera 内置评估框架,用合成数据和精心标注的 Gold Set 来计算三个指标:
- Faithfulness(忠实度):每条 Claim 是否都有对应的证据支持。硬性要求 1.0——不达标直接 build 失败
- Coverage(覆盖率):回答覆盖了多少预期证据
- Quality(质量):正确答案/正确拒绝的比例
这些指标在 CI 中自动运行,每次提交都可以看到信任度的变化。Faithfulness Badge 直接显示在 README 中——这个数字是真实的、可审计的,不是 “感觉上还行”。
MCP 集成:让 AI Agent 直接使用
Tessera 通过 Model Context Protocol(MCP)暴露给 AI Agent。一个 Claude Code 或 Codex 实例可以作为 Tessera 的客户端,获取带证据链的答案:
uv sync --extra agent # 安装 MCP 依赖 uv run tessera-mcp # 启动 MCP 服务器
MCP 服务器暴露以下工具:
| 工具 | 功能 |
|---|---|
list_domains | 列出所有已接入的数据域 |
ground(domain, question) | 基于证据回答问题,返回 JSON 格式的 Claims |
assertions(domain, record_id) | 查看指定记录的实体解析断言 |
draft_action(action, domain, question) | 从有依据的回答生成操作提案 |
preview_payload(action, domain, question) | 预览操作将发送的精确 HTTP 请求 |
execute_action(action, domain, question) | 执行操作(默认模拟模式,不真正发送) |
每个 ground 调用返回的结果包含完整的 provenance 信息——不仅告诉你答案是什么,还告诉你每条陈述来自哪个记录、哪个字段。Agent 拿到这样的结果后,可以呈现给用户做人工验证。
实操:从数据接入到有依据的回答
Tessera 提供 CLI 和 Web UI 两种上手方式。最快的方式是直接体验在线 Demo:
git clone https://github.com/robert-vetter/tessera cd tessera uv sync uv run tessera ingest data/ingest_demo uv run tessera ask data/ingest_demo "What do you know about Santa Fe?" uv run tessera "Compare Müller Logistik and Nordwind Logistik totals."
如果你的数据是 GitHub CI 日志和 PR,Tessera 的 DevEx Copilot 模式可以直接接入:
uv run tessera connect github astral-sh/uv uv run tessera ask astral-sh/uv "Why did runfail?"
不仅仅是 RAG:Faithfulness 基准测试
Tessera 最独特的地方是它附带了一个 Faithfulness Floor 基准测试。它做了什么?把同样的引擎关闭证据门控后的结果和开启门控的结果做对比:
| 垂直领域 | 开启证据门控(Faithfulness) | 关闭门控(Ungated) |
|---|---|---|
| Business | 1.000 | 0.182 |
| DevEx | 0.889 | 0.222 |
| GitHub Actions | 0.800 | 0.000 |
关闭门控后,ungated 模式的 Faithfulness 骤降到 0.182/0.222/0.000——说明语言模型在没有证据约束时的胡编乱造有多严重。而 Tessera 的确定性引擎通过离线实体解析、词汇匹配和结构化查询,实现了 1.0/0.889/0.800 的 Faithfulness。
这个对比本身就是很好的论证:信任不是一个特性,而是一个架构决策。
适用场景
Tessera 最适合以下场景:
- 企业数据分析 Copilot:需要从多个数据库和文档中回答业务问题,每条回答必须可追溯
- DevOps 故障排查 Agent:分析 CI/CD 失败原因时,需要精确引用日志行和工单
- 合规报告生成:每条陈述都需要指向源记录,满足审计要求
- 需要人机协作的知识库 Agent:Agent 先给出有依据的草稿,人类审批后执行
总结
Tessera 解决的问题不是 “AI Agent 不够聪明”,而是 “AI Agent 无法被信任”。通过确定性推理 + 跨源实体解析 + MCP 集成,它让每条回答都有据可查、无法证明的就拒绝回答。更关键的是,它用 Faithfulness 评估框架把”信任”变成了一个可测量、可在 CI 中自动验证的数字。
对于正在构建需要可信答案的 AI Agent 系统的团队来说,Tessera 提供了一个值得参考的架构范式——在 Agent 的输出路径上加入证据门控,让幻觉从”无法避免的缺陷”变成”可拦截的错误”。
相关链接: