实用笔记:当一个AI智能体拥有1,000个MCP工具时会发生什么?
《实用笔记》操作指南:当 AI 智能体拥有 1,000 个 MCP 工具时会发生什么?——为采用该模式的团队提供的合同、校验机制及可直接插入的代码模板。
本指南将逐步展示如何为“当AI智能体拥有1,000个MCP工具时会发生什么?”这一主题从原始材料构建出可运行的系统。重点在于具体的操作步骤、明确的检查点,以及可直接放入代码库的代码,无需猜测其用途。 在修改代码之前,应先明确输入参数、各步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需推测隐藏状态。 需同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误处理都是产品不可或缺的部分,而非后续需要补充的功能。
MCP让工具的暴露变得简单
在使用 MCP 开发工具时,为便于工具的公开使用,应首先明确相关规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤出现故障时,故障点应指向单一的责任模块,而非复杂的流程链。 每次调用工具后,都要记录工具名称、参数哈希值、响应延迟以及最终结果。没有这些记录的话,调试代理循环将会耗费大量时间。
工具数量激增的问题
在解决“工具爆炸问题”时,首先写下相关契约:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将这一阶段视为输入与验证后输出之间的契约。为相关产物命名,明确成功判定标准,杜绝无声的半完成状态。 每次调用时都要记录工具名称、参数哈希值、延迟时间以及执行结果。没有这些记录,调试过程将会浪费大量时间。
上下文也会成为问题
当在处理上下文时遇到问题时,首先写下接口规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免从演示环境过渡到共享环境时出现意外费用。 为每次调用记录工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试循环将会耗费大量时间。 当在处理上下文时遇到问题时,首先写下接口规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及死信处理都是产品功能的一部分,而非后续需要补充的内容。
create_invoice
Creates an invoice for a customer.Parameters:
- customer_id
- amount
- currency
- due_date
工具选择才是真正的难题
将“工具选择是真正的问题”这一概念视为可度量的指标来处理效果最佳。在扩大范围之前,先收集一份优秀的测试用例、一个故障案例以及回滚说明。相比复杂的脚本,应优先选择小型且易于测试的单元。当某个步骤出现故障时,故障原因应能明确指向某个具体的责任主体,而非整个复杂的流程。此外,工具的架构应尽可能简洁,并明确标注其产生的副作用,这样主机在自动批准之前就能知道哪些调用会改变系统状态。
get_customer
get_customer_details
lookup_customer
search_customer
find_customer
工具越多也可能意味着错误越多
工具越多也可能意味着错误越多,因此最好将其视为可度量的对象来处理。在扩大范围之前,先记录一份优秀的示例、一个失败案例以及回滚说明。 将这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许默许不完整的完成状态。 使用结构严格的工具,并标注明确的副作用。主机需要在自动批准之前知道哪些调用会改变状态。
search_orders
get_order
list_orders
find_order_by_customer
那我们是否应该给智能体更少的工具?
那么我们应该给智能体更少的工具吗?将其视为可测量的对象时效果最佳。在扩大范围之前,先记录一份理想的操作日志、一个失败案例以及回滚说明。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,就能避免从演示环境过渡到共享环境时出现意外账单。 提供结构有限且带有明确副作用标签的工具。主机需要在自动批准之前知道哪些调用会改变状态。 那么我们应该给智能体更少的工具吗?将其视为可测量的对象时效果最佳。在扩大范围之前,先记录一份理想的操作日志、一个失败案例以及回滚说明。 同时记录正常流程和恢复流程。重试机制、人工审核环节以及死信处理都是产品的一部分,而非后续需要补充的功能。
这就是技能变得有趣的地方
因为正是在这里,技能才显得有趣——在修改代码之前先明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障应指向单一的责任主体,而非错综复杂的流程。在网关处进行身份验证,在数据层再次授权。仅凭承载令牌并不足以界定租户边界。
Agent
↓
1,000 tools
Agent
↓
Relevant Skill
↓
Relevant tools
↓
MCP
↓
API / System
MCP网关也可能变得重要
MCP网关也可能变得非常重要,因此在修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,并拒绝默许的半完成状态。 在网关处进行身份验证,在数据层面重新授权。仅凭承载令牌并不足以界定租户边界。
Agent
↓
MCP Gateway
↓
MCP Servers
↓
APIs / Systems
更大的问题并非1000种工具
更大的问题并非工具数量多达1000种,而是在修改代码之前就应明确输入参数、各步骤的负责人以及终止标准。操作人员应当能够从已知的检查点重新运行相应步骤,而无需猜测隐藏状态。 应在功能结果旁记录执行时间以及令牌或查询成本。提前了解这些成本可以避免在流程从演示环境转向共享环境时出现意外账单。 在网关处进行身份验证,在数据层面重新授权。仅凭承载令牌并不足以界定租户边界。 更大的问题并非工具数量多达1000种,而是在修改代码之前就应明确输入参数、各步骤的负责人以及终止标准。操作人员应当能够从已知的检查点重新运行相应步骤,而无需猜测隐藏状态。 需同时记录正常流程与故障恢复流程。重试机制、人工审核环节以及死信处理都是产品的一部分,而非后续需要补充的功能。
操作检查清单
若将操作检查清单视为可量化的基准,其效果会最佳。在扩大范围之前,先记录一份理想的操作流程、一个故障案例以及回滚说明。
将配置信息与应用程序代码分开。环境文件、密钥存储和功能开关应集中存放于一处,以便操作人员无需查看全部内容即可进行审计。
提供具有明确结构定义和清晰副作用标注的工具。主机需要在自动批准之前知道哪些调用会修改状态。
对于涉及资金支出或更改生产数据的操作,必须经过人工审批。编译时的连接方式并不等同于业务上的完整性。
编写简短的操作手册:包括如何轮换密钥、如何清空队列以及如何回滚上一次的数据导入操作。
将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,并拒绝默许的半完成状态。
在升级整个系统之前,先冻结版本,为关键流程记录标准输出文本,并确定回滚步骤。共享环境需要设置访问速率限制、租户验证机制,以及明确的密钥轮换负责人。与其追求花哨的一次性演示,不如注重扎实的可靠性。
关于 bd9115b02932 的批量处理说明:不要将提供方密钥放入代码仓库,为每个会话设置令牌使用上限,并将输出文本与评估用文件一起存储,以便后续更换模型时仍能保持对比性。