源摄取技能
用于有边界集合,例如聊天频道、问题流、订阅源或邮箱,后续运行可能与先前覆盖范围重叠。请阅读共享约定、发布和清单协议。获取后,通过 knowledge-ingest 路由文档和对话,该工具使用 knowledge-entities 进行实体丰富。会议则通过 knowledge-meeting-ingest 路由。此技能拥有源身份和覆盖范围;摄入工作流将保留的内容转化为有用的关联知识。如需创建定期摄取任务,请先使用 knowledge-automation。
契约
- 在读取内容之前,先解析一个稳定的提供者/源键。显示名称只是标签,而非身份标识。
- 维护一个规范的
source页面,包含source_role: canonical、provider和source_key。每次运行都复用该页面。 - 对于每次有界观测,将生成的清单作为附件保留在
source页面上,该页面应具有source_role: snapshot、精确覆盖范围、观测时间、清单哈希、数量、完整性、水印以及对规范源页面的依赖关系。 - 清单保留稳定的项目 ID 和内容哈希,而非源文本。在授权情况下,将原始/导出的内容作为证据单独保存。
- 在计划之前,查询同一提供者/源键的先前的快照页面。下载其清单,验证附件哈希,并将所有重叠的快照传递给计划器。不要依赖对话记忆。
- 重用未更改的源字节和现有记录。继续执行先前未完成的丰富化操作,如果请求了保留源;清单未更改并不代表实体丰富化已经完成。摄取新增项目。协调变更项目与现有页面/声明。将删除视为观察到的源状态,而非删除知识的许可;仅在证据支持时进行更正或撤回。
- 完整的快照可以在其精确覆盖范围内建立不存在性。部分或未知的快照则不能;未解决的缺失 ID 仍将保持未解决状态。
流程
- 检查
knowledge_status和knowledge_ontology以了解预期的库作用域和source字段,然后按提供者/源键在知识库中搜索规范源和先前的快照。如果所有者私有摄取在重启后意外解析为对话作用域或空库,请在写入前停止并恢复预期的授权作用域;切勿推断先前覆盖范围位于错误的作用域中。 - 使用批准的读取器获取有界导出。对于 Discrawl,运行
scripts/discrawl-normalize.mjs,使用其配置的只读归档、已知的确切频道 ID 以及[since,before)RFC3339 范围。标准化后的载荷包括稳定的作者 ID 以及归档观察到的显示字段。保留原始 JSONL,并在需要人类审查或行引用时创建单独的行稳定可读转录。 - 使用
scripts/source-manifest.mjs snapshot生成确定性清单。在发布快照页面之前附加该清单;记录返回的 SHA-256。 - 下载所有重叠的先前清单并运行
scripts/source-manifest.mjs plan。检查已覆盖/未覆盖的间隔以及新增/变更/删除/未变化/未解决的项目列表。 - 测试 3-5 个实质性项目或讨论,然后通过
knowledge-ingest(或针对会议的knowledge-meeting-ingest)进行摄取。对于聊天,将相关消息与其回复上下文分组;使用knowledge-entities从其贡献中丰富相关人员、公司、项目和概念。将支持的发展内容纳入状态、日期时间线和上下文反向链接,而不仅仅是频道摘要。在源引用中使用稳定的外部 ID,并将保留的快照作为依赖项。复用其原始内容,而不是为每个讨论上传一份副本。 - 发布或更新派生记录,然后发布快照页面。仅当获取和清单创建覆盖了声明的时间间隔时,快照才是
complete的;派生提取可能仍是部分的,并且必须如此报告。 - 回读规范页面、快照页面、附件、派生记录和源依赖的连接。验证哈希和精确覆盖范围。
Discrawl 示例
node scripts/discrawl-normalize.mjs --config /approved/discrawl.yaml \
--channel 1234567890 --since 2026-09-21T00:00:00-07:00 \
--before 2026-09-28T00:00:00-07:00 --output messages.jsonl
node scripts/source-manifest.mjs snapshot --provider discord \
--source-key discord:GUILD_ID:1234567890 \
--coverage-start 2026-09-21T00:00:00-07:00 \
--coverage-end 2026-09-28T00:00:00-07:00 \
--input messages.jsonl --output manifest.jsonl.gz --summary snapshot.json
node scripts/source-manifest.mjs plan --current manifest.jsonl.gz \
--previous prior-1.jsonl.gz --previous prior-2.jsonl.gz --output plan.json
请勿在知识库页面正文中包含凭据、归档路径或原始私有内容。不会创建调度程序、连接守护进程或插件拥有的摄取任务;技能和脚本支持授权的代理运行工作流。