2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

豆包 MarsCode 落地编程助手场景的探索实践

发布日期:2024-11-29 13:37:35 浏览次数: 3654
作者:DataFunTalk

微信搜一搜,关注“DataFunTalk”

导读 本文将分享豆包 MarsCode 编程助手的落地实践。

主要内容包括以下几大部分:


1. 豆包 MarsCode 编程助手起源

2. 豆包 MarsCode 的现状与发展

3. 未来展望

4. 总结

5. 问答环节

分享嘉宾|李文超 字节跳动 开发工具技术专家

编辑整理|王红雨

内容校对|李瑶

出品社区|DataFun


01

豆包 MarsCode 编程助手起源



1. IDE 智能化探索



早期阶段,IDE 智能化萌芽于静态代码分析,基于语法与结构提供预测性建议,初步提升了开发效率。随着 AI 技术的逐步成熟,引入了 Machine Learning 与 Deep Learning,使辅助功能显著增强,如智能代码推荐与优化。


近年,大模型的火热催生了 AI 助手深度嵌入编程流程,如智能代码生成与调试等,助力效率飞跃。


AI 编程助手显著提升了编码速度,使开发者能够更专注于业务逻辑,摆脱了繁琐的重复任务,同时降低了语言与框架的学习成本,赋能普通程序员成为全能高手,从而适应多元化项目需求。


2. 开发者对 AI Coding 的诉求



根据 Stack Overflow 调研,开发者亟需编程助手支持代码编写、调试与文档注释,覆盖全流程开发周期。


开发者对 AI Coding 最关心的功能聚焦于:


  • 代码生成:自动化补全、模板填充,大幅提升生产率。


  • 理解与解读:即时解析代码含义,助于快速定位与修正问题。


  • 自动修复:智能识别并解决 bug,如 Auto Debug,Link Fix 等功能,减轻调试负担。


3. 豆包 MarsCode 进化



自 2022 年起,豆包 MarsCode 开启了代码补全领域的探索,自主研发 LLM 评测系统,超越离线评测局限,构建了全面工程链路与在线评估平台,加速策略与模型验证,直面用户真实体验。


初始阶段虽聚焦于补全产品,但单一工具无法满足多样编码情境,因此引入了对话式编程助手后,拓展服务范围。近期则瞄准高阶自动化,推出了代码补全 Pro,预知用户意图,即时推送代码建议,实现高效编程。


豆包 MarsCode 始终以用户为中心,不断迭代,旨在塑造无缝衔接的开发流程,助力每位开发者提升效率与创作自由。


02


豆包 MarsCode 的现状与发展



接下来将围绕代码补全和代码补全 Pro 两个方面展开介绍豆包 MarsCode 的现状与发展。


1. 代码补全



代码补全是 AI 辅助编程的关键组件,要求模型深刻理解现有代码及其工程背景,以精准预测用户意图,实现个性化推荐。


传统方法借助下拉菜单供用户挑选代码选项。近期微软引领变革,引入了“幽灵文本”(Ghost Text)概念——编辑器内即时展示推荐,只需 Tab 键即可确认,极大提升了开发效率。该方式通过即时反馈,实现了实时编码协助,尤其适用于多行补全,彰显了性能优势。


实现这一功能的核心在于高性能模型快速准确推理,捕捉细微编码语境,精准匹配开发者需求,颠覆常规,推动编程效率飞跃。同时,理解代码上下文,准确预测续写字符,增强用户体验。


(1)工程


Prompt 工程的核心目标是:精确定位开发者意图,提供精准代码建议,增进用户体验。


整体流程如下图所示。


IDE 捕获代码属性(如语言、文件信息),形成完整的 prompt,上下文整合后传递给模型作补全依据。模型接收 prompt,进行推理,并反馈结果,实现代码补全。此外还需要反复迭代,优化输出结果,提升准确度与效率。


上下文信息对推理性能至关重要,因此我们探索了一套基于用户编码行为的优化策略。用户编写代码时,要调用函数,经常需要打开函数文件查看详细定义和注释,打开文件的动作与当前编码的相关性是比较高的,因此我们对打开文件的上下文进行收集,用于 prompt 构造。另外,编辑器中的历史内容也会作为上下文给到模型。


因为 prompt 的长度是有限的,我们需要对上下文进行排序和裁剪,还需要对低质量的 Prompt 进行过滤和完善,再提供给大模型进行推理,模型给出结果后,需要过滤掉重复和不正确的内容,以及敏感词,最终给出补全提示。


(2)科学的评测体系


在优化和迭代之外,还需要一套指标体系来进行科学评测。早期我们使用采纳率这一指标进行评测,即采纳次数/推荐次数。采纳率在一定程度上可以体现模型推荐的质量,但只关注采纳率很容易被误导,比如有些场景通过减少推荐来提升采纳率,显然并不能真实反应推荐效果。另外,根据采纳率,也不容易拆解分析,不利于归纳出链路优化路径。


为此引入了 CPO 这一更为科学的综合性指标。


CPO 定义:综合衡量每次触发补全机会给予用户平均字符数。


