编者按:我们非常激动地分享 BCG 的这项工作。在过去一年中,我们与 BCG 紧密合作,帮助支持企业将 GenAI 项目投入生产。我们对他们的 AgentKit 平台非常感兴趣,并且在仔细了解后,我们更加兴奋。我们希望大家也一样!
简介
BCG X 今天很高兴地宣布发布 AgentKit,这是一个基于 LangChain 的入门套件,用于构建约束型代理应用。我们在 BCG X 内部经常使用 LangChain 来构建 GenAI 应用,并使用 LangSmith 来评估它们。通过 AgentKit,我们回馈社区,发布一些对我们为客户构建基于代理的应用非常有用的工具。
什么是 AgentKit?
AgentKit 是一个用于构建全栈约束型代理应用的入门套件。它基于最新版本的 Next.js 14、FastAPI (Pydantic 2.x) 和 LangChain 构建,以实现最佳性能、安全性和开发者体验。开发者可以使用 AgentKit 作为项目的基础来:
- 使用聊天 UI 和可扩展后端快速实验约束型代理架构,以及
- 构建可扩展到 MVP 的全栈、基于聊天的代理应用
我们选择在 LangChain 之上构建 AgentKit 有几个原因。LangChain 使我们既可以使用任何适合应用的 LLM,又可以与 LangSmith 原生集成,以便我们轻松评估应用的性能。此外,它使我们更容易集成有用的功能,例如内存管理和可扩展的 AgentExecutor。
工作原理
AgentKit 框架的核心是“行动计划”的概念,这是一个预定义的任务和决策树,代理会导航该树以获得所需的输出。与允许代理完全自由选择(如 ReAct 代理)不同,我们通过将代理的选项限制为我们与人类专家预先编程的行动计划,以自由度换取可靠性。然后,我们使用“路由代理”根据用户提示和聊天历史记录选择最适用的行动计划。
当选择一个行动计划后,将执行一个行动步骤树,每个行动步骤包含一个或多个异步执行的工具。行动步骤中工具的输出将向下传递到下一组工具,并且我们构建了仔细管理状态的功能,以便每个工具仅接收来自先前步骤的相关上下文。
为了使代理的行动和输出对用户透明,我们可以发出状态更新并流式传输每个行动步骤的输出,可以作为初步文本,也可以以附录的形式,附录是一个动态内容块,可以配置为包含图表、数据表、代码等。


例如,对于航运优化副驾驶,我们可以将代理限制为一组行动计划,这些计划可以
- 检索和清理定价数据,并在表格附录中显示,
- 运行优化模型以找到新的最佳时间表,并在用于 Plotly 动态甘特图的自定义附录中返回时间表,
- 使用 RAG 回答有关航运法规的问题,
我们将此功能封装到一个易于配置的全栈入门套件中,其中行动计划和工具使用 yaml 文件和环境变量,UI 使用 Tailwind/daisyUI。
AgentKit 背后的动机
BCG X 是全球管理咨询公司波士顿咨询集团 (BCG) 的技术构建和设计部门。我们与客户合作,构建、运营、扩展和转移能力与解决方案,从而为商业和社会创造最大的影响力。通常,客户会来找我们,因为他们希望我们在他们不熟悉的领域构建解决方案。我们首先与客户的业务用户沟通,了解他们的需求,设计产品并构建第一个版本,然后快速迭代以找到正确的解决方案。我们设计 AgentKit 的目的是优先考虑快速实现价值,并牢记以下几个特定原则:快速开发、可扩展性、可靠性和以用户为中心的设计。如果这些与您产生共鸣,我们希望 AgentKit 能对您构建应用有所帮助!
快速构建初始概念验证,然后与用户迭代
我们的客户期望快速、高质量的结果。凭借 AgentKit 技术栈的可配置性和模块化以及 LangChain 的灵活性,我们通常可以在几天内构建强大的初始概念验证。我们可以越早向业务用户演示应用,就可以越早开始根据他们的反馈进行迭代。
构建易于扩展到 MVP 的应用
BCG X 的成功是通过我们交付的业务价值来衡量的。凭借 AgentKit 用于身份验证、用户反馈监控、队列管理和缓存的预构建模块,以及使部署 AgentKit 应用变得容易,我们已做好充分准备,可以开始将应用扩展到生产环境并开始实现价值。
开发安全可靠的应用
为了将代理投入生产以用于实际业务用例,我们需要确保其输出的可靠性和安全性。这需要仔细评估——LangSmith 在这方面对我们来说是一个有用的工具,例如,用于调查复杂的跟踪或构建全面的数据集。最重要的是,我们需要对代理的行动有一定的“认知控制”。类似于 LangChain 最近的 LangGraph 博客 中提到的“状态机”,我们认为,在他们能够做出的选择中更加“受约束”的代理具有巨大的潜力。“行动计划”框架帮助我们将代理路由到我们知道有用的行动,并使实施防护栏变得更容易,例如通过将无用的查询路由到单独的行动计划,或在行动计划的开始处包含防护栏工具。
为业务用户构建应用
我们认为,透明的 UI/UX,清楚地显示代理的行动和输出,是业务用户采用的关键。AgentKit 的 UI 经过刻意设计,旨在显示代理在每个步骤所做的事情,同时使用流式传输来显示其初步输出。并且我们已包含对渲染表格、动态可视化(如图表、甘特图、图像和代码)的支持,以支持广泛的业务用例。
了解更多
如果您有兴趣了解更多信息或想亲自试用 AgentKit,请浏览 GitHub 仓库、我们的 AgentKit 文档 或 AgentKit 代码库助手 的演示。
迄今为止,BCG X 使用 AgentKit 的一些项目包括:
- 为一家全球制药公司生成复杂临床文件(如临床试验方案)的草稿
- 使用有用的代理助手控制和协调供应链优化系统
- 开发一款聊天机器人,帮助一家大型汽车厂商为其客户提供服务
- ...以及更多