ROUTE.md — 个人用户逼近 AGI:6 阶段傻瓜式实施路线(最终版)¶
时间基准:2026-09-21。本文所有"现行价格/版本/政策"均指截至该日;价格类数字半衰期 1 个月,首月第一件事是重核(附录 D)。 修正吸收声明:本路线已内联吸收
round3/route_attack.md全部 12 条修正(must-fix 8 + should-fix 4)+round3/critic.md对 ROUTE 的 3 条指令(第 0 周自证实验 / 最小纪律集 ≤2 项/月 / 国内主干声明)。逐条落点对照表见附录 A,可核查。 验证等级声明(critic#7):本文命令分三档标注——bash 实测= novice_test 在 Linux 真实跑通(本项目最高权重证据);转述= 官方文档/文献;未实测= 合理但没人跑过,首跑遇错按该步"卡住怎么办"处理。 平台假设:Linux(Ubuntu/Debian 系)为主干;Windows 用户走 WSL2(管理员 PowerShell:wsl --install,装完重启)即可 100% 复用全部 Linux 命令——唯一推荐路径;Git Bash 只够浏览命令,跑不了本路线的大部分安装脚本(§0.2/0.3 是 apt/deb 专用)与 cron 定时任务(§0.7/2.4),不要用它走流程。macOS 与 Linux 命令约 95% 相同。三平台差异速查见附录 B。
使用说明(先读这 6 行,30 秒)¶
- 从上往下,一次只做一步。每条命令都给了预期输出——没看到预期输出就停在原地,查这一步的"卡住怎么办",不要跳步。
- 每阶段开头有【硬件前置】【现金成本】【耗时】三行。不满足前置就走替代路径,别硬上。
- 全程纪律负担被刻意压到每月必做只有 2 项:①月度重跑 30 题(5 分钟)②手动抽查 5 条 AI 产出。其余全部标"可选进阶"——这是防弃坑设计(critic#3:弃坑第一窗口是第 2-4 周)。
#开头是注释,不用复制;$HOME/~/直接复制可用。- 全程要背的安全红线只有一句:支付、删数据、对外发布,永远不自动。完整护栏见
final/APPENDIX-security.md(本文阶段 1/4 只内联最小实现)。 - 你从阶段 0 第 1 天起就进入"只读观察期"计时——阶段 1 收口时要核对满 30 天(route_attack R1-1 时间轴修复)。
六阶段总览¶
| 阶段 | 时间 | 现金成本 | 目标能力(8 维语言) | 可跳过? |
|---|---|---|---|---|
| 0 地基与基线 | 第 1-2 周 | ¥0 | 评测(维 8)+ 记忆起步(维 2) | 否 |
| 1 记忆成型+受控执行 | 第 3-4 周 | ¥0(或订阅首月 ¥9.9-49) | 记忆到 80% + 受控写(维 2/3) | 否 |
| 2 编排+自改进闭环 | 第 2 个月 | 订阅 ¥40-149/月(一次性预算 5k-2w 是阶段 3 的钱,本月不花) | 协作 + prompt/技能层自改进(维 6/4) | 否 |
| 3 本地底座+权重级学习 | 第 3 个月 | 一次性 ≈¥20,000(可跳过) | 本地推理 + 格式/隐私固化(维 1/4) | 是(多数人应跳过或云租) |
| 4 24/7 自主+渐进攻进 | 第 4 个月起 | <¥50/月(VPS $3.5-6 + 心跳 ≈$0.015/天) | 常驻自主(维 7) | 否 |
| 5 收敛与边界维护 | 持续 | 滚动 ≤¥150/月 | 全维维持 + 诚实度量(维 8) | — |
主线顺序刻意为:先评测、再记忆、再执行、再自改进、再本地化、再自主、最后收敛——评测先行是因为它是其他一切阶段的验收地基。 8 维速查(口径与
final/MASTER.md§2.2 一致):1 推理/规划/代码|2 记忆|3 执行/动手|4 学习(持续改进)|5 创造(新信息/新工件)|6 社交/协作(多智能体)|7 自主性(24/7)|8 自我认知(评测/监控)。
阶段 0:地基与基线(第 1-2 周|¥0)¶
【硬件前置】 任意能开机的电脑;≥15G 磁盘空闲(df -h / 查看;promptfoo 全局安装占 2.6G,Ollama+模型占约 6G)。内存 8G 的机器:本地模型只用 0.5B-3B〔bash 实测:0.5B 质量很差、3B 才可用〕;7B-8B 需 ≥16G 内存或 GPU。
【现金成本】 ¥0。全阶段只用国内免费栈。
【耗时】 约 3-4 个晚上,每晚 1-2 小时。
0.0 第 0 周自证实验(先于一切,critic#2 指令)¶
在装任何东西之前,用手机/网页 AI 花一晚做这个——它是整个项目"支持侧"唯一的样本量 1 证据:
- 写下你每周真实要做的 10 个任务(例:周报初稿、孩子错题讲解、账单分类、读论文总结、行程规划)。
- 逐个做两遍:纯手工计时一遍 → 用免费网页 AI(豆包/Kimi/DeepSeek 任一)辅助做一遍计时。
- 每个任务记 4 个数:手工耗时 / AI 辅助耗时 / 质量自评(1-5)/ 满意吗(Y/N)——末列与 final/CHECKLIST.md §1 同表头;判读只看耗时与满意,质量列供归因参考。
mkdir -p ~/ai-dashboard && cat > ~/ai-dashboard/selftest.md <<'EOF'
# 第 0 周自证实验(月末重跑同 10 任务)
| # | 任务 | 手工min | AI辅助min | 质量1-5 | 满意?Y/N |
|---|------|---------|-----------|---------|---------|
EOF
验收:10 行填满。判读诚实条款(与 final/CHECKLIST.md §1 同一套判据,2026-09-21 走查修复统一):省时 ≥30% 且满意 ≥6/10 → 继续;省时 <10% 或满意 ≤3/10 → 停;中间 = 灰区,换任务类型重跑一轮再定。灰区不清,别开阶段 1(这就是反对论据,先拿到手)。
0.1 账号准备(国内直连栈,30 分钟,¥0)〔转述,round3/cost_route §1 现场核验〕¶
主干(国内,手机号注册,全部免代理):
| 用途 | 服务 | 入口 | 说明 |
|---|---|---|---|
| 网页日常主力 | DeepSeek / Kimi / 豆包 / 腾讯元宝 | 官网/App | 全免费,长文档用 Kimi |
| 免费 API 池 | 硅基流动 | siliconflow.cn | 注册送 ¥14(按量余额,用完即止)+ 13 款永久免费模型(名单会变,跑 eval 前自查官网模型页) |
| 免费 API 池 | 智谱 GLM-Flash | bigmodel.cn | 无限制免费档 |
| 新户额度 | DeepSeek 开放平台 | platform.deepseek.com | 新号 500 万 tokens/30 天;充值 ¥10 起步可设月度限额 |
| 新户额度 | 火山方舟 | volcengine.com | 新用户 300 万 tokens |
分栏(有境外网络者才看):Gemini Flash(1500 请求/天)/ OpenRouter 免费层 / Groq。没有境外网络就整段跳过,主干完全够用——这是 route_attack R0-1 的修复:骨架原本把 Gemini 栈当主干,对中国大陆读者第一步就卡死。
验收:任选一个 API 服务拿到的 key 能跑通:
export DF_API_KEY="你的key" # 以 DeepSeek 为例;变量名随服务改,echo "$DF_API_KEY" 应非空
curl -s https://api.deepseek.com/chat/completions \
-H "Authorization: Bearer $DF_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"deepseek-chat","messages":[{"role":"user","content":"回复OK"}]}'
# ↑ Bearer 后面的 $DF_API_KEY 会被 bash 替换成真实 key;不想用变量就把 $DF_API_KEY
# 换成 sk- 开头的真实 key(引号别丢、别把 * 号粘进去——旧版这里的 *** 占位符会被原样粘贴)
# 预期输出: {"id":...,"choices":[{"message":{"content":"OK"...}...}...]}
卡住怎么办:401=key 错;超时=检查是否用了境外服务;大陆网络请只用表内 L1 直连层服务。
0.2 装 Node.js + promptfoo(评测仪表盘)bash 实测¶
# 1) Node.js ≥22(系统源自带版本常太旧)
# Ubuntu/Debian 用 NodeSource ↓(Windows: 走 WSL2 或 winget install OpenJS.NodeJS.LTS)
# macOS: brew install node@22(没有 brew 先装 brew: https://brew.sh)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt install -y nodejs
node --version # 预期: v22.x 或更高
# 2) promptfoo(约 2.5 分钟,占 2.6G 磁盘——先确认 df -h / 够用)
npm i -g promptfoo
卡住怎么办:npm 慢→ npm config set registry https://registry.npmmirror.com〔单源,社区镜像〕;pip install promptfoo 是错的——它是 Node 项目;小 VPS 磁盘 <10G 空闲→改在本地电脑装。
0.3 装 Ollama + 本地小模型bash 实测¶
# 1) 安装(自动创建并启用 systemd 服务,开机自启)
curl -fsSL https://ollama.com/install.sh | sh
ollama --version # 装完必看版本号,和 github.com/ollama/ollama/releases
# 对照;明显偏旧就重跑上面的安装脚本(安装脚本 = 升级器)
systemctl is-enabled ollama # 默认 enabled;不想常驻: sudo systemctl disable --now ollama
# 2) 小内存/无 GPU 机器:先用 0.5B 走通全流程(397MB,约 41s)
ollama pull qwen2.5:0.5b
ollama run qwen2.5:0.5b "你好,用一句话自我介绍"
# 3) ≥16G 内存再上 7B(质量台阶式提升)
# ollama pull qwen2.5:7b && ollama run qwen2.5:7b "你好"
# 4) 升级 = 重跑安装脚本(实测平滑:服务自动重启、模型全保留)
已知坑(全部实测):OLLAMA_NO_START=1 在 Linux 无效(必然装成常驻服务);升级中短暂出现 could not connect 告警属正常过渡;8G 内存的机器 8B Q4 跑不动,别试。
0.4 第一次 eval(promptfoo 已知语法坑已修)bash 实测¶
mkdir -p ~/ai-dashboard && cd ~/ai-dashboard
cat > promptfooconfig.yaml <<'EOF'
description: "我的第一个 eval"
prompts:
- "把下面的词翻译成英文,只输出译文: {{word}}"
providers:
- ollama:chat:qwen2.5:0.5b # 冒号写法!是 ollama:chat:模型名
# 写成 ollama.chat: 会报 Could not identify provider
tests:
- vars: { word: 猫 }
assert: [{ type: contains, value: cat }]
- vars: { word: 狗 }
assert: [{ type: contains, value: dog }]
EOF
promptfoo eval # 预期: ✓ 2 passed (100%) 实测耗时约 3 秒
卡住怎么办:报 Could not identify provider → 99% 是把冒号写成了点号;连不上 Ollama → curl http://127.0.0.1:11434/ 应返回版本 JSON;换云 API → provider 行改成 openai:chat:<model> 形式并按各厂商文档填 base_url(可照抄的最小配置见下)。
换云 API 可照抄的最小配置〔未实测,OpenAI 兼容服务通用〕——把 yaml 的 providers: 段整段替换为:
providers:
- id: openai:chat:deepseek-chat # 任何 OpenAI 兼容服务都这么写(模型名换你要用的)
config:
apiBaseUrl: https://api.deepseek.com # 硅基流动: https://api.siliconflow.cn/v1
apiKeyEnvar: DF_API_KEY # 从环境变量读 key,别写进 yaml(key 先 export,见 §0.1)
0.5 建 30 题金标准任务集(阶段 0 最重要的产出)¶
- 来源纪律:≥30% 的题必须来自你的真实失败案例(AI 帮倒忙的实例),不许全是理想场景〔转述,I §5.2 防自我污染〕。
- 每题 = 输入 + 判分标准(contains/equals 或人工 1-5 分),存进
~/ai-dashboard/golden30.yaml(格式照抄 0.4 的 yaml,tests 段列 30 条)。 - 编号纪律:每题一个稳定 ID(EVAL-01…EVAL-30),阶段 2 的提案引用机制靠它。
promptfoo eval -c ~/ai-dashboard/golden30.yaml --output ~/ai-dashboard/baseline.json
# 预期: 输出一份通过率(本地 0.5B 会很难看——正常,这是基线不是成绩单)
8G 内存机器跑 30 题建议把 provider 换成免费 API(快且质量真实)。
0.6 记忆库起步(Obsidian)¶
mkdir -p ~/memory-vault/{00-inbox,10-projects,20-areas,90-archive}
- 有桌面端(Windows/macOS/Linux 桌面):装 Obsidian(obsidian.md/download),打开
~/memory-vault,装 Smart Connections 或 Copilot for Obsidian 插件(插件市场搜索词:Smart Connections/Copilot,勿与 GitHub Copilot 混淆;Settings → Community Plugins)〔转述:两插件均为 GUI 插件,novice_test 无 GUI 环境未实测〕。 - 无桌面/SSH 服务器:跳过插件,语义检索延后到阶段 1 用脚本实现(sqlite-vec + bge-m3,A 域方案本就支持)——不要为此卡住〔route_attack R0-3 修复〕。
- 从今天起所有笔记先进
00-inbox,每周日花 10 分钟归档。
0.7 信息源抓取(只读,用 curl,不用浏览器工具)〔route_attack R0-5 修复〕¶
mkdir -p ~/ai-dashboard/inbox
crontab -l 2>/dev/null | { cat; echo '30 8 * * * curl -s https://sspai.com/feed -o $HOME/ai-dashboard/inbox/$(date +\%F).xml'; } | crontab -
# 注意整行用单引号:$(date) 必须留给 cron 运行时执行,双引号会在安装时被展开烧死日期;
# \% 是 cron 的转义(cron 把裸 % 当换行),$HOME 由 cron 的 sh 运行时展开
# 示例源=少数派 RSS,换成你自己的固定信息源;先手动跑一次 curl 确认有输出再加 cron
WSL2 补丁(2026-09-21 walk-through R3 修复):WSL2 默认不开 cron 服务——crontab - 安装能"成功"但永不执行。装完执行:sudo service cron start;并在 /etc/wsl.conf 加(没有就创建):
[boot]
systemd=true
后 wsl --shutdown 再重进 WSL → sudo systemctl enable cron,之后每次开机自启。
macOS 同样注意:合盖睡眠期间 cron 会跳过——先跑一次验证,连续落盘 7 天稳定后再算验收④。
浏览器自动化(browser-use/Playwright)是阶段 1 的工具,阶段 0 一律 curl。
阶段 0 验收(全部可测,含硬件前置)¶
| # | 验收项 | 判据 | 前置 |
|---|---|---|---|
| ① | promptfoo 跑通 | promptfoo eval 输出 2 passed (100%) |
任意机器 |
| ② | 基线快照 | golden30 跑完,你能说出本周通过率 | 任意机器(8G 内存用 API 跑) |
| ③ | 记忆库 | vault 建立 + 有桌面端时语义检索命中 3 条历史笔记 | 语义检索项需桌面端 |
| ④ | 信息源 | inbox 连续 7 天有落盘文件 | 任意机器 |
| ⑤ | 自证实验 | selftest.md 10 行填满且判读结论明确(继续/停/灰区,判据见 §0.0) | ¥0 |
明确不做:不上 Inspect AI(研究级工具折磨自己);<100K token 语料不搭任何 RAG 基建;不买任何硬件。
阶段 1:记忆成型 + 受控执行(第 3-4 周|¥0 → 订阅首月)¶
【硬件前置】 同阶段 0;MCP 宿主(Claude Code)另需约 1G 磁盘。MCP(Model Context Protocol,模型上下文协议)= 给 AI 客户端接外部工具的插头标准——本文首次展开就这一句,往后按术语用。 【现金成本】 ¥0 起步;要跑 coding agent 时买订阅(火山方舟 Lite 限时 ¥9.9 起 / 智谱老用户 ¥49 续费),本阶段不该产生任何大额支出。 【耗时】 2 周 + 只读观察期核对。 【实测状态】本阶段命令除标注bash 实测者外均未实测——novice_test 明列 browser-use/Playwright、MCP 客户端接入为未覆盖项,Round 3 无 GUI/GPU 环境也未补测(route_attack R1-3)。因此每步第一步都是连通性自检。
1.1 指定 MCP 宿主(route_attack R1-5 修复:默认宿主 + 备选)¶
- 默认宿主:Claude Code〔转述,官方 quickstart〕——门槛声明(walk-through R4 修复):Claude Code 需要 Anthropic 账号 + 境外支付能力,大陆手机号通常无法直接完成注册/付费;无法注册的大陆用户直接走下面的备选宿主,不要在此卡死:
curl -fsSL https://claude.ai/install.sh | bash
- 备选宿主(无境外账号/支付者实际走这条):Hermes Agent(NousResearch/hermes-agent,247k★,GitHub API 实测 2026-09-21)或任一支持 MCP 的客户端——国产 API 接入:在宿主自己的配置(配置文件/env 变量)里填国内 OpenAI 兼容端点(如 DeepSeek
api.deepseek.com)与 key;具体字段名各宿主不同,以各自官方文档为准〔未实测,本文不展开〕。 - Windows 用户:Claude Code 原生不支持沙箱,且需要 Git Bash(
CLAUDE_CODE_GIT_BASH_PATH)转述——直接用 WSL2 省事。
1.2 MCP server 白名单核查(装任何一个 server 之前必做)〔route_attack R1-4 修复〕¶
# 三条件核查(示例:cyanheads/obsidian-mcp-server,682★)
curl -s https://api.github.com/repos/cyanheads/obsidian-mcp-server | jq '{stargazers_count, pushed_at, archived}'
# ① pushed_at 在近 90 天内 ② archived == false ③ 开放 issue 有维护者回复(点进去肉眼确认)
# 三条有一条不满足 → 换 coddingtonbear/obsidian-local-rest-api(2941★)或放弃该 server
版本锁死:官方文档常用 @latest,与白名单原则自相矛盾——先查版本号再写死:
npm view @playwright/mcp version # 查当前版本号,替换下面 <VERSION> 占位符
claude mcp add playwright -- npx "@playwright/mcp@<VERSION>" # 把 "<VERSION>"(连同引号)换成上一条查到的版本号;示例原则:写死版本,不用 @latest
claude mcp list # 连通性自检:有输出即成功未实测
1.3 安全四件套最小实现(route_attack R1-2 修复:从"名字"落成命令)¶
设计以
round2/security_redteam.md§4-5 为准,此处是个人 L1 最小版。
① 沙箱(有 Docker 就做,没有则降级为"专用系统用户 + 目录白名单"):
# 每任务一次性容器模板:断网 + 限资源 + 只挂任务目录(绝不挂 ~ 本身)〔转述,--network none 已实测断网有效〕
docker run --rm --network none --memory 512m --cpus 0.5 --pids-limit 64 \
--security-opt no-new-privileges --read-only --cap-drop ALL \
-v "$PWD/workspace:/workspace" python:3.11-slim python /workspace/task.py
铁律:永不把 docker socket 挂进容器;云凭证文件(~/.aws、.env)永不进容器。
② 权限白名单(deny-by-default,字段名随宿主调整):
# permissions.L1.yaml —— ⚠️ 概念示意:这份 yaml 的字段名不能被任何真实宿主直接读取,
# 只用来表达"白名单该长什么样";真实可用的最小配置见下方 settings.json
permissions:
allow:
- Bash(python /workspace/scripts/*) # 命令模板化,不是裸 Bash
- filesystem:write(/workspace/output/**)
approval:
required_for: [write, email, payment, delete, publish] # 不可逆操作枚举
mode: per_action
mcp:
enabled_servers: [playwright, fetch] # 只装这两个起步(示意字段)
真实可用的最小示例〔转述,Claude Code 真实格式,字段以官方文档为准〕:
// ~/.claude/settings.json
{ "permissions": { "allow": ["Read(~/memory-vault/**)"], "deny": ["Bash(rm *)", "Bash(sudo *)"] } }
防改声明修正(walk-through R9③):单用户桌面/WSL 上你就是 root 或同 uid,"root 属主/只读"防不住 agent——该文件由你保管,agent 无写权限靠宿主 sandbox/权限机制保证;Linux 本地可另加
sudo chattr +i ~/.claude/settings.json(不可变,root 也要先chattr -i才能改)。
③ 审计日志(JSONL,append-only;最小字段集 = route_attack R1-3 修复):
sudo touch /var/log/agent-audit.jsonl && sudo chattr +a /var/log/agent-audit.jsonl
# chattr 仅 ext4 等文件系统有效;追加 OK、覆盖/删除会被拒(防 agent 抹日志)
# 每次工具调用追加一行(agent harness 或包装脚本写;没有 wrapper 时手工追加见下):
# {"ts":"2026-09-21T10:00:00+08:00","tool":"obsidian.write","args":"notes/x.md","result":"ok","approver":"human","tokens":1234,"verdict":"approved"}
# 手工追加一行的最小写入命令(tee -a = 只追加,符合 chattr +a):
# echo '{"ts":"...","tool":"manual","args":"...","result":"ok","approver":"human","verdict":"approved"}' | sudo tee -a /var/log/agent-audit.jsonl >/dev/null
"审计可完整重放"的操作定义(此前不可测,现在可测):给定时间窗,能从日志重建该任务的完整工具调用序列:
jq -c 'select(.ts >= "2026-09-21T10:00" and .ts < "2026-09-21T11:00")' /var/log/agent-audit.jsonl
④ git 回滚(先 commit 再动手):
cd ~/memory-vault && git init && git add -A && git commit -m "baseline"
# 每次让 agent 写 vault 前:git stash create 或手动 commit;出事: git reset --hard <pre-task-sha>
1.4 记忆 MCP 化 + 浏览器执行未实测¶
# a) vault 接入 MCP(按 1.2 核查通过的 server 的 README 装;装后描述 hash 存档,变更即停用)
# b) 浏览器执行(browser-use 路线)
mkdir -p ~/browseruse && cd ~/browseruse
curl -LsSf https://astral.sh/uv/install.sh | sh # uv 首次使用先装它(装完重开终端或 source ~/.bashrc)
uv venv --python 3.12 && source .venv/bin/activate
# ① 先装浏览器引擎(没有它下面的自检必报 Executable doesn't exist)
# WSL2 无桌面环境必须 --with-deps(补系统依赖库);普通桌面 Linux 可去掉 --with-deps
python -m playwright install chromium --with-deps
# ② 再装 browser-use 本体(其自带安装步骤失败/跳过也不影响①的自检)
uv pip install browser-use
# 连通性自检(不用模型,先验浏览器层)〔未实测,playwright API 稳定〕:
python - <<'EOF'
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
b = p.chromium.launch(); pg = b.new_page()
pg.goto("https://example.com"); print("TITLE:", pg.title()); b.close()
EOF
# 预期输出: TITLE: Example Domain
选题边界:只做 ≤15 步、无登录墙、无支付的浏览器任务(80% 可靠圈内);每一步写操作先出 diff 再人审(diff = 把 agent 想做的修改以"改动前后对照"形式展示给你看——git diff 或宿主自带审批界面,看完再放行)。
卡住怎么办:报 Executable doesn't exist → 浏览器没装进去,跑 python -m playwright install chromium;报缺系统库(.so)→ 跑 sudo python -m playwright install-deps chromium;browser-use 版本 API 漂移快 → 以官方 docs 为准重装;模型 key 缺 → 在 ~/browseruse/.env 里配国产 API(browser-use 走 LiteLLM 层,如 DEEPSEEK_API_KEY=sk-...,base url 按厂商文档;变量名以 browser-use 官方 LLM 连接文档为准)。
阶段 1 验收(时间轴已修复)¶
| # | 验收项 | 判据 |
|---|---|---|
| ① | MCP 连通 | claude mcp list 有返回;agent 会话内能读出工具列表 |
| ② | MCP 读写 vault | agent 通过 MCP 完成一次"读笔记→写归档",且 1.3③ 的 jq 能重放全过程 |
| ③ | 写操作纪律 | 本阶段 100% 写操作先 diff 再人审(audit 日志里 verdict 全部非空) |
| ④ | 只读观察期 | 自阶段 0 第 1 天起算满 30 天,只读任务零事故(不足 30 天就继续只读,不许提前升级) |
明确不做:MCP server 超 3 个;任何带登录墙/支付的任务;agent 自己改权限配置。
阶段 2:编排 + 自改进闭环(第 2 个月|订阅 ¥40-149/月)¶
【硬件前置】 同阶段 1。 【现金成本】 本阶段真实成本 = 订阅 ¥40-149/月(火山方舟 Lite 限时 ¥9.9 起/常规约 ¥40〔单源待复核〕;智谱 V1 老用户 ¥49 续费;新用户智谱 V2 Lite ¥118)。一次性预算 5k-2w 是阶段 3 的钱,本阶段一分不花〔route_attack R2-3 成本错位修复〕。 【耗时】 4 周,每晚 1-2 小时。
2.1 装 coding agent CLI(第二把刀验收一并做)未实测¶
# 主力:Claude Code(阶段 1 已装);第二把刀:OpenCode(注意组织已迁移 sst→anomalyco)
curl -fsSL https://opencode.ai/install | bash # 或按 anomalyco/opencode README;Windows: winget install sst.opencode
opencode --version
验收(route_attack R2-5):同一道测试任务(例:给 golden30 写一个新 eval 用例)两个 CLI 都能跑通,各限时 30 分钟。理由:OpenCode 组织一周内迁移过,工具随时可能漂移——第二把刀是你的保险。
2.2 订阅接入 + 限速自检(route_attack R2-4 修复)¶
# 以火山方舟 Coding Plan 为例(工具不限、多模型切换);智谱/MiniMax 同理按各家文档配
# fan-out 并行从 3 并发起步,先验证订阅限额行为,再决定加不加并发
验收:3 并发跑 10 分钟不撞 429;撞了就降并发并记下限额水位。
2.3 双代理评审环(读并行、写单线程、评审环加智力)¶
- 分工模板:agent A 起草 → agent B 只评审不写 → 你裁决。写操作永远单线程进 vault/代码库。
- 红线(全部保留,一条不许破):不全自动改 prompt/技能;不搞自由 swarm;不用模型自生成测试当验证信号(实证:自生成测试 MCC 0.248 vs 公共套件 0.825)。
2.4 最小自改进闭环(夜间反思 → 人工审批 → 技能库)¶
mkdir -p ~/agents/{proposals,skills}
cat > ~/agents/nightly_reflect.sh <<'EOF'
#!/usr/bin/env bash
# 三铁律:绝对路径 + 日志重定向 + 先手动跑通再加 cron(novice_test 测试 5 实测)
set -e
OUT="$HOME/agents/proposals/$(date +%F).md"
mkdir -p "$(dirname "$OUT")"
# 提案必须引用触发它的 eval 失败 ID(EVAL-xx)——这是 R2-2 命中度量的前提
curl -s http://127.0.0.1:11434/api/generate \
-d "{\"model\":\"qwen2.5:3b\",\"stream\":false,\"prompt\":\"读 $HOME/ai-dashboard/last_eval.json 中失败的用例,为每个失败写一条改进提案,格式:提案标题 + 引用 EVAL-xx + 具体改动。\"}" \
| jq -r '.response' >> "$OUT" 2>> "$HOME/agents/error.log"
EOF
chmod +x ~/agents/nightly_reflect.sh
~/agents/nightly_reflect.sh # ① 先手动跑通,确认 proposals/ 有产出
( crontab -l 2>/dev/null; echo "0 23 * * * $HOME/agents/nightly_reflect.sh >> $HOME/agents/cron.log 2>&1" ) | crontab -
crontab -l # ② 再加 cron(每晚 23:00)
审批纪律:每条提案 git commit 后应用(回滚 = revert);提案引用率必须 100%(每条可溯源到 EVAL-xx)。
技能库带退休机制:~/agents/skills/ 里每个技能文件头部写 last_used: 日期;连续 60 天未命中且无回归贡献 → 删。
2.5 命中度度量(route_attack R2-2 修复:从"不可测"落成 grep)¶
# 周检:旧教训在新任务中被命中的次数(提案/技能引用了失败 ID 即算命中)
grep -rEo "EVAL-[0-9]{2}" ~/agents/proposals/ ~/agents/skills/ | sort | uniq -c
# 预期: 每周 ≥1 次命中;连续 4 周为 0 → 闭环没在转,回 2.4 检查提案质量
2.6 月度 eval 重跑 + 修复后的判读数学(route_attack R2-1 修复)¶
promptfoo eval -c ~/ai-dashboard/golden30.yaml --output ~/ai-dashboard/eval-$(date +%Y-%m).json
判读(这是每月必做 2 项纪律之一): - 30 题单题翻转 = 3.3pp,"+3 分"完全在噪声区——旧判据"+3~10 分"已废弃。 - 新判据:通过数比上期 ≥2 题(≥6.7pp)且连续 2 期同向,才算进步;单期波动一律记噪声。 - 回归门:通过数比上期 -2 题即触发警报,先回滚最近应用的提案再排查。
验收:① 提案引用率 100%;② 首次自动拦截退化发生过 ≥1 次(回归警报触发过 = 保险绳有效);③ 连续 2 期 ≥+2 题同向;④ 周命中 grep ≥1。
可选进阶(不做不影响验收):GEPA 月度重优化核心 prompt(需写 Python metric 函数 + API 成本,门槛偏高);n8n 自托管做管道 glue(Docker 部署,注意 n8n 3.0 起 npm 停发、只走 Docker)。
阶段 3:本地底座 + 权重级学习(第 3 个月|一次性 ≈¥20,000|多数人应跳过)¶
【先读这个再决定】 买 GPU 的理由只有三个:隐私(数据不出网)、离线、微调自由度。省钱不是理由——自建替代最便宜模型也要每天 300 万 token 才回本,个人用户 95% 落在平衡点左侧〔双源,cost_route §4〕。2026 是内存/SSD/GPU 涨价周期顶部(缺货到 2027 下半年),"等降价"失效。 【硬件前置】 若跳过:零。若执行:见 3.1。 【现金成本】 见 3.1(一次性 ≈¥20,000)或云租 ¥1.3-2.5/小时。 【耗时】 硬件到位后 2-4 周。
3.1 硬件选型(route_attack R3-1 修复:整段替换为 2026-09 现场核验版)¶
| 档 | 配置 | 价格(2026-09 快照,保鲜 2 周) | 能跑什么 |
|---|---|---|---|
| 入门隐私档 | 二手 RTX 3090 24G 单卡 | ¥4,200-6,800(涨价中) | 27-32B Q4 推理 |
| 标准档 | 双二手 3090 工作站(电源必须全新) | ≈¥20,000 全套 | 70B Q4 + QLoRA 微调 |
| 云租替代 | 4090 按小时(晨涧云/恒源云/AutoDL) | ¥1.3-2.5/小时 | 短时微调首选 |
「不要买」清单(照抄 cost_route §6):5090D V2 已禁入境断供——不要买;M5 Ultra 256G 国行 ¥86,749 超预算 73%——不要买;2026 年任何新显卡/新内存/新 SSD——不要买(周期顶部接盘);5 万预算的正确姿势 = 4 万存理财 + 按需云租 + 1 万内年度订阅。 验机流程(gaps §2.1,防假卡):闲鱼个人卖家低价卡 = 假卡流水线重灾区(¥336 成本卖 ¥3,800 的 3090 改 4090 实录)——走转转/京东拍拍验机,避开明显低于行情的个人卖家;一次买两张谈价。
3.2 模型与运行(route_attack R3-2 修复:模型名绑定 tag + 验证日期)¶
# 推理:Ollama 路线(阶段 0 已装);模型名具体到 tag,验证日期 2026-09-21
ollama pull qwen2.5:7b # 24G 卡可跑 14B-32B Q4;具体 tag 以 ollama.com/library 当日列表为准
# llama.cpp 注意组织已迁移: ggerganov/llama.cpp → ggml-org/llama.cpp(引用写 canonical 名)
3.3 微调 Step 0 对照(route_attack R3-3 修复:先决策树后动手)¶
Step 0(必做,¥0):先做 few-shot 基线——把 10 条最佳示例直接写进 prompt,跑 golden30 相关子集。few-shot 收益 <+5pp → 停,不微调(多数个人用户按决策树应止步于此)。 确有收益才继续:
# 数据准备:500+ 条 → ChatML JSONL;PII 清洗用脚本,不靠人工抽检
python3 - <<'EOF'
import json, re
pats = [r'1[3-9]\d{9}', r'\d{17}[\dXx]', r'\d{6}(19|20)\d{2}(0[1-9]|1[0-2])\d{2}'] # 手机/身份证/生日
out = []
for line in open('raw_data.jsonl', encoding='utf-8'):
d = json.loads(line)
for k in ('input', 'output'):
for p in pats: d[k] = re.sub(p, '[PII]', d[k])
out.append(d)
with open('train.jsonl', 'w', encoding='utf-8') as f:
f.writelines(json.dumps(d, ensure_ascii=False) + '\n' for d in out)
print(f"cleaned {len(out)} rows; 90/10 split next")
EOF
# 训练:Unsloth + QLoRA(单卡 24G)〔未实测:本机无 GPU〕——按官方 notebook 跑,别手写训练循环
3.4 验收(route_attack R3-4 修复:降级为可操作读数)¶
| # | 验收项 | 可操作判据 |
|---|---|---|
| ① | 训练有效 | 训练脚本 exit code 0 且日志末尾打印的 final train loss < initial train loss、验证 loss 不回升(脚本里加两行 print 即可,不用读曲线) |
| ② | 防遗忘哨兵 | 固定 10 题通用任务(写作/翻译/常识),微调前后各跑一次,掉分 ≤2 |
| ③ | 盲测 | 底座 vs 底座+LoRA 各生成 10 条,本人盲选,风格胜率显著 >50% |
| ④ | KL 哨兵 | 降级为②的 10 题哨兵(个人场景 KL 散度实现成本不值) |
预期校准(硬数字,诚实条款):个人化文本生成纯 PEFT 仅 +1.07%、+RAG 组合 +15.98%〔一手,LaMP 37k 适配器〕。确定性收益在格式固化 + 领域判别 + 隐私推理,不在知识/推理/记忆。阶段 3 只对"格式固化+隐私推理"两个场景值得投入——如果你说不清自己属于哪个,跳过本阶段。
阶段 4:24/7 自主 + 渐进自动化(第 4 个月起|<¥50/月)¶
【硬件前置】 一台 $3.5-6/月的 VPS(或家里常开的小主机)。 【现金成本】 本阶段月成本 <¥50(VPS $3.5-6 + 心跳 ≈$0.015/天〔单源〕)。5 万额度若已投入阶段 3,本阶段直接复用该硬件〔route_attack R4-4 成本口径修复〕。 【耗时】 部署 1 晚 + 60 天渐进观察。
4.1 VPS 加固基线(只列必做;完整版见 APPENDIX-security)¶
# 新 VPS 第一晚:SSH 密钥登录 + 禁密码 + ufw 只放 22(命令转述,各发行版通用)
ssh-copy-id user@vps && sudo passwd -l root
sudo sed -i 's/#\?PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config && sudo systemctl restart ssh
sudo ufw allow 22/tcp && sudo ufw --force enable
4.2 每日巡检 cron(novice_test 三铁律已内联)〔bash 实测 19/19 成功〕¶
cat > ~/agents/daily_brief.sh <<'EOF'
#!/usr/bin/env bash
# 铁律①绝对路径 ②日志重定向(否则 cron 静默失败)③先手动跑通再加 cron
OUT="$HOME/agents/briefs/$(date +%F).md"
mkdir -p "$(dirname "$OUT")"
curl -s http://127.0.0.1:11434/api/generate \
-d '{"model":"qwen2.5:3b","prompt":"用三句话总结今天 AI 领域值得关注的事。","stream":false}' \
| jq -r '.response' >> "$OUT" 2>> "$HOME/agents/error.log"
EOF
chmod +x ~/agents/daily_brief.sh
~/agents/daily_brief.sh # ① 手动跑通
( crontab -l 2>/dev/null; echo "0 9 * * * $HOME/agents/daily_brief.sh >> $HOME/agents/cron.log 2>&1" ) | crontab -
crontab -l # ② 再加 cron(每天 9:00)
频率即成本:本地模型 0 元随便跑;指向云 API 时一天 1 次封顶。macOS 用户:cron 换 launchd plist(StartCalendarInterval);Windows:schtasks /create /sc daily /st 09:00 /tn DailyBrief /tr 路径(详见附录 B)。
4.3 每周 5 题 probe 回归门(route_attack R4-1 修复:24/7 系统必须有仪表盘)¶
cat > ~/agents/weekly_probe.sh <<'EOF'
#!/usr/bin/env bash
set -e
promptfoo eval -c "$HOME/ai-dashboard/probe5.yaml" --output "$HOME/ai-dashboard/probe-latest.json" 2>> "$HOME/agents/error.log"
PASS=$(jq '.results.stats.successes' "$HOME/ai-dashboard/probe-latest.json")
BASE=$(cat "$HOME/ai-dashboard/probe-baseline.txt" 2>/dev/null || echo 4)
if [ "$PASS" -lt "$BASE" ]; then
echo "$(date +%F) PROBE FAIL: $PASS/$BASE — 自动降级提醒" >> "$HOME/agents/alert.log"
# 告警推手机:接你的推送渠道(如 Server酱/bark);此处先落盘
fi
EOF
chmod +x ~/agents/weekly_probe.sh
# probe5.yaml = 从 golden30 抽 5 题的固定子集;baseline = 首次跑通的通过数
( crontab -l 2>/dev/null; echo "0 8 * * 1 $HOME/agents/weekly_probe.sh >> $HOME/agents/cron.log 2>&1" ) | crontab -
验收:probe 跌破基线时 alert.log 有记录(故意改坏一个用例测一次)。
4.4 渐进三级 + 断路器(L0→L1→L2 准入条件硬性)¶
- L0 只读(默认):搜索/抓取/读白名单目录/起草。准入即得。
- L1 受控(阶段 1 已配):白名单命令 + 每步人审。准入:只读观察期 30 天零事故 + 审计日志可重放(阶段 1 验收④②)。
- L2 围栏内自动:定时任务 + 抽样人审 10%。准入:近 60 天审批通过率 >95% 且零高危误批 + 回滚演练有记录 + 断路器故意触发过 ≥1 次。
- 通过率怎么算(route_attack R4-3 修复:补度量):审批 JSONL 事件(阶段 1 审计日志)带
verdict字段,月度脚本统计:
jq -s '[.[] | select(.verdict)] | {total: length, approved: [.[] | select(.verdict=="approved")] | length}' /var/log/agent-audit.jsonl
- 断路器:per-trace 成本上限(正常 p95 的 5-10 倍)+ 步数上限 + 幂等键;超限即 kill+alert。故意触发一次作为验收。
- 硬边界(永不破):支付/删库/对外发布永不自动;"agent 自己发现任务"不做——所有成熟实现里规则都是人写的。
阶段 5:收敛与边界维护(持续|滚动 ≤¥150/月)¶
【现金成本】 订阅 + API 滚动,轻档用户 ≤¥150/月。 【耗时】 每月 2 项必做纪律共约 1 小时;其余全部可选。
5.1 最小可行纪律集(critic#3 指令:≤2 项/月,防弃坑)¶
| 每月必做(就这 2 项) | 耗时 | 命令/动作 |
|---|---|---|
| ① 月度重跑 30 题 | 5 分钟 | promptfoo eval -c ~/ai-dashboard/golden30.yaml(判读用 2.6 修复后数学) |
| ② 手动抽查 5 条 AI 产出 | 25 分钟 | 从本月产出随机抽 5 条,人工核对对错;发现系统性错误 → 记一条新 eval 题 |
以下全部为可选进阶(有空才做,不做不算失败):月度盲评 20 对(胜率 ≥60% 进步 / ≤40% 退步 / 中间=噪声,连续 2 期同向才算信号〔route_attack R5-1〕);季度 judge 校准 30 例〔未实测,I 域 §7.5 有脚本但未验证〕;任务轮换 20%(用真实失败替换旧题);LightRAG 知识图谱(仅多跳需求出现才上,见 5.3);遗忘审计每月 30 分钟。
5.2 诚实度量(对"逼近"的审计)¶
- 趋势线只看 3 个月(单月 ±2pp 全是噪声);质量/$ 连续两月下降 = 换模型或精简支架。
- 每季度回看第 0 周自证实验:重跑同 10 任务,对照命中"继续"判据(省时 ≥30% 且满意 ≥6/10)的任务数是否增长。没有增长 = 这套系统对你没有兑现承诺——这是本路线内置的反对论据通道,别删。
5.3 LightRAG(可选,门槛条款 + 全部实测坑已内联)bash 实测¶
准入判据:只有当"跨笔记多跳问题"真实出现(例:"谁负责凤凰计划?部署在哪台服务器?"单文件答不出)才上。
# 前置:Ollama 在跑;实体抽取必须 ≥3B(0.5B 实测图谱全空);嵌入用 bge-m3(1.2G,1024 维)
ollama pull qwen2.5:3b && ollama pull bge-m3
python3 -m venv ~/lightrag-venv # PEP 668:直装 pip 会被系统拒绝,必须 venv
~/lightrag-venv/bin/pip install lightrag-hku # 实测 1.5.7,约 27s
# 已归档可跑通版: round2/agents/artifacts/lightrag_min_v3.py —— 关键点:
# ① 必须用 lightrag.llm.ollama 的 ollama_embed(把 OpenAI 集成改成 Ollama 必炸: 404/维度 768≠1536)
# ② embedding_func 传官方已包装的 ollama_embed(普通 lambda 会崩: 'function' object has no attribute 'func')
# ③ CPU 索引 2 个小文件 ≈4-5 分钟——大笔记库用云 API/GPU 或只做增量小块索引
卡住怎么办:查询返回 [no-context] → 模型太小(0.5B 不行,换 3B);索引太慢 → 见③;装不上 → PEP 668 没绕开(必须 venv)。
附录 A:修正吸收对照表(可核查)¶
A.1 route_attack 12 条 must/should-fix 落点¶
| # | 修正 | 落点 |
|---|---|---|
| 1 | 🔴 免费栈大陆化 | §0.1:国内栈为主干,Gemini/OpenRouter/Groq 降为境外分栏 |
| 2 | 🔴 novice_test 修正命令内联 | §0.2/0.4(promptfoo 语法+2.6G)、§0.3(Ollama 版本核对)、§1.4/5.3(LightRAG 4 连坑)、§2.4/4.2(cron 三铁律)、§1.3(端口/PEP 668) |
| 3 | 🔴 验收数学修复 | §2.6:删"+3~10 分",改 ≥2 题且连续 2 期同向 |
| 4 | 🔴 阶段 3 硬件表重写 | §3.1:双 3090 清单 + 验机流程;5090D V2 禁入境标注 |
| 5 | 🔴 24/7 回归门接线 | §4.3:每周 5 题 probe + 跌破基线告警,强制验收 |
| 6 | 🔴 不可测验收补度量 | §1.3③(审计重放=jq 时间窗重建)、§2.5(命中=grep EVAL-xx)、§4.4(通过率=JSONL verdict 统计) |
| 7 | 🔴 成本档错位修正 | §2 成本行(订阅 ¥40-149)、§4 成本行(<¥50/月)、5k-2w/5w 显式归阶段 3 |
| 8 | 🔴 时间轴修复 | §使用说明 6 + §1 验收④:30 天只读观察期自阶段 0 第 1 天起算 |
| 9 | 🟡 微调 Step 0 + PII 脚本清洗 | §3.3 |
| 10 | 🟡 canonical repo 名 + 第二把刀 | §2.1(anomalyco/opencode)、§3.2(ggml-org/llama.cpp)、§2.1 双 CLI 验收 |
| 11 | 🟡 无 GUI/无 GPU 替代路径 | §0 验收③、§0.3(8G 内存档位)、§0.6(无桌面跳过插件)、§3.4(KL 哨兵降级) |
| 12 | 🟡 未实测标注 + 连通性自检 | 全文三档标注 + §1.2 claude mcp list、§1.4 playwright 标题自检 |
A.2 critic 3 条 ROUTE 指令落点¶
| critic 条目 | 落点 |
|---|---|
| §2 第 0 周自证实验 | §0.0(10 任务计时对照 + 诚实判读 + 季度重跑 §5.2) |
| §3 最小纪律 ≤2 项/月 | §使用说明 3 + §5.1(必做仅 2 项,其余全标可选进阶) |
| §6 国内读者分支声明 | 头部时间基准声明 + §0.1 主干/分栏结构 |
A.3 novice_test 11 卡点落点速查¶
卡点 1 promptfoo 语法→§0.4|2-4 LightRAG 三坑→§5.3|5 CPU 索引慢→§5.3③|6 PEP 668→§5.3/§1.4|7 OLLAMA_NO_START→§0.3|8 固定版本=旧版→§0.3|9 npm 2.6G→§0.2/0 前置|10 端口裸奔→§1.3①(容器模板默认不发布端口)|11 cron 静默失败→§2.4/§4.2 三铁律。
附录 B:三平台命令等价速查(详细版见 round3/platform_cheatsheet.md)¶
| 你想做什么 | Linux(主干) | macOS | Windows |
|---|---|---|---|
| 一键装脚本 | curl -fsSL URL \| sh |
同左 | PowerShell:irm URL \| iex |
| 环境变量 | export FOO=bar |
同左 | $env:FOO = "bar"(会话)/ setx FOO bar(持久) |
| 定时任务 | crontab -e |
launchd plist StartCalendarInterval |
schtasks /create /sc daily /st 09:00 /tn 名 /tr 路径 |
| 立即触发一次 | 等下一分钟 / systemd-run --on-active=5 |
launchctl start <label> |
schtasks /run /tn 名 |
| 查日志 | tail -f x.log / journalctl -u 服务 |
log show --last 1h --predicate 'process=="X"' |
事件查看器 → TaskScheduler/Operational |
| venv 激活 | source .venv/bin/activate |
同左 | .venv\Scripts\Activate.ps1 |
| 家目录 | ~/ |
~/ |
PowerShell ~/ 可用;CMD 必须 %USERPROFILE% |
| 装 Docker | apt install docker.io |
brew install --cask docker |
winget install Docker.DockerDesktop(需 WSL2) |
最省心路径:Windows 用户直接
wsl --install(管理员 PowerShell,装完重启),本表 Linux 列 100% 复用。Windows 上 Claude Code 原生不支持沙箱转述——阶段 2 沙箱四件套缺一角,建议 WSL2。 网络慢:npm 慢→npm config set registry https://registry.npmmirror.com;ollama pull 7B+ 慢→耐心或换时段;GitHub raw 超时→手动下 release。镜像站均为社区维护〔单源〕,用前肉眼检查脚本内容。 cron 补充(WSL2 用户):WSL2 默认不开 cron 服务——sudo service cron start在每次重启 WSL 后都要重跑;想开机自启:在/etc/wsl.conf写入[boot]/systemd=true两行后wsl --shutdown重进,再sudo systemctl enable cron。macOS:合盖睡眠期间 cron 会跳过,连续 7 天落盘验收别拿睡眠机做。Git Bash 不在此路径内(见头部平台假设)。
附录 C:卡住总热线(按症状查)¶
| 症状 | 先查 | 大概率原因 |
|---|---|---|
Could not identify provider |
§0.4 | ollama.chat: 应为 ollama:chat: |
| pip 装不上(externally-managed) | §5.3 | PEP 668 → 必须 venv |
| cron 从不执行 | §4.2 | 相对路径 / 无日志重定向 / 没先手动跑通 |
LightRAG 查询 [no-context] |
§5.3 | 模型 <3B,实体抽取为 0 |
| 嵌入维度报错 768≠1536 | §5.3 | 用了 OpenAI 集成接本地模型 → 换 ollama_embed |
| Ollama 装完版本很旧 | §0.3 | 固定版本安装 → 装完必核 ollama --version |
| 端口暴露公网 | §1.3① | -p 6333:6333 少了 127.0.0.1: 前缀 |
| eval 通过率忽上忽下 | §2.6 | 单题粒度 3.3pp 内全是噪声,看连续 2 期同向 |
| 月账单超预算 | §2/§4 成本行 | 长上下文复利 / cron 高频打云 API / fan-out 并发过高 |
附录 D:保鲜与重查(价格/版本类结论的到期日)¶
| 数据 | 半衰期 | 最迟重查日 |
|---|---|---|
| API/订阅价格(§0.1/§2/§3.1) | 1 个月 | 2026-10-21 |
| 硬件行情(§3.1) | 2 周 | 2026-10-05 |
| 工具版本/组织迁移(Ollama/OpenCode/llama.cpp/n8n 3.0 Docker-only) | 3 个月 | 2026-12-21 |
| 监管边界(AI 标识/拟人化新规/备案线) | 6 个月 | 2027-03-21 |
| 架构判断(评测先行/三要素/乘法墙/平衡点口径) | 结构性 | 不需重查 |
触发式重查(不等到期):厂商调价公告 / 工具组织再迁移 / 新规出台 / 汇率破 7.5。
本文由 Round 3 路线收敛 subagent 写于 2026-09-21。输入:round2/master_skeleton + novice_test(6 实测+11 卡点)+ round3/route_attack(12 修正)+ platform_cheatsheet + guardrails + cost_route + gaps §7 + scenarios + critic(§2/§3/§6)。实测证据全部来自 novice_test(Linux bash 实测档);阶段 1/2/3 的 GUI/GPU 命令均为未实测并已逐条标注。