今天我们推出 Managed Deep Agents 0.8,它新增了对用户自有凭证、用户级记忆、HTTP 通道、Slack 中文件传输的支持,并添加了一个由 Parallel 提供支持的预构建网页搜索工具。

Managed Deep Agents(MDA)是在生产环境中构建、部署和运行关键任务智能体的最简单方式,让工程团队可以专注于智能体行为,而不必重建每个智能体都需要的相同基础设施。通过今天的发布,我们扩展了 Managed Deep Agents,以支持大多数团队在生产环境中运行智能体时面临的四个挑战:智能体记忆、身份验证、通道和工具管理。

试用 Managed Deep Agents

Managed Deep Agents将 Deep Agents 框架与在生产环境中运行智能体所需的所有基础设施结合在一起。Managed Deep Agent 是你代码仓库中的一个代码优先项目,让你可以轻松地将智能体的所有原语组织到一个简单的目录中:

my-agent/agent.py | agent.ts | agent.tsxpyproject.toml | package.json# 项目依赖instructions.md# 提示词同步到 Context Hubidentity.py | identity.ts# 身份验证、线程作用域、记忆作用域memory.py | memory.ts# 定义你的智能体记忆tools/# 自定义工具channels/# 入口点,如 Slack 和 GitHubmiddleware/# 自定义中间件schedules/# 托管 cron 计划connectors/# 托管连接器skills/# 技能同步到 Context Hubsandbox/# 沙箱配置evals/# 智能体评估

Managed Deep Agents 实践

假设你正在构建一个内部智能体来支持你的销售团队(在本文中我们称这个智能体为我们的GTM Agent)。你希望你的智能体能够查找客户详情、研究客户、起草会议简报、跟进邮件等等,并帮助保持你团队的客户活跃度。为此,你的智能体需要记忆、工具访问、网页搜索、推理和规划能力。

智能体框架,例如Deep Agents,有助于构建这些智能体。它们提供了用于构建复杂智能体的原语,这些智能体可以承担长期运行的关键任务。使用 Deep Agents,启动并运行一个原型很简单,但要让智能体在生产环境中无缝运行,则需要更多工作。

这正是 Managed Deep Agents 的用武之地。它将你定制的 Deep Agents 运行框架与大规模运行此类智能体所需的管理基础设施打包在一起。这包括添加 Slack 等渠道、身份与认证,以及管理工具的权限。构建这套基础设施通常需要耗费数个季度的路线图时间,并且需要持续维护。Managed Deep Agents 让工程师能够专注于构建智能体逻辑,而将样板代码交给它处理。

为你的智能体提供记忆,按用户划分范围

当智能体在生产环境中被多个用户使用时,稳健、安全的记忆管理系统至关重要。Managed Deep Agents 已经支持持久化智能体记忆,让部署能够在多次对话中保留指令和偏好。设置记忆可以通过简单的声明文件完成:

# 记忆声明文件可启用持久化的智能体级和用户级记忆。my-agent/agent.pymemory.py

在 Managed Deep Agents 0.8 中,我们新增了第二层用户级记忆,其范围限定为启动智能体运行的那个已认证用户。这为智能体提供了一个存储调用方特定上下文的场所,例如偏好、工作风格、重复性任务,或用户要求它记住的细节,而不会将这些上下文与共享的智能体级记忆混在一起。

frommanaged_deepagentsimportMemoryLayer, define_memorymemory = define_memory(agent=MemoryLayer(),user=MemoryLayer(),)

在底层,持久化记忆由 LangSmithContext Hub提供支持,它让团队能够存储、版本化并协作处理 Skills 和 AGENTS.md 等智能体文件。智能体记忆挂载在/memories/agent/并由使用该部署的所有人共享。用户记忆挂载在/memories/user/ 并以调用方的已认证身份为键。运行时从不会在这些层之间复制内容,因此团队可以默认将共享知识与个人上下文分开。这在真实的智能体用例中很有用,例如:

  • 一个支持智能体可能会使用智能体记忆来存储团队范围的升级规则,并使用用户记忆来记住某个特定同事偏好简洁的 Slack 更新。
  • 研究型智能体可能会将共享的研究流程保存在智能体记忆中,而将单个用户偏好的来源类型或格式约定存储在用户记忆中。
“使用 Managed Deep Agents 进行构建的体验非常顺畅。LangChain 团队与我们合作得很好,并帮助我们快速排查问题。我们的生产聊天应用作为 Managed Deep Agent 运行——借助 Context Hub 和用户级记忆,我们能够在维护客户机密性的同时提供卓越的体验。”

—— Zahid,CTO,

Kyth.ai 

记忆易于配置,并且存放在 Managed Deep Agents 项目中的单个文件内。你可以启用智能体层、用户层,或两者都启用。你还可以为每一层定义访问策略,让团队控制记忆何时可用以及适用于什么范围。除非另有指定,Managed Deep Agents 使用以下默认值:

运行来源 智能体记忆 用户记忆
Slack 一对一私信 允许 允许
Slack 频道或群组私信 允许 拒绝
HTTP 允许 拒绝

