Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
26b2ba0
feat(workbench): F5.i ChatPane toolbar 死按钮清理 — 不留 placeholder,只留真功能
kill136 May 22, 2026
392b1cd
feat(workbench): F5.h.3 模板持久化 + 用户自建 — 内置 12 + 自建任意多
kill136 May 22, 2026
eeee366
chore: 清理 16 个 0-引用历史文件
kill136 May 22, 2026
3ec3235
chore(deps): 删 13 个 0-引用 deps,npm install 减 99 包
kill136 May 22, 2026
2175fa7
fix(canvas): M7 ImageCanvasPanel 文件入库 + prod TDZ 修复
kill136 May 22, 2026
a65ab15
feat(workbench): F5.j 左栏 3 个死按钮清理 — 接通真功能或删
kill136 May 22, 2026
32840c6
feat(workbench): F5.k 新项目 Manus 风无 modal — 后端 quick-new + 直接进 chat
kill136 May 22, 2026
8a82087
feat(workbench): F5.l 死按钮 audit — 接 4 个真功能 + 删 3 个无对应实现
kill136 May 22, 2026
419da0c
feat(workbench): F5.m 任务列表 hover 删除按钮 — Manus 同款
kill136 May 22, 2026
fd41278
fix(chat): F5.n 剥离 <intent-context> — user/assistant 气泡不再裸渲染 LLM 元数据
kill136 May 22, 2026
bdd3878
fix(chat): F5.o 禁 intent-enricher web 路径 — Manus 形态不该暴露 git
kill136 May 22, 2026
d067e83
chore(evals): M1.a prompt/context 重构评估 harness + 首个 smoke case
kill136 May 22, 2026
1ee4bb9
fix(build): 修 npm run build pre-existing undici tsc 错误
kill136 May 22, 2026
5ca0bf1
chore(evals): M1.a 扩到全 5 smoke case + F5.o 真验证 5/5 PASS
kill136 May 22, 2026
7180c4b
refactor(prompt): M2.a system prompt 重写 — 全脱 src/prompt,走 Manus 极简风
kill136 May 23, 2026
749496e
chore(evals): M1.b 升级质量契约 + M1.b.1 修 mode prompt 进度反馈
kill136 May 23, 2026
27ab720
refactor(chat): M3 删 topic-shift 整套机制 + intent-enricher 死赋值清理
kill136 May 23, 2026
d43dee6
refactor(prompt): M4 全清 src/prompt 老路径 + evals 5/5 PASS
kill136 May 23, 2026
add79ee
docs: M5.调研 Manus agent loop HAR 反推 — 钉死 single-agent + phase SSE
kill136 May 23, 2026
6283619
docs: axon-spec v2 — 4 层架构 vision 固化 + M5-M9 重构路线图
kill136 May 23, 2026
93860f2
docs: axon capability registry 盘点 — 7 registry + deferred tool 雏形钉死
kill136 May 23, 2026
a1a84b8
docs: M5 调研 — Manus playbook 100 个全清单 + axon 4 层架构覆盖分析
kill136 May 23, 2026
8708d0d
docs: axon-spec.md 路线图修订 — M5 → M7-M8 → M6 → M9 + M5 demo 4 选
kill136 May 23, 2026
cbad9e0
add:大重构的备份
kill136 May 23, 2026
57b19ab
docs: M5 完整设计文档 — 8 个决策点 + 7 子任务 + 用户拍板清单
kill136 May 23, 2026
d878962
docs: M5 设计文档补 11 个盲点 — 致命 3 + 次要 3 + 可延后 3 + vision 一致性 2
kill136 May 23, 2026
0304f11
docs: 三合一到 axon-spec.md — vision + M5 详细设计 + Manus 验收标准
kill136 May 23, 2026
db25d50
docs: F 段视频实证 — manus-saas.mp4 484s 抽 82 帧通读
kill136 May 24, 2026
2576a6c
docs: 切分 axon-spec.md (1224行) → docs/spec/ 22 文件 (2431行)
kill136 May 24, 2026
7b66208
feat(M5): base→coding agent 自动升级后端 — marker工具+服务端拦截,10/10 eval
kill136 May 24, 2026
3b5592a
fix(M5.g): eval 用独立 temp 工作目录,杜绝 coding agent 污染真仓库
kill136 May 24, 2026
a374195
feat(M5.f): coding mode 前端指示器 + mode_changed / set_session_mode ws 信号
kill136 May 24, 2026
d11f1b9
test(M5.g): 收敛 script case prompt 消除歧义
kill136 May 24, 2026
7def715
feat(M6): Layer 2 Spec 引导卡片 + 硬契约 — 完整集 spec + 每轮注入 + 漂移即停/验收门
kill136 May 24, 2026
091c085
fix(eval): prompt-refactor slides/design case 也隔离到 temp 目录
kill136 May 24, 2026
2c379c6
feat(M6.f): 结构化 spec 门 — coding mode 无 spec 时屏蔽 Write/Edit,硬契约落到实处
kill136 May 24, 2026
f337f08
feat(M7): Layer 3.a/b 蓝图生成 + 串行执行 + 严格验收门
kill136 May 24, 2026
35f3729
feat(M8): Layer 3.c/d/e 测试 + 评估 + 交付(真 e2e + 100% 验收硬门)
kill136 May 24, 2026
d6cf3ca
feat(M9): Layer 4 User-in-the-loop — request_user_action(vision 五层收官)
kill136 May 24, 2026
5c1eb00
test(e2e): 端到端长流程真实 eval — vision 五层真闭环实证
kill136 May 24, 2026
6205ad2
refactor(eval): runSmokeCase 超时假挂自愈重试 — 根治 flaky roulette
kill136 May 24, 2026
c5bac6c
docs(CLAUDE.md): 补 M5-M9 Coding Agent Pipeline 架构段
kill136 May 24, 2026
06574d3
docs(CLAUDE.md): 校准 Prompt 子系统段 — src/prompt 已整体删除(非"淘汰中")
kill136 May 24, 2026
c9b8f01
fix(M8.c): deliver_app dev server 生命周期管理 — 杜绝孤儿进程
kill136 May 24, 2026
a9068c2
test(eval): 统一 vision 回归门 runner evals/regression.ts + CLAUDE.md Eval…
kill136 May 24, 2026
de7a480
feat(web): M7/M8 编程流水线 hero/状态卡 — 5 个交付时刻从裸工具 blob 升级为 Manus 风卡片
kill136 May 25, 2026
6ce583b
add:wbj back
kill136 May 25, 2026
ccd6967
feat(M10): 模板池 + JSX 精准编辑 + markdown_to_pdf 批次 1+2
kill136 May 25, 2026
cf4b18d
feat(M6/M7/M8 V2): Tariq HTML 路线三路落地 — agent-native verification + bl…
kill136 May 25, 2026
976670d
chore: M10 regression suite 注册 + scheduled_tasks lock housekeeping
kill136 May 25, 2026
5be8712
fix(M11.a): impl handleProposeUiContracts to unblock HEAD typecheck
kill136 May 25, 2026
cd14cb9
fix(web): M6/M9 卡片接线错位修复 — CodingSpecCard + UserActionCard 接进 ManusWo…
kill136 May 25, 2026
28a87bf
fix(web): M6/M9 卡 真正能渲染了 — 修 result.data 被吞 bug + DesignDirectionPick…
kill136 May 25, 2026
5f3a6f8
chore: 清理旧文档 — AXON.md(被 CLAUDE.md 取代) + PLAN.md(废弃 skill 依赖稿) + sche…
kill136 May 25, 2026
17d6389
feat(M10/M11.a): pre-installed 工具矩阵 + 模板池 + picker 卡片端到端落地
kill136 May 25, 2026
2cde093
docs(M12): Manus parity audit 矩阵 + M12 milestone spec
kill136 May 25, 2026
77d1f88
feat(M11+M12.d): UI 验证四层确定性裁判栈 + 交付门3 + Append 工具
kill136 May 25, 2026
e5df21a
docs: 校准回归基线 m6 4/5→6/6 · m8 4/4→5/5(2026-05-25 实跑对齐)
kill136 May 25, 2026
f64d8be
feat(M12.f): WebFetch 批量抓取 1-4 URL(Manus webpage_extract parity §1.7)
kill136 May 25, 2026
c6b6d2a
docs(M12): 标记 M12.d + M12.f 已落地 + 进度说明
kill136 May 25, 2026
8813a7e
feat(M12.a): blueprint task capability tag(Manus plan capabilities pa…
kill136 May 25, 2026
85ac4a9
docs(M12): 标记 M12.a 已落地(capability tag)
kill136 May 25, 2026
96b6c55
docs(M12.s): markdown 输出协议 + 不受信任内容规则(Manus parity §5.4/§5.5)
kill136 May 25, 2026
2b2f434
feat(M12.k): axon-base-fullstack 全栈模板(过 7 项验收门 + 入 registry)
kill136 May 26, 2026
9027ccc
feat(M12.c): 持久 shell session(agent-shell + shell_session 工具,Manus sh…
kill136 May 26, 2026
de0403b
feat(M12.g): expose_port 工具(Cloudflare 隧道暴露本地端口,Manus expose parity §…
kill136 May 26, 2026
031c32c
fix(M12.f): 批量 URL 移到 Read(初版误放未注册的 WebFetch=死代码)
kill136 May 26, 2026
23b6341
fix(M12.f): Read urls[] 批量实现(接上一提交,补功能部分)
kill136 May 26, 2026
fcd922f
docs(M12.p/M12.r): 调度架构指南 + 协议纪律评估(Manus parity §3.6/§5.2/§5.7)
kill136 May 26, 2026
475c1fe
docs(M12.n): SKILL.md 自描述格式标准(Manus skill-creator 等价,§3.2)
kill136 May 26, 2026
6a02bac
docs(M12.j): slides 入参校对 = 有意架构分歧(不抄 Manus slides 工具 schema,§1.11)
kill136 May 26, 2026
ecd4974
feat(M12.b): message 用户通信通道(additive,Manus message parity §1.2/§5.3)⭐
kill136 May 26, 2026
88d64a8
feat(M12.i video): generate_video 工具(Google Veo,Manus generate parity…
kill136 May 28, 2026
ba4dad6
docs(主线C/M13-M16): 商业化形态对齐——废除 vision 红线 #2-#5 转主动实施
kill136 May 28, 2026
7c8fe29
docs: 删除过时的 website-builder V2 文档(V3 已全线落地完结)
kill136 May 28, 2026
57b0f1e
feat(M11.d+M11.h): UI 验证闭环——baseline 校准长牙齿 + 语义锚点 drift-proof
kill136 May 29, 2026
bd5fe89
feat(M11.h.3): surface marker advisory warnings to agent (D2 建议侧)
kill136 May 29, 2026
63644ec
feat(主线C M13.a/M14/M15.a): 双轨地基——云沙盒 + LLM 网关 + 部署适配器
kill136 May 29, 2026
ff096eb
docs(M12.o): 校准 connector 状态——connector+OAuth 早已建好,仅缺 webhook 接收端
kill136 May 29, 2026
6d2cad1
写了一片关于 AXON 的技术博客
May 29, 2026
695150b
添加深色背景图片
May 29, 2026
0908362
Merge pull request #146 from kill136/private_web_ui_blog
kill136 May 29, 2026
1ee2fda
feat(M10 标杆路线): 2 标杆成品模板 + base-react 治本 + base 体检
kill136 May 29, 2026
000e915
feat(M10 现搭路线): coding prompt 加前端起步基底引导
kill136 May 29, 2026
81dc1a1
feat(M7 覆盖率硬门): 蓝图必须覆盖 spec.coreFeatures
kill136 May 29, 2026
3378ee6
docs(backlog): batch3 探查否决记录 + M12 parity 元结论
kill136 May 29, 2026
b503f5d
feat(M15.a): publish_to_axon_app 一键发布工具接电(Vercel)
kill136 May 29, 2026
57ed2ec
feat(M12.i): 媒体生成 4 类全接通 (speech/audio/music) + M12.e 校准
kill136 May 31, 2026
7f18db2
feat(M12.o): webhook 接收端落地(M12.o 🟢✅ 完结)
kill136 May 31, 2026
26da49f
feat(M15): RailwayDeployAdapter 全栈部署(移植 super-agent 实测实现)
kill136 May 31, 2026
5396004
feat(M15.b): publish handler detectStack 分流(静态→Vercel / 全栈→Railway)
kill136 May 31, 2026
1596259
feat(M15.c): Neon 自动开库 — needsDb 全栈 app 发布自动 provision Postgres
kill136 May 31, 2026
8efdb42
fix(M15.b): detectStack 修真实模板误判 + 集成测试钉死分类(铁律11)
kill136 May 31, 2026
64e52ef
refactor(M15): 全栈发布编排抽成纯函数 + glue 集成测试(铁律11/3)
kill136 May 31, 2026
097d043
fix(M15): railway CLI 缺失给清晰报错,不漏 raw ENOENT(铁律 不掩盖问题)
kill136 May 31, 2026
c9c2432
fix(M15): Railway team/project token 给可操作错误(真探针实测发现)
kill136 May 31, 2026
9c56de8
feat(M13): Model A 地基 — 沙盒执行上下文 + coding session 沙盒生命周期管理
kill136 May 31, 2026
7511a6b
feat(M13): coding-fs 门面 — 文件操作 本地|云沙盒 路由(Model A 工具栈迁移入口)
kill136 May 31, 2026
a5c403a
feat(M13): SandboxAdapter 二进制读写 + coding-fs 二进制路由(模板资产不损坏)
kill136 May 31, 2026
cab28c1
feat(M13): template-init 沙盒分支 — 模板 copy 进 E2B(bootstrap 实现)
kill136 May 31, 2026
b75bfdb
feat(M13): 集成开关 AXON_SANDBOX_CODING + 沙盒生命周期接入 coding mode
kill136 May 31, 2026
de5a9e5
feat(M13): conversation loop 沙盒执行上下文包裹(runLoopInContext,gated 休眠)
kill136 May 31, 2026
d86b52d
feat(M13): Write 工具 fs→cfs* 迁移(gated 休眠,本地路径零回归)
kill136 May 31, 2026
b7d101b
feat(M13): Read 工具沙盒分支(gated 休眠,本地路径零回归)
kill136 May 31, 2026
4fc36c9
feat(M13): Edit 工具 fs→cfs* 迁移(gated 休眠)— 文件工具三件套迁移收官
kill136 May 31, 2026
e0270aa
feat(M13): Bash 命令执行路由云沙盒(executeInSandbox→sandbox.exec,gated 休眠)
kill136 May 31, 2026
f9b0c78
fix(webhook): Express 5 路由可选参数兼容(修服务启动阻塞)
kill136 May 31, 2026
312dd14
feat(M13): M7 核心 handler 迁移到沙盒路由(Model A,gated 休眠)
kill136 May 31, 2026
f95851f
feat(M13): Chunk A+B 剩余 handler 元数据迁移沙盒路由(Model A,gated 休眠)
kill136 May 31, 2026
a2ed84b
feat(M13): Chunk C 命令/网络层沙盒化(runWorkerVerification/runProbe/getHost)
kill136 May 31, 2026
8aae8df
feat(M13): Chunk D 部分 — template-on-select 进沙盒 + 关停 destroyAll 防泄漏
kill136 May 31, 2026
d594db7
fix(M13): 沙盒上下文改动态 resolver — 修 turn 中途建沙盒同 turn 不可见的真 bug
kill136 May 31, 2026
ec0002b
feat(M13): Glob/Grep/shell_session 沙盒路由(e2e 揭示的扩大工具面)
kill136 May 31, 2026
eca9df3
fix(M13): E2B 沙盒生命周期 timeout 30min — 修中途被回收 SandboxNotFoundError
kill136 May 31, 2026
5d066c0
fix(M13): Bash 后台路径绕过云沙盒 + spec 解析撞尾随文本(两个活体 e2e bug)
kill136 May 31, 2026
1811e98
fix(M13): 云沙盒下浏览器 e2e 优雅跳过(不再 EACCES 崩)
kill136 May 31, 2026
1cd027b
test(M13): e2e-full-flow harness 适配 Model A(从 E2B 沙盒读产物验收)
kill136 May 31, 2026
a6be64e
feat(M13): file API 沙盒感知 — 编辑器文件树/读/写路由进 E2B(UI 可见层)
kill136 May 31, 2026
e0f2bc3
feat(M13): file API CRUD 路由全沙盒化(create/delete/mkdir/rename/copy/move/…
kill136 May 31, 2026
be470b2
feat(M13): preview 沙盒化 — dev server 在 E2B 后台跑 + getHost 公网域名探活
kill136 May 31, 2026
525f981
fix(M13): 沙盒 keepAlive 滑动 timeout — 防活跃长 session 中途被 E2B 回收(静默写丢失)
kill136 May 31, 2026
4736797
feat(M13): file API search/download/replace 沙盒化(编辑器次要操作)
kill136 May 31, 2026
c055fc2
feat(M13): 翻 AXON_SANDBOX_CODING 默认值 — cloud edition 默认启用云沙盒
kill136 May 31, 2026
7476ceb
fix(M13): keepAlive 续期失败时清僵尸沙盒 handle(liveness 硬化)
kill136 May 31, 2026
78df28a
feat(M13): file API /export-zip 沙盒化 — 从 E2B 沙盒收集文件打包下载
kill136 May 31, 2026
408d1bf
feat(M15×M13): publish 支持云沙盒 coding session — 沙盒内 build + 镜像本地 + 既有部署流程
kill136 May 31, 2026
7d51dad
feat(M16.b): Credit 钱包层 — account+init 1000+先免费(enforce off)+plan 接口预留
kill136 May 31, 2026
758125f
docs: 复核对齐 backlog — 标掉已完成项,修正完成度(2026-05-29 快照已滞后)
kill136 May 31, 2026
97db9ed
test: 护城河端到端体检 suite healthcheck-md-api(带真实 npm 依赖)
kill136 May 31, 2026
44ee347
fix(M8.c): deliver_app 幂等交付 — 修同 session 重复交付端口冲突致 serverUrl=null
kill136 May 31, 2026
a7c5c73
test: 护城河端到端体检 suite 第二轮 healthcheck-frontend(前端 Vite SPA)
kill136 May 31, 2026
fe90886
Revert "feat(M16.b): Credit 钱包层 — account+init 1000+先免费(enforce off)+…
kill136 May 31, 2026
c704115
test: 护城河端到端体检 suite 第三轮 healthcheck-fullstack(全栈 SaaS)
kill136 May 31, 2026
3f4d87a
fix(M8.c): deliver_app 注入空闲端口 — 修 agent 残留 dev server 占端口致 serverUrl=…
kill136 May 31, 2026
c528042
feat(mode-parity): 对齐 Manus 12 mode + coding 画布可见性 + chip mode 首条丢失修复…
kill136 Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
130 changes: 0 additions & 130 deletions AXON.md

This file was deleted.

70 changes: 70 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

**axon = Manus 复刻 + 编程护城河**(北极星 — 所有产品/架构决策的根):
- 形态完全对齐 Manus(三栏 workbench、12 种内建 mode chip、blueprint 卡片对话流、tldraw 画布、image preview panel)
- 差异化护城河 = 真实编程能力(slides/website/desktop-app 等 mode 必须用真实代码工程交付,不只是文本/截图)
- Manus 用 E2B Firecracker microVM 做沙盒,axon **不抄**(用本地 VFS + Sandpack 替代)
- LLM 路由:当前唯一可用 backend = axon-cloud GPT 5.5(codex-client.ts),不是 Claude

**Milestone 命名**:项目 refactor 用 `F<阶段>.<子任务>` 或 `M<阶段>.<子任务>` 命名(如 F5.b / M2.a / M4.b)。提交/记忆/对话都用这个 ID 引用历史决策。

## 铁律(每条都是硬性约束,没有例外)

### 铁律1:先读后改,无一例外
Expand Down Expand Up @@ -81,6 +91,20 @@ npm run test:watch # Watch mode
npm run test:ui # Vitest UI
```

### Evals(铁律 11:agent 评估大于一切)

端到端 eval 系统在 `evals/`,跑真实 WebSocket → ConversationLoop → LLM 链路:

- 入口:`evals/cli.ts`(`npx tsx evals/cli.ts <suite-name>`)
- Suite:`evals/suites/<name>/{cases.ts, harness.ts}` — case 含 prompt + contract,harness 起 ws client 喂消息收事件做断言
- Contracts:`noContextPollution` / `expectAssistantNotEmpty` / `expectAnyKeyword` / `expectToolCalled` / `combine`
- **vision 回归门一条命令**:`npx tsx evals/regression.ts`(默认跑 prompt-refactor + m5-m9 + m10-jsx/picker 共 8 套 + 汇总表对照基线;`--with-e2e` 加端到端长流程)。基线:prompt-refactor 5/5 · m5 10/10 · m6 6/6+skip · m7 3/3+skip · m8 5/5 · m9 1/1 · m10-jsx 3/3 · m10-picker 1/1(2026-05-25 实跑校准;m8 5/5 含 V2 第 5 case m8-harness-truth-negative)。**m8 是最重 suite,codex 负载下 agent 易没走完多轮流程假挂,批量 miss 必隔离单跑 `evals/suites/m8-deliver/run.ts` 确认 flaky vs 真退步**。
- 单套:`AXON_EVAL_DEBUG=1 npx tsx evals/suites/<name>/run.ts`(m6/m7/m8/m9 各自 run.ts)。老 suite 走 `evals/cli.ts <smoke|curated|...>`。
- 跑前必须有本地 axon-web 跑在 :3456(建议 `AXON_EVAL_DEBUG=1 ... tsx src/web-cli.ts &`;m8/e2e 加 `AXON_E2E_MAX_MS=20000` 压 e2e 上限)。
- **flaky**:codex 负载下重型多轮 case 易超时假挂 → `runSmokeCase` 已内置「超时+失败」自愈重试一次;批量仍假挂的隔离复跑确认([[feedback_never_kill_by_port_range]] 同 session 的 flaky roulette 教训)。

每次改 prompt/conversation/tool loop 后**必须**跑回归门、确认无真退步才能 commit。

### Running the Web UI

```bash
Expand Down Expand Up @@ -124,6 +148,7 @@ All tools extend `BaseTool`, define input schema with Zod, implement `execute()`
| Perception | Eye (camera), Ear (microphone) |
| Integration | MCP, Skills, CreateTool, SelfEvolve, Schedule |
| Structured | StructuredOutput, SubmitReview |
| Coding Pipeline (M5-M9) | enter/exit_coding_mode, propose_coding_spec, generate_coding_blueprint, verify_task, run_blueprint_tests, verify_against_spec, deliver_app, request_user_action(详见下文 Coding Agent Pipeline;多为 marker 工具,真逻辑在 conversation.ts 拦截)|

### Key Data Flow

Expand All @@ -143,6 +168,51 @@ Full-stack web application:
- **Client** (`src/web/client/`) - React SPA with Monaco Editor, file tree, multi-tab editing, checkpoint/rewind, blueprint console, activity dashboard
- **Shared** (`src/web/shared/`) - Shared types and utilities

### Prompt 子系统(M2.a/M4 重构后)

老路径 `src/prompt/`(SystemPromptBuilder + 40+ 字段 PromptContext + 6-15K tokens 注入)已**整体删除**(`src/prompt/` 目录已不存在,仅余各新文件注释里的历史引用),由三路替代:

| 调用方 | 新构造器 | 说明 |
|---|---|---|
| Web 主对话 | `src/web/server/manus-prompt.ts` (`buildManusSystemPrompt`) | M2.a 落地,对齐 Manus 极简风,~3 静态段 + mode extra + 动态 env,<10ms 构造 |
| Sub-agent (Task/Explore/...) | `src/tools/agent-prompts.ts` (5 个常量) | `GENERAL_PURPOSE_AGENT_PROMPT` / `EXPLORE_AGENT_PROMPT` / `CODE_ANALYZER_PROMPT` / `BLUEPRINT_WORKER_PROMPT` / `WEBSITE_BUILDER_PROMPT`。agent.ts 通过 `options.systemPrompt` 直传字符串 |
| Loop fallback (schedule/未传 systemPrompt) | `src/core/loop-prompt.ts` (`buildLoopSystemPrompt`) | M4.b,identity + tool discipline + hostedTools + env,同步 <1ms |

**M4 状态(已完结)**:`src/prompt/` 整段已删除 —— 5 sub-agent prompts 搬到 `agent-prompts.ts`,`PromptBlock` 类型内联进 `manus-prompt.ts`,loop fallback 走 `loop-prompt.ts`。改动 prompt 走上面三个新文件,**不存在也不要新建 `src/prompt/`**。

### Mode Chip 系统(axon-web 主对话核心)

12 种内建 mode 对齐 Manus 1.6 Lite,前后端硬编码镜像:

- 配置源:`src/web/server/modeRegistry.ts` — 每 mode 含 `systemPromptExtra` 追加到 system prompt 末尾 + 可选 `toolFilter`(目前仅 `chat` mode 禁所有工具)
- 前端 chip:`src/web/client/src/pages/ManusWorkbench/ChatPane.tsx` — `PINNED_CHIPS`(4) + `POPOVER_CHIPS`(9),每 chip 的 `id` 对齐 modeRegistry mode id
- 消息协议:前端发 `message_start { payload: { content, mode } }` → WebSocket handler 调 `conversationManager.setSessionMode(sessionId, mode)` → manus-prompt.ts 把 `modeCfg.systemPromptExtra` 拼到 prompt 末尾
- 12 个 mode:`slides` / `website` / `desktop-app` / `design` / `video` / `app` / `schedule`(axon 加) / `wide-research` / `spreadsheet` / `visualization` / `audio` / `chat`(axon 加)
- mode 决定**产品形态**而不只是 prompt:`website` mode LLM 第一调用 `propose_website_builder` blueprint 卡片,确认后才走 `apply_webpage_edits` 真改文件

### Coding Agent Pipeline(M5-M9 — vision 五层,2026-05-24 全落地)

北极星 vision([docs/spec/vision.md](docs/spec/vision.md) + 各层 `docs/spec/roadmap/M{5..9}-overview.md`)的「编程护城河」流水线。普通任务走 base agent;编程任务自动升级到受 spec 约束的 coding agent,流程化交付**可运行**的工程。五层:

| 层 | 能力 | 关键工具 / 产物 | eval suite |
|---|---|---|---|
| L1 (M5) | 识别编程任务 → 升级 coding agent | `enter_coding_mode`/`exit_coding_mode`(翻 `state.mode='coding'`)| `evals/suites/m5-coding-agent` 10/10 |
| L2 (M6) | spec 引导卡片 + 硬契约 | `propose_coding_spec` → `<cwd>/spec.json`(每轮注入)| `m6-spec-card` |
| L3.a/b (M7) | 蓝图生成 + 串行执行 + 严格门 | `generate_coding_blueprint`/`verify_task` → `blueprint.json`(task 状态机)| `m7-blueprint` |
| L3.c/d/e (M8) | 测试 + 评估 + 交付 | `run_blueprint_tests`/`verify_against_spec`/`deliver_app` → `test-report.json`/`acceptance.json`/`delivery.json` | `m8-deliver` 5/5 |
| L4 (M9) | user-in-the-loop 卡点协作 | `request_user_action`(前端金色 inline 状态条)| `m9-collab` |

**真闭环实证**:`evals/suites/e2e-full-flow` —— coding agent 自主把一个真实 Express TODO API 跑通全 5 层(spec→蓝图→执行→测试→验收 100%→交付),1/1 PASS。

**核心架构范式(改这套时必懂)**:
- **marker 工具 + conversation.ts 拦截**:上述 coding 工具几乎都是**纯 marker**(`BaseTool.execute(input)` 拿不到 sessionId/session — base.ts:83)。真逻辑(翻 mode / 落盘 spec/blueprint / 跑 typecheck / 双门交付)在 `conversation.ts` 的 tool-result 循环里**按 `toolUse.name` 拦截**(那里有 `state` + `sessionId` + `cwd`)。**拦截一律按 `toolUse.name` + `toolUse.input`,别碰 `result.data`**(`executeToolWithCancellation` 不保真 data —— M7 踩过坑)。
- **结构化硬门 > prompt 祈祷**:实测「应该先做 X」纯 prompt 只 ~50% 遵守率。所以硬约束都**代码强制**:M6.f `getFilteredTools` 在无 spec 时物理屏蔽 Write/Edit;M7 `verify_task` server 真跑 typecheck 绿才置 task done;M8 `deliver_app` 双硬门(测试绿 + 验收 100%)物理屏蔽。门由 server 确定性裁决,不信 LLM 口头。
- **AI-native 不过度工程化(铁律2)**:拆解/验收评分让 LLM 自己产出当工具入参(agent 本就是 LLM),server 只做确定性校验/落盘。M7 实测**否决了复用 SmartPlanner**(强耦合 + parallelGroups + 多一次 LLM 调用)。
- coding identity 在 `manus-prompt.ts` 的 `CODING_AGENT_IDENTITY`(`mode==='coding'` 时替换 base identity);spec/blueprint/进度每轮注入动态块。
- `modeRegistry.ts` 的 `coding` mode 黑名单屏蔽非编程工具,但**保留 web_search + Browser**(编程护城河)。

**eval 自愈**:`runSmokeCase`(m5 harness)对「某轮命中超时 deadline 且契约未过」的 stall 假挂自动重试一次(codex 负载下重型多轮 case 易超时,根治 flaky roulette)。

### Multi-Agent System

- **Blueprint** (`src/blueprint/`) - Task decomposition into execution graphs, planner, lead agent, autonomous workers
Expand Down
Loading
Loading