Forter 通过开展为期两周的实践冲刺,让约 200 人参与构建人工智能代理,并设计了一种能够降低编程经验要求、让分析师和工程师快速试验想法的环境。该公司首席工程师 Ben Maraney 将这次实践视为一个关于消除不必要复杂性的教训,而不是试图一次性解决构建代理的所有挑战。
起点:为期五周的实践冲刺
目标是培训研发团队创建自己的代理,其中包括来自法律、心理学和科学背景的分析师,他们中的一些人此前从未编写过 SQL。团队需要在五周内完成环境准备,然后开展为期两周的构建冲刺。因此,设计重点集中在三个方面:工具、平台,以及消除用户面临的障碍。
中央 MCP 服务器,而不是分散的工具
Forter 采用了一个基于 MCP 协议的内部服务器,并将其命名为 Toolchain。该服务器提供了一个统一界面,用于发现和试用工具,以及创建每个代理所需的连接。它还允许用户仅选择代理所需的工具,而不是授予其范围过大的访问权限,以免代理感到困惑或使用不合适的工具。
工具数量从团队成立时的约 20 个,增加到冲刺开始时的近 60 个,并在冲刺结束两周后增加到近 100 个。统一代码库以及清晰的示例和配置文件帮助团队快速添加新工具,同时还提供了监控令牌消耗和工具使用情况等治理能力。
公司没有在短时间内构建定制的检索增强生成(RAG)系统,而是将 Toolchain 与用于搜索 Confluence、Asana、Jira、Slack 和 Salesforce 等内部来源的 Glean 平台连接起来。系统提供三类工具:搜索相关文档和片段、读取完整文档,以及根据代理指定的问题或主题进行摘要。
从无代码平台到可定制解决方案
Forter 使用 LibreChat 提供快速且低代码的对话体验。用户能够查看代理调用了哪些工具、发送了哪些查询和参数,以及收到了哪些结果。这有助于理解代理的行为并及早发现问题,尽管 MCP 集成有时不稳定,而且版本控制和定制能力有限。
对于更复杂的场景,公司提供了模板代码库,使开发人员能够完全控制代码,并添加工具和子代理,但设置和部署速度较慢,尤其是对于分析师而言。后来,Forter 创建了一个名为 AI Hub 的内部界面,用户可以选择模型、编写系统消息、指定工具,然后通过几步操作分享代理。
对于非交互式代理,公司使用 Strands 框架与 Argo Workflows,根据时间表或创建 Jira 和 Asana 工单等事件运行这些代理。Maraney 指出,如果已有调度和运行系统,就可能无需为代理建立新的专用架构。
实际构建了什么?
这些使用场景包括帮助分析师制定更好的假设和实验、审查事后报告,以及利用 Snowflake 和 Databricks 笔记本分析商户表现下降的原因。公司还开发了 Layla 和 Penny 等专家代理,用于访问代码、配置和数据,并回答有关交易决策和计费的问题。在 Layla 对系统的了解超过任何单个员工之后,其使用范围扩展到了客户成功和支持团队。
非交互式代理的例子包括:根据相似商户为新商户建议初始配置;在收到支持工单时准备初步研究;以及分析异常状态警报并将其与代码变更关联起来。Forter 还测试了一个事件响应代理,但发现其表面上出色的结果主要依赖于复制人类此前在 BetterNext 报告中撰写的根因分析。
实际发生了哪些变化?
这次实践表明,可观测性并不是次要功能。展示代理所依赖的工具、参数和结果,对于发现事件响应代理实际上并未推断根因至关重要。因此,Forter 后来加入了 Langfuse,用于跟踪代理会话、工具调用和工作流。
这次实践还表明,多平台并存可能是有意为之:使用无代码平台进行快速试验,使用软件解决方案进行定制,并运行基于事件或时间表的代理。另一方面,公司在为每个代理创建独立代码库的模式上遇到了问题,随后改为使用数量更少、包含相关代理的代码库,以便更容易引入跟踪等共享能力。
Maraney 还提醒说,相关性、连贯性和安全性等通用评估指标可能造成质量良好的假象。有用的评估应当测试答案的正确性、是否使用了合适的工具,以及是否检索到了正确的上下文;这些要求更加困难,并且需要准确了解优秀答案意味着什么。因此,在人类仍处于决策环节的内部试验中,可以推迟高级评估,但不应将此视为评估的永久替代方案。
扩大规模的计划还需要尽早让法律和安全团队参与进来,尤其是要明确数据的处理和留存位置。Maraney 表示,使用 Amazon Bedrock 等云服务,并记录不保留数据的政策,有助于在企业控制措施范围内处理这些担忧,而不是让每个代理都成为一个单独的审批事项。