首页 / 文章 / 《实用笔记》:“MCP:将AI从聊天机器人转变为AI智能体的协议”

《实用笔记》:“MCP:将AI从聊天机器人转变为AI智能体的协议”

《实用笔记》操作指南:“MCP:将AI从聊天机器人转变为AI智能体的协议”:为开发MCP系统的团队提供的合同、检查清单及可直接插入的代码模板。

5081 词

以下笔记梳理了围绕“MCP:将AI从聊天机器人转变为AI智能体的协议”的一条实用路径。重点在于契约、校验机制以及可直接插入的代码占位符,而非激励性描述。 在研读概览时,首先需列出契约内容:所需输入、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 应将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一个位置,以便操作人员无需查看整个系统结构即可进行审计。

1. MCP出现之前的问题

  1. MCP要发挥最佳作用,需将其视为可度量的界面。在扩大应用范围之前,先记录一个成功的用例、一个失败案例以及回滚说明。同时将正常流程和恢复流程都记录下来。重试机制、人工审核环节以及错误处理都是产品本身的一部分,而非后续需要补充的功能。应提供具有明确结构规范和清晰副作用标识的工具,这样主机在自动批准之前就能知道哪些调用会改变状态。
AI Application
 ├── GitHub Integration
 ├── Slack Integration
 ├── Jira Integration
 ├── Database Integration
 ├── File Integration
 └── Internal API Integration

2. 为何需要MCP

  1. 将“为何需要MCP”视为一个可度量的维度来分析最为有效。在扩大范围之前,先收集一份优秀的示例文本、一个失败案例以及回滚说明。 优先选择小型且可测试的单元,而非庞大的脚本。当某个步骤失败时,故障应指向单一的责任模块,而非复杂的流程链。 提供具有明确结构规范和清晰副作用标注的工具。主机需要在自动批准之前知道哪些调用会修改状态。

3. 什么是MCP?

  1. What Is MCP? 若将其视为可度量的界面,效果会更好。在扩大范围之前,需记录一份最佳示例、一个失败案例以及回滚说明。 将此阶段视为输入与已验证输出之间的契约。为相关成果命名,明确成功标准,杜绝默许的半完成状态。 提供具有严格结构定义和明确副作用标注的工具。主机需要在自动批准之前知晓哪些调用会改变状态。
  2. What Is MCP? 若将其视为可度量的界面,效果会更好。在扩大范围之前,需记录一份最佳示例、一个失败案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。
User
  ↓
AI Application / Host
  ├── LLM
  └── MCP Client
         ↓
     MCP Server
         ↓
 External System

4. 一个简单的 MCP 示例

对于第4点:一个简单的MCP示例,在修改代码之前需先定义输入参数、该步骤的负责人以及退出条件。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品本身的组成部分,而非后续需要补充的功能。应在网关处进行身份验证,在数据层再次进行授权——仅凭承载令牌并不能作为租户边界。

GitHub
PostgreSQL
Jira
Documentation
Local Files
AI App → Custom GitHub Code
AI App → Custom DB Code
AI App → Custom Jira Code
AI App → Custom File Code
              AI Developer Assistant
                       │
                    MCP Client
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
   GitHub MCP      Database MCP    Jira MCP
        │              │              │
        ▼              ▼              ▼
     GitHub         PostgreSQL        Jira

5. MCP架构

对于5. MCP架构,在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程链。应在网关处进行身份验证,在数据层再次授权——仅凭承载令牌并不足以界定租户边界。

MCP主机

对于MCP主机,在修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,并拒绝默许的半完成状态。 在网关处进行身份验证,在数据层面重新授权。仅凭承载令牌并不足以界定租户边界。 对于MCP主机,在修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个操作人员可审计的位置,无需查看整个系统结构。

MCP客户端

在使用 MCP Client 时,首先需记录下接口契约:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改不会偏离原定方向。 同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 需为每次调用记录工具名称、参数哈希值、延迟时间以及执行结果。没有这些记录,调试代理将陷入无止境的循环,耗费大量时间。

MCP 服务器

在开发MCP Server时,首先需明确接口规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改始终在可控范围内。 建议采用小型、可测试的单元而非庞大的脚本。当某个步骤出错时,错误应指向单一责任模块,而非复杂的流程链。 需为每次调用记录工具名称、参数哈希值、延迟时间以及执行结果。没有这些记录,调试代理循环将耗费大量时间。

模型/大语言模型

