第九章:安全机制

第九章:安全机制

🔒 本章详细介绍 MiniClaw 的安全机制,包括命令执行沙箱、数据隐私保护和安全最佳实践。


9.1 安全机制概述

9.1.1 安全设计理念

MiniClaw 的安全机制遵循 最小权限原则防御性编程 理念。

┌─────────────────────────────────────────────────────────────────────┐
│                    安全设计理念                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    传统 AI 助手                      MiniClaw 安全机制              │
│    ┌───────────────────┐             ┌───────────────────┐         │
│    │                   │             │                   │         │
│    │   无限制执行      │             │   白名单沙箱       │         │
│    │   数据可能泄露    │             │   本地存储         │         │
│    │   无安全边界      │             │   多层防护         │         │
│    │                   │             │                   │         │
│    └───────────────────┘             └───────────────────┘         │
│                                                                     │
│    ❌ 可能执行危险命令                ✅ 仅允许安全命令             │
│    ❌ 数据上传云端                    ✅ 数据本地存储               │
│    ❌ 无访问控制                      ✅ 多层安全边界               │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.1.2 安全架构

┌─────────────────────────────────────────────────────────────────────┐
│                      安全架构                                        │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│                         ┌─────────────┐                             │
│                         │   用户请求   │                             │
│                         └──────┬──────┘                             │
│                                │                                    │
│                                ▼                                    │
│    ┌────────────────────────────────────────────────────────────┐  │
│    │                   第一层:输入验证                          │  │
│    │                                                            │  │
│    │  • 参数类型检查 (Zod Schema)                               │  │
│    │  • 参数长度限制                                            │  │
│    │  • 特殊字符过滤                                            │  │
│    │                                                            │  │
│    └────────────────────────────────────────────────────────────┘  │
│                                │                                    │
│                                ▼                                    │
│    ┌────────────────────────────────────────────────────────────┐  │
│    │                   第二层:权限检查                          │  │
│    │                                                            │  │
│    │  • 命令白名单检查                                          │  │
│    │  • 文件路径验证                                            │  │
│    │  • 操作类型限制                                            │  │
│    │                                                            │  │
│    └────────────────────────────────────────────────────────────┘  │
│                                │                                    │
│                                ▼                                    │
│    ┌────────────────────────────────────────────────────────────┐  │
│    │                   第三层:执行沙箱                          │  │
│    │                                                            │  │
│    │  • 超时控制 (10s)                                          │  │
│    │  • 输出截断 (1MB)                                          │  │
│    │  • 工作目录限制                                            │  │
│    │                                                            │  │
│    └────────────────────────────────────────────────────────────┘  │
│                                │                                    │
│                                ▼                                    │
│    ┌────────────────────────────────────────────────────────────┐  │
│    │                   第四层:数据保护                          │  │
│    │                                                            │  │
│    │  • 本地存储                                                │  │
│    │  • 敏感信息脱敏                                            │  │
│    │  • 会话隔离                                                │  │
│    │                                                            │  │
│    └────────────────────────────────────────────────────────────┘  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.2 命令执行沙箱

9.2.1 命令白名单

┌─────────────────────────────────────────────────────────────────────┐
│                    命令白名单                                        │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ✅ 允许的命令                                                      │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  文件操作(只读):                                          │   │
│  │  • ls, cat, find, grep, head, tail, wc, tree               │   │
│  │  • file, stat, du, df                                       │   │
│  │                                                             │   │
│  │  Git 命令(只读):                                          │   │
│  │  • git status, git log, git diff, git branch               │   │
│  │  • git show, git remote, git config (读取)                 │   │
│  │                                                             │   │
│  │  包管理器:                                                  │   │
│  │  • npm, node, npx, pnpm, yarn                              │   │
│  │  • python, pip, python3, pip3                              │   │
│  │                                                             │   │
│  │  系统信息:                                                  │   │
│  │  • echo, date, uname, which, pwd, ps, env                  │   │
│  │  • whoami, hostname, uptime                                │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  ❌ 禁止的命令                                                      │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  破坏性操作:                                                │   │
│  │  • rm, rmdir, del                                          │   │
│  │  • mv, cp (可能覆盖文件)                                    │   │
│  │  • chmod, chown                                            │   │
│  │  • dd, shred                                               │   │
│  │                                                             │   │
│  │  权限提升:                                                  │   │
│  │  • sudo, su, doas                                          │   │
│  │  • pkexec, gksudo                                          │   │
│  │                                                             │   │
│  │  网络操作:                                                  │   │
│  │  • curl, wget (可能泄露数据)                                │   │
│  │  • nc, netcat, telnet                                      │   │
│  │                                                             │   │
│  │  进程管理:                                                  │   │
│  │  • kill, pkill, killall                                    │   │
│  │  • systemctl, service                                      │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.2.2 白名单实现

