2025QECon全球软件质量效能大会:构建研发提效Agent:百度文心快码的技术实践_第1页
2025QECon全球软件质量效能大会:构建研发提效Agent:百度文心快码的技术实践_第2页
2025QECon全球软件质量效能大会:构建研发提效Agent:百度文心快码的技术实践_第3页
2025QECon全球软件质量效能大会:构建研发提效Agent:百度文心快码的技术实践_第4页
2025QECon全球软件质量效能大会:构建研发提效Agent:百度文心快码的技术实践_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

吴玮琦|百度工程效能部百度文心快码

Comate大前端负责人,致力于大语言模型在研发工程领域的落地实践,有丰富的大模型编程相关领域的实践经验。同时负责云开发平台iCoding等代码服务研发工作。吴玮琦百度工程效能部目录CONTENTS02

Agent底层逻辑与难点03

上下文工程突破制约04最佳提效实践01

AICoding

演进趋势PART

01AICoding演进趋势无代码、低代码

现代AI编程辅助从代码补全到CodingAgent

AICoding

发展早期国外DevinReplitAgentBolt.newJetBrainsAI智能体新赛道Copilot高歌猛进,与OpenAI各类模型深度整合SourceGraph推出Cody,主打本地知识增强Codeium推出,率先支持私有化、VPC多种部署模型

Cosine推出,主打代码库知识增强Augment推出,主打大体积代码知识增强Tabnine推出,主打代码补全Cursor展露头角,构建AI原生IDEAutoGPT

、GPT-Engineer

、MetaGPT等开源项目陆续推出Copilot正式收费,推出企业版 文心快码内部立项,启动模型训练 ChatGPT正式发布,AI编码助手成为行业关注焦点

AICoding

现状国内

文心快码智能体Zulu2025年3月正式公测推出Copilot,免费公测

文心快码2023年10月24日正式对外发布腾讯云AI助手代码小浣熊通义灵码CodeGeeXiFlyCodeCodeFuseMarsCodePART

02Agent底层逻辑与难点g

Agent的核心在于将大语言模型的自然语言理解能力、代码生与自主执行能力相结合:它能够理解并规划编程任务,通过"执行-反馈"的迭代循环不断优化代码质量,同时借助工具调用机开发环境深度交互

,从而实现从需求理解到代码实现的全流程自真正模拟人类程序员的工作方式。Agent工具调用与环境交互理解与

AICodingAgent特征规划循环执行Codin成能力生成-制与动化,

使用工具自动化的完成任务信息收集代码编辑

系统交互

读取文件

创建文件

执行命令

查看目录

局部编辑

浏览页面 通配符查找删除文件Todo管理

正则检索独立子任务 向量查找

厂MCP

Zulu内部重要工具帮我XXXXread_file(xxx.java)xxx.java:....write_file(xxx.java,

...)filecontentwritten

toxxx.java你的问题已经解决

,我做了如下...

使用工具自动化的完成任务read_file(xxx.java)write_file(xxx.java,

...)read_file(xxx.java)帮我XXXX帮我XXXXxxx.java:....每一次模型调用都包含历史的所有信息,消耗是非线性增长分布无效内容

、过程信息分布于历史,

降低有效信息密度污染大量任务过程中的错误尝试

、无效检索可能引起幻觉空间单次会话上下文长度有限,历史信息挤占空间

核心制约-Context上下文工程就是提升信息密度的过程01

02

03PART

03上下文工程突破制约Structured

PromptFunctionCalling通过XML标签实现模型与工具的交互,

支持文本与结构化数据混合输出、流式处理和更自然的思维链表达,配合容错型解析器可克服格式不规范问题,实现更灵活、更流畅的复杂任务自主执行。通过标准化的JSON格式实现模型与外部工具的交互,具备结构稳定、解析简单、生态丰富的优势,但在部分模型支持度、混合输出能力和流式处理方面存在局限性。

1-

工具调用{"id":

"call_12345xyz","type":

"function","function":

{"name":

"get_weather","arguments":

"{\"location\":\"Paris,France\"}"}}{"role":

"tool","tool

call

id":"call_12345xyz.id","content":

"28"}

1-

FunctionCallingVS

Prompt模型返回固定JSON结构,提供参数调用对应工具后,使用role="tool"返回使用模型的FunctionCalling功能问题•

多数模型不支持text+function混合输出•

部分模型输出大型参数延迟严重•

部分模型不支持流式输出参数•

部分模型不支持或有Bug(早期DeepSeekV3)

1-

FunctionCallingVS

Prompt优势•

生成结构稳定•

JSON结构,解析简单•

三方库支持丰富使用Prompt规定XML格式表达工具调用流式解析模型输出中的XML部分,

转换为工具和参数调用工具后,

通过文本消息的形式返回模型模型继续下一步思考和调用Contentoffile

README.md:```XXXXX```让我先读取项目的README

文件。<read

file><path>README.md</path></read

file>

1-

FunctionCallingVS

Prompt基于README的信息,这个项目

问题

需要开发流式的XML解析能力•

少数模型输出XML格式遵循有问题•

数组、嵌套对象等复杂格式支持相当困难优势•

文本+调用,对用户有说明,对模型可激活思维链•

以文本为载体,所有模型理论可支持,可流式•

主流模型通常对XML输出有调优,格式基本稳定

