在3月份的红杉资本AI Ascent大会上,我谈到了代理的三个局限性:规划、用户体验和记忆。您可以在这里观看我的演讲。这是我们关于代理用户体验的第二篇文章,重点是环境代理。
在我们之前关于代理的基于聊天的用户体验的博客文章中,我们讨论了聊天需要用户主动思考如何与AI进行消息交互。但如果AI可以在后台为您工作呢?
我认为,为了让代理系统真正发挥其潜力,这种让AI在后台工作的转变是必须发生的。当任务在后台处理时,用户通常更能容忍更长的完成时间(因为他们降低了对低延迟的期望)。这使得代理能够完成更多工作,而且通常比在聊天用户体验中更仔细/勤奋。
此外,在后台运行代理还能使我们人类更有效地扩展我们的能力。聊天界面通常将我们限制为一次处理一项任务。但如果代理在后台环境运行,可以有许多代理同时处理多项任务。
那么,这种后台代理用户体验会是什么样子呢?
与后台代理建立信任:从“人工干预”到“人工监控”
让代理在后台运行需要一定的信任。如何建立这种信任?
一个直接的想法是展示用户代理正在做什么。显示它正在执行的所有步骤,并让用户观察正在发生的情况。虽然这些信息可能不会立即可见(就像在流式传输响应时那样),但应该可以让用户点击进入并观察。
下一步是不仅让用户看到发生了什么,还让他们纠正代理。如果他们看到代理在第10步中的第4步做出了错误的决定,他们应该能够回到第4步并以某种方式纠正代理。
这种纠正看起来是什么样的?它可以有几种形式。让我们以纠正调用工具不当的代理为例
- 您可以手动输入正确的工具调用,就像代理已经输出的那样,然后从那里继续。
- 您向代理提供明确的指示,告诉它如何更好地调用工具——例如,“使用参数X而不是参数Y调用它”——并要求代理更新其预测。
- 您可以更新代理在该时间点的指令或状态,然后从该步骤开始重新运行。
选项2和选项3的区别在于代理是否意识到自己先前的错误。在选项2中,代理会被呈现出它之前糟糕的生成结果并被要求纠正它,而在选项3中,它不知道自己糟糕的预测(并且只是遵循更新的指令)。
这种方法将人类从“人工干预”模式转变为“人工监控”模式。“人工监控”模式需要能够向用户展示代理所采取的所有中间步骤,允许用户在中途暂停工作流程,提供反馈,然后让代理继续。
Devin,AI软件工程师,是实施了类似用户体验的一个应用程序。Devin可以长时间运行,但您可以看到所有采取的步骤,可以回溯到特定时间点的开发状态,并从那里发出纠正。
集成人类输入:代理何时需要寻求帮助
虽然代理可能在后台运行,但这并不意味着它需要完全自主地执行任务。有时代理不知道该做什么或如何回答。此时,它需要引起人类的注意并寻求帮助。
一个具体的例子是我正在构建的一个电子邮件助手代理。虽然电子邮件助手可以回复基本的电子邮件,但它经常需要我在某些不希望自动化的任务上提供输入。这些任务包括审查复杂的LangChain错误报告、决定是否要去参加会议等。
在这种情况下,电子邮件助手需要一种方式来向我传达它需要信息来回复。请注意,它并不是直接要求我回复;相反,它会寻求我{对某些任务的意见,然后可以用这些意见来精心撰写并发送一封漂亮的电子邮件或安排一个日历邀请。
目前,我已在Slack中设置了此助手。它会向我提出一个问题,我会在一个线程中回复它,从而原生集成到我的工作流程中。如果我想将这种用户体验扩展到比仅为我个人提供电子邮件助手更大的规模,我会设想一种类似于客户支持仪表板的用户体验。该界面将显示助手需要人类帮助的所有区域、请求的优先级以及任何其他元数据。

当我描述这个电子邮件助手时,我最初使用了“代理收件箱”这个词——但更准确地说,这是一个供人类在某些任务上协助代理的收件箱……这有点令人毛骨悚然。
结论
我对环境代理非常看好,因为我认为它们是我们人类扩展自身能力的钥匙。
随着我们的团队继续构建LangGraph,我们正着眼于这些用户体验进行构建。我们检查所有状态,轻松实现人工监控可见性、回溯和编辑。这还使代理能够联系人类并在继续之前等待其回复。
如果您正在构建一个具有环境代理功能的应用程序,请与我们联系。我们很乐意听取您的经验!