┌─────────────────────────────────────────────────────────────────────┐
│                    白名单实现                                        │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  const ALLOWED_COMMANDS = [                                         │
│    'ls', 'cat', 'find', 'grep', 'head', 'tail', 'wc',              │
│    'git', 'npm', 'node', 'npx', 'pnpm', 'yarn',                    │
│    'python', 'pip', 'python3', 'pip3',                             │
│    'echo', 'date', 'uname', 'which', 'pwd', 'ps',                  │
│  ];                                                                 │
│                                                                     │
│  function isCommandAllowed(command: string): boolean {              │
│    const baseCommand = command.split(' ')[0];                       │
│    return ALLOWED_COMMANDS.includes(baseCommand);                   │
│  }                                                                  │
│                                                                     │
│  async function executeCommand(command: string): Promise<string> {  │
│    // 1. 检查命令是否在白名单中                                     │
│    if (!isCommandAllowed(command)) {                                │
│      throw new Error(`Command not allowed: ${command}`);            │
│    }                                                                │
│                                                                     │
│    // 2. 执行命令(带超时和输出限制)                               │
│    // ...                                                           │
│  }                                                                  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.2.3 执行限制

┌─────────────────────────────────────────────────────────────────────┐
│                    执行限制                                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  ⏱️ 超时限制:10 秒                                          │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  const TIMEOUT_MS = 10000;                          │   │   │
│  │  │                                                     │   │   │
│  │  │  防止长时间运行的命令占用资源                        │   │   │
│  │  │  超时后自动终止进程                                  │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  │  📊 输出截断:1MB                                           │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  const MAX_OUTPUT_SIZE = 1024 * 1024;  // 1MB       │   │   │
│  │  │                                                     │   │   │
│  │  │  防止大量输出导致内存问题                            │   │   │
│  │  │  超过限制时截断并提示                                │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  │  📁 工作目录限制                                            │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  命令只能在当前项目目录中执行                         │   │   │
│  │  │  防止访问系统敏感目录                                 │   │   │
│  │  │  cwd: process.cwd()                                  │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.3 数据隐私保护

9.3.1 本地存储策略

┌─────────────────────────────────────────────────────────────────────┐
│                    本地存储策略                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  设计原则:所有用户数据存储在本地,永不上传云端                     │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  ☁️ 云端交互                                                 │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  仅发送:                                            │   │   │
│  │  │  • 对话内容(用于 AI 响应)                          │   │   │
│  │  │  • 编译后的上下文                                    │   │   │
│  │  │                                                     │   │   │
│  │  │  不发送:                                            │   │   │
│  │  │  • 原始文件内容                                      │   │   │
│  │  │  • 用户个人信息                                      │   │   │
│  │  │  • 环境配置                                          │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  │  💻 本地存储                                                 │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  ~/.miniclaw/                                       │   │   │
│  │  │  ├── AGENTS.md      (工作空间章程)                   │   │   │
│  │  │  ├── SOUL.md        (性格定义)                       │   │   │
│  │  │  ├── USER.md        (用户画像)                       │   │   │
│  │  │  ├── MEMORY.md      (长期记忆)                       │   │   │
│  │  │  ├── entities.json  (实体图谱)                       │   │   │
│  │  │  └── memory/        (每日日志)                       │   │   │
│  │  │                                                     │   │   │
│  │  │  所有数据仅存在于用户本地机器                        │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.3.2 敏感信息处理

┌─────────────────────────────────────────────────────────────────────┐
│                    敏感信息处理                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  敏感信息类型:                                                     │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  🔑 密钥和令牌                                               │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  • API Keys                                          │   │   │
│  │  │  • Access Tokens                                     │   │   │
│  │  │  • Passwords                                         │   │   │
│  │  │                                                     │   │   │
│  │  │  处理方式:                                          │   │   │
│  │  │  • 不存储在文件中                                    │   │   │
│  │  │  • 使用环境变量                                      │   │   │
│  │  │  • 显示时脱敏 (sk-***...***)                         │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  │  📧 个人信息                                                 │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  • 姓名、邮箱、电话                                  │   │   │
│  │  │  • 地址、身份证号                                    │   │   │
│  │  │                                                     │   │   │
│  │  │  处理方式:                                          │   │   │
│  │  │  • 仅存储在 MEMORY.md(主会话专用)                  │   │   │
│  │  │  • 不在共享上下文中加载                              │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  │  🏢 工作信息                                                 │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  • 公司内部 IP                                       │   │   │
│  │  │  • 内部服务器地址                                    │   │   │
│  │  │  • 项目机密                                          │   │   │
│  │  │                                                     │   │   │
│  │  │  处理方式:                                          │   │   │
│  │  │  • 存储在 TOOLS.md 时脱敏                            │   │   │
│  │  │  • 示例:192.168.*.*                                 │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.3.3 会话隔离