1-

FunctionCallingVS

Prompt

2-

大文件编辑新建或小规模文件的编辑,可以由模型提供全部代码后覆盖,端上计算差异展示,但是大规模文件编辑无法使用:占用太多Token,成本高、速度慢模型有“偷懒”省略代码的倾向,难以绝对避免大量代码输出更容易出现幻觉•新建或小规模文件的编辑,可以由模型提供全部代码后覆盖,端上计算差异展示•大规模文件的编辑无法使用全量覆盖的方案:•

占用太多Token,

成本高、速度慢•大量代码输出更容易出现幻觉•模型有“偷懒”省略代码的倾向,难以绝对避免

2-

大文件编辑Searchand

Replace•

通过上下2-3行定位代码准确度高•

只包含少量的不修改代码,空间效率高•

格式与Git

Conflict相同,模型预训练数据充分,格式遵循好•

原文件就有Conflict时,定位基本不准•

代码空格数可能不一致问题,需工程修正Diff格式•

Diff格式模型知识丰富•

有上下行用于定位•

人眼阅读体验好•

没有行号,

无法用现成工具解析•

模型对+/-的输出非常不稳定•

空格、符号等位置容易幻觉代码+省略•

保持代码的形态,无特殊格式•

代码高亮、

LSP友好•

语义性强,多轮交互中表达力强•

与原文件合并逻辑复杂•

往往配合专用SmartApply小模型

2-大文件编辑解决方案复杂任务分解为多个细粒度任务,

Agent单一任务,获取更结果通过自定义Agent进一步突破效果上限

3-突破上下文限制-子任务任务间仅传递有效信息,过程与碎片内容在内部

消化,不再对外扩散污染,

⽣完成特定任协作,隔离聚焦任务独立上下文保持最大可用产更擅长务的Agent进行专注完成高质量,上下文长度专职清洁代码读取Agent网络检索Agent执行命令修改代码Agent结束任务读取文件读取文件读取文件读取文件读取文件读取文件查看目录查看目录查看目录总结总结总结

3-

子任务执行流程人格解放单人格设定的能力与行为边界约束流程解放单向

、线性流程的质量上限模型解放单模型的效果

、速度

、成本制约01

02

034-Agent能力上限-多智能体

Reviewer移除编码能力强调检视任务结果

控制任务是否退出

未通过时提供建议Planner更深度的思考规划解决路径拆分子任务确定行动用角色自我派生Agent慢速度、高质量Coder完成单一任务小范围思考能力具备多轮交互

保留容错性强编码能力

4-

多角色协作完成需求完成任务

Reviewer结束任务

检查结果行动Actor

提供建议

4-

自定义多角色工作流PART

04最佳提效实践给定样板代码提供入口按图索骥读取文件正则检索import语句方法名字符串常量正则检索读取文件关键字指定文件修改代码

提供更丰富的实时信息

提供行动大纲-ActAs

Planned参考#actor.ts,为

#couple,#henshin,#ringRing,#standalone中的各个role的实现做以下修改:1.按照`provideToolSet`方法把字符串部分提到外面去作为tools变量2.修改`provideToolSet`使用提出去的变量3.增加`toolFactory`成员,在构造函数中注册tools4.增加`provideToolImplement`方法,使用`this.toolFactory`有部分role的实现中有自定义的非字符串形式的tool,这部分保留下来,事后我会做手动修改

大规模任务-

Plan&Act我需要完成以下任务:XXXX现在请分析整个项目,帮我生成一个修改计划,并拆解为多个可验证的小任务。先不要进行代码的修改,

生成一个plan.md放置在项目根目录,

文件内使用markdown的待办格式标记每一个子任务现在开始根据plan.md

自上而下依次完成还处在未完成状态的子任务,完成后在plan.md中将该任务为已完成状态,并开始下一个子任务你一次最多完成10个子任务,完成后中止,我将对完成情况进行检查

超长上下文-SummaryTo

New对上面的任务过程做一个总结,你需要按照以下要求来组织内容:1.对任务的具体要求进行摘要,描述任务的目标和大致的要求2.提供任务推进和完成的过程和线索,以任务分析、拆解的角度提供有效且压缩的信息3.如果当前的任务并没有被彻底地完成,在以上信息之后提供一个后续待办事项,较详实地罗列需要进行的工作和每一项工作明确的完成目标4.特别地,你需要输出一个列表,详细地罗列以下信息:1.你读取的每一个文件,以及该文件内容的简要描述2.你编辑的每一个文件,编辑的目的和内容的简单总结3.你执行的每一个命令,该命令是否成功和命令输出的摘要WhereWhatRuleHowShouldNot信息类:提供关于代码库、业务的关键信息。业务名词和代码命名的映射关系、核心的三方依赖、各个模块的作用、可复用代码的位置指令类:引导Agent实施某一类场景的具体方法步骤。实现任务的确定性步骤、重要信息的获取方式、相关文件实力、验证方式约束类:正向行为的鼓励、负向行为的压制。受安全约束禁止修改的文件、不期望进行的行为索引类:

多个rule的索引,通过自然语言引导模型在合适时机使用

Rules-人、项目、AI的桥梁

MCP-Agent与生态的连接提交代码触发流水线执行•

工具:

iPipeMCP•功能:提交触

发CI/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论