在处理模型/大型语言模型时,首先需明确相关契约:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,定义成功检测标准,并杜绝无声的半完成状态。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是造成资源浪费的常见原因。 在处理模型/大型语言模型时,首先需明确相关契约:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。

Host
 ├── LLM
 └── MCP Client
         │
         ├── MCP Server → GitHub
         ├── MCP Server → Database
         └── MCP Server → Jira

6. 工具、资源与提示词

  1. 将“工具、资源与提示词”视为可度量的对象使用效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。同时记录正常流程与恢复流程的文档。重试机制、人工审核环节以及死信处理都是产品本身的一部分,而非后续需要补充的内容。为每轮对话和每次会话设定token预算。智能工具会大量消耗上下文信息,设置上限可避免演示过程变成意外的费用账单。

工具——“让AI执行操作”

工具——“让AI执行操作”这一功能在被视为可度量的对象时效果最佳。在扩大范围之前,先记录一份理想的处理结果、一个失败案例以及回滚说明。 相较于庞大的脚本,应优先使用小型且可测试的单元。当某一步骤失败时,故障应指向单一责任主体,而非复杂的流程链。 应以简洁的架构和明确的副作用标签来设计工具。主机需要在自动批准之前知道哪些调用会改变状态。

create_issue()
get_issue()
search_repositories()
create_pull_request()

资源——“为AI提供信息”

资源管理——将“为人工智能提供信息”视为可度量的工作面时效果最佳。在扩大范围之前,需记录一份理想案例、一个失败案例以及回滚说明。 可将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,杜绝默许的半完成状态。 应使用具有严格结构且带有明确副作用标签的工具。托管方需要在自动批准之前了解哪些调用会改变系统状态。 资源管理——将“为人工智能提供信息”视为可度量的工作面时效果最佳。在扩大范围之前,需记录一份理想案例、一个失败案例以及回滚说明。 应将配置信息置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。

file:///project/README.md
database://customers/123
github://repository/issues
docs://api/authentication

提示词——“为人工智能提供预定义的工作流程或指令集”

对于“为人工智能提供预定义的工作流程或指令集”的提示词,应在修改代码之前明确输入内容、各步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品本身的组成部分,而非后续需要补充的功能。 当下一步操作是编写代码或调用工具时,应优先选择具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。

Review the following pull request.

Check:
1. Code quality
2. Security vulnerabilities
3. Performance
4. Error handling
5. Test coverage

Provide:
- Summary
- Problems
- Recommendations

7. MCP的工作原理

关于第7点“MCP的工作原理”,在修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程链。在网关处进行身份验证,在数据层再次授权——仅凭承载令牌并不足以界定租户边界。

get_sales_data(date)
User
 ↓
AI Application
 ↓
LLM determines that external data is required
 ↓
MCP Client
 ↓
MCP Server
 ↓
Sales Database
 ↓
MCP Server
 ↓
MCP Client
 ↓
LLM
 ↓
Final Answer
Today's sales = ₹15,000

8. MCP与函数调用并非相同概念

对于8. MCP与函数调用并非相同这一点,应在修改代码之前明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将这一阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,并拒绝默许的半完成状态。 在网关处进行身份验证,在数据层面重新授权。仅凭承载令牌并不足以界定租户边界。 对于8. MCP与函数调用并非相同这一点,应在修改代码之前明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于操作人员可审计的位置,无需阅读全部内容。

aph。

Function Calling

Model
  ↓
Application
  ↓
Function
  ↓
Result
  ↓
Model
MCP
AI Host → MCP Client → MCP Server → External System

9. MCP与REST API及SDK的对比

在研究9. MCP与REST API及SDK的差异时,首先需明确接口规范:所需输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 需为每次调用记录工具名称、参数哈希值、延迟时间以及执行结果。没有这些记录,调试代理循环将会耗费大量时间。

AI
 ↓
MCP
 ↓
REST API / SDK
 ↓
Backend

10. 用于AI代理的MCP

在处理“10. AI智能体的MCP”时,首先需明确契约内容:所需输入、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 建议使用小型、可测试的单元而非庞大的脚本。当某一步骤失败时,故障应指向单一责任点,而非复杂的流程链。 需为每次调用记录工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试智能体循环将会耗费大量时间。

Question → Answer
Understand task
   ↓
Select tool
   ↓
Call tool
   ↓
Inspect result
   ↓
Call another tool
   ↓
Complete task
1. Search deployment logs
2. Inspect GitHub changes
3. Check Kubernetes status
4. Search documentation
5. Create a Jira ticket

