设置指南
将 RAGRAF 接入 AutoClaw
--agent-kind autoclaw CLI + MCP zwork 2.0.2 · Electron 经会话实测确认 · zwork 2.0.2
RAGRAF 作者的智能体环境(zwork 2.0.2,Electron):产品正是在它上面设计、已发布结果也是在它上面测得。接入通过两条独立通道 — 免配置的 CLI 与经产品界面的 MCP;--agent-kind autoclaw 是真实代码路径(遥测归因、扩展日志模式)。指南中的一切都是集成会话实测与应用代码事实。
- 2 条通道:CLI + MCP
- 24 个 ragraf_* 工具
- 4 个缺陷已关闭
- 作者登记簿中 18 个语料
命令中的记号:<repo> — 本地 RAGRAF 克隆路径(作者会话中为 C:\AutoClaw\RAGRAF),<account> — AutoClaw 账户目录,<корпус> — 语料配置名。命令与输出按实测引用 — 包括产品打印的俄文字符串。
来源:集成会话文档《RAGRAF × AutoClaw:接入、机制、验证》 — 本次会话的实测与应用代码事实。
两条通道:CLI 与 MCP
两者不可混用 — 验证什么取决于通道。CLI 始终可用且不依赖应用设置;MCP 把同样的操作暴露为智能体工具,但需要注册服务器。
| CLI 通道 | MCP 通道 | |
|---|---|---|
| 调用方式 | python tools/ragraf.py … 经由外壳工具 | 智能体工具列表中的 ragraf_* |
| 由谁启动 | 智能体手动执行命令 | 平台,在服务器已注册时 |
| 依赖应用设置 | 否 | 是(须注册服务器) |
| 提供什么 | 全部 13 个子命令与 22 个操作 | 24 个操作即工具 |
| 需要 --project | 需要,或 ensure <目录> | 不需要:语料取自工作目录 |
最重要的推论
如果工具列表中没有 ragraf_*,RAGRAF 并没有坏:索引、搜索、模式与图谱经 CLI 完全可用。会话实测:按名称 ragraf 执行 tool_search 返回 0 个工具 — MCP 通道未激活,项目规则正是通过第一条通道生效。
已经配置好的内容
来自集成会话实测的作者机器快照 — 配置完成后应有的样子。
| 要素 | 状态 · 位置 |
|---|---|
| 「RAGRAF 优先」规则 | 已有 · ~/.pi/agent/AGENTS.md 第 8 节(约 1300 行) |
| 技能 ragraf-core | 两个账户均有 · <account>\runtime\zwork-agent\skills\ragraf-core |
| 登记簿中的语料 | 18 个开发项目 · <repo>\catalog\catalog.json |
| 智能体环境中的 RAGRAF CLI | 可用 · python tools/ragraf.py 已找到并响应 |
| ragraf_* 工具(MCP) | 未接入 · 实测:tool_search → 0 |
机器上的 AutoClaw 账户(各有自己的技能树与 runtime)
%APPDATA%\AutoClaw-oversea-official\accounts\<account-1>\ (основной)
%APPDATA%\AutoClaw-oversea-official\accounts\<account-2>\技能部署到两个账户 — 切换账户时仍然可见。副本新鲜度已经实测确认:两个账户中的 SKILL.md、reference/operations.md 与 reference/repair.md 的 SHA-256 均与项目版本一致。
CLI 通道:无需配置即可工作
在 MCP 未注册前的主路径。三条规则。
- 第一步 — 让语料保持最新响应携带 status:actual — 索引最新,reindexed — 刚刚重建,created — 原本没有语料、已新建,not_a_project — 目录不像项目,error — 原因在 reason 字段。任务第一步(PowerShell)
python <repo>\tools\ragraf.py ensure <каталог проекта> - 然后 — 执行操作,而不是读文件stale: true 意味着在重建索引前不可相信这些事实:代码已经前进。这不是「以防万一」的警告。索引操作(PowerShell)
python <repo>\tools\ragraf.py -p <repo>\config\<корпус>.yaml query symbol --name corpus_hash python <repo>\tools\ragraf.py -p <repo>\config\<корпус>.yaml check - 语料清单 — 无需配置的命令开发项目登记簿无需 -p 即可查看:catalog 打印所有已登记语料及其修订与校验和。语料登记簿(PowerShell)
python <repo>\tools\ragraf.py catalog
为什么这里 CLI 更优
不是因为方便。每条命令打印的是智能体自己阅读的文本,而 MCP 响应需要按模式解释。此外 CLI 既不依赖应用重启、也不依赖服务器注册 — 不会「悄然掉线」。靶场实测:14 次工具调用对无索引的 28 次;首次请求命中目标文件 — 92%。
MCP 通道:机制与接入
AutoClaw 的 MCP 接入机制与常见客户端(Claude Desktop、Codex、DeepSeek Harness)不同,这一点很关键。会话中实测的四个事实:
- 配置文件中没有 MCP 配置在 ~/.pi、<account>\runtime 与 <account>\projects 中检索,既无 mcp.json 也无 mcpServers 设置。注册不在配置文件里。
- ragraf 不由任何应用包注册已检查 runtime.sqlite 全部 106 张表 — 没有 MCP 服务器表;库中出现的 ragraf-mcp 是历史会话记录,而非注册。
- 垂直包以声明方式声明 MCP 服务器mcpServers 字段存在于包模式:dist\resources\vertical-packs\code\zwork-pack.json。官方包中它为空("mcpServers": []),磁盘上完全没有用户包(在安装目录外检索 zwork-pack.json — 0 个文件)。
- 内置智能体不服务 MCP@earendil-works/pi-coding-agent 中没有一行关于 MCP(已检查 dist 与 docs);包内所有 mcpServers 提及都属于内置供应商 SDK(Google/Gemini),与 AutoClaw 无关。
应当接受而非绕开的结论
未找到在 AutoClaw 中以文件方式登记 MCP 服务器的标准途径。接入通过产品界面 — 项目/应用设置。这里不会出现虚构路径:凭猜测写出的「指南」会摧毁对其余所有数字的信任。
如何接入、检查什么
- 在产品设置中找到 MCP 分区打开 AutoClaw 的项目(或应用)设置,找到关于 MCP / 外部工具的分区 — 服务器在那里注册。
- 填写启动值(已经运行验证)无需 --project:服务器会经开发项目登记簿按工作目录解析语料;切换到其他项目用 ragraf_use_project 工具(清单由 ragraf_catalog 提供)。
- 验证,而不是假设接入前以 ragraf 为查询调用 tool_search — 预期为 0。注册并重启后 — 24 个工具。这个差值就是接入成功的证明。
команда: <repo>\.venv\Scripts\python.exe
аргументы: <repo>\tools\ragraf-mcp.py
--agent AutoClaw --agent-kind autoclaw
рабочий каталог: <repo>如果界面中没有该分区
那么诚实的回答是:该构建中 MCP 通道不可用,RAGRAF 经 CLI 工作(见上文)。除每次调用是命令而非工具外没有任何损失。不能靠改库或替换文件来虚构注册:runtime.sqlite 是应用状态,绕过产品修改它会破坏权限与工件的记账(governed_tool_* 表)。
四个兼容性缺陷
接入第二个客户端(DeepSeek Harness)暴露了同样影响 AutoClaw 的缺陷。四个全部关闭,且各有回归保护。
- 精简环境下首个俄文响应即令服务器崩溃MCP 客户端只向子进程传递 12 个变量(APPDATA、HOMEDRIVE、HOMEPATH、LOCALAPPDATA、PATH、PROCESSOR_ARCHITECTURE、SYSTEMDRIVE、SYSTEMROOT、TEMP、USERNAME、USERPROFILE、PROGRAMFILES)。其中没有 PYTHONUTF8 也没有 PYTHONIOENCODING,进程区域保持 cp1252 — send() 以 UnicodeEncodeError: charmap codec 崩溃(src/ragraf/mcp_server.py)。AutoClaw 的外壳会设置这两个变量,因此该缺陷对 AutoClaw 不可见 — 只在第二个客户端上暴露。修复:force_utf8_stdio() — 流在服务器内部强制为 UTF-8,不取自环境。
- 必填的 --project 阻碍多项目工作修复:--project 变为可选,语料按工作目录查找(开发项目登记簿),新增 ragraf_use_project 工具。一个服务器服务作者机器上的全部 18 个语料。
- reindex 命令不把运行写入登记簿在自身语料上实测:索引中 rev-0046,登记簿中 rev-0045 且校验和过期;因此 check 每次都重新索引语料,而 catalog 与面板显示的是过去状态。修复:src/ragraf/cli.py — reindex 经与 index 相同的公共入口 watch.record_index_run 写入运行记录。
- ensure 与 use_project 未进入统计遥测以包装器挂在门面的 op_* 方法上,而这两个操作位于 MCP 服务器中。usage 汇总里没有它们 — 也就无法回答智能体是否遵守第一步规则。修复:Facade.record_external_call(src/ragraf/facade.py)加服务器侧记录。修复后实测:按智能体汇总中 ensure 1、use_project 1。
依赖:为什么用 .venv 解释器
在作者机器上,PATH 解释器只能经 PYTHONUSERBASE(%APPDATA%\AutoClaw-oversea-official\toolchain\python\Python313\site-packages)触达 RAGRAF 依赖。外部客户端会清掉它 — PATH 中的 python 便报「未安装 PyYAML」。实测:项目 .venv 自足 — 在完全移除 PYTHON* 变量时可导入 yaml、fastembed、sqlite_vec、tree_sitter、ijson、tiktoken。这对 AutoClaw 也有益:智能体外壳中的 CLI 本就可用,但 .venv 不再依赖环境设置。
技能与规则
技能 ragraf-core
技能位于每个账户的目录树中:
%APPDATA%\AutoClaw-oversea-official\accounts\<account>\runtime\zwork-agent\skills\ragraf-core\
SKILL.md (вход: когда применять, порядок работы)
reference/operations.md (выбор операции и границы)
reference/repair.md (что делать, когда индекс сломан)源头是项目目录:<repo>\docs\skills\ragraf-core。修改先进项目,再复制到账户服务目录。否则下次部署时账户副本会「落后」于项目,智能体将按旧版本工作。副本恰好两份 — 每账户一份;两个账户都有技能。
新鲜度已经实测(本次会话):两个账户中各有三个文件 — SKILL.md 9811 字节、reference/operations.md 7546、reference/repair.md 11271 — 每个文件的 SHA-256 都与项目版本一致。账户副本没有落后于源头。
$src = '<repo>\docs\skills\ragraf-core'
Get-ChildItem "$env:APPDATA\AutoClaw-oversea-official\accounts" -Directory | ForEach-Object {
$dst = Join-Path $_.FullName 'runtime\zwork-agent\skills\ragraf-core'
if (Test-Path -LiteralPath $dst) {
Copy-Item -Recurse -Force "$src\*" $dst
Write-Host "обновлено: $dst"
}
}技能校验:文件以 --- 开头,name 与 description 字段逐行解析,大小小于 256 KiB,编码为无 BOM 的 UTF-8,换行为 LF,且账户副本与项目版本逐字节一致。
规则:~/.pi/agent/AGENTS.md
这是 AutoClaw 的用户规则文件 — 在没有自己 AGENTS.md 的任何项目中生效,反之项目级 AGENTS.md 更严格。父目录中的 AGENTS.md 也会被采纳,直到 .git 边界。
强制通过索引工作的章节是第 8 节「代码开发中强制使用 RAGRAF」。需要知道的三处:
| 什么 | 在哪里 |
|---|---|
| 任务第一步 | §8.2: ensure <каталог> |
| ragraf_* 工具优先于外壳 | §8.2.1 |
| 报告:修订、校验和、文件:行 引用 | §8.7 |
关于措辞的要点
若 MCP 未接入,§8.2.1 规定「通过外壳以 §8.3 及后续命令工作 — 这不取消 RAGRAF 的强制性,只改变调用方式」。规则在两种配置下都可执行 — 这正是这台机器上没有 MCP 索引也能工作的原因。
验证 — 四个层级
由窄到宽:CLI 与登记簿 → 语料新鲜度 → MCP 通道 → 遥测。每个层级都是一条命令与来自会话的预期结果。
CLI 通道存活并能看到语料:开发项目登记簿与 RAGRAF 自身语料的更新。
python <repo>\tools\ragraf.py catalog
python <repo>\tools\ragraf.py ensure <repo>预期
登记簿中 18 个开发项目;status: actual 且校验和一致。特定语料的新鲜度:当前校验和对索引时校验和。
python <repo>\tools\ragraf.py -p <repo>\config\<корпус>.yaml check预期
「语料当前校验和」=「索引时校验和」,「索引后有变更:无」。MCP 通道(接入后):tool_search 返回 24 个工具而非 0 — 这个差值就是注册成功的证明。下面是不经应用对服务器的独立检查:精简环境中的兼容性测试(15 项检查)。
tool_search("ragraf") → до подключения: 0 инструментов
после регистрации и перезапуска: 24
ragraf_ensure() → status = actual | reindexed | created
ragraf_index_status() → index_rev, capability
ragraf_use_project(project="<имя>") → ревизия ДРУГОГО корпусаcd <repo>
Remove-Item Env:\PYTHONUTF8, Env:\PYTHONIOENCODING -ErrorAction SilentlyContinue
python tests\test_mcp_compat.py # 15 проверок谁调用了什么:按智能体的操作汇总。
python <repo>\tools\ragraf.py -p <repo>\config\<корпус>.yaml usage --agent AutoClaw预期
按智能体一行,含调用数与操作,包括 ensure。若明细中没有 ensure,说明客户端从未调用 — 而不是「遥测丢了」。回滚
MCP 注册是界面中唯一可逆的操作:在同一设置分区移除服务器并重启应用。索引、登记簿与语料不受影响。
RAGRAF 本身的修改是可加性的;恢复旧行为只需三处改动:移除 force_utf8_stdio() 调用、把 --project 的 required=True 改回、从 TOOLS 与 _handlers 删除 ragraf_use_project。它们都不触及索引、存储模式、修订编号或登记簿 — 回滚无需重建索引。
账户中的技能副本从项目恢复:
Copy-Item -Recurse -Force <repo>\docs\skills\ragraf-core `
"$env:APPDATA\AutoClaw-oversea-official\accounts\<account>\runtime\zwork-agent\skills\ragraf-core"AutoClaw 中文件的位置
| 什么 | 路径 |
|---|---|
| 应用安装(zwork 2.0.2) | %LOCALAPPDATA%\Programs\AutoClaw2 |
| 应用代码(非 asar) | …\resources\app\dist\main.cjs |
| 内置智能体 | …\resources\app\node_modules\@earendil-works\pi-coding-agent |
| 垂直包(含 mcpServers) | …\app\dist\resources\vertical-packs\<pack>\zwork-pack.json |
| 产品数据目录 | %APPDATA%\AutoClaw-oversea-official |
| 账户 | …\accounts\<sha256> |
| 智能体技能 | <account>\runtime\zwork-agent\skills\<имя>\SKILL.md |
| 项目 | <account>\projects\<имя> |
| 状态(数据库、权限、工件) | <account>\runtime\runtime.sqlite |
| 密钥与绑定 | <account>\runtime\*.enc, credentials.enc, owner-secrets.enc |
| 用户规则(所有项目) | ~/.pi/agent/AGENTS.md |
| 项目目录规则 | AGENTS.md в корне проекта |
不应读取或修改的内容
runtime 中的 *.enc(不需要内容 — 只需名称、大小与规则)以及绕过产品修改 runtime.sqlite:其中存放工具权限(governed_tool_approvals)、工件(governed_tool_*)与通道绑定。手工修改该数据库会绕过权限记账 — 做得比被要求的更多。
安装特点:应用代码是解包存放的(resources\app\dist),而非 app.asar。这便于勘查:文件可用常规手段读取,main.cjs 可按行检索。
邀请使用 AutoClaw
邀请好友 — 没有上限!
AutoClaw 额度风暴AutoClaw 官方活动
使用我的邀请码,每位加入的好友都会在欢迎额度之外获得额外的奖励额度,我也会获得额度:一个没有邀请数量上限的双赢循环。这不花一分钱,只需十秒,也是支持这位持续更新页面、指南和配置技巧的开发者的最好方式。
- 双重收益用邀请码注册时,欢迎额度与邀请奖励可以叠加。
- 没有上限想邀请多少好友都可以 —— 每次加入都会为双方补充额度。
- 支持开发者使用邀请码是一句免费的“谢谢”,让指南、配置和更新得以持续。
适用于 Windows、macOS 与 Linux。已经安装?打开 AutoClaw → 设置 → “输入邀请码” → 粘贴代码。然后分享你自己的链接,把这条链继续下去。
这是 AutoClaw 推荐计划的邀请,而不是关于 RAGRAF 的事实:邀请码和链接属于作者账号,本页面与该计划没有官方关联,也不因此从产品获得任何报酬。