ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

citation_id与source_span实战:教AI Agent逐字引用字节级证据

citation_id与source_span实战:教AI Agent逐字引用字节级证据 citation_id与source_span实战教AI Agent逐字引用字节级证据【免费下载链接】wigoloThe go-to web for your AI coding agent — local-first search, fetch, crawl research over MCP. No API keys, no cloud, $0/query. Public beta.项目地址: https://gitcode.com/GitHub_Trending/wi/wigolo用 AI Agent 做联网搜索时它给出的答案往往言之凿凿却无法核实——到底引用了哪句话、来自哪个网页的哪个位置wigolo 是一个本地优先的 AI 编码智能体 Web 搜索工具MCP 协议它的每条证据都自带citation_id稳定引用编号和source_span字节级来源坐标让 Agent 能够逐字引用、可验证到字符偏移这是大多数云端搜索工具做不到的能力。为什么需要字节级证据普通搜索工具返回的是标题 摘要 链接Agent 只能模糊地说某网站提到……。而 wigolo 返回的每条证据长这样摘自 README.md 的真实结构{ title: Logical replication - PostgreSQL docs, url: https://www.postgresql.org/docs/current/logical-replication.html, excerpt: Logical replication is a method of replicating data objects…, citation_id: src-1, source_span: { start: 1042, end: 1305 } // 字节级精确坐标 }这两个字段解决两个核心问题字段作用类比citation_id一段证据的稳定门牌号Agent 引用时不用写长 URL图书馆的索书号source_span引文在原文中的精确字符区间{start, end}书页码 行号快速上手三条引用方式wigolo 的search工具默认返回evidence[]已按 ML 重排器打分排序和citations[]编号到 URL 的映射宿主模型你的 AI Agent拿到后有三种引用姿势规则写在 skills/wigolo/rules/synthesis.md编号引用[N]citations数组把[1]、[2]映射到 URL最接近人类阅读习惯ID 引用{citation_id}跨分页、跨查询保持稳定适合长对话中反复指认同一来源span 校验拿到source_span后可以回到原文 Markdown 的start~end区间核对引文是否逐字一致——这是防幻觉引用的最后一道闸门。它是怎么做到的从搜索到引文证据管道分三步核心实现在 src/search/evidence.ts 与 src/search/highlights.ts切段把每个来源的 Markdown 正文切成候选段落同时记录每段的字符偏移charStart / charEnd重排本地 ONNX 重排器对段落打分选出最相关的 Top 段落并保留其偏移区间写入source_span编号citation_id由url # span.start做 SHA-1 取前 12 位生成见stableCitationId函数src/search/evidence.ts。类型定义在 src/types.tsSourceSpan就是{ start, end }EvidenceItem则把它和citation_id、score打包成一条完整证据。 细节证据片段会先过滤太短40 字符或链接占比超 50%的段落——导航栏、页脚这类垃圾内容进不了证据区Agent 引用的都是正文真话。稳定性翻页重查编号不变这是citation_id设计中最巧妙的一点同一个 URL 的同一位置无论查几次、分页大小是多少ID 永远相同。因为它只依赖url 起始偏移与查询词、结果数量无关。项目里的集成测试 tests/integration/citation-id-stability.test.ts 专门验证了这一点用max_results: 10和max_results: 5各查一次两次返回的证据citation_id重叠且source_span.start完全一致。对 Agent 的实际意义多轮对话中它可以直接说如{src-1}所述……而不用担心编号随查询漂移下游程序也能据此做去重和溯源。项目中的相关资料工具响应契约docs/tools.md —— evidence[]citations[]带citation_id和source_span源文中精确字符区间的可引用摘录让 Agent 可以逐字引用证据构建与预算控制src/search/evidence.ts高亮切段与 span 计算src/search/highlights.ts合成引用规范官方 Skill 规则skills/wigolo/rules/synthesis.md稳定性测试tests/integration/citation-id-stability.test.ts证据过滤与预算单元测试tests/unit/search/evidence.test.ts常见问题FAQQsource_span的 start/end 是什么单位源文 Markdown 字符串中的字符偏移README 称之为 byte-exact provenance字节级精确来源。markdown[start:end]即可取出对应原文。Q为什么有的citation没有citation_id当某来源的证据段落被 token 预算裁掉时编号会缺省——消费方可把无 ID理解为仅来源级引用无具体段落见 src/search/evidence.ts 的注释。Q本地就能跑吗可以。wigolo 主打 local-first无需 API key、无云依赖重排器走本地 ONNX 模型search走 18 个直连搜索引擎适配器每次查询零成本。一句话总结citation_id给证据发稳定门牌号source_span把它钉在原文的字符区间上——AI Agent 从此可以说出可逐字核验的引用而不是我好像记得某网站说过。【免费下载链接】wigoloThe go-to web for your AI coding agent — local-first search, fetch, crawl research over MCP. No API keys, no cloud, $0/query. Public beta.项目地址: https://gitcode.com/GitHub_Trending/wi/wigolo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表