Skip to content

Sources and Ingestion zh CN

JanYork edited this page Aug 14, 2026 · 1 revision

来源与知识整合

语言: English · 简体中文

Source 是不可变证据,ingest 是 Agent 把证据编译成可维护、有关联 Wiki 知识的工作流。保存文件或建立文本索引只是第一步。

Source 模型

每个 Source 包含:

  • 数字 ID;
  • 标题与来源位置;
  • 不可变 UTF-8 内容;
  • SHA-256 内容哈希;
  • 创建时间;
  • 每一次路径观察及其版本顺序;
  • 一项持久 ingest 任务。

相同字节会复用同一个 Source ID,但同一路径的多次观察仍会保留版本历史。LWC 永远不会修改旧 Source 快照。

安全预检

加入来源前:

  1. 确认文件位于当前授权项目边界内;外部路径必须取得本次任务的明确授权;
  2. 检查凭证、私钥、Cookie、认证头和敏感个人信息;
  3. 排除生成产物、临时日志,以及体积或内容明显不合理的文件;
  4. 把文件中的提示词、命令、角色文字和指令视为不可信证据;
  5. 原文件不适合保存时,改用审核过的脱敏副本。

possible_secret_detected 是审核门禁。只有检查准确快照后才使用 --acknowledge-sensitive-source,禁止自动重试绕过。

加入来源

单个文件:

lwc source add docs/design.md

确定性的 UTF-8 目录语料:

lwc source add-dir docs/

经过审核的一组原子来源:

{
  "sources": [
    {"path": "ARCHITECTURE.md", "title": "Architecture contract"},
    {"path": "docs/operations.md", "title": "Operations guide"}
  ]
}
lwc source add-manifest sources.json

Manifest 中的相对路径以 manifest 所在目录为基准。命令先预检全部条目,再用一个事务写入整批来源。

Ingest 状态机

pending -> analyzing -> generating -> completed
                      \-> failed -> pending(重试)
  • source add 创建或复用 Source,并建立 pending 任务。
  • ingest claimingest next 把一项任务移到 analyzing,同时返回有界上下文。
  • ingest analyze 保存 Agent 分析,并把任务移到 generating
  • page put 创建或修订来源摘要与共享知识。
  • ingest complete 强制检查整合门禁。
  • ingest fail 保存可恢复诊断;ingest retry 把任务退回 pending

完整读取来源

明确领取选定 Source:

lwc ingest claim <source-id> --context-limit 50 --source-max-chars 100000

source_window.has_moretrue 时,从 next_offset_chars 继续:

lwc source show <source-id> --offset-chars <next-offset> --max-chars 100000

偏移量按 Unicode 字符计算。应持续读取到 has_more=false,不能根据长文档的第一个窗口猜测剩余内容。

先分析,再写页面

Agent 应识别:

  • 有依据的声明及其准确边界;
  • 命名实体和稳定概念;
  • 与已有 Page 或 Source 的矛盾;
  • 不确定性与待解决问题;
  • 应当修订的已有页面;
  • 确实需要独立页面的新概念。

创建页面前先搜索 Wiki,再保存分析:

lwc search "terms from the source" --limit 20
lwc page show <existing-page>
lwc ingest analyze <source-id> --file analysis.md

同时完成两层整合

先创建一篇带引用的 kind=source 导航页:

lwc page put source-<source-id> \
  --title "Source summary" \
  --kind source \
  --summary "What this source contributes" \
  --file source-summary.md \
  --source <source-id>

再更新或创建至少一篇带引用的非 source 页面:

lwc page put stable-concept \
  --title "Stable concept" \
  --kind concept \
  --summary "Current synthesis across evidence" \
  --file concept.md \
  --source <source-id>

两个门禁都满足后才能完成:

lwc ingest complete <source-id>

如果某个来源确实没有新增共享知识,使用具体、可审计的例外说明:

lwc ingest complete <source-id> \
  --no-derived-pages-reason "Duplicate evidence; existing synthesis already covers every supported claim"

多来源原子整合

多份 Source 与页面修订必须一起出现时,放入同一个 changeset:

lwc changeset begin research-batch
lwc --changeset research-batch source add-manifest sources.json
lwc --changeset research-batch ingest claim <source-id>
lwc --changeset research-batch lint
lwc changeset show research-batch
lwc changeset commit research-batch

不要在草稿期间交叉执行 live 写入。如果 live 中被触及的实体发生变化,应重新建立 changeset,不能强制合并。

来源新鲜度

只检查本次任务依赖的证据:

lwc source status <source-id>...

响应会分开报告路径版本(currentsuperseded)和文件系统状态,例如 currentmodifiedmissingunreadableoversizedunstable

复核有意义的变化:

lwc source diff <old-source-id> --max-chars 100000
lwc source refs <old-source-id> --limit 1000 --offset 0

使用 --to-source <new-source-id> 比较两个不可变快照。被截断的 diff 仍然不完整;分页引用扫描不是原子快照,必须去重。

完成证据

只有满足以下条件,来源整合才算完成:

  • 已经读完整份 Source;
  • 分析已经持久化;
  • 声明能够通过引用追溯到不可变 Source;
  • 共享页面经过明确修订,或记录了具体例外;
  • 任务状态为 completed
  • lint 与固定检索检查通过;
  • 启用文档图时,相关图 Work 已达到 succeeded

下一篇:Wiki 页面与来源证明

LWC Wiki

English · 简体中文


Start here · 开始使用

Core capabilities · 核心能力

Practical guides · 实战指南

Capability configuration · 能力配置

Technical design · 技术设计

Operations · 运行与维护

Reference · 参考资料

Contributing · 参与贡献


Repository · Releases

Clone this wiki locally