设计地图
本文展开设计原理中的工程位置与结果三指标,帮助从“想改善什么”逐层找到“具体可以改什么”。各分支是可选择的方向,不是需要全部实现的功能清单。
先找到真实瓶颈,再选最直接的改法。收益看整个任务:便宜模型若反复返工,可能更贵;上下文缩短若丢失必要信息,可能更慢;增加检测若引入误报,未必改善效果。
工程位置
确定想改善的问题后,再选择改动落在哪里。同一种表现可能有不同原因,不必为每个问题新增一层机制。
- 模型
- 推理、指令遵循、模态能力
- 延迟与费率
- 核心机制
- 核心循环与任务推进
- 工作模式切换,例如
EnterXXMode? - 多 Agent 分工与交接
- 运行时
- 持续执行与状态保存
- 异常检测与恢复
- 工具
- 接口与实际执行
- 结果反馈与外部能力接入
- 上下文管理
- 信息召回与记忆
- 压缩、缓存与工具输出管理
- 自反馈
- 结果检查与偏差识别
- 完成验证
结果三指标
- 速度
- 模型推理耗时
- 单次推理延迟
- 选择更快的模型
- 按任务难度调整推理强度和输出长度,避免削弱必要判断后增加返工
- 推理轮次
- 固定流程程序化,减少不需要模型判断的往返
- 例如项目初始化时注入
file_tree与task_read的必要结果,直接提供文件树与任务记录
- 例如项目初始化时注入
- 固定流程程序化,减少不需要模型判断的往返
- 单次推理延迟
- 执行时长
- 单个工具耗时
- 优化慢工具、缩小查询范围、复用已有结果
- 串行等待
- 并行调用互不依赖的工具
- 将可独立交付的任务分给子 Agent
- 并行收益需覆盖启动、交接和整合成本;有依赖的工作仍需串行
- 单个工具耗时
- 用户等待体验
- 流式输出
- 尽早提供可用的阶段结果
- 改善感知等待,不一定缩短总完成时间
- 模型推理耗时
- 成本
- 模型费率
- 提供轻量与高能力模型,例如 lite/premium 两档
- 按任务难度、模态与错误后果分流
- 简单、易验收的任务交给便宜模型
- 可比较的任务与模型搭配
- UI—kimi
- 简单任务—minimax2.1max
- 快速开发—MiniMAX / Claude
- BUG 修复—Codex
- 模型选择随实测更新,不固定为品牌与任务的一一对应
- 输入 token
- 上下文长度
- 历史对话
- 压缩已完成过程,保留当前目标、关键约束、未决事项和证据入口
- 选择压缩或重置时机
- 达到上下文容量阈值时压缩记忆
- 在检查点(checkpoint)通过
is_new_topic判断话题是否切换,并建议清空或压缩 - 按闲置时间清理,例如空闲超过 24 小时清空 session 上下文
- 长时间闲置不等于信息失效;清空前保存继续任务所需的状态,并说明信息损失
- 工具执行结果
- 大结果文件化,返回摘要、状态和检索入口
- 文件化之后仍需容易找回,不能只隐藏输出
- 大结果文件化,返回摘要、状态和检索入口
- 文件阅读
- 先看结构、函数与类的定义及行号,再精确读取实现
- 概览不能替代完成任务所需的实现细节
- 大文件按需检索
- 只有维护需要时才拆文件,不为节省一次读取破坏结构
- 先看结构、函数与类的定义及行号,再精确读取实现
- 探索过程
- 复用项目知识与历史结果,减少重复探索
- 子 Agent 隔离独立探索,只向主 Agent 返回必要结果
- 例如让从空上下文开始的子 Agent 探索仓库
- 减轻主上下文,但会增加子 Agent 调用与交接成本
- 检索增强(RAG),按需召回信息
- 留意召回遗漏,不能把未检索到当成不存在
- 历史对话
- 重复输入的计费
- Prompt Cache
- 合理设置缓存保留时间
- 例如对话结束后将缓存延长到 15 分钟,供后续对话复用
- 收益取决于供应商计费、命中率与复用间隔;延长缓存也可能有成本
- 上下文长度
- 输出与推理 token
- 避免重复解释和无用长输出
- 按任务调整推理预算,不削减必要推理与验证
- 调用次数
- 用脚本替代固定操作
- 改善工具反馈,尽早暴露失败与前置条件,减少返工
- 不为减少次数把过多职责塞进一次调用,导致失败后难以恢复
- 工具/API 费用
- 缓存可复用结果,避免重复生成、下载与查询
- 使用批处理或更合适的服务
- 同时考虑时效、隐私、质量与维护成本
- 模型费率
- 效果
- 上下文
- 目标与标准
- 明确目标、偏好和验收标准,先区分需求未表达与模型做不到
- 方向未定时,用候选方案、小样和对比共同澄清
- 设计任务可明确参考风格,以及颜色、字体、间距等 design token
- 代码召回
- 精确名称与符号:关键词搜索、符号索引
- 依赖与调用关系:调用关系图、图检索
- 语义相似与模糊描述:语义检索
- 按问题组合方法,图检索不是向量检索的通用替代
- 环境反馈
- 测试与构建结果
- 浏览器自动化
- 基于模板的快速测试
- 真实使用路径的交互验证,补足模板覆盖不到的行为
- 截图与实际交互反馈
- 记忆
- 长期知识
- 在项目文档、规则或 Skill 中维护稳定知识
- 例如用
xxrules一类规则文件提供项目约定 - 明确权威来源和更新责任,不把所有历史变成常驻上下文
- 例如用
- 保留可检索的历史对话,按需查回
- 在项目文档、规则或 Skill 中维护稳定知识
- 当前任务状态
- 维护目标、待办、进展、阻塞与完成依据
- 例如 TODO 模式,用待办与完成状态支持持续推进
- 记录应帮助决定下一步,不只是增加维护工作
- 维护目标、待办、进展、阻塞与完成依据
- 长期知识
- 目标与标准
- 智力
- 理解、推理、规划、设计与问题定位
- 必要信息与反馈已经提供,仍无法正确判断时,考虑更强或更适合的模型
- 任务分工
- 可拆分且能独立验收的任务,交给各自适合的模型
- 不仅靠增加提示词或检测层弥补根本能力不足
- 理解、推理、规划、设计与问题定位
- 能力
- 工具设计
- 命令执行:状态、错误与恢复路径是否清楚
- 文件读取、写入与编辑:能否准确定位、修改并核对结果
- 交互入口:
Interaction工具 - 明确区分成功、失败与未知结果
- 外部能力接入
- API、MCP、专用工具
- 确认权限、环境与可靠性;工具多不等于任务能力强
- API、MCP、专用工具
- 方法与经验
- Skill 提供成熟方法、经验与配套资源
- 方法不能替代实际工具、环境与权限
- Skill 提供成熟方法、经验与配套资源
- 完成验证
- 测试、构建、浏览器操作、人工验收入口
- 检查真实交付物,不以文字宣称或工具调用成功代替任务完成
- 测试、构建、浏览器操作、人工验收入口
- 工具设计
- 上下文
具体场景与问题
这些问题通常跨越多个指标,需要组合前面的手段。
- 开发阶段
- 首次开发
- 只做出 Demo、过早结束
- 提前明确可用范围与完成依据
- 保留剩余工作,用真实使用路径验收
- 只做出 Demo、过早结束
- 迭代开发
- 修改新功能时破坏旧功能
- 维护有效规格与回归测试
- 明确应保留的行为,变更规格须有依据,不靠一句“不要破坏”保证
- 持续排障陷入循环
- 检查缺的是证据、能力,还是新的排查假设
- 必要时保存状态后换方法、换模型或重置上下文
- 不自动把重启视为解决方案;也要让用户知道何时可以重置、会失去什么
- 修改新功能时破坏旧功能
- 首次开发
- 界面设计
- 模板化、风格不一致
- 明确视觉方向与设计变量
- 定位用户要修改的页面内容
- 虚拟编辑:选择页面元素,将元素类型和源码位置提供给模型
- 动态渲染内容还需提供实际元素与值,区分同一源码生成的不同内容
- 实现偏离预期
- 用实际渲染与交互反馈迭代
- 模板化、风格不一致
- 特化需求
- 客服
- 补充业务知识、行动权限与场景验收
- 部署
- 模板脚本
- Kamal 等私有化部署方案
- 结合项目环境选择,不预设一种工具适合所有项目
- 客服
选定方向后,按专题索引进入具体的设计、验证或维护方法。