独立开发2.1:Agent智能路由能实现吗
未来的哇咔咔••4 分钟阅读
独立开发2:less intelligence,more structure
背景与基础概念
上面这个文档仍然是在AI编程工具中实现agent调用和自动化工作流的基础,它刻画了一个核心的概念:操作人要指挥 AI 完成一个任务。
角色分工
-
操作人做的事情:定义任务、给出约束条件、给出基础材料参考(prd、structure、uiux;project_rules、docs_index)
-
AI 要做的事情:根据人的指令做事情
-
任务类型:编码、文档维护
核心问题探讨
项目内外的 Agent 分工
- 有些 agent 需要很重的资料库
- 有些 agent 不需要资料库,但是需要很强的任务规划能力
- 当前方案:将 prd、structure、uiux 、project_rules 的构建交给外部 agent,因为它们都需要固定资料库的支撑。
项目内:一个 Agent 还是一堆 Agent?
这个问题算是核心问题,它问的其实是,人在给出一个任务之后,如何执行任务。
固定工作流
操作人自己知道应该干什么,所以提前写了很多个流程,比如"文档更新流程"、"测试流程"。一个通用 agent 依据操作人给出的【任务+流程】就知道先收集什么信息,再做什么开发和更新。
智能路由
操作人只负责给出任务,不管怎么干。这要求操作人事先需要训练一个任务编排的 agent 和一堆专业 agent。操作人给出指令之后,由任务编排 agent 完成意图解析和任务编排,监督其他 agent 完成任务。
方案对比
- 工作量
- 固定工作流:人同时也是智能路由,需要深度维护流程文档
- 智能路由:agent 也需要人来维护
- 结论:二者工作量其实差不多
- 稳定性
- 固定工作流:稳定性比较高,每次 agent 都要按照固定流程做事情,任务执行结果好量化好溯源
- 智能路由:agent 的自由度比较高,在任务编排和执行阶段的波动空间比较大
- 智能性和扩展性
- 固定工作流:是工作流,不太好扩展,但对于一个固定场景其实是够用的,只是较为固定的流程可能会限制模型能力的发挥
- 智能路由:会给 agent 指定不同的角色,他们的弹性也比较大,随着模型能力的升级 agent 的工作质量也会提高。另外,方案二是一套活系统,随时可以在 agent 列表中增加新的角色,拓展新的能力
项目初始化谁来做?
- 项目初始化的主要工作:根据项目的初始材料去构建其他材料,比如根据已有文档构建 docs_index 文档地图。
- 项目初始化和项目维护对应了两套规则。比如如果要初始化文档地图那就要知道文档地图怎么设计,但如果只是维护,则依样画葫芦就行。这对 agent 的任务编排来说,是个比较复杂的事情,可能会让整套系统变得很重。
- 当前选择让 agent 包揽项目的初始化和维护比较好,这样未来的拓展性比较强。
最终方案
整体架构
- 操作人的工作:创建完整的文件夹和文档(包括空文档)
- Agent 分工:外部 agent + 内部 agent
- 内部 agent:一个任务编排 agent(任务规划引擎)+ 一群专业 agent
- 专业 agent 的任务:任务执行(比如编程、测试等)、文档维护(包括创建和创建之后增删改)
任务执行细节
-
任务执行:要给 agent 指定角色
-
文档创建
- 要告诉 agent,如果文档为空则执行初始化,初始化的要求每个文档不一样
- Database 文档初始化规则
- Service 文档初始化规则
- Workflow 文档初始化规则
- Docs_index 文档初始化规则:但最好是操作人来进行初始化
- Memory 文档初始化规则:但最好是操作人来进行初始化
- 文档维护:完成对应的任务之后要对文档进行增删改
核心文档目录说明
- 前端文件夹
- 后端文件夹
- Core_documents:
- Library(Prd、Structure、Uiux、Service、Workflow、Database、Develp_plan、History_record)
- Docs_index
- Project_rules:操作人填充初始内容
- Memory:操作人填充初始内容
- Test_instances:测试用例
文档维护职责矩阵
产品经理 Agent
- prd.md:维护用户故事和产品需求,确保其清晰、无歧义
- uiux.md:维护用户界面和交互流程设计
架构师 Agent
- structure.md:维护项目的高阶技术选型和系统架构图
- database.md:维护详细的数据库表结构、字段和关系
- service.md:维护所有 API 端点的定义、请求和响应格式
- workflow.md:维护核心业务的流程图和状态机
- develp_plan/:维护每一个版本的开发计划
工程专家 Agent
- frontend/:前端工程专家 Agent,维护所有前端代码
- backend/:后端工程专家 Agent,维护所有后端代码
测试人员 Agent
test_instances/:维护和执行测试用例,产出测试报告
项目管理员 Agent
- project_rules.md:维护项目级别的编码规范、Git 流程等规则
- docs_index.md:维护所有核心文档的索引和摘要,作为项目地图
- history_record/:在任务完成后,创建新的历史记录文件,记录变更
- memory.md:在任务完成后,将本次任务的核心结论或重要原则追加到记忆文档中