腾讯云的新玩法,AI 变成 NPC,帮你写代码
一、
我曾经想过,未来游戏里面的 NPC(非玩家角色)一定是 AI,你可以跟它互动,甚至命令它帮你做任务。
万万没想到,第一个实现这个想法的居然是腾讯云,但不是让 NPC 玩游戏,而是让 NPC 帮你写代码、做开发。
它推出了 AI 编码工具 CodyBuddy 的一个全新升级[1],名字就叫 CodeBuddy NPC。
你登录它的平台,就可以指挥一群 NPC(即各种 AI 模型)帮你做任务。
上图就是你同时唤起四个 NPC[2],给它们派任务,每个 NPC 做一遍,一共做四遍。
可以看到,每个 NPC 的名字后面,会附上本次任务消耗的 Token 和对应的费用,好像在提醒你别超标。
虽然官方不说自己借鉴了游戏的思路,只说这是开发者的云端“AI 队友”。但是我觉得,它本质就是一个云端的“开放世界”,你登录后进行“编码游戏”,允许任意调用 NPC。
而且,它是“云端游戏”,所有操作都在云端完成,跟本地机器和环境都无关。你完全可以跟 NPC 交待清楚以后,机器一关就离开,后面随便找台电脑,查看任务进展。
经过试用,我觉得这是目前最简单的 AI 开发方案。不需要任何配置或安装,只需一个浏览器,云端功能超完整。而且,只要选择免费模型,还不花钱。
二、
使用 CodeBuddy NPC 目前只能通过腾讯云的 CNB 平台[3]。
CNB 平台是“云原生构建”(cloud native build)的缩写,但是你不要管它的名字,它其实就是腾讯云的 GitHub 替代品,用作代码托管平台。
上面就是它的仓库主页[4],是不是看上去跟 GitHub 一模一样。
据说腾讯内部就用这个平台管理代码,现在开放了,做了一个公开版本给外部使用。
它以前可能没有 GitHub 那样强大,但是现在多了 CodeBuddy NPC,我觉得至少在 AI 方面比 GitHub 好用。大家看了后面的例子,就会知道我没夸张。
CodeBuddy NPC 相当于允许你用自然语言,操作底层代码平台的所有功能:提交代码、管理 Issue、合并 PR、持续构建等等。它会完全改变你使用代码平台的方式。
三、
CodyBuddy NPC 使用自然语言唤起 NPC,需要有一个输入提示词的地方,当前仓库的 issue 就是天然的操作入口。
下面是最简单的 Hello World 示例。你先在网页创建一个空的仓库,然后进入该仓库,打开一个新的 issue,写下你的意图,比如“新建一个介绍北京旅游的网站”。
然后,你指派一个 NPC 去完成这个任务。
系统内置多种 NPC(AI 模型),只要输入符号@,就会有一个弹出窗口,列出可供选择的 NPC。
上图中,可以看到官方的编程助手 CodyBuddy,目前可以免费使用。
另外,官方还提供一个npc/CodeBuddy的群组,里面有各种国产模型可供选择。
其中,腾讯的 Hy3 是免费使用,其他都附上了费率。我们就选择免费的 Hy3。
选好 NPC 以后,就可以提交 issue 了。NPC 会自动运行,生成结果后,就在当前 issue 创建一个回复,加以说明。
上图划线处是本次 NPC 消耗的 Token 和费用。点击进去,就会看到 NPC 的详细日志。
这时,生成的代码文件[5]已经自动提交到仓库了。
整个过程只需要新建一个 issue,接下来的事情都会自动帮你搞好。如果有需要,还能生成发布脚本,帮你发布,是不是简单到不能再简单了?更别说这一切还免费。
四、
CNB 平台集成了多种能力,跟 CodeBuddy 配套,能够满足各种需求,几乎不需要用到其他工具。
仓库主页的右上角有一个“云原生开发”按钮,提供 IDE 环境,供你手动阅读或修改代码,如果你需要的话。
点击这个按钮,会显示一个弹窗(下图)。
弹窗的内容分成三排,第一排是 Web IDE(手动操作),第二排是云端 Agent(AI 操作),第三排是打开独立的外部 IDE 应用(CodeBuddy IDE / VSCode / Cursor)。
选择第一个选项“Web IDE”,就会进入一个类似 VSCode 的线上编辑器。
它的右上角有预览按钮(上面截图没有包括),点击后,就会打开一个新的浏览器窗口,可以预览刚才生成的结果。
五、
CodeBuddy NPC 可以做的事情非常多,基本上,你在 GitHub 的常用操作,都可以让 NPC 去做。
(1)权限
发布 issue 的时候,菜单栏有一个“替我上班”开关。
默认是打开的,表示 NPC 会使用你的权限,替你上班。也就是说,如果你有代码提交权限,生成结果将会直接提交到仓库。
关闭这个开关,生成结果将自动生成 PR(下图),需要手动批准合并。
上图就是 AI 生成的 issue 回复,因为没有权限,它提示已经提交为 PR,并给出了 PR 和预览的链接。
(2)代码冲突
提交 PR 后,有可能出现代码冲突。你可以直接让 NPC 去解决(下图)。
(3)开发功能
你也可以在 issue 提出新的功能需求,让 NPC 去实现(下图)。
(4)分工协作
多个 NPC 还可以分工协作,大家参考这个仓库[6]。
它定义了8个 NPC,协作完成了一款游戏。
关键的角色是“项目经理”,它自动拆分 issue 里面的 PRD,把任务细分给其他角色,然后通过系统事件,挨个唤起对应的 NPC 干活,直至所有任务完成。
上图是系统的看板试图,可以实时查看所有细分任务的进展。
六、
我已经用了两天,觉得 CodyBuddy NPC 很有创意,将 AI 当作 NPC 使用,还蛮贴切。确实很像开发者的一个虚拟队友,从辅助工具的角色到独立承担研发任务。
更重要的是,它与代码托管平台 CNB 深度结合,将开发自动化提高到一个全新的层次。GitHub 的主要功能,几乎都可以用自然语言唤起 NPC 完成,比如开发、Git 操作、issue、PR、CI\CD 等等。
CodyBuddy NPC 自动把当前仓库当作上下文,提交在模型,在独立的沙箱环境中运行,最大程度方便开发者。根据官方文档,系统内置了 Token 优化工具,会尽量压缩仓库的上下文,控制 Token 消耗。
大家可以去玩玩这个最新形态的“云端游戏”,尝尝使唤 NPC 的感觉。
(完)
References
[1] 一个全新升级: https://www.oschina.net/news/477664[2] 唤起四个 NPC: https://cnb.cool/npc/CodeBuddy/-/issues/57[3] CNB 平台: https://cnb.cool/[4] 仓库主页: https://cnb.cool/yifeng.ruan/codebuddy-test-webpage[5] 生成的代码文件: https://cnb.cool/yifeng.ruan/codebuddy-test-webpage[6] 这个仓库: https://cnb.cool/examples/twine-team-demo