原文地址 mp.weixin.qq.com 2025年06月12日 15:07@字节跳动 2025年06月12日 15:07

6月11日,火山引擎 Force 原动力大会在北京举行。在大会前一周,字节跳动技术副总裁洪定坤决定,自己用字节的 AI 编程产品 TRAE,花三天,开发一个英语学习的应用,并用自己的亲身经历,来聊聊他对 AI Coding 的想法。
截至目前,TRAE 月活用户超过 100 万。在字节内部,超过 80% 的工程师在使用 TRAE 这样的产品辅助开发。
以下是演讲全文,在不改变原意的前提下略有编辑和整理:

洪定坤在演讲现场
大家好,我是洪定坤,字节跳动研发的负责人,也是一个研发工程师,最近在做 AI Coding 方面的探索。这是第一次跟大家见面,主要是想跟大家介绍一下我们在 AI Coding 方向的产品 TRAE。
其实做这方向的探索有一段时间了。GPT-3.5 出来的时候,我们就觉得编程可能是一个很好的应用方向。包括我们给这个产品起的名字"TRAE",意思是"The Real AI Engineer"。我们觉得,AI 大模型确实会给 Coding 带来真正的变革。
不过最开始,因为模型能力的原因,很多想法还实现不了。但过去一年,国内外大模型的基础能力进步很快。包括今天字节发布的豆包大模型 1.6,在编程能力上也有很大的进步。
模型能力的进步,让 AI Coding 类产品,包括我们的 TRAE,真正开始有了落地的机会。我们也在今年年初发布了 TRAE。现在,不少工程师已经在工作中开始深度使用我们的产品。截至目前,TRAE 的月活用户已经超过了 100 万。这个数字也说明,AI Coding 已经在程序员的工作中切切实实地起到了重要的作用。
所以,今天借着火山引擎这个场合,和大家分享一下,我们为什么要做这个事情,以及对 AI Coding 的一些思考。
为什么要做 AI Coding?
· 技术普惠,AI 让人人都是开发者
作为计算机历史中的伟大发明,编程语言用简洁、优雅的语法和语义规则,定义清晰明确的指令,让计算机完成各种任务。而且,不管技术如何发展,我们都相信,代码仍然是未来最重要,或者说唯一的,能够让计算机完成各类复杂任务的工具和手段。代码是数字世界的基础生产力工具。
AI 的出现,则前所未有地降低了大众掌握代码能力的门槛。
随着 AI 代码能力的不断提升,今天,更多人可以通过 AI 掌握代码这个工具,专业的程序员也能更专注于工作中具有创造性的部分。这显然会极大地提高开发效率和代码质量,也使得更多不同背景的人成为开发者,通过代码来完成更多复杂的任务,极大地提高生产力。
我们的一位研发同事,就在用 TRAE 教他们家 11 岁的小朋友学习编程。这是小朋友最近完成的一个奥数竞赛题库网站:一个真实的网站,可以用来练习小学的奥数题。

