项目知识库
代码之外还有大量信息对开发至关重要:AGENTS.md、CONTRIBUTING.md、设计文档、API 规范、运维手册。wescode 自动索引工作区内的文档,让 Agent 在对话中直接检索和引用。
DocSync:原地索引,不做上传
wescode 不要求你"上传"文档到某个平台。它在打开工作区时自动扫描项目中的文档文件,建立本地索引:
支持的文件类型:
| 类型 | 扫描位置 |
|---|---|
.md | 项目根及子目录 |
.yaml / .yml | 项目根及子目录 |
.txt | 项目根及子目录 |
不扫描的位置:
node_modules/、vendor/、.git/等依赖目录- 二进制文件、图片、编译产物
索引数据存储在 Cell 的知识库子目录下(cells/{cellID}/knowledge/),随 workspace 隔离,不跨项目泄漏。
AgenticRAG:按需检索
wescode 不在对话开始时把所有文档灌进系统提示词——那样既浪费 token 又会稀释有效信息。
它使用 AgenticRAG 策略:模型在需要时通过工具调用主动检索:
用户: "这个项目的部署流程是什么?"
Agent 内部:
→ 调用 search(query="部署流程", target="knowledge")
→ 命中 docs/deploy.md 的第 3-7 段
→ 将相关内容注入当前上下文
→ 基于检索结果回答
检索通过 wesgine 引擎的 Knowledge 子系统实现,支持全文搜索和语义搜索。
典型用法
项目规范自动遵守
如果项目根目录有 AGENTS.md 或 .cursorrules,wescode 会自动索引这些文件。当 Agent 编写代码时,知识库中的规范会被检索并遵守:
AGENTS.md 中写到: "所有 API handler 必须返回标准 ErrorResponse"
Agent 编写新 handler 时:
→ 知识库检索到这条规范
→ 生成的代码自动使用 ErrorResponse 格式
设计文档查询
用户: "CKG 的 Pass 4 做了什么?"
Agent:
→ 检索 design/04-ckg-v2.md
→ 找到 Pass 4 的详细说明
→ 给出准确回答(而非猜测)
运维手册引用
用户: "数据库迁移怎么做?"
Agent:
→ 检索 docs/ops/database-migration.md
→ 返回项目特定的迁移步骤(而非通用教程)
索引生命周期
| 事件 | 行为 |
|---|---|
| 打开工作区 | 自动扫描并建立索引 |
| 文件变化 | 增量更新(fsnotify 监听) |
| 切换工作区 | 切换到对应 Cell 的索引 |
| 关闭工作区 | 索引保留在磁盘上,下次打开不重建 |
与 CKG 的区别
| CKG | 知识库 | |
|---|---|---|
| 索引对象 | 代码文件(.go / .ts / .py / ...) | 文档文件(.md / .yaml / .txt) |
| 索引内容 | 符号、调用关系、类型信息 | 全文内容、段落、标题结构 |
| 检索方式 | 结构化查询(调用者、被调者、影响范围) | 全文搜索 + 语义搜索 |
| 典型场景 | "谁调用了这个函数?" | "项目的部署规范是什么?" |
两者互补:CKG 回答代码结构问题,知识库回答项目规范和设计意图。
下一步
- 代码知识图谱(CKG) — 代码结构索引
- 上下文管理 — 检索结果如何进入模型上下文
- 工具全景 — 知识检索工具的详细参数