这种分层方法确保用户级信息不会“泄漏”到与多个用户的对话中。考虑一下GTM 智能体前面提到的。用户可以在与智能体的直接私信中发起请求,也可以在 Slack 群组中发起请求。已定义的访问策略和默认值确保:

  • 在直接私信中,智能体按照用户的偏好行事。
  • 在线程或 Slack 群组中有多个用户的请求中,智能体默认采用工作区/团队偏好。
  • 两种场景之间不会发生偏好和已存储记忆的泄漏。

详细了解如何设置智能体和用户级记忆此处。

通过连接安全地提供用户和智能体身份

连接将 Managed Deep Agent 链接到外部服务,例如 GitHub、Notion 或 Tavily。连接是 LangSmith 工作区中命名的凭据,你的工具仅在运行时读取它们。

与记忆一样,根据智能体的用途以及用户与其交互的方式来限定凭据范围非常重要。使用 Managed Deep Agents,你可以在用户级或智能体级限定凭据范围。

智能体拥有的凭证在所有用户之间共享,这对于不因人而异的智能体能力很有用,例如网页搜索。相比之下,当用户在某工具内拥有独特权限时,用户拥有的凭证就很重要。这对于 GitHub、Linear 和 Notion 等工具通常是必需的。

Managed Deep Agents connections

例如,我们的GTM 智能体应当能够在用户通过私信请求时传递用户凭证并使用 Salesforce 数据。该智能体还应能够使用智能体凭证来搜索网页并查找有关客户的信息。

Managed Deep Agents 开箱即支持23 项服务包括 Linear、GitHub 和 Google Workspace 工具,其中 LangSmith 管理授权、令牌和方法,因此开发者只需设置用户 ID 和密钥。

了解如何在连接中设置和使用凭证此处。

通过用户偏好的渠道访问智能体

内部智能体通常通过 Slack 等现有沟通渠道访问。Managed Deep Agents 提供预构建的 Slack 支持,让你可以轻松地在团队已经工作的地方暴露智能体。

通过今天的发布,Managed Deep Agents 现在支持更丰富的Slack 工作流并支持文件传输,并新增了HTTP 渠道,用于将智能体连接到任何可以发送 JSON webhook 的服务。

# channels/orders.pyfrommanaged_deepagentsimportchannelsfromlib.ordersimportparse, verify, messagingchannel = channels.http(provider="orders",verify=verify,parse=parse,messaging=messaging,)

对于基于 Slack 的工作流,用户可以从私信、应用提及或线程回复中调用智能体。借助文件传输支持,他们还可以直接在对话中发送智能体所需的材料,例如日志、电子表格、合同、截图或客户文档。例如,借助我们的GTM 智能体,用户现在可以在 Slack 中直接添加之前通话的笔记或客户共享的文档,同时向智能体发出请求。然后智能体会读取该文件,将其添加到上下文中并据此做出回应。

HTTP 渠道让团队能够将智能体引入内部工具、客户门户、支持系统、订单系统,或任何可以发送 webhook 的产品界面。这对于部署在多个渠道上面向客户的智能体非常有用。例如,一个负责管理接收和分诊的客户支持智能体可以部署在你的产品中,而一个负责安排演示和会议的智能体可以部署在你的网页上。

对于 Slack 和 HTTP 两种方式,团队都能掌控身份验证、身份和记忆,同时让用户在他们已经习惯的渠道中访问智能体。

“[Managed Deep Agents 是] 迄今为止最完整的端到端智能体平台。Slack 集成运行完美,让我们的工作更轻松,因为我们通过 Slack 访问所有智能体。我们能够使用 CLI 和 GitHub actions 将多个带有自定义 MCP 服务器的智能体部署到生产环境。现在我们拥有了始终在线的分诊能力,可以访问正确的监控,并能够提交 PR 和通知团队。”

— Derek Gilbert,Consensus 工程团队

内置网页搜索,由 Parallel 提供支持

网页搜索是最常见的智能体工具之一,因此我们决定将其直接构建到 Managed Deep Agents 中。现在,你可以使用由以下服务提供支持的网页搜索Parallel无需创建单独的供应商账户、管理另一个 API key,也无需自己将搜索工具接入智能体。

只需在 tools 文件夹中指定 MCP 服务器,LangSmith 就会管理 Parallel 的凭证并执行该工具。智能体会收到可引用的相关摘录和来源 URL,而调用、延迟和错误都会显示在 LangSmith 追踪中。

将 Parallel 添加到 servers 映射中,位于tools/mcp.py / tools/mcp.ts。定义mcp仅一次

从managed_deepagentsimportdefine_mcpmcp = define_mcp(servers={"Parallel": {"transport":"http","url":"https://api.smith.langchain.com/v1/managed-tools/servers/parallel/mcp",},},)

快速开始

Managed Deep Agents 0.8 简化了智能体身份验证、记忆和渠道,并将网页搜索作为预构建工具引入。

我们很期待看到团队如何使用这些新功能,因此我们让Parallel 网页搜索免费提供通过 Managed Deep Agents 提供,在 MDA 处于 beta 期间。

了解更多信息,请参阅Managed Deep Agents 文档,或通过以下方式开始:

uvx --frommanaged-deepagents mda init my-agentcd my-agentuv run mda deploy

我们正在持续改进 Managed Deep Agents,非常期待听到你在构建什么。加入我们的 Slack 社区来分享你在构建的东西,并把任何反馈告诉我们。