AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Micro Agent:真正可靠的代码生成器
发布日期:2024-07-09 08:11:44 浏览次数: 2258 来源:大数据杂货铺


我不知道你是怎么想的,但我总是喜欢寻找新方法来让我的工作更轻松。 GitHub Copilot 和 ChatGPT 等人工智能辅助编码工具在从自然语言描述生成代码方面表现出了很大的潜力。

但是,如果您使用过这些 AI 代码生成工具,那么您可能遇到了一个长期存在的问题:它们生成的代码通常无法立即正常工作。乍一看似乎合理,但当您在 VS Code 或您喜欢的 IDE 中运行它时,您会发现错误、极端情况,甚至对不存在的 API 的引用。

这可能会导致一个令人沮丧的循环:尝试生成的代码、发现问题、返回 AI 进行修复,然后重复这个过程。调试所花费的时间可能会抵消最初使用 AI 工具所节省的时间。

这就是我们开发 新开源工具 Micro Agent 的目的。Micro Agent 旨在提供人工智能辅助编码的优势,同时缓解不可靠代码生成的问题。

微代理的工作原理

Micro Agent 背后的关键理念是将生成式 AI 限制在特定任务上,并为其提供明确、确定的反馈。Micro Agent 不会以开放式方式生成代码,而是使用单元测试作为护栏。

以下是典型的微代理工作流程:

  1. 描述您的功能: 您提供您想要创建的功能的自然语言描述。
  2. AI 生成测试: 根据您的提示,Micro Agent 生成指定函数预期行为的单元测试,包括几个输入和输出示例。
  3. AI 编写代码: 然后,Micro Agent 尝试使用 JavaScript、TypeScript、Python 或其他语言编写代码,以使测试通过,从而利用大型语言模型 (LLM) 的强大功能。
  4. 自动迭代: 如果测试失败,Micro Agent 会继续迭代,编辑源代码并重新运行测试,直到所有测试都通过。这种方法可确保生成的代码满足指定的要求。

结果是,该功能比典型的 AI 编码工具具有更高的保证,能够按预期工作,并有确定性测试支持。通过自动化迭代过程,此 AI 编码助手简化了您的开发流程,并帮助您满怀信心地创建更高质量的代码。

下面是 Micro Agent 生成测试和代码的 30 秒演示,演示了如何将字符串数组中的字谜分组到一起的 TypeScript 函数:

那么其他 AI 代理又如何呢?

虽然能够自动执行任何编程任务的多功能 AI 编码代理的概念令人兴奋,但现实往往达不到预期。Auto -GPT 等工具和其他通用编码代理往往会出轨,导致错误加剧并导致意外结果。

想象一下,您的 Roomba 吸尘器卡在桌子底下,轮子不停旋转,毫无进展。现在将这一情况放大一千倍,您就会知道不受约束的 AI 编码代理可能会出现什么问题。

Micro Agent 则采用了不同的方法。它使用单元测试作为指导机制,为 AI 提供了成功的明确定义。代理会对代码进行迭代,直到所有测试用例都通过,从而确保生成的代码满足指定的要求。

在我们的研究结果中,LLM 在一次性准确生成测试方面比尝试生成实现代码要可靠得多,特别是对于非平凡任务而言,这成为了 Micro Agent 的重大突破。

微代理的实际应用示例

在 Builder.io ,我们一直在广泛使用 Micro Agent 来生成复杂的代码,而无需花时间弄清楚并自行迭代。事实上,我们甚至使用 Micro Agent 来构建 Micro Agent。

以下是我们在构建微代理时如何使用微代理的一些示例:

  • 生成 ASCII 文件树: 我们使用 Micro Agent 创建了一个函数,用于生成文件树的 ASCII 表示。查看 源代码进行测试 ,了解 Micro Agent 如何帮助我们完成这项任务。
  • 从 Markdown 解析代码块: 从 Markdown 文件中提取代码块是我们委托给 Micro Agent 的另一项任务。查看 源代码测试 其工作原理。顺便提一下,Micro Agent 在生成和修复正则表达式方面特别出色。

这也是让 Micro Agent 生成简单 HTML 到 AST 解析器的一个例子(它通过两次迭代实现):

与 Visual Copilot 集成

虽然 Micro Agent 能够有效地用 JavaScript、Typescript、Python 和其他语言生成精确的代码逻辑,但它并不适合用 HTML、CSS、React、Tailwind 等创建像素完美的用户界面。这就是 Visual Copilot 的作用所在。

