s00 到 s48:渐进式 Agent 工程设计
AI 对话的本质是一个 messages 数组的往返
一个 CLI 产品的起点是 package.json 的 bin 字段
Agent 的「手」是子进程;安全检查必须在执行前
整个 AI Agent 的秘密就是一个 while 循环
messages 数组不是日志,是 Agent 的工作记忆
不要 catch 然后 crash,而是把错误告诉模型让它修正
配置优先级:CLI 参数 > 环境变量 > 项目配置 > 全局配置 > 默认值
用户需要知道每次对话花了多少钱
工具是 name + schema + call 三元组,循环不需要知道工具细节
路径安全检查必须在工具层,不能依赖 prompt 约束
精确替换比整文件覆写节省 90% 的 token
搜索是 Agent 最高频的工具——先找到再修改
工具列表的排序必须稳定——因为 prompt cache 依赖前缀一致
终端 UI 和 Web UI 的心智模型是一样的——组件 + 状态 + 渲染
不同消息类型需要不同的视觉呈现
输入体验决定产品体验——多行、历史、快捷键缺一不可
REPL 是 CLI 产品的「主界面」——它把所有组件组装成体验
系统提示不是一段话,是一组分层组装的结构化片段
项目规则是 Agent 最重要的上下文来源——比代码本身更重要
prompt cache 命中率直接决定成本——工具列表排序不能随便改
流式不是可选优化,是 Agent 产品的基本体验要求
工具调用也是流式的——JSON 是一段一段到达的,需要边收边拼
读操作可以并行,写操作必须串行——用标记而不是猜测
CLI 启动速度是用户留存的第一个门槛
压缩不是删除历史,是用摘要替换细节——保留记忆的骨架
压缩策略必须递进:先轻量尝试,再深度压缩,最后紧急兜底
工具结果可能比对话本身还大——必须有预算控制和磁盘替换机制
规划不是额外步骤,是核心能力——有规划的 Agent 完成率翻倍
子 Agent 共享文件系统但不共享对话历史——隔离的是记忆,不是环境
子 Agent 的能力必须小于父 Agent——权力越大,风险越大
知识注入通过 tool_result 而非 system prompt——按需加载,不浪费 token
任务不只是 todo list——它是多 Agent 协作的共享数据结构
权限不靠 prompt 约束——靠代码层面的物理隔离和规则引擎
权限提示不是打断,是信任建设——用户看到预览后更愿意授权
安全下限不可被子级放宽——只能更严,不能更松
MCP 让你的 Agent 工具集从十几个扩展到无限——但你只为用到的付费
你的 CLI 既是 MCP 客户端也是 MCP 服务端——这是生态的双向性
会话不是用完即弃——真正的工具让你随时回来继续
插件系统把你的产品从工具变成平台——生态是护城河
好的 Agent 系统让用户通过 JSON 定义新 Agent——零代码扩展
协调器的 prompt 动态描述 Worker 能用什么工具——是文档,不是代码
文件系统是最可靠的进程间通信——不需要消息队列
多 Agent 系统的稳定性取决于协议设计,不是 Agent 智能
Git Worktree 给每个 Agent 一个平行世界——文件不冲突,提交不混乱
错误恢复不是 retry 3 次——是一套分级递进的策略栈
Feature flag 不是开关——是让你在不回滚代码的情况下关闭出问题的功能
打包不只是编译——是把你的产品变成任何人一条命令就能用的东西
与操作系统集成不一定需要写 C++——4 种策略各有适用场景
遥测是产品闭环的最后一环——没有数据就没有迭代方向