启发来源及想法
最近读了 spring 作者的访谈文章有些启发,文章核心思路是
从企业稳定性考虑出发,将agent作为原子能力起进行编排,由一个固定算法,进行规划,通过规划进行任务拆解并分配给agent进行执行。
从我的过往经验出发。Agent需要一个是能够持续自我迭代,优化效果。另一个是需要有一个反馈对抗的agent帮助其将任务完成到一个更高的水平及更高的准确性。
具体示例场景
以前端程序员的日常需求开发为例,可以将工作流程拆分为以下几个步骤:
- 需求理解:了解产品功能现状以及新的需求功能变动逻辑
- 技术设计:从代码实现角度出发,分析新功能实现需要如何做到,以及功能点的拆分
- 代码开发与测试:按照功能点的拆分,逐个实现功能点,并阶段性进行页面上的测试回归验证功能点的代码正确性
- 另外,在功能点的实际开发之前,需要分析当前代码架构是否复杂度不高,如果复杂度较高,需要重新规划重构代码,然后再实现新的功能
- 系统边界情况测试
从agent执行的角度来看,它需要具备以下几个成熟的能力:
- 了解当前产品逻辑
- 能够稳定操作访问前端页面,并进行长交互流程操作
- 在开发过程中,能严格且稳定地执行测试场景的交互流程
- 有良好的代码架构的 sense,分辨出在当前代码上实现某个功能后,是否会让代码复杂度飙升,超出可控范围(低成本的理解和改造代码)
示例场景的 Agent 能力分工
能力一,需要构建维护一个完善的产品逻辑记忆库
能力二,基于对产品UI的理解,能顺利在产品页面上进行复杂交互。
能力三,需要 Agent 分工,一个负责编写代码,另一个负责架构规划与复杂代码的辨识与重构分析建议。
能力一和二可以分别各自对应一个 Agent,但是也需要一人拆成两个角色,一个负责执行,另一个负责验证和反思。
对于以上每个 Agent,都需要有自己的一个知识库与记忆库,能将自己的反思经验,沉淀下来,并在未来合适的时机触发,唤起这个经验。