Visual Copilot 可以获取 Figma 中的任何设计,并通过 AI 驱动的代码生成将其转换为可用于生产的代码,该代码可以重用您现有的组件、CSS 变量等。

我们正在积极构建 Micro Agent 与 Visual Copilot 之间的集成,以便您可以同时获得两全其美的效果 - 自动生成的、测试驱动的代码逻辑与直接来自您设计的像素完美代码相结合。我们所做的一些工作现在就可以使用,还有更多工作即将推出。

很快,Visual Copilot + Micro Agent 将使您能够自信而精确地将整个想法端到端地转化为可运行的应用程序 - 例如,只需单击即可使 figma 原型成为现实,将提示转变为完全设计和编码的应用程序等等 - 所有这些都在您现有的代码库中使用现有的设计系统和组件完成。

开始使用 Micro Agent

首先,全局安装 Micro Agent:

npm install -g @builder.io/micro-agent

接下来,根据提示或手动设置您的 OpenAI API 密钥:

micro-agent config set OPENAI_KEY=<your token>

要开始新的编码任务,只需运行:

micro-agent

Micro Agent 将提示您描述所需的功能,生成测试,并开始使用您喜欢的语言编写代码以使测试通过。一旦所有测试都通过,您将拥有一个功能齐全、经过测试支持的函数,可供使用。

AI 编码工具的概况

为了了解 Micro Agent 在更广泛的 AI 编码工具生态系统中的地位,让我们快速了解一下每个工具及其自身的优势和具体用例。

内联代码完成(GitHub Copilot)

GitHub Copilot 等工具会在您输入时提供内联代码补全建议。这对于快速编写样板代码或填充常见模式非常方便。但是,这些建议是局部的,并不能保证整体代码的正确性。

对话式编码助手(ChatGPT、GitHub Copilot Chat)

像 ChatGPT 这样的对话式 AI 助手允许您用自然语言描述要编写的代码,然后生成代码片段。这对于探索想法或解决问题非常有用,但生成的代码通常需要手动调整才能在您的特定环境中正常工作。

设计编码(Visual Copilot)

当您需要从 Figma 设计中生成像素完美的代码以重用现有组件、设计系统和样式变量时,Visual Copilot 是一个不错的选择。但是,有时 AI 生成的结果并不完全符合您的需求(例如特定的 linting 要求,有时会出现 TSC 警告等)。

可以在这里插入微代理来完成最后一英里的代码,自动且迭代地确保所有重要的检查都通过。

微代理的作用

Micro Agent 并非旨在取代内联补全、对话助手或设计编码工具。相反,它专注于通过使用测试作为指导机制来高可信度地生成完整函数的特定用例。

当您需要一段重要的逻辑,并希望确保它能够正常工作而无需手动来回操作时,Micro Agent 便能大显身手。它为定义明确的任务提供更可靠的解决方案,从而补充其他 AI 编码工具。

微代理和人工智能辅助编程的未来

展望未来,我们相信人工智能代理将在软件开发中发挥越来越重要的作用。然而,目前构建通用代理的趋势太不可靠,无法在日常工作流程中使用。

微代理方法指向一个不同的未来——一个专注、专业的代理与开发人员协同工作,以高可靠性处理特定编程任务的未来。在未来,我们认为代理应该深入集成到我们的工作流程中,例如直接集成在我们的 IDE 中。

想象一下这样一个未来世界:您只需在高层次上描述想要构建的内容,多个微代理就会开始行动 - 一些微代理编写测试,一些微代理实现逻辑,还有一些微代理专注于 UI - 所有这些微代理共同协作,将您的愿景变为现实。Visual Copilot 等集成将确保像素完美的 UI 忠实于源材料,而微代理则在幕后工作,使一切无缝运行。

在这个未来中,开发人员将减少在重复性低级任务上花费的时间,而将更多时间花在高级问题解决和创造力上。我们将更像导演,不断评估和指导,而不必亲自编写每一行代码(但仍然需要编写代码 - 人工智能现在和将来只能做这么多)。

当然,要实现这一愿景,还有许多工作要做。但我们认为我们已经朝着这个方向迈出了令人兴奋的第一步。通过将人工智能专注于狭义的任务并提供紧密的反馈回路,我们今天就可以以更可靠、更可预测的方式利用其力量。

结论

对我们来说,Micro Agent 是一项令人兴奋的发展,它使 AI 辅助编码更加可靠和高效。虽然我们在 Builder.io 内部使用它取得了巨大成功,但它仍然是一个年轻的项目,可能无法解决每个人的所有编码挑战。



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

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

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

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询