《A3--祝海林--如何实现 agentic code agent.pdf》由会员分享,可在线阅读,更多相关《A3--祝海林--如何实现 agentic code agent.pdf(55页珍藏版)》请在三个皮匠报告上搜索。
1、AI辅助编程工具 auto-coder 技术揭秘如何实现 agentic code agent祝海林 Auto-Coder/Byzer-SQL 系列作者/前技术合伙人/IDEA 研究院开源code-agent:auto-coder 系列简介auto-coder auto-coder 辅助编程辅助编程引擎引擎auto-coder.WEB Web 版本 IDE auto-coder.RAG全球第一个 LLM Native RAG引擎,适合文档和代码检索auto-coder.CHAT支持IDE 内置 Teminal可以搭配任何IDE 工作byzer-llm 第一个大模型友好的大模应用开发库code
2、agent 实现大揭秘code agent 如何实现文件修改auto-coder如何实现文件的修改应用解析文本,然后对原始文件进行操作应用收集到上下文给到大模型大模型根据要求生成指定格式文本应用合并应用合并到原始到原始文文件件阅读阅读上下上下文文生成特定生成特定格式格式文本文本生成的文本格式类型editblockwholefile diff 010102020303 主流主流三种模式三种模式实际工程细节很多.大模型生成的SEARCH块无法和原文保持一模一样,需要引入文本相似度算法大模型会偷懒,诸如会输出“和原来的代码一样”。需要在prompt 以及检测策略上下功夫生成diff 无法合并需要容错
3、度高的 diff 格式支持editblockwhofilediff合并完成之后合并完成之后.merge merge 合并检查lintlint代码风格校验compilecompile编译检测Agentic 是当前最火的agenti实现模式Agentic 模式如何实现传统 Chat 模式Promtp-thinking(可选)-Response传统 Manual 模式收集收集上下文上下文生成特定格式可合并文生成特定格式可合并文本本合并合并代码代码结束结束需求需求2.2.思考思考根据当前用户的需求以及已知信息,规划该如何解决问题3.3.调用调用工具工具尝试调用工具(比如read_file)进一步获取更
4、多信息或者(write_file)进行文件修改1.1.用户用户需求需求用户提出代码需求,作为触发,开始进入循环5.5.调用工具,继续调用工具,继续思考思考重复34.4.观察结果,继续观察结果,继续思考思考结合新信息,变更继续进行思考,相当于重复26.6.完成需求完成需求要么满足需求停止,要么请求人为干预,要么达到指定循环次数退出Agentic 模式System Promptrole=user,content=xxxrole=assistant流式输出流式输出/流式流式解析解析role=user将工具执行反馈给将工具执行反馈给模模型型Agentic 实现流程R RA AC CI I提供工具集合描
5、述,并且约定工具的调用格式(xml/json 为主)用户提出问题1.非工具部分正常作为思考部分展示2.工具部分一直收集,直到工具部分完成,然后执行如果支持 prefix chat,那么可以不用这个trick循环直到目标达成效果展示思考部分(assistant)工具部分(assistant)执行工具部分(user)新一轮循环如何应对超大规模项目技术揭秘现实世界的困难上下文庞大上下文庞大010102020303项目项目庞大庞大PHP,JSP,DelphiPHP,JSP,Delphi比如Java 项目,动则5000-10000个文件项目模块划分不合理,一次简单的需求可能都涉及到庞大的上下文(比如几十
6、个甚至上百个文件)项目古老项目古老02020101上下文文件太多上下文文件太多收集到了太多上下文文件,就算单个文件不大,累加也会超出大模型窗口根据需求查找根据需求查找上下文上下文项目太大,如何根据需求系统自主找到参考以及需要修改的文件是个巨大的挑战两方面挑战超大规模项目上下文感知1.并发构建大模型喜欢的索引(结构化非结构化融合)2.并行化设计处理的索引处理最后效果无需引入诸如emb 等额外模型,以及tree sitter 等各种语言解析器,只依赖大语言模型v3 模型30-60分钟,正常较小项目几分钟即可。v3/gemini 2.5 pro 60s5000