11. MCP + RAG

在处理11. MCP + RAG时,首先需明确相关约定:所需输入、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关产物命名,定义成功判定标准,杜绝无声的半完成状态。 在调整提示词之前,先使用固定的问题集来测试召回率。仅仅更换提示词往往无法解决检索效果不佳的问题。 在处理11. MCP + RAG时,首先需明确相关约定:所需输入、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一个位置,以便操作人员无需查看整个系统结构即可进行审计。

Documents
 ↓
Embedding
 ↓
Vector Database
 ↓
Retriever
 ↓
Relevant Context
 ↓
LLM
AI Application
 ↓
MCP Client
 ↓
Knowledge MCP Server
 ↓
Vector DB / Search / Documents
search_documentation()
get_document()
find_related_documents()

12. LLMOps中的MCP

  1. 在LLMOps中,将MCP视为可度量的对象时效果最佳。在扩大应用范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。同时文档化正常流程和恢复流程。重试机制、人工审核环节以及错误处理都是产品本身的一部分,而非后续需要补充的内容。为每轮对话和每次会话设定Token预算。智能代理工具会大量消耗上下文,设置上限可避免演示过程变成意外的费用账单。
MCP Server Lifecycle
Tool Versioning
Security
Monitoring
Logging
Testing
Reliability
Access Control
Performance
User
 ↓
AI Application
 ↓
Model
 ↓
Agent
 ↓
MCP Client
 ↓
MCP Server
 ↓
External System

13. MCP安全

  1. MCP Security 在被视作可度量的对象时效果最佳。在扩大范围之前,先收集一份完美的操作记录、一个故障案例以及回滚说明。 优先选择小型且可测试的单元,而非庞大的脚本。当某一步骤出现故障时,故障应指向单一责任主体,而非复杂的流程链。 使用结构明确的工具,并标注清晰的副作用信息。主机需要在自动批准之前知道哪些调用会改变状态。
Read private files
Query databases
Create tickets
Send emails
Modify infrastructure
Access repositories

身份认证

将认证视为可度量的对象时,其效果最佳。在扩大范围之前,需记录一份理想状态示例、一个失败案例以及回滚说明。 将此阶段视为输入与已验证输出之间的契约。为相关文档命名,明确成功标准,杜绝默许的半完成状态。 使用具有严格结构且带有明确副作用标注的工具。主机需要在自动批准之前知道哪些调用会改变状态。 将认证视为可度量的对象时,其效果最佳。在扩大范围之前,需记录一份理想状态示例、一个失败案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。

授权

在修改代码之前,需先明确授权相关的输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品本身的组成部分,而非后续需要补充的功能。 在网关处进行身份验证,在数据层再次进行授权。仅凭承载令牌并不足以界定租户边界。

最小权限原则

为遵循最小权限原则,应在修改代码之前明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比庞大的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能明确指向单一责任主体,而非复杂的流程链。应在网关处进行身份验证,在数据层再次授权——仅凭承载令牌并不足以界定租户边界。

输入验证

在修改代码之前,需为输入内容、该步骤的负责人以及终止标准进行明确定义。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与验证后输出之间的契约。为相关成果命名,设定成功检测标准,并拒绝默许的半完成状态。 在网关处进行身份验证,在数据层面重新授权。仅凭承载令牌并不足以界定租户边界。 在修改代码之前,需为输入内容、该步骤的负责人以及终止标准进行明确定义。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于操作人员可审计的位置,无需查看整个系统结构。

输出验证

在处理输出验证时,首先需明确相关规范:必需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续代码修改的规范性。 同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及死信处理都是产品功能的一部分,而非后续需要补充的内容。 需为每次调用记录工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试过程将会浪费大量时间。

密钥管理

在处理密钥管理相关工作时,首先需列出契约内容:所需输入、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 建议使用小型、可测试的单元而非庞大的脚本。当某个步骤失败时,故障应能指向单一责任模块,而非复杂的流程链。 需为每次调用记录工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试代理将陷入无休止的循环,耗费大量时间。

审计日志

在处理审计日志时,首先需明确合同条款:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关组件命名,定义成功检测标准,杜绝无声的半完成状态。 需记录每次调用的工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试代理将陷入无止境的循环,耗费大量时间。 在处理审计日志时,首先需明确合同条款:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 应将配置信息置于应用程序代码之外。环境文件、密钥存储及功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。

User / Identity
Tool Invoked
Timestamp
Arguments or Sanitized Arguments
Result / Status
Authorization Decision
Execution Duration

