最近,我们在 AutoDev 上构建了新的功能:AutoDev Planner,它是一个基于 DeepSeek R1 推理模型构建的编码任务规划功能。当然了,除了 DeepSeek R1 之外,你也可以使用其它模型。
在 AutoDev Planner 中,AI 将会根据你的输入和收集的上下文,生成一个用于后续编码的任务计划。随后,这个编码计划可以用其它指令遵循更好的模型,比如 DeepSeek V3,来生成代码、编辑代码等。
在进行 AI 编码 Agent 的设计时,一个非常有意思的点是,用户对于编码任务的感知是怎样的,即用户应该能显性看到进度,还是隐性感知进度。
去年,我尝试使用 GitHub Copilot Workspace 来帮助我进行前端的开发工作。我尝试了几十个小的需求点,哪怕只是简单的 i18n 翻译,它的表现并没有 我想象中的那么好,大抵是受限于 GPT 4 的能力限制。而 Copilot Workspace 的思路确实非常不错:
你可以显性看到 AI 思考、编辑、执行的过程,当然它没有动态的去调整他的计划,而是一次性生成(基于 2024 年的认知)。
回到,最近一年多特别火热的 AI 编码工具 Cursor,它构建了非常好的 AI Editor 体验,用户抛出一个问题。它会:
你可以通过文字大概理解 AI 到底干了点什么,但是很快大量地重试,让你感知不到过程的存在。
JetBrains Junie 算是最新 AI 编码工具,它构建了一个动态的 AI 任务规划体验。用户抛出一个问题。它会:
在过程中,你可以看到它的计划在不断调整和迭代,直到最终完成用户的 issue 或者不能完成。
众所周知,2024 年底的推理模型或者说“可深度思考模型”,带来了更多的想象空间与可能性。我们在 AutoDev Sketch(类 Cursor Composer 自动编码 Agent) 中做了一系列的实验, 发现与其它的国内模型相比,DeepSeek R1 在相同上下文的情况下,比普通模型更容易生成更好的工具调用( 基于DevIns 指令)。 与 DeepSeek V3 相比,DeepSeek R1 调用了更多的工具。
理想情况下,我们应该用 R1 进行首轮工具对话和第二轮的任务规划,但是 R1 的速度确实太慢了,从时间上来算相当于多调用了一轮 API。但是,依旧可以 看到 R1 的优势,相信大家也有相似的感受和体验。
当然我们没有做大规模的实验,毕竟构建非常好的测试数据集是特别花费时间的。
基于上述的思考,我们构建了新的拟人功能:AutoDev Planner 以强化 Sketch 的任务规划能力。AutoDev Planner 的核心功能是:
总体思路还是非常简单的,就只是调用模型生成计划,然后展示这个交互。
由于推理模型与普通的模型在理解 prompt 和遵循指令的能力是有差异的,我们原先用于 V3 的 prompt 并不适用于 R1。因此,我们需要重新设计 prompt 以适应 R1 的能力。
简单来说,就是当完成了初步的上下文收集之后, 而且用户配置了推理模型之后,我们会调用 R1 来生成一个任务计划。这个任务计划会包含:任务、步骤及 其相关的进度情况,随后我们会将这个计划展示给用户。
与其它的 AI 编码工具不同,我们认为任务规划是一个非常重要的交互,因此我们提供了一些交互功能:
通过可视化任务来构建更好的 AI 编码体验,这是 AutoDev Planner 的初衷。
AutoDev Planner 是一个基于推理模型的任务规划功能,它可以帮助用户更好地理解 AI 编码任务的进度,以及更好地调整任务规划。当然,它还有很多不足之处, 欢迎在 GitHub 上提出 issue 和 PR。
欢迎下载最新版本体验:https://github.com/unit-mesh/auto-dev/releases
围观我的Github Idea墙, 也许,你会遇到心仪的项目