奥数竞赛题库网站截图
可以看到,一个小朋友,在 AI 的帮助下,也能很快地为自己的学习完成一次开发、生成一个应用。我也相信,做好 AI Coding,能够实现技术普惠,让更多人掌握代码这一强大的生产力,未来真正有机会实现"人人都是开发者"。这也是我们希望做 AI Coding 的第一个原因。
· 提升研发效率
然后,作为一家技术比重及规模都很大的科技公司,研发效率一直是我们非常重视和关注的话题,在这方面,AI 带来了非常多的机会和提升。
认真做好开发工具,对公司和开发者个人,都有很大的意义,能够大幅度地提升工作效率。
实际工作中,过去一年我确实也看到了很大的变化。今天,在字节跳动内部,我们有超过 80% 的工程师,在使用 TRAE 这样的产品辅助开发。我们也有相当比例的代码是通过 AI 生成的。
· 追求智能上限
最后,字节做大模型工作,我们最重要的任务之一是追求智能上限。
Coding 作为一种高度结构化、逻辑严密的任务,对模型理解复杂的语义结构、逻辑推理、算法设计和精确表达都有很高的要求,能很好地助力模型智能上限的探索。
因此,帮助更多人掌握代码做更多复杂的任务、提升专业工程师工作效率和助力模型追求更好的智能上限,是我们决定认真做 AI Coding 这个事情的原因。
我的 AI Coding 实践:用自然语言写代码
接下来,我想和大家具体分享一下,我们的产品 TRAE。
最开始,这部分内容我是列出了一些产品核心能力,打算做成 PPT 来介绍。但写完后总感觉不是特别理想,不够生动、具体。我自己平时也会使用 TRAE 工作,做一些开发。我在想,也许作为一个开发者和用户,把自己使用 TRAE 的过程分享出来,会更生动、真实。
所以,上周端午节假期之后,我和两个同事一起开发了一个新的学习英语的应用"积流成江"(体验地址:sstr.trae.com.cn)。今天,我想就着这个应用和开发过程,把 TRAE 的一些核心功能更好地呈现给大家。
英语学习应用现场演示
可以看到,这是一个相对复杂且完成度已经比较高的英语学习应用。产品里包含和模型对话、单词管理&复习、用户登录以及其他一些复杂的交互。
而且这并不是一个 demo,产品在昨天晚上已经发布了。因为我和团队讨论了一下,觉得不能做一个 demo,应该直接发布,这样,大家如果有兴趣也可以直接体验一下。后面,我也会把整个代码放到我们的 Github,大家有兴趣可以下载,看看 TRAE 和我一起写的代码是什么样子。
过去开发这样一个产品,可能需要几周甚至一个月的时间。尤其是像我这样,有段时间没有在一线写代码了,在这次开发其实还有很多"重新捡起来"的过程。
不过这次,我在 3 天时间里就陆续完成了开发。接下来,我就把开发过程中的实践和大家分享一下,看看我是怎么通过 TRAE 来提升开发效率的。
首先,TRAE 的两个最基础的功能是"代码补全"和"局部代码生成"。
我们的 AI,会在工程师编写代码的过程中,根据上下文自动推测和补全代码,提高编程效率。
不过,典型的代码补全和局部代码生成,主要就是在当前用户光标所在位置,推测后面的代码。TRAE 在这个基础上更进一步。TRAE 能根据用户的编辑行为以及上下文,精准预测接下来要修改的地方,直接跳转对应位置,并持续进行代码补全和生成。
我们发现,用这样的方式,补全和生成的效率都会得到较为大幅的提升,并且更实用。
代码补全是很基础也很重要的能力。我们最早做的产品就是编程插件,叫 MarsCode。MarsCode 用插件的形式,帮助开发者在使用VS Code、jetbrains 等传统 IDE 中提效。这也是目前被开发者最广泛使用的 AI 能力。
直到今天,也还是有很多用户喜欢豆包 MarsCode 插件这类产品。但作为一个轻量级的形态,插件很难承载更完整的真正基于 AI Coding 的体验。尤其是随着模型能力快速提升,以及开发者群体的快速扩大,越来越多的用户、开发者,都期待 AI 能够承载更完整的开发流程,而不仅仅是补全代码。
所以,为了把 AI 能力与 IDE 更深入、自然的结合,我们研发了 TRAE IDE。TRAE IDE 是一个为 AI 编程量身打造的原生开发环境,不仅具备代码生成、项目导航、上下文感知等基本能力,也支持代码重构、批量修改、知识问答等复杂任务。这些能力,可以说占到了我的开发中用到的 80% 的场景。
那这次,在 TRAE 的帮助下,我使用了一种完全不同的方式来写代码。我自己把它称作用自然语言来编程。
这里的自然语言编程,并不是一般意义上理解的,产品经理把功能描述一下,然后让 AI 来开发。我的开发过程,仍然是典型意义上的工程师开发。我描述的,除去功能,更多是编码逻辑和技术方案本身。只是,这种逻辑是用自然语言,而非代码的方式呈现。
一个 300 行代码的功能,我可能只需要 200 字的方案描述。这有点像我给另外一个程序员说,咱们实现这样一个功能,技术方案是这样的,核心流程要这样这样。然后,AI 把这些方案变成真正的代码。