┌─────────────────────────────────────────────────────────────────────┐
│                    会话隔离                                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  主会话 vs 共享上下文                                               │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  ✅ 主会话 (Main Session)                                   │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  • 用户直接与 Agent 聊天                              │   │   │
│  │  │  • 加载所有文件,包括 MEMORY.md                        │   │   │
│  │  │  • 可以访问个人上下文                                  │   │   │
│  │  │  • 完整功能                                            │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  │  ❌ 共享上下文 (Shared Context)                             │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │  • 群聊、与其他人的会话                               │   │   │
│  │  │  • 不加载 MEMORY.md                                   │   │   │
│  │  │  • 仅使用公开上下文                                    │   │   │
│  │  │  • 保护个人隐私                                        │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  实现方式:                                                         │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  // MEMORY.md 的 frontmatter                               │   │
│  │  ---                                                        │   │
│  │  read_when:                                                 │   │
│  │    - Main session only                                      │   │
│  │  ---                                                        │   │
│  │                                                             │   │
│  │  // 加载时检查                                              │   │
│  │  if (isMainSession && file.read_when.includes('Main...')) { │   │
│  │    loadFile(file);                                          │   │
│  │  }                                                          │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.4 输入验证

9.4.1 Zod Schema 验证

┌─────────────────────────────────────────────────────────────────────┐
│                    Zod Schema 验证                                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  miniclaw_update 工具参数验证                                       │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  const UpdateSchema = z.object({                            │   │
│  │    file: z.enum([                                           │   │
│  │      'AGENTS.md',                                           │   │
│  │      'SOUL.md',                                             │   │
│  │      'IDENTITY.md',                                         │   │
│  │      'USER.md',                                             │   │
│  │      'TOOLS.md',                                            │   │
│  │      'MEMORY.md',                                           │   │
│  │      'HEARTBEAT.md',                                        │   │
│  │    ]),                                                      │   │
│  │    content: z.string().max(50000),  // 最大 50KB            │   │
│  │    mode: z.enum(['append', 'replace']).optional(),          │   │
│  │  });                                                        │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  miniclaw_exec 工具参数验证                                         │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  const ExecSchema = z.object({                              │   │
│  │    command: z.string()                                      │   │
│  │      .max(500)           // 最大 500 字符                   │   │
│  │      .refine(cmd => !cmd.includes(';'), {                   │   │
│  │        message: 'No command chaining allowed',              │   │
│  │      }),                                                    │   │
│  │  });                                                        │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  miniclaw_entity 工具参数验证                                       │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  const EntitySchema = z.object({                            │   │
│  │    action: z.enum(['add', 'remove', 'link', 'query', 'list']),│   │
│  │    name: z.string().max(100).optional(),                    │   │
│  │    type: z.enum(['person', 'project', 'tool', 'concept',    │   │
│  │                   'place', 'other']).optional(),            │   │
│  │    relation: z.string().max(100).optional(),                │   │
│  │  });                                                        │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.4.2 验证流程

┌─────────────────────────────────────────────────────────────────────┐
│                    验证流程                                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    用户请求                                                         │
│         │                                                            │
│         ▼                                                            │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │  1. 参数类型验证                                             │  │
│    │     • 检查必填参数是否存在                                   │  │
│    │     • 检查参数类型是否正确                                   │  │
│    │     • 检查参数值是否在允许范围内                             │  │
│    └─────────────────────────────────────────────────────────────┘  │
│         │                                                            │
│         ▼                                                            │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │  2. 参数长度验证                                             │  │
│    │     • 字符串长度限制                                         │  │
│    │     • 数组长度限制                                           │  │
│    │     • 文件大小限制                                           │  │
│    └─────────────────────────────────────────────────────────────┘  │
│         │                                                            │
│         ▼                                                            │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │  3. 特殊字符过滤                                             │  │
│    │     • SQL 注入防护                                           │  │
│    │     • 命令注入防护                                           │  │
│    │     • XSS 防护                                               │  │
│    └─────────────────────────────────────────────────────────────┘  │
│         │                                                            │
│         ▼                                                            │
│    验证通过,执行操作                                               │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.5 安全最佳实践

