把「N 个工作区 × M 个 Agent 会话」收敛为 一个派发口 + 一个收件箱。
派任务 = 写信,做决策 = 回信;工作区由你指定,活派给哪个 Agent 也由你定。
作为 FDE,一个人同时负责前端、后端、Skill 多个工作区;QoderCLI、CodeX、DeepSeek Harness 又各是一套终端会话。切目录、切窗口、切上下文,全靠人挪。
B 依赖 A 的产出,就只能盯着 A 跑完,再把结论复制粘贴进 B 的会话重新派——人同时当轮询器和搬运工。
复杂任务超出单个 Agent 的上下文,得先拆解、再分阶段实现——每个阶段开会话、传上下文、盯进度,全是手动串接。
任务只能坐在工位上派;人一离开,Agent 干完了没人验收、想到新需求没处派——回到座位才发现一切都在等你。
所以我做了一个邮箱。往下滑,看四个场景。
指定工作区与执行 Agent
回车即寄出
只装必须由人裁决的事
清零 = 没有 Agent 在等你
每个任务在独立 git worktree 中执行,你的工作目录永远不被写;
执行、排队、验收、合入由系统完成,人只负责派任务、挑 Agent、做决策。
派任务 = 写一封信。连着给三个工作区各发一封,每封还能指定不同的执行 Agent——写完就走,Agent 们并行开工。
AMail给 B 声明「等 A 完成后开始」。A 合入的那一刻,B 自动启动——还自动带上 A 的交付摘要。
AMail复杂任务超出单个 Agent 的上下文?只写业务目标,Agent 拆成整链计划;人审一次计划,整条链跨工作区自动接力——拿不准的事,才回信问你。
AMail整套能力又封装成了 CLI,接给钉钉上的 Hermes 机器人——在手机上发消息就能给电脑派任务、收回信、做裁决。
真实界面截图位:showcase/assets/real-ui.png(替换后自动显示)真实产品界面。
Go 后端 + React 前端 + Tauri 桌面壳 + CLI 编排面,全程由 CLI coding agent 在工程约束下完成。
Git 仓库统计。单一贡献者,5 天累计十万行级变更。
凌晨 1 点到 4 点的连续提交。来自睡前批量派发的 issue 流水线:每个 issue 在独立 worktree 里由 agent 执行,过验收闸门才 commit——我在睡觉,系统在交付。
把多工作区的 CLI coding agent 任务从「会话式交互」变成邮箱式工作流:写信派发 → 系统调度执行 → 收件箱回信裁决 → squash 合入。纯本地单机,只监听 127.0.0.1。
Web UI / 桌面壳
/ CLI 三入口
调度器 · SQLite
WS 事件流
每任务独立隔离
用户目录零污染
ACP 协议桥接
模型动态枚举
询问/验收/异常
人只做决策
merge-tree 预检
一任务一干净 commit
单二进制交付:前端构建产物 go:embed 进后端,SQLite 纯 Go 驱动(CGO-free)。
数字容易引来「是不是 AI 批量灌的水」的追问——所以重点不是产量,是让几百次无人值守执行不跑偏的约束体系。
PRD 与架构文档是唯一契约,对 agent 只读;枚举值必须与契约逐字一致。发现契约缺口时,agent 只能按字面实现并登记偏差,由人裁决——产品定义的修改权永远在人手里。
需求拆成 42 个 ISSUE 文档,脚本为每个 issue 开独立 git worktree 并行调 CLI agent;每步必须通过客观验收命令(测试/lint,只信退出码),失败自动带输出重试,通过才允许 commit。
后端一律先写失败测试再实现,且明令禁止为了变绿删改测试断言语义;外部依赖全部用 fake,测试不访问网络、不依赖真实 agent。结果:后端测试代码比产品代码还多 31%。
项目中后期,新 issue 直接用 AMail 派给 AMail 自己:睡前把任务写成信(带依赖关系)批量寄出,无人值守跑一夜,早上在收件箱验收合入。上面那张凌晨提交截图,就是这套流程的产物。
派任务 = 把意图描述清楚。打字要经过一层额外的大脑编码——又慢,还会丢细节;语音是把想法直接倒出来,信息保真度更高。这 5 天里给 Agent 的需求描述与问题反馈,绝大多数是按住快捷键口述成文的——写信派发的邮箱范式和语音输入天然契合:一段话就是一封信。
语音输入用量统计。按住快捷键随时口述,到哪输入都按当前场景优化——写信框里的任务描述、收件箱里的回信意见,都是说出来的。
测试代码 > 产品代码。后端 29,762 行测试对 22,767 行产品代码——这不是 AI 生成代码的常见形状,是 TDD 闸门强制出来的形状。
不把 Agent 当作拥有生产权限的黑盒。一切执行都发生在可丢弃的隔离 worktree 里,合入前有客观验收与冲突预检闸门,跑坏了丢弃即可。
不用共享工作目录并发修改代码。每个任务一个 worktree,用户的工作目录与未提交改动全程不被触碰,多任务天然并行。
不要求人一直盯着终端轮询。需要人的事都会变成一封等回的信;收件箱清零即自由——人是决策者,不是轮询器。
「工具是我做的,工具也是我用的。
这份 demo 想展示的不是某个功能,
而是一个人 + 一组 Agent 的工程组织方式。」