14. 提示注入与工具滥用

  1. 将提示注入和工具滥用问题视为可度量的指标来处理效果最佳。在扩大范围之前,先记录一份典型的成功案例、一个故障实例以及回滚说明。 同时记录正常流程和恢复流程。重试机制、人工审核环节以及错误处理都是产品本身的一部分,而非后续需要补充的功能。 为每轮对话和每次会话设定令牌预算。智能代理工具会大量消耗上下文信息,设置上限可避免演示过程变成意外的费用账单。
Model decides action
        ↓
Policy validation
        ↓
Authorization
        ↓
Tool execution

15. 企业级 AI 中的 MCP

  1. 在企业级人工智能中,MCP作为可度量的接口使用效果最佳。在扩大应用范围之前,先收集一份优秀的操作记录、一个故障案例以及回滚说明。 优先选择小型且可测试的单元,而非庞大的脚本。当某个步骤出现故障时,故障应能指向具体的责任主体,而非复杂的流程链。 提供具有明确结构规范和清晰副作用标注的工具。主机需要在自动批准之前知道哪些调用会修改状态。
Enterprise AI Platform
        │
   MCP Gateway
        │
 ┌──────┼─────────┐
 ▼      ▼         ▼
GitHub  Data     Operations
MCP     MCP      MCP
Identity
Authorization
Tenant Isolation
Audit
Monitoring
Tool Ownership
Versioning
Compliance

16. MCP + 微服务 + 云

  1. MCP + 微服务 + 云架构在被视为可度量的系统时表现最佳。在扩大范围之前,需记录一份标准操作流程、一个故障案例以及回滚说明。 将此阶段视为输入与已验证输出之间的契约。为相关文档命名,明确成功标准,杜绝默许的半完成状态。 提供具有严格结构定义和明确副作用标识的工具。主机需要在自动批准之前知晓哪些调用会改变系统状态。
  2. MCP + 微服务 + 云架构在被视为可度量的系统时表现最佳。在扩大范围之前,需记录一份标准操作流程、一个故障案例以及回滚说明。 将配置信息与应用程序代码分开。环境文件、密钥存储及功能开关应集中存放,以便运维人员无需查看整个系统结构即可进行审计。
AI Application
      ↓
MCP Server
      ↓
Internal API
      ↓
Microservice
      ↓
Database

17. MCP设计模式

对于17个MCP设计模式,在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及死信处理都是产品本身的组成部分,而非后续需要补充的功能。 在网关处进行身份验证,在数据层进行重新授权。仅凭承载令牌并不能作为租户边界。

单个MCP服务器

对于单个MCP服务器,在修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程链。在网关处进行身份验证,在数据层再次授权——仅凭承载令牌并不足以界定租户边界。

                              AI Application
                                    ↓
                                MCP Server
                               ┌────┼────┐
                               ↓    ↓    ↓
                            Files GitHub Database

多个域服务器

对于多个域服务器,在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功检测标准,并拒绝默许的半完成状态。 在网关处进行身份验证,在数据层面重新授权。仅凭承载令牌并不足以界定租户边界。 对于多个域服务器,在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个操作人员可审计的位置,无需查看整个系统结构。

AI Application
      │
      ├── Engineering MCP
      │      └── GitHub / CI-CD
      │
      ├── Data MCP
      │      └── Databases / Analytics
      │
      └── Operations MCP
             └── Monitoring / Cloud / Infrastructure

读写分离

在实施读写分离时,首先需明确相关约定:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改始终符合既定规范。 同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及死信处理都是产品功能的一部分,而非后续需要补充的内容。 需为每次调用记录工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试过程将会浪费大量时间。

Read MCP
 ├── Search Documentation
 ├── Read Logs
 └── Query Metrics
Write MCP
 ├── Create Ticket
 ├── Restart Service
 └── Modify Resource

中央MCP网关

在使用 Central MCP Gateway 时,首先需明确合同规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 建议采用小型、可测试的单元而非庞大的脚本。当某个步骤失败时,故障应能指向具体的责任模块,而非复杂的流程链。 需为每次调用记录工具名称、参数哈希值、延迟时间以及执行结果。没有这些记录,调试代理循环将耗费大量时间。

AI Applications
                         │
                         ▼
                   MCP Gateway
              ┌──────────┼──────────┐
              ↓          ↓          ↓
        Engineering     Data     Operations
           MCP          MCP          MCP

18. MCP 性能与可观测性

