产品LangChain Blog·原文 2026年10月24日本站收录 2026年10月26日

LangChain发文介绍“company harness”构建经验:内部三类AI代理共用五项基础能力

LangChain称其在市场、销售和工程团队内部运行GTM Agent、OpenSWE、Content Studio三类代理,并总结出工作入口、身份、记忆、沙箱代码执行和定时运行五项共同基础,相关能力建立在其Managed Deep Agents之上。

AI解读:LangChain的这篇文章是对自家内部代理想法的经验总结,不是第三方测评。它列出三类代理共用的五项能力:员工工作入口、身份与授权、记忆、沙箱内代码执行、大量定时或事件触发运行。

公司对身份问题的处理是分工具设定:OpenSWE被用户调用时以调用者身份开PR,后台代码审查时用GitHub App自身身份;GTM Agent的Salesforce用固定身份,邮件工具以调用者身份且只在私信中开放;Content Studio的Notion以调用者身份,Twitter使用公司固定账号并限制白名单用户可执行的操作。

公司称三个代理都建立在Managed Deep Agents上,后者位于开源Deep Agents harness之上,提供渠道、定时任务、沙箱、记忆和身份等基础设施,并可定制代理行为。

文章承认记忆是探索最少的领域,两个层级是全局记忆和用户级记忆,由代理自行决定把哪些事实写入哪一层。

适用边界来自LangChain的自述:这是其内部团队的做法,效果没有公开量化数据;“大幅比例运行为定时或事件触发”也是公司描述,不能据此推断其他公司的采用情况。

LangChain发布博客,介绍其在市场、销售和工程团队内部构建AI代理的经验,并把做法概括为“company harness”的五个组成部分:代理出现在人们已有的工作场所(该公司是Slack)、知道提问者是谁并以该人身份或自身身份行动、具备全局和用户级记忆、代码在沙箱中运行并可访问需鉴权的服务、很大比例的运行由定时任务而非人工显式调用触发。

文中称这些内部代理已经改变了团队的工作方式,但也表示并不容易做对,团队花了不少时间解决多人共用一套环境带来的问题。三类代理分别是GTM Agent(市场进入)、OpenSWE(工程)和Content Studio(市场内容),都建立在Managed Deep Agents上,后者位于开源Deep Agents harness之上。

三类内部代理各自做什么

LangChain描述,GTM Agent是一个主动、持续运行的代理,监控并回复邮件、处理新的合格线索、发送每日简报、回答账户相关问题,并能执行外呼动作。

OpenSWE是工程代理,可以处理并起草PR,也会对所有PR运行代码审查。Content Studio是市场代理,可按公司风格和定位知识起草博客、图片、PowerPoint和视频等素材。

身份问题按工具分别处理

文章称身份是最棘手的问题,即代理采取行动时代表谁。行业里主要有两种方式:代表调用者行动(on-behalf-of),或使用固定凭据(如服务账号)。LangChain对三个代理做了不同组合。

OpenSWE被用户消息调用时以调用者身份行动,例如用对方的GitHub账号开PR;在后台运行(如作为代码审查代理)时使用自己的GitHub App身份。GTM Agent的Salesforce访问使用固定身份,邮件工具以调用者身份行动,且这些邮件工具只在私信中可用,在共享频道中不开放。Content Studio的Notion以调用者身份行动,Twitter使用公司固定凭据,只有白名单用户能执行发推等特定操作,其他人可能只能读取或起草。

记忆、沙箱与定时运行

所有代理都有两层记忆:对全部用户生效的全局记忆,以及只对特定用户生效的用户记忆。文章称代理自行决定将哪些事实记到哪一层,并承认这是目前探索最少的领域,还有很多工作要做。

在代码执行方面,三个代理都能编写并执行代码,模式是在沙箱外运行、连接沙箱并在其中执行,各自使用略有不同的基础镜像。OpenSWE会根据频道或用户选择不同的基础镜像。它们都使用LangSmith Sandboxes的secret proxy,让代理在沙箱内安全连接外部服务。

文章称很大比例的运行是定时或由后台事件触发,而非用户直接发起。一部分由代理开发者设置,例如OpenSWE监听新PR并自动审查;另一部分由用户要求代理自行创建,例如作者让GTM Agent每天发送简报,它就为此建立了自己的cron任务。

工作入口与人为分流的界面

三个代理都住在Slack里,各有自己的Slack应用,可以私信或在频道中被 @。文章认为在频道中使用的一个好处是其他人能看到别人怎么用。

LangChain还增加了“breakout”功能,把代理对话拆到频道中的独立线程,避免打扰正在进行的人类对话。文章同时指出,有些体验不适合放在Slack,例如积压大量待审核邮件时,逐条在Slack消息中处理体验不好,因此团队为这类场景单独做了界面。

信息来源

LangChain Blog原始来源

更多

新闻专题
外观