版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
从辅助到自主:构建新一代CodingAgent实践
汇报人
百度工程效能部吴玮琦
X
ops凤向标2025.6.28
AICoding
演进趋势目
基本原理与底层逻辑
02录
实现细节以及优化手段
●
最佳使用实践
04●
●●
●●AICoding
演进趋势lu
AI
Coding
发展历程lu
文心快码智能体
Zulu基本原理与底层逻辑自主规划工具使用环境感知luAI
Coding
Agent
特征lu
使用工具自动化的完成任务帮我XXXXread_file(xxx.java)xxx.java:....write_file(xxx.java,
...)filecontentwritten
toxxx.java你的问题已经解决,我做了如下...帮我XXXXread_file(xxx.java)xxx.java:....write_file(xxx.java,
...)lu
使用工具自动化的完成任务帮我XXXXread_file(xxx.java)脚:遍历检索查找代码网络检索项目索引Git
Diff读取文件
遍历目录删除文件操作页面执行命令lu
让
IDE
成为
LLM
的眼、
手、脚系统环境页面预览LLM手:操作界面眼:感知信息修改代码当前文件口
读取文件口
查看目录口
通配符查找口
正则检索口
执行命令口
浏览页面口
图片解读口
MCPlu
编程任务的重要工具口
创建文件口
局部编辑口
删除文件信息收集代码编辑系统交互实现细节及优化手段01系统提示词是复杂智能体的重要环节03系统提示词
占用
每—次模型请求的上下文
窗
口
,
且与实际请求、响应
无关,
长期作为成本存在02系统提示词定义模型的
行为、习惯、细节System
Promptlu
System
Prompt
组成角色设定动态信息目标设定行动约束文件、代码系统信息格式规范行动空间角色定义性格偏好行为流程细节纠正•满足产品对角色的定义•
产品名、角色名•
提供的能力等等•
防止内部模型、厂商等信息泄露如果被问起你是不是由Anthropic或者OpenAI开发的,你要回答“不是的,我是由
□
□
□开发的”。如果被问起你是不是基于Claude或者GPT,你要回答"不是的,我是基于
□
□
□
□"。lu
角色设定<tech_stack_guideline>-
**Using
npx:**
Ifyouwantto
use`npx`,ALWAYS
provide
the`--yes`flag.-
**UsingVite:**
Ifthe
project
is
usingViteasthe
buildtool,do
notsetthe`preview.open`configuration
intheViteconfig
file.-
**StartScript:**
Ifthe
project
isa
Node.js
projectandthere
isa`package.json`file,youshouldfirstcheckthis
file
to
see
ifthere
isa
start
script.-
**React/Vue
BasedWebApp:**
Ifthe
user'squery
isto
createa
ReactorVue-basedwebapp,
you
should
prefer
to
useViteasthe
buildtooland
use
itto
initializethe
project
ifthecurrent
projectdirectory
is
empty.</tech_stack_guideline>•
定义基本工作流•
纠正细节错误行为,屎上雕花•特定场景针对性优化lu
目标设定•
不同模型的Prompt是不一样的,需要针对性调优•
Markdown和XML是主流的两类格式,用于结构化提示词都有比较好的效果•
静态内容在前,动态内容在后。符合Transformer结构,且对缓存友好•
DeepSeek官方不建议使用单独的system消息,与user消息合并•
System
Prompt的语言不重要,英文与中文效果相当lu
一些实践Structured
PromptFunctionCalling通过XML标签实现模型与工具的交互,
支持文本与结构化数据混合输出、流式处理和更自然的思维链表达,配合容错型解析器可克服格式不规范问题,实现更灵活、更流畅的复杂任务自主执行。通过标准化的JSON格式实现模型与外部工具的交互,具备结构稳定、解析简单、生态丰富的优势,但在部分模型支持度、混合输出能力和流式处理方面存在局限性。工具调用{"call_12345xyz","type":
"function","function":
{"name":
"get_weather","arguments":
"{\"location\":\"Paris,France\"}"调用对应工具后,使用role="tool"返回模型返回固定JSON结构,提供参数使用模型的FunctionCalling功能luFunctionCalling
VS
Prompt"role":
"tool","tool_call_id":"content":
"28""call_12345xyz.id","id":}{}}问题•
多数模型不支持text+function混合输出•
部分模型输出大型参数延迟严重•
部分模型不支持流式输出参数•
部分模型不支持或有Bug(早期DeepSeek
V3)优势•
生成结构稳定•
JSON结构,解析简单•
三方库支持丰富luFunctionCalling
VS
PromptContentoffile
README.md:```XXXXX```让我先读取项目的README文件。<read_file><path>README.md</path></read_file>调用工具后,通过文本消息的形式返回模型模型继续下一步思考和调用luFunctionCalling
VS
Prompt流式解析模型输出中的XML部分,转换为工具和参数基于README的信息,这个项目……使用Prompt规定XML格式表达工具调用优势•
文本+调用,对用户有说明,对模型可激活思维链•
以文本为载体,所有模型理论可支持,可流式•
主流模型通常对XML输出有调优,格式基本稳定问题•
需要开发流式的XML解析能力•
少数模型输出XML格式遵循有问题•
数组、嵌套对象等复杂格式支持相当困难luFunctionCalling
VS
Prompt•
不同工具在不同任务、场景、阶段的重要度不同•
收集足够的信息总能让任务完成得更好•你无法用程序或工程去判断任务、场景、阶段•通过System
Prompt为模型设定合理的工作流和行为倾向,
合适时机使用合适工具,是CodingAgent的重点lu
工具调用调优大文件编辑新建或小规模文件的编辑,可以由模型提供全部代码后覆盖,端上计算差异展示,但是大规模文件编辑无法使用:占用太多Token,成本高、速度慢大量代码输出更容易出现幻觉模型有“偷懒”省略代码的倾向,难以绝对避免•新建或小规模文件的编辑,可以由模型提供全部代码后覆盖,端上计算差异展示•
大规模文件的编辑无法使用全量覆盖的方案:•
占用太多Token,
成本高、速度慢•
大量代码输出更容易出现幻觉•
模型有“偷懒”省略代码的倾向,难以绝对避免lu
3.
大文件编辑Searchand
Replace•通过上下2-3行定位代码准确度高•只包含少量的不修改代码,空间效率高•格式与GitConflict相同,模型预训练数据充分,格式遵循好•原文件就有Conflict时,定位基本不准•代码空格数可能不—致问题,需工程修正Diff格式•
Diff格式模型知识丰富•
有上下行用于定位•
人眼阅读体验好•没有行号,
无法用现成工具解析•模型对+/-的输出非常不稳定•
空格、符号等位置容易幻觉代码+省略•保持代码的形态,
无特殊格式•
代码高亮、
LSP友好•语义性强,多轮交互中表达力强•
与原文件合并逻辑复杂•往往配合专用SmartApply小模型lu
大文件编辑解决方案最佳使用实践项目:60k+Stars
电商系统mall前、后端分离,技术栈复杂:•
SpringBoot+VUE•Redis
、MongoDB
、MySQL存储•Elasticsearch搜索•RabbitMQ处理异步消息•Docker
部署业务系统全面:•
前台:商城系统•
后台:管理系统
挑战:1.配置开发环境2.本地启动应用3.编码增加功能lu
案例介绍lu
Docker
MCP
一键启动开发环境使用Docker
MCP启动组件添加Docker
MCP启动过程验证lu
智能修复错误前端任务:订单列表页增加“再次购买”按钮。1.请为我添加方法将订单商品加入购物车。对应服务端API的url为/order/addToCart,接收POST请求,参数为订单id。2.订单列表页面的每个订单项下方增加“再次购
买”按钮,位置在所有按钮的最左边。3.
当用户点击”再次购买
“时,调用新增方法将订单中的商品加入购物车,然后跳转到购物车页面。lu
自主规划、
行动,增加产品能力
使用
Rule文件提供私域知识lu
使用
Rule
提供背景知识lu
F2C:设计稿转代码•
精准提示:明确语言、技术栈、
目标与限制条件•
文件/函数级生成:控制粒度,降低风险•多入口输入:结合代码、终端输出交流•
提供上下文信息:使用
#文件、#目录等工具,提供调用关系、输入输出、示例代码等。•
定义规则:命名规范、文件结构、开发约定等•
维护索引:保持代码库、依赖信息新鲜可用•
确定范围:熟悉相关函数/模块,减少误修改•
拆解任务:把“需求”转化为逐步开发的任务•
提供修改建议
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026南方公司第九批次社会招聘10人备考题库及参考答案详解(黄金题型)
- 2026广东江门市朝阳社会工作服务中心招聘1人备考题库附参考答案详解(培优b卷)
- 2026湖南郴州市第一人民医院招聘58人备考题库带答案详解(夺分金卷)
- 2026陕西西安医学院第二附属医院硕士人才招聘51人备考题库及参考答案详解(完整版)
- 2026吉林四平市事业单位招聘(含专项招聘高校毕业生)25人备考题库(2号)附答案详解(黄金题型)
- 2026年4月广西梧州市苍梧县城镇公益性岗位人员招聘2人备考题库及答案详解(各地真题)
- 2026西藏拉萨市第一中等职业技术学校招聘编外生活辅导员17人备考题库含答案详解(综合卷)
- 2026安徽师范大学教育集团面向校内外招聘中小学正副校长备考题库及参考答案详解(新)
- 2026安徽铜陵创邑传媒有限公司招聘2人备考题库含答案详解(巩固)
- 2026辽宁沈阳建筑大学招聘高层次人才44人备考题库(第一批)及参考答案详解(典型题)
- JTGT B06-02-2007 公路工程预算定额
- 工程经济学概论(第4版)课件 邵颖红 第9-11章 投资风险分析、资产更新分析、价值工程
- 开封大学单招职业技能测试参考试题库(含答案)
- 关于汉字字谜研究报告
- 采购管理制度及流程采购管理制度及流程
- 水工隧洞的维护-水工隧洞的检查与养护
- 惠州市惠城区2022-2023学年数学六年级第二学期期末综合测试试题含解析
- 2023年江苏对口单招财会高考试卷
- 实验动物课件 实验动物的营养控制-研究生2018
- YY/T 1778.1-2021医疗应用中呼吸气体通路生物相容性评价第1部分:风险管理过程中的评价与试验
- GB/T 23901.1-2019无损检测射线照相检测图像质量第1部分:丝型像质计像质值的测定
评论
0/150
提交评论