9.5.1 用户安全建议

┌─────────────────────────────────────────────────────────────────────┐
│                    用户安全建议                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  🔐 密钥管理                                                        │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  ✅ 推荐做法:                                               │   │
│  │  • 使用环境变量存储密钥                                      │   │
│  │  • 使用 .env 文件(不提交到 Git)                            │   │
│  │  • 定期轮换密钥                                              │   │
│  │                                                             │   │
│  │  ❌ 避免做法:                                               │   │
│  │  • 将密钥写入配置文件                                        │   │
│  │  • 将密钥提交到版本控制                                      │   │
│  │  • 在对话中直接粘贴密钥                                      │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  📁 文件权限                                                        │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  ✅ 推荐做法:                                               │   │
│  │  • ~/.miniclaw/ 目录权限设为 700                            │   │
│  │  • 敏感文件权限设为 600                                      │   │
│  │  • 定期检查文件权限                                          │   │
│  │                                                             │   │
│  │  chmod 700 ~/.miniclaw/                                     │   │
│  │  chmod 600 ~/.miniclaw/MEMORY.md                            │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  🔄 定期维护                                                        │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  • 定期审查 MEMORY.md 内容                                   │   │
│  │  • 清理不需要的敏感信息                                      │   │
│  │  • 更新过时的配置                                            │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.5.2 开发者安全建议

┌─────────────────────────────────────────────────────────────────────┐
│                    开发者安全建议                                    │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  🛡️ 代码安全                                                       │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  • 所有用户输入必须经过验证                                  │   │
│  │  • 使用参数化查询,避免拼接字符串                            │   │
│  │  • 不信任任何外部输入                                        │   │
│  │  • 使用最小权限原则                                          │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  📝 日志安全                                                        │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  • 不在日志中记录敏感信息                                    │   │
│  │  • 对敏感数据进行脱敏处理                                    │   │
│  │  • 限制日志文件访问权限                                      │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  🔧 依赖安全                                                        │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  • 定期更新依赖版本                                          │   │
│  │  • 使用 npm audit 检查漏洞                                   │   │
│  │  • 审查第三方依赖的安全性                                    │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

9.6 安全事件响应

9.6.1 常见安全问题

┌─────────────────────────────────────────────────────────────────────┐
│                    常见安全问题及处理                                │
├─────────────────┬───────────────────────────────────────────────────┤
│     问题        │                    处理方式                        │
├─────────────────┼───────────────────────────────────────────────────┤
│  命令注入尝试   │  白名单检查直接拒绝,记录日志                      │
├─────────────────┼───────────────────────────────────────────────────┤
│  路径遍历尝试   │  路径验证,限制在允许目录内                        │
├─────────────────┼───────────────────────────────────────────────────┤
│  敏感信息泄露   │  自动脱敏,提醒用户检查                            │
├─────────────────┼───────────────────────────────────────────────────┤
│  超限输入       │  参数验证拒绝,返回错误信息                        │
├─────────────────┼───────────────────────────────────────────────────┤
│  异常行为检测   │  记录日志,必要时通知用户                          │
└─────────────────┴───────────────────────────────────────────────────┘

9.6.2 安全日志

┌─────────────────────────────────────────────────────────────────────┐
│                    安全日志示例                                      │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  [2026-02-12 14:30:00] WARN: Blocked command attempt: rm -rf /     │
│  [2026-02-12 14:30:05] WARN: Path traversal attempt: ../../../etc  │
│  [2026-02-12 14:30:10] INFO: Input validation failed: content > 50KB│
│  [2026-02-12 14:30:15] INFO: Session isolation active: shared ctx  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

本章小结

┌─────────────────────────────────────────────────────────────────────┐
│                     第九章 核心要点                                  │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  🔒 四层安全架构                                                    │
│     • 输入验证 → 权限检查 → 执行沙箱 → 数据保护                    │
│                                                                     │
│  📋 命令白名单                                                      │
│     • 仅允许安全的只读命令                                          │
│     • 禁止破坏性操作和权限提升                                      │
│                                                                     │
│  ⏱️ 执行限制                                                        │
│     • 超时:10 秒                                                   │
│     • 输出截断:1MB                                                 │
│     • 工作目录限制                                                  │
│                                                                     │
│  💾 数据隐私                                                        │
│     • 所有数据本地存储                                              │
│     • 敏感信息脱敏                                                  │
│     • 会话隔离                                                      │
│                                                                     │
│  ✅ Zod Schema 验证                                                 │
│     • 参数类型、长度、范围验证                                      │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

下一章:MCP 协议实现 →

← 返回目录