项目知识库

代码之外还有大量信息对开发至关重要:AGENTS.md、CONTRIBUTING.md、设计文档、API 规范、运维手册。wescode 自动索引工作区内的文档,让 Agent 在对话中直接检索和引用。

DocSync:原地索引,不做上传

wescode 不要求你"上传"文档到某个平台。它在打开工作区时自动扫描项目中的文档文件,建立本地索引:

支持的文件类型:

类型扫描位置
.md项目根及子目录
.yaml / .yml项目根及子目录
.txt项目根及子目录

不扫描的位置:

索引数据存储在 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 回答代码结构问题,知识库回答项目规范和设计意图。

下一步