左滑查看更多
我统计了一下,这次开发,大概 85% 的代码是通过这种自然语言对话的方式让 AI 生产。得益于 TRAE 的帮助,我们最终用 2 天时间完成了超过 3000 行代码的开发和调试。而且两天里还有一些事情和会议,也不是很完整的时间,我也没有特别仔细地统计。但差不多就是从端午之后,大概到周五,我就基本把核心功能开发完了。
所以,整个过程,和传统的开发比起来,是非常非常不一样的,我正好录了一个真实的开发过程的视频,大家可以看一下。
TRAE 开发过程演示过程
模型强大的代码能力,也是这次顺利开发的重要原因。我们这次在 TRAE 用的 doubao-dev 模型,就是基于今天发布的豆包 1.6 模型。TRAE 团队在豆包 1.6 基础上,也针对工程开发场景做了进一步的训练。对比现当前的 1.5 来说,我觉得还是有一个比较大的提升的。这两天我们就会把这个新模型推送给用户,相信可以使开发者的效率进一步提升。
不只是 AI Coding,
更是 AI Development
TRAE 对整个编程的工作有很大的提升,但 Coding 只是软件开发的一个环节,并不是最终的目标。
做过软件开发的人应该都知道,你要写文档、做运维、做调试、发布,还要 Debug,最后你还要做压力测试,很多事情。一个典型的软件开发过程中,写代码可能大概占不到 40% 的工作,并且,越复杂的应用,代码工作的占比越少。
坦白说,这次除了我们 3 个人开发团队外,还有另外的同事,花了一些时间协助我们完成环境搭建、调试、运维等工作。特别是决定这个产品要直接放出来之后,我们又花了一个周末的时间在做各种工作,其实到昨天还在做一些压测。
这次开发,我们用到了 meego 管理需求,飞书多维表格记录问题、内部运维平台上线、trace 系统查 bug,还有代码提交和合并工具等等等等。其实在过程中来回切换上下文,都是非常复杂,也非常耗时间的。
我自己是非常相信在大模型这个时代,随着模型能力的进步, AI 是有机会把这些工作统筹起来的。AI 成为调度者,让软件开发 all in one,更大幅度地降低开发的门槛,提升开发效率。
这其实是一个蛮大的想象空间,我有时候想起来也会觉得很兴奋。举个例子。传统模式下,我调一个 bug,可能先要去找错误日志,然后可能要定位,定位完之后我可能要用 git 拉一个分支。我还要写代码,写完之后我还要部署发布,还要调试,没问题之后我再去上线,这个过程,可能调一个 bug,半天过去了。
未来有没有可能就是 AI 来做这个事情?它来帮我自动从日志里面定位,然后分析可能什么问题,和我一起确认。我觉得没问题的时候,我说你改吧,改完之后他帮我提交上线。
是这样一个未来的话,其实就是从软件开发(software development),到 AI 开发(AI Development)了。我们这次额外的好几天的这些工作,也许会降低成几个小时甚至更短的时间。那这些都是我们想下一步努力的方向,我们希望,TRAE 不只是 AI Coding,更是 AI Development。
现在,TRAE 也在做一些类似的尝试,比如引入了 Agent 能力,用户可以依据场景选择不同的 Agent 进行工作,并且允许用户自定义 Agent。用户可以自定义工具,然后来去做这种上下文切换,把工作串起来。大家可以看一下下面的 demo:
TRAE 自定义 Agent 演示案例
AI Coding 离不开人的协作
当然,这个小的 demo 本身还是个演示,整个过程比较理想化,做的程序也比较简单,现在能使用的工具也还比较少。但它是一个雏形,未来,我相信随着 AI 能力的进步,它可以完成更多、复杂的应用。我们也会努力地往前去走。
另外,我也认为,不管 AI 如何进步,真正的 Real AI Engineer 也离不开人的协作。纯粹用 AI 做开发,自己只是提要求,点点按钮,做出来的程序是很难维护的,而且也没有把工程师很多的创造性和 AI 结合起来。
包括我这次的开发,虽然是自然语言,但也是代码逻辑的自然语言,是我提技术方案和流程,AI 写成代码。当然有一些我会和它探讨,我说你觉得怎么这样写更合适、更好,它也会给我一些建议。之后,我还会比较仔细的 review 代码。我可以随时接管,直接人工修改。
比如昨天晚上,我们突然发了一个 bug,其实 debug 对模型还是一个挑战,昨天的 bug,AI 找起来也有点难度。最后还是我和它一起完成的。所以人是非常重要的。
现在很多人测 Coding 能力,经常让模型做一个贪吃蛇,或者做一个六边形小球游戏。但其实这种测试不全面。因为真实的开发场景是很复杂的,对模型和产品的逻辑能力,和幻觉控制都有很高的要求。而且人也需要仔细的 review 代码,这样做出来的程序才是可以持续维护的。
所以,哪怕85%的代码都是 AI 写的,但仍然是我在驱动整个过程。模型在不断进步,能做越来越多的事情,但编程仍然是离不开人的。而 AI 也只有做到"听得懂也理解人的想法",也得"懂上下文",并且能够很好的和人合作,才可能是真正的 Real AI Engineer,做到 AI Development。
TRAE 也会一直向这个方向努力,最后也欢迎大家体验我们的产品 TRAE,还有我新开发的英语学习应用"积流成江",因为才开发了几天,可能还会有一些 bug,也欢迎大家多给我提建议,谢谢大家。