在学习18章MCP性能与可观测性时,首先需明确契约内容:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关产物命名,定义成功检测标准,并杜绝无声的半完成状态。 需为每次调用记录工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试代理将陷入无止境的循环,耗费大量时间。 在学习18章MCP性能与可观测性时,首先需明确契约内容:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 应将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。

Tool Latency
Tool Success Rate
Tool Errors
Timeouts
Invocation Counts
Backend Latency
Request Volume
Token / Cost Impact
User Request
 ↓
LLM
 ↓
Tool Selection
 ↓
MCP Request
 ↓
Backend
 ↓
Tool Result
 ↓
LLM
 ↓
Final Response

19. 何时应使用MCP?

  1. 将“何时应使用MCP?”视为一个可度量的指标会更有帮助。在扩大范围之前,先记录一份理想的操作案例、一个故障案例以及回滚说明。同时记录正常流程和恢复流程的文档。重试机制、人工审核环节以及错误处理都属于产品本身的功能,而非后续需要补充的内容。应提供具有明确结构定义和清晰副作用标识的工具,这样主机在自动批准之前就能知道哪些调用会改变状态。
Multiple AI applications
        +
Many external systems
        +
Reusable capabilities
        +
Tool discovery
        +
Agentic workflows

20. 用于生产级AI架构的MCP

  1. 在将生产级 AI 架构视为可度量的对象时,MCP 的效果最佳。在扩大范围之前,先记录一份理想的操作案例、一个故障实例以及回滚说明。 相较于庞大的脚本,应优先使用小型且可测试的单元。当某一步骤出现故障时,故障原因应能明确指向某个具体的责任模块,而非复杂的流程链。 应提供具有明确结构规范和清晰副作用标注的工具。主机在自动批准之前需要知道哪些调用会修改状态。
                         User
                           │
                           ▼
                  ┌────────────────┐
                  │  AI Application│
                  └───────┬────────┘
                          │
                  ┌───────▼────────┐
                  │ Agent / LLM    │
                  └───────┬────────┘
                          │
              ┌───────────┼───────────┐
              ▼           ▼           ▼
             RAG       Policies     Memory
              │           │
              └───────────┼───────────┘
                          ▼
                    MCP Client
                          │
            ┌─────────────┼─────────────┐
            ▼             ▼             ▼
       GitHub MCP     Database MCP    Ops MCP
            │             │             │
            ▼             ▼             ▼
         GitHub        Database       Cloud/K8s
Security
Observability
Governance
Versioning
Testing
LLMOps

结论:MCP 的意义远不止于工具调用

结论:MCP的意义远不止工具调用。将其视为可度量的界面来处理效果最佳。在扩大范围之前,先记录一份理想的操作日志、一个失败案例以及回滚说明。 将此阶段视为输入与已验证输出之间的契约。为相关成果命名,明确成功标准,杜绝默许的半完成状态。 使用结构受限且带有明确副作用标签的工具。主机需要在自动批准之前知道哪些调用会改变状态。 结论:MCP的意义远不止工具调用。将其视为可度量的界面来处理效果最佳。在扩大范围之前,先记录一份理想的操作日志、一个失败案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。

LLM
 ↓
LLM + Tools
 ↓
LLM + RAG
 ↓
AI Agents
 ↓
Agents + Many External Systems
 ↓
Standardized Capability Layer
 ↓
Production AI Platform

操作检查清单

对于操作检查清单,应在修改代码之前明确输入参数、各步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新执行相应步骤,而无需猜测隐藏状态。

在功能测试结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境切换到共享环境时出现意外费用。

在网关处进行身份验证,在数据层面再次授权。仅凭承载令牌并不足以界定租户边界。

在成本较高的步骤之后设置检查点。当操作人员重新尝试后续节点时,系统不应再次对同一次大语言模型调用收费。

锁定依赖项的版本,并记录用于运行演示的镜像摘要。可重复性远比经验知识更重要。

应优先选择小型、可测试的单元,而非庞大的脚本。当某个步骤出错时,故障应能指向单一责任模块,而非复杂的流程链。

在推广该技术栈之前,需冻结版本、为关键路径记录标准输出日志,并确认回滚步骤。共享环境需要设置速率限制、租户验证机制,以及明确的密钥轮换负责人。与其追求花哨的一次性演示,不如注重扎实的可靠性。

b64f5bd5ee1d 的批量处理说明:请将提供方密钥移出代码仓库,设定单会话令牌上限,并将日志存储在评估用示例文件旁,以便后续模型更换时保持数据可比性。