Agent驱动的AI编程,终于找到了PMF!

发布于 2024-12-17 13:15
浏览
0收藏

AI编程,下半年火遍全网,最近的Devin,以500美刀/M的价格杀疯了,早上openai 2000刀订阅的新闻也传遍了各个微信群。cursor、windsurf、bold.new 都逐渐的进入了实用的阶段,未来对AI说“帮我写个微信”这种需求,似乎也不太遥远。今天给家人们分享的是AI编程赛道的独角兽,Replit。

背景

早期流行的,如github copilot,国产的通义灵码这些AI编程产品,在代码补全和增量开发方面表现出色,所以获得了比较大的市场。但是短期来看,AI编程赛道的一个发展趋势是,“人人都是产品经理/人人都是超级个体”。

Replit Agent 可以提前思考并采取正确的行动顺序,可以轻松构建 Web 应用、各种工具软件,或任何你想象中的新奇想法。它像智能助手一样,帮助人快速从想法转化为可用的代码。

保持高可靠性并让用户参与其中

Replit 团队专注于可靠性,将其 AI Agent的环境限制在 Replit Web 应用和 Replit 开发者已可用的工具范围内。他们的Agent是一个可以迭代循环的 ReAct 风格的智能体。

随着时间的推移,Replit Agent 采用了Multi-Agent架构。当只有一个Agent管理工具时,出错的几率会增加,因此 Replit 团队将每个Agent执行的任务限制为尽可能小的任务。他们为不同的Agent分配了角色,包括:

  • 一个管理Agent来监督工作流程。
  • 编辑Agent来处理特定的编码任务。
  • 一个验证Agent来检查代码并经常与用户互动。

Replit 总裁 Michele Catasta 指出了他们构建理念的一个关键区别:

“我们不追求完全的自主性。我们希望用户保持参与和投入。”

例如,他们的验证Agent的独特之处在于,它不仅仅检查代码并试图做出决定。它经常会与用户对话,以在开发过程中强制执行持续的用户反馈。

提示工程

Replit 采用了一系列先进技术来提高其编码Agent的性能,尤其是对于像文件编辑这样的复杂任务。

Replit 经常使用少量样本示例以及冗长的、针对特定任务的指令来有效地指导模型。对于开发过程中更困难的部分,例如文件编辑,Replit 最初尝试了微调。但是,这并没有取得任何突破。相反,性能的显著提高来自于利用 Claude 3.5 Sonnet。

Replit 还开发了动态提示构建技术来处理token限制,类似于 OpenAI 流行的提示编排库使用的系统。他们压缩和截断长期的记忆轨迹,以管理不断增长的上下文。这包括使用LLM压缩记忆,以确保只保留最相关的信息。

为了提高模型的理解和提示组织,Replit 采用了结构化格式。特别是,XML 标签有助于描绘提示的不同部分,从而指导模型理解任务。对于冗长的指令,Replit 依赖 Markdown,因为它通常在模型的训练分布范围内。

值得注意的是,Replit 没有以传统方式进行工具调用。他们没有使用 OpenAI API 提供的函数调用,而是选择生成代码来自己调用工具,因为这种方法更可靠。由于 Replit 拥有包含 30 多个工具的宽泛库,每个工具都需要多个参数才能正确运行,这使得工具调用过程变得复杂。Replit 编写了一种受限的基于 Python 的 DSL 来处理这些调用,从而提高了工具执行的准确性。

让用户参与到Agent的旅程中

Replit 在设计其用户体验时,专注于实现关键的人机协作工作流程。首先,Replit 团队实施了回溯功能以增加控制。在Agent工作流程的每个主要步骤中,Replit 都会在后台自动提交更改。这使用户可以“回到过去”的任何时间点并进行更正。

在一个复杂的、多步骤的Agent轨迹中,前几个步骤往往最成功,而可靠性在后面的步骤中会下降。因此,团队认为,在必要时使用户能够恢复到早期版本尤为重要。初学者只需单击一个按钮即可撤消更改,而高级用户则可以更灵活地深入 Git 面板并直接管理分支。

由于 Replit 团队将所有内容都纳入了工具中,因此每当Agent安装软件包、执行 shell 命令、创建文件等时,用户都可以看到关于Agent操作的清晰、简洁的更新消息。

用户无需关注大型语言模型的原始输出,而是可以看到他们的应用程序随着时间的推移而发展,并决定他们希望在Agent的思考过程中投入多少(例如,选择展开以查看Agent已采取的每个操作及其背后的想法,或忽略它)。

与其他Agent工具不同,Replit 还允许你通过单击几下即可部署你的应用程序。发布和共享应用程序的功能已平滑地集成到代理工作流程中。

实时反馈和跟踪监控

为了增强对其Agent的信心,Replit 依靠直觉、实际反馈以及对其代理交互的跟踪可见性的结合。

在 Replit Agent 的 alpha 测试阶段,他们邀请了一小群约 15 名以 AI 为先的开发者和影响者来测试他们的产品。为了从 alpha 反馈中获得可操作的见解,Replit 集成了 LangSmith 作为其可观察性工具,以跟踪和处理其跟踪中存在问题的代理交互。

Replit 团队会在长时间运行的跟踪中搜索以查明任何问题。由于 Replit Agent 允许人类开发者根据需要介入并纠正Agent轨迹,因此多轮对话很常见。他们能够在 LangSmith 的逻辑视图中监控这些对话流程,以识别用户卡住并可能需要人工干预的瓶颈。

赋予开发者创造力

Replit Agent 正在简化新手和资深开发者的软件开发。通过优先考虑人机协作和Agent操作的可见性,Replit 团队正在帮助用户克服最初的障碍,释放他们的创造力。

虽然Agent的世界提供了许多强大的新用例,但调试或预测Agent的行为通常仍然是未知领域。Replit 期待与开发者社区一起突破界限,并致力于解决棘手的问题,例如评估 AI 代理轨迹。

在构建有用且可靠的Agent的道路上,Michele Catasta 做出了最好的总结:

“我们必须拥抱这种新事物带来的复杂性。”

本文转载自​探索AGI​,作者: 猕猴桃 ​​

收藏
回复
举报
回复
相关推荐