# 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 秒）

1. 从上往下，一次只做一步。每条命令都给了**预期输出**——没看到预期输出就停在原地，查这一步的"卡住怎么办"，不要跳步。
2. 每阶段开头有【硬件前置】【现金成本】【耗时】三行。不满足前置就走替代路径，别硬上。
3. 全程纪律负担被刻意压到**每月必做只有 2 项**：①月度重跑 30 题（5 分钟）②手动抽查 5 条 AI 产出。其余全部标"可选进阶"——这是防弃坑设计（critic#3：弃坑第一窗口是第 2-4 周）。
4. `#` 开头是注释，不用复制；`$HOME`/`~/` 直接复制可用。
5. 全程要背的安全红线只有一句：**支付、删数据、对外发布，永远不自动。**完整护栏见 `final/APPENDIX-security.md`（本文阶段 1/4 只内联最小实现）。
6. 你从**阶段 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 证据：

1. 写下你**每周真实要做**的 10 个任务（例：周报初稿、孩子错题讲解、账单分类、读论文总结、行程规划）。
2. 逐个做两遍：纯手工计时一遍 → 用免费网页 AI（豆包/Kimi/DeepSeek 任一）辅助做一遍计时。
3. 每个任务记 4 个数：手工耗时 / AI 辅助耗时 / 质量自评（1-5）/ 满意吗（Y/N）——末列与 final/CHECKLIST.md §1 同表头；判读只看耗时与满意，质量列供归因参考。

```bash
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 能跑通：

```bash
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 实测〕

```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 实测〕

```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 实测〕

```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:` 段整段替换为：
```yaml
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 最重要的产出）

1. 来源纪律：**≥30% 的题必须来自你的真实失败案例**（AI 帮倒忙的实例），不许全是理想场景〔转述，I §5.2 防自我污染〕。
2. 每题 = 输入 + 判分标准（contains/equals 或人工 1-5 分），存进 `~/ai-dashboard/golden30.yaml`（格式照抄 0.4 的 yaml，tests 段列 30 条）。
3. 编号纪律：每题一个稳定 ID（EVAL-01…EVAL-30），阶段 2 的提案引用机制靠它。

```bash
promptfoo eval -c ~/ai-dashboard/golden30.yaml --output ~/ai-dashboard/baseline.json
# 预期: 输出一份通过率（本地 0.5B 会很难看——正常，这是基线不是成绩单）
```
8G 内存机器跑 30 题建议把 provider 换成免费 API（快且质量真实）。

## 0.6 记忆库起步（Obsidian）

```bash
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 修复〕

```bash
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 账号 + 境外支付能力，大陆手机号通常无法直接完成注册/付费；无法注册的大陆用户**直接走下面的备选宿主**，不要在此卡死：
```bash
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 修复〕

```bash
# 三条件核查（示例：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`，与白名单原则自相矛盾——先查版本号再写死：
```bash
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 就做，没有则降级为"专用系统用户 + 目录白名单"）：
```bash
# 每任务一次性容器模板：断网 + 限资源 + 只挂任务目录（绝不挂 ~ 本身）〔转述，--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，字段名随宿主调整）：
```yaml
# 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 真实格式，字段以官方文档为准〕：
```json
// ~/.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 修复）：
```bash
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
```
**"审计可完整重放"的操作定义**（此前不可测，现在可测）：给定时间窗，能从日志重建该任务的完整工具调用序列：
```bash
jq -c 'select(.ts >= "2026-09-21T10:00" and .ts < "2026-09-21T11:00")' /var/log/agent-audit.jsonl
```

**④ git 回滚**（先 commit 再动手）：
```bash
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 化 + 浏览器执行〔未实测〕

```bash
# 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（第二把刀验收一并做）〔未实测〕

```bash
# 主力：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 修复）

```bash
# 以火山方舟 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 最小自改进闭环（夜间反思 → 人工审批 → 技能库）

```bash
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）

```bash
# 周检：旧教训在新任务中被命中的次数（提案/技能引用了失败 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 修复）

```bash
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 + 验证日期）

```bash
# 推理：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 → 停，不微调**（多数个人用户按决策树应止步于此）。
**确有收益才继续**：

```bash
# 数据准备：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）

```bash
# 新 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 成功〕

```bash
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 系统必须有仪表盘）

```bash
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` 字段，月度脚本统计：
```bash
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 实测〕

**准入判据**：只有当"跨笔记多跳问题"真实出现（例："谁负责凤凰计划？部署在哪台服务器？"单文件答不出）才上。
```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
```
```python
# 已归档可跑通版: 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 命令均为〔未实测〕并已逐条标注。*
