2025 GOPS 全球运维大会暨研运数智化技术峰会·北京站:从辅助到自主:构建新一代 Coding Agent 实践_第1页
2025 GOPS 全球运维大会暨研运数智化技术峰会·北京站:从辅助到自主:构建新一代 Coding Agent 实践_第2页
2025 GOPS 全球运维大会暨研运数智化技术峰会·北京站:从辅助到自主:构建新一代 Coding Agent 实践_第3页
2025 GOPS 全球运维大会暨研运数智化技术峰会·北京站:从辅助到自主:构建新一代 Coding Agent 实践_第4页
2025 GOPS 全球运维大会暨研运数智化技术峰会·北京站:从辅助到自主:构建新一代 Coding Agent 实践_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

从辅助到自主:构建新一代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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论