公式解读:尝试率×反馈率×采纳率×每次采纳平均token 数×token 平均字符长度。


  • 尝试率:每当用户在编辑器中进行操作,比如输入新字符或删除一些代码时,都是 AI 给出补全建议的机会。尝试率指标反映了 AI 实际为用户提供建议的频率。AI 不进行尝试可能是由于延迟(如 Debounce)或需要根据上下文情况来决定是否给出补全建议。


    例如,用户敲击了 10 次按键,只有 6 次触发了请求,那么尝试率就是 6/10。


  • 反馈率:AI 在给出补全建议时是存在延迟的,包括上下文检索到网络开销,再到实际模型推理,都会引入延迟。如果延迟太高,开发人员将继续在编辑器中执行新的操作,触发新的推荐机会,并使现有推荐机会变得无意义。此外,在推荐完成后,工具可能因各种原因决定不向开发人员显示建议,比如置信度不够高、触发了过滤器等。反馈率代表了有多少比例的建议最终被传递给开发人员以获得人类反馈。


    例如,用户触发了 6 次补全请求,最后只有 3 次被展示,那么反馈率就是 3/6。


  • 低值预警:尝试率和反馈率降低,会使用户体验下降,反馈缺失,需审视链路延迟与策略合理性。


  • 采纳率:反映了展示出的建议中有多少被开发者采纳。


  • 每次采纳平均 token 数:在其它条件相同的情况下,较长和较短的代码推荐所带来的价值有很大差异。大模型以 token 的形式处理输入,并生成输出,这些 token 通常是一小段字符,因此每个被采纳建议中平均 token 数反映了每条被采纳建议所传递出的实际价值。


  • Token 平均字符数:开发人员看到的是字符而不是 token,不同大语言模型可以有不同的分词器,因此,如果一个大模型的每个 token 生成了更多字符,实际上它会写出更多代码,而每个 token 的平均字符数正体现了这一点。


有了这些指标,还需要一个 A/B 测试系统,快速验证和迭代模型、prompt 策略。首先,要进行离线评测,验证模型和 prompt 工程的离线效果。但仅有离线评测难以准确判断用户体验和整体性能。因此还需要一套 A/B 系统,观测线上核心指标表现。


2. 代码补全 Pro



代码补全适用于编写全新代码的场景,而研发中还会面临修改已有代码的挑战。当前技术趋势为,在模型训练语料中加入带有时间序列的操作,以强化理解逻辑顺序。


代码补全 Pro,旨在于编程助手场景中,准确识别用户意图,预测下一次光标位置,下一次行动是新增、编辑还是替换操作,以及下一次需要编辑的内容。


(1)概述


例如,打印日志的场景,开发者已实现一个 log 函数,并在 do_something 和 do_something_else 两个函数中调用。


我们为 log 函数增加 sourceMethod 和 level 两个参数,用于打印日志触发时所在的方法及日志级别。这时开发者需要同时修改 do_something和 do_something_else 函数。智能解决方案为,由 AI 识别需求,自动完成参数添加,加速了编码进程。


(2)数据构建


在 Git 仓库中蕴藏着海量用户编辑行为数据,可用于模型训练。但这些数据中也存在很多噪音,需要构建一系列的启发式规则,用于提取有关联的编辑信息。利用 CT 与 SFT 格式,使模型精准理解数据,优化推理与训练效果。


03


未来展望



1. 编程助手业界趋势观察



编程助手领域发展非常迅速,模型方面,指令追随和语义理解能力更强,模型具备代码编辑能力,并支持更长的上下文,能够达到百 K 甚至 M 级别。例如,要将中文转换为 Unicode 编码,过去可能只是给出冗长的代码解释,而现在可以直接给出 Unicode 编码。


产品方面,IDE 原有交互与 AI 深度集成,比如在编辑器中支持输入自然语言生成代码。并且具有更强的代码编辑能力,支持更长、更多代码片段的修改和应用。


未来 AI 编程助手将以更精准的理解力与执行力,变革软件开发领域,促使编程更加顺畅与高效。随着模型持续优化,技术壁垒进一步降低,将助力程序员群体创造力爆发。


2. 产品形态展望



(1)NL2Code 能力与编辑器深度集成


当前编程助手已具备 Inline Chat 能力,用户可以通过快捷键唤起一个输入框,在输入框中输入一些自然语言,即可让模型来生成相应代码。


JetBrains 支持直接在编辑器中通过自然语言生成代码。而 VSCode 也通过 Inline Chat 支持了 NL2Code 的能力。


(2)Sketch then Generate


Sketch then Generate 倡导一种迭代式的代码生成与修改方式,尤其适用于动态调整需求场合,旨在提升用户体验与开发效率。通过增量式的交互,使用户可以获得即时反馈,并可以直接在已有代码基础上进行修改。


针对大模型生成速度慢与稳定性不足的问题,Sketch then Generate 的解决方案是根据用户注释或 prompt 引导模型生成中间态伪代码。模型增量式生成,用户实时调整,无需等待完整结果。伪代码作为上下文反馈,模型迭代修改。用户仅需发送,伪代码与输入直达模型,即时更新结果。


04


总结



本次分享介绍了豆包 MarsCode 编程助手的起源与发展历程。强调其科学评测指标 CPO,并阐述了代码补全 Pro 如何高效辅助用户编码,预测及推荐下一步代码。


最后对发展趋势进行了展望,未来将进一步强化模型追踪能力、编辑能力和产品自动化,深度融合 AI 至 IDE 和编辑器,实现 Sketch then Generate 的增量互动。
05


问答环节



Q:豆包 MarsCode 的定位与未来发展方向是怎样的?


A:豆包 MarsCode 是基于豆包大模型打造的智能开发工具,提供编程助手和云端 IDE 两种形态,支持代码补全、错误修复、AI 刷题等多种能力。无论你是新手程序员,还是经验丰富的开发者,都能在开发过程中体验到豆包 MarsCode 带来的助力和效率提升。


豆包 MarsCode 编程助手兼容 VSCode 与 JetBrains,提供即时编程支持;云端 IDE 目标是通过场景定制提升效率,长期着眼 AI 深度集成,提高代码自动编辑能力,为用户提供全方位、低门槛的技术体验。


面向未来,豆包 MarsCode 双轨并行,兼顾场景定制与专业 IDE 建设。短期内侧重场景优化,长期规划 AI 驱动的高度自动化解决方案,增强产品力。


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