独立开发2.1:Agent智能路由能实现吗

未来的哇咔咔4 分钟阅读

独立开发2:less intelligence,more structure

背景与基础概念

上面这个文档仍然是在AI编程工具中实现agent调用和自动化工作流的基础,它刻画了一个核心的概念:操作人要指挥 AI 完成一个任务。

角色分工

  1. 操作人做的事情:定义任务、给出约束条件、给出基础材料参考(prd、structure、uiux;project_rules、docs_index)

  2. AI 要做的事情:根据人的指令做事情

  3. 任务类型:编码、文档维护

核心问题探讨

项目内外的 Agent 分工

  1. 有些 agent 需要很重的资料库
  2. 有些 agent 不需要资料库,但是需要很强的任务规划能力
  3. 当前方案:将 prd、structure、uiux 、project_rules 的构建交给外部 agent,因为它们都需要固定资料库的支撑。

项目内:一个 Agent 还是一堆 Agent?

这个问题算是核心问题,它问的其实是,人在给出一个任务之后,如何执行任务。

固定工作流

操作人自己知道应该干什么,所以提前写了很多个流程,比如"文档更新流程"、"测试流程"。一个通用 agent 依据操作人给出的【任务+流程】就知道先收集什么信息,再做什么开发和更新。

智能路由

操作人只负责给出任务,不管怎么干。这要求操作人事先需要训练一个任务编排的 agent 和一堆专业 agent。操作人给出指令之后,由任务编排 agent 完成意图解析和任务编排,监督其他 agent 完成任务。

方案对比

  1. 工作量
  • 固定工作流:人同时也是智能路由,需要深度维护流程文档
  • 智能路由:agent 也需要人来维护
  • 结论:二者工作量其实差不多
  1. 稳定性
  • 固定工作流:稳定性比较高,每次 agent 都要按照固定流程做事情,任务执行结果好量化好溯源
  • 智能路由:agent 的自由度比较高,在任务编排和执行阶段的波动空间比较大
  1. 智能性和扩展性
  • 固定工作流:是工作流,不太好扩展,但对于一个固定场景其实是够用的,只是较为固定的流程可能会限制模型能力的发挥
  • 智能路由:会给 agent 指定不同的角色,他们的弹性也比较大,随着模型能力的升级 agent 的工作质量也会提高。另外,方案二是一套活系统,随时可以在 agent 列表中增加新的角色,拓展新的能力

项目初始化谁来做?

  1. 项目初始化的主要工作:根据项目的初始材料去构建其他材料,比如根据已有文档构建 docs_index 文档地图。
  2. 项目初始化和项目维护对应了两套规则。比如如果要初始化文档地图那就要知道文档地图怎么设计,但如果只是维护,则依样画葫芦就行。这对 agent 的任务编排来说,是个比较复杂的事情,可能会让整套系统变得很重。
  3. 当前选择让 agent 包揽项目的初始化和维护比较好,这样未来的拓展性比较强。

最终方案

整体架构

  1. 操作人的工作:创建完整的文件夹和文档(包括空文档)
  2. Agent 分工:外部 agent + 内部 agent
  3. 内部 agent:一个任务编排 agent(任务规划引擎)+ 一群专业 agent
  4. 专业 agent 的任务:任务执行(比如编程、测试等)、文档维护(包括创建和创建之后增删改)

任务执行细节

  1. 任务执行:要给 agent 指定角色

  2. 文档创建

  • 要告诉 agent,如果文档为空则执行初始化,初始化的要求每个文档不一样
  • Database 文档初始化规则
  • Service 文档初始化规则
  • Workflow 文档初始化规则
  • Docs_index 文档初始化规则:但最好是操作人来进行初始化
  • Memory 文档初始化规则:但最好是操作人来进行初始化
  1. 文档维护:完成对应的任务之后要对文档进行增删改

核心文档目录说明

  1. 前端文件夹
  2. 后端文件夹
  3. Core_documents:
  • Library(Prd、Structure、Uiux、Service、Workflow、Database、Develp_plan、History_record)
  • Docs_index
  • Project_rules:操作人填充初始内容
  • Memory:操作人填充初始内容
  • Test_instances:测试用例

文档维护职责矩阵

产品经理 Agent

  1. prd.md:维护用户故事和产品需求,确保其清晰、无歧义
  2. uiux.md:维护用户界面和交互流程设计

架构师 Agent

  1. structure.md:维护项目的高阶技术选型和系统架构图
  2. database.md:维护详细的数据库表结构、字段和关系
  3. service.md:维护所有 API 端点的定义、请求和响应格式
  4. workflow.md:维护核心业务的流程图和状态机
  5. develp_plan/:维护每一个版本的开发计划

工程专家 Agent

  1. frontend/:前端工程专家 Agent,维护所有前端代码
  2. backend/:后端工程专家 Agent,维护所有后端代码

测试人员 Agent

test_instances/:维护和执行测试用例,产出测试报告

项目管理员 Agent

  1. project_rules.md:维护项目级别的编码规范、Git 流程等规则
  2. docs_index.md:维护所有核心文档的索引和摘要,作为项目地图
  3. history_record/:在任务完成后,创建新的历史记录文件,记录变更
  4. memory.md:在任务完成后,将本次任务的核心结论或重要原则追加到记忆文档中