Allgemeine Einführung
Agent Inbox是由LangChain团队开发的一个开源项目,旨在提供一种新的用户体验,用于与AI智能体进行交互。该项目允许用户通过一个集中的界面管理和优化与多个AI智能体的交互。Agent Inbox支持多种配置和自定义选项,使用户能够根据自己的需求调整代理的行为和响应方式。该项目的目标是简化AI智能体的管理流程,提高交互效率,并提供更直观的用户体验。
在线托管版本:dev.agentinbox.ai
Funktionsliste
- zentralisierte Verwaltung:通过一个界面管理多个AI智能体的交互。
- Benutzerdefinierte Konfiguration:支持多种配置选项,用户可以根据需求调整代理行为。
- Echtzeit-Reaktion:提供实时的代理响应和交互记录。
- Mehrsprachige Unterstützung:支持多种编程语言的中断输入和输出模式。
- Open-Source-Projekt:代码公开,用户可以自由查看、修改和贡献。
Hilfe verwenden
Ablauf der Installation
- Klon-Lager::
git clone https://github.com/langchain-ai/agent-inbox.git
cd agent-inbox
- Installation von Abhängigkeiten::
Garn installieren
- Konfigurieren des API-Schlüssels::
- 点击侧边栏的“设置”按钮,输入LangChain API密钥。
- 创建第一个收件箱:打开设置弹出窗口(侧边栏左下角),点击“添加收件箱”,填写相关信息。
Verwendung Prozess
- Initiierung von Projekten::
Garnanfang
- 连接LangGraph部署::
- 添加LangGraph图形名称或助手ID。
- 输入LangGraph部署的URL。
- 为收件箱命名(可选)。
- 管理中断::
- 更新代码中所有使用中断的实例,使其兼容Agent Inbox。
- 使用Python或TypeScript定义中断输入和输出模式。
Hauptfunktionen
- 接受中断:接受中断的参数或操作,发送ActionRequest。
- 编辑中断:编辑中断的参数,发送修改后的ActionRequest。
- 忽略中断:根据配置,用户可以选择忽略中断。
- 响应中断:用户可以根据中断类型进行响应。
Detaillierte Vorgehensweise
- 配置中断模式::
- Python中断模式:
python
class HumanInterrupt(BaseModel):
action: str
args: Dict[str, Any]
- TypeScript中断模式:
.
interface HumanInterrupt {
action: string;
args: Record<string, any>;
}
- Python中断模式:
- 发送响应::
- 根据中断类型,发送相应的HumanResponse:
python
class HumanResponse(BaseModel):
action_request: ActionRequest
- 根据中断类型,发送相应的HumanResponse:
介绍 ambient agents
目前大多数 AI 应用都遵循一种常见的聊天模式(例如ChatGPT)。虽然易于实现,但它们会产生不必要的交互开销,限制了我们人类的自我扩展能力,并且未能充分利用大语言模型(LLM)的全部潜力。
在过去的六个月里,我们一直在 LangChain 探索一种不同的方法:环境代理 响应环境信号,仅在检测到重要机会或需要反馈时才需要用户输入。这些代理不是强迫用户进入新的聊天窗口,而是帮助你将注意力放在最重要的事情上。
我们构建了 LangGraph 来简化这些模式的实现。今天,我们分享我们的第一个参考实现:一个电子邮件助手,它演示了关键的环境代理模式。在接下来的几天里,我们将发布更多示例和工具,帮助你构建自己的环境工作流程。
什么是环境代理?
当使用 ChatGPT (或任何其他聊天机器人)时,它们依赖你来发起对话。代理由人类发送消息来启动。
这对于某些用例来说很棒,但对于其他用例来说也有很大的限制。它要求用户每次都进入聊天界面并发送消息,以便让代理执行工作。让代理开始工作会产生很多开销。
另一个限制是,你一次只能进行一个对话。这使得我们人类很难扩展自身能力 —— 一个代理一次只能为我们做一件事。
如果我们考虑一种允许我们克服这些限制的 UX 范式,它应该表现出两个关键特征:
- 它不应该(仅仅)由人类消息触发
- 它应该允许多个代理同时运行
这些特征定义了我们所说的 环境代理 .
💡环境代理 监听事件流并据此采取行动,可能会同时对多个事件采取行动
值得注意的是,我们并不认为环境代理一定是完全自主的。事实上,我们认为将环境代理推向公众的关键部分是周全地考虑 何时 zu auf welche Weise 这些代理与人类交互。
人机交互
Wir verwenden人机交互来指代这些代理 何时 zu auf welche Weise 与人类互动。我们稍后会讨论 auf welche Weise ,但现在让我们讨论 何时 .
我们通常会看到环境代理的三种常见人机交互模式:通知、提问和审查。
通知: 让用户知道某个事件很重要,但不采取任何行动。这对于标记用户应该看到的事件很有用,但代理无权对其采取行动。在电子邮件助手的上下文中,这可能是代理标记我收件箱中的 Docusign —— 它无法签署该 Docusign,但我应该知道它的存在。
Frage: 向用户提问,以帮助解除代理的阻塞。代理可能正在尝试采取某些行动,但不清楚如何最好地执行,因为它缺少一些相关信息。与其产生幻觉或猜测,不如让代理直接询问人类该怎么做。在电子邮件助手的上下文中,这可能是一个代理询问我是否想参加会议。除非提示中有指示代理关于我的会议偏好,否则它不可能知道。人类的 EA 会问我,一个代理也应该如此。
Rückblick: 审查代理想要采取的行动。有些行动足够“危险”,可能值得为代理想要采取的任何行动硬编码一个审查。人类可以批准该行动,直接编辑它,或者向代理提供关于如何更改它的直接反馈。在电子邮件助手的上下文中,这可能是一封外发电子邮件。它可能会写一个草稿,但我必须批准它,直接编辑消息内容,或者告诉代理以某种方式修复它。
人机交互的重要性
我们认为,人机交互组件为环境代理带来了三个关键好处:
- 它降低了风险,使代理更容易投入生产
- 它模仿人类的沟通方式,建立用户信任和采用
- 它增强了长期记忆和学习能力
人机交互降低了风险。 如果一个代理在后台完全自主地运行,那么它真的不能犯错。你必须非常信任代理,才能让它采取某些行动(例如更新数据库、向重要客户发送电子邮件等)。有了人机交互,你可以轻松地控制这些操作并要求明确的人工批准。这样你就可以确保不会发送错误的电子邮件。
人机交互模仿了人类的沟通方式。 与他人合作的一个重要部分是与他们沟通。当你犹豫不决时,向他们提问,让他们帮你考虑想法。如果我们有“同事”是代理,让他们以类似的模式进行沟通,可以建立用户的信任,从而促进采用。考虑一下像 Devin 这样的东西。他们选择用户与 Devin 交互的主要界面之一是 Slack。那是我们与人类开发人员互动的地方,为什么我们不应该以那种方式与 AI 开发人员互动呢?沟通很重要。
人机交互增强了长期记忆和学习能力。 我们坚信,AI 代理的一个关键部分是它们随着时间的推移学习并更好地与人类用户保持一致的能力。为了实现这种一致性,他们需要某种形式的用户反馈。这种人机交互组件提供了这种反馈。
代理收件箱
因此,我们讨论了代理应该 何时 与人类沟通( 通知(math.) Gattung Fragen stellen(math.) Gattung herauszensieren ),但我们没有讨论他们应该 auf welche Weise 沟通。
在试验环境代理时,我们最初从 Slack 开始。主要好处是,我们都已经在使用 Slack 进行日常工作,因此这是引起我们注意并与我们的人类之间的沟通保持集中的有效方式。
Slack 的缺点是很容易遗漏所有通知。如果你不回复一些通知,Slack 通知的积压就会增加。Slack 频道(或 DM)不是最容易导航的。它在你可以如何与代理沟通方面也有限制——你可以轻松地向他们发送消息,但其他任何事情都比较棘手。
我们转而使用我们所谓的“代理收件箱”。这是与环境代理交互的新 UX。它的模型结合了电子邮件收件箱和客户支持票务系统。它显示了你和代理之间的所有开放通信线路——使跟踪任何未完成的操作变得容易。它是一个独立的 UI,可以轻松添加任何面板、按钮或其他 UI 功能,使你能够更轻松地捕获用户反馈。目前,项目仅按时间排序,但将来你将能够根据优先级对其进行排序。目前,此收件箱是单人游戏,但将来你将能够看到哪些项目已分配给你,哪些已分配给其他人。
为什么 LangGraph 非常适合环境代理
在我们构建环境代理的过程中,我们确保 LangGraph 能够支持这些类型的代理。LangGraph (和 LangGraph Platform )具有一些你可能不想自己构建的关键特性:
内置持久层。 LangGraph 由一个持久层支持,该持久层在每个操作(或图的节点)之间保存代理的状态。这允许代理基本上“暂停”并等待用户反馈。这对于启用人机交互模式以及短期对话记忆非常重要。
内置人机交互支持。 LangGraph 本机支持人机交互模式。内置的持久层是重要的一部分,但我们最近还添加了 “中断” ,这是一种与最终用户通信的新内置方法。
内置长期记忆。 LangGraph 具有内置的长期记忆(本质上是一个命名空间的键值存储,支持语义搜索)。这使得代理在人机交互后很容易更新其“记忆”。
Cron 任务。许多环境代理按计划运行以检查新事件。LangGraph Platform 带有内置的 cron 任务来支持这一点。
构建 AI 电子邮件助手
通过构建我们每天都在使用的环境代理,我们使 LangGraph 非常适合构建环境代理。其中一个主要的是一个 电子邮件助手。如果你在过去的六个月里与我联系过,那么很有可能是 AI 代理起草了那封电子邮件(如果我忽略了你,那肯定是 AI 代理的错)。
今天,我们推出了这个电子邮件助手,它既是一个免费使用的托管电子邮件代理,也是一个 开源项目。我们希望托管的电子邮件代理可以轻松尝试和体验环境代理,并且开源版本可以作为这种新设计范式的参考实现。