作者汪晟杰——腾讯云AI代码助手技术产品专家,腾讯资深产品专家,20年工作经验,负责腾讯云开发者AI代码助手产品规划设计与运营,十多年协作SaaS和 SAP 云平台、SuccessFactors HCM、Sybase 数据库、PowerDesigner 等产品的开发经理,在软件架构设计、产品管理和项目工程管理、团队敏捷、AI研发提效等方面拥有丰富的行业经验。
▼
本文整理自汪晟杰在AiDD研发数字峰会深圳站的演讲内容。AiDD峰会是具有专业性、专注性、全面性与前瞻性的顶级 AI 数字峰会,旨在协助企业利用AI技术深化计算机对现实世界的理解,推动研发进入智能化和数字化的新时代。下面,作者将从以下七个方面进行内容阐述:
先来聊聊SWE Agent。从宏观角度作为软件工程师的智能体,应该像讲议左图一样,具备工程师的「专业」,除了具备代码专业知识的Skills外,还需要过往开发项目的经验(Career Path)、自主学习的分析能力(Education,具备联网检索学习能力),更需要有专业领域的解决工程问题的能力。于是最近比较火的SWE Benchmark就以这样的目标诞生,如右图,通过一系列Issues的自动思考修复的解决率,从而评判SWE Agent所拥有的「智能体」的阶段。
从单智能体到多智能体的演进
取决于场景的复杂程度,我们又逐步引入从单智能体到多智能体的解决方案。如下图所示。
- 单智能体,执行单一任务,并逐步深挖拆解,反思,试错,最后得出一个更好的结果。
- 多智能体,类似去中心化的思路,通过多个智能体的协作,强调自主性,配合或者对抗,根据最终结果选举出最后的对抗结果。这类多智能体往往去解决复杂的工程问题,但这类复杂问题多依赖于模型,并需要在上层对抗中有策略去丢弃破解循环对抗可能性,从而停止协作并给出结论,防止无限陷入思考对抗。
我认为,智能体更类比人,眼睛是感知体,大脑是记忆体,手脚是行动体。接下来我根据这大部分,分享一下我对这块的深度理解,而多智能体就像是「斯坦福小镇」游戏,获得一个可长期运行的「仿社会体」的形态。
面向代码的知识库建设
腾讯云AI代码助手在推进更关心代码层面上可否采用RAG的检索增强技术。腾讯云AI代码助手通过如下的流程,对于代码型文档和代码做了特别的区分,并增强了在索引过程中额外的上下文信息,并提供了召回的相关配资,从而在既有的检索到召回的流程下得到更好的效果。
构建自主混合多源知识库Autonomy Hybrid Multiple Knowledge Base
现在很多做知识库的产品,都会限制文档格式和内容,但企业内部都很难按此优化文档,从而对于知识库的建设带来了门槛。
另外一个是多种用途的知识库可以混合使用,比如企业核心代码库、企业研发规范等知识库建设后,都有可能被叠加使用,甚至一个知识库可以像网盘那样随心丢入文件,在召回的时候更智能的归类和特征提取。
第三个,通过简单对话自主发现我该选取哪个知识库,生成对话的效果,设置过滤条件和阈值,改写并反思下一轮提问增强的改写建议。
上面三点正是构建自主混合多源知识库的方案的探索的核心方向(AHM-KB)。
代码场景下知识图谱
我参与建设PowerDesigner(一款数据库建模工具)内核,在那个过程中,我们就提出了类似代码下的知识图谱,因为建模本质是对需求的结构化和可视化。在大模型时代,这些建模信息会是知识图谱构建的核心数据之一。如下图所示,譬如我去问 「实现一个跨地域的世界时钟的程序」,那么它可以通过什么地域的知识点,分析到需要对时间和当前locale转换,从而关联并发现TimeUtils类下的某个函数,并找到其关联的一些系统时间函数。
单智能体与多智能体的不同的扩展
1. 提示词调优扩展:在IDE里的编码阶段,比如代码补全、解释和生成注释等场景,流程比较固化,企业的定制需求绝大部分是在是否可以修正提示词,或者增加一个自定义指令与其背后的提示词而已。
2. 结合企业业务服务,用在对话的扩展上。这里一般有两种方法,第一个是无代码可视化的配置,如腾讯元宝、GPT Store等。通过Schema的可视化,定义对话的人机交互,如在扩展对话按钮、交互按钮行为、下轮推荐等等,从而快速可以实现一个免发版即部署的在线扩展智能体管理方案。另一个是高代码的扩展,就如GitHub Copilot Extension一样,本质上提供了插件方式的扩展和接入,让对接业务系统用代码方式来写并定义好申明,通过插件发布机制上线。
3. 智能感知业务。用于多智能体场景下,前序的行动决策(如Function call等技术)作为后续智能体的感知,而行动的决策又给予下一个智能体的感知。
END