乐于分享
好东西不私藏

OpenClaw 多 Agent 配置全解:个人/家庭/工作分身,一个 Gateway 服务所有人

OpenClaw 多 Agent 配置全解:个人/家庭/工作分身,一个 Gateway 服务所有人

0. 引言

OpenClaw系列前 13 篇,你的 AI 已经能聊天、查数据、操作浏览器、定时自动干活、分身并行、连上手机了。但它还面临一个问题——

它只有一个”人格”。

你想让 AI 工作时严谨专业,生活时轻松幽默;你想给家人一个专属 AI,给自己一个深度工作 AI;你想一个号码服务所有人,但每个人的数据和偏好互不干扰——

单个 Agent 做不到这些。

今天这篇,带你解锁 OpenClaw 的多 Agent 配置——让一个 OpenClaw 拥有多个人格、多个工作区、多套认证,服务不同的人。

打个比方:

阶段
AI 的服务模式
像什么
前 13 篇
AI 一个人格服务所有场景
一个全能的私人助理
第 14 篇(今天) AI 有多个人格,服务不同人/场景 助理带了团队,每人负责不同领域
多 Agent = 一个 AI 系统,多个人格,互不干扰。

1. 什么是多 Agent?

1.1 一句话告诉你:一个 Gateway 能服务多个 AI 人格

多 Agent 是在同一个 Gateway 里运行多个完全隔离的智能体——每个 Agent 有自己的工作区、人格、会话、认证、甚至不同的 AI 模型。

1.2 每个 Agent 都是独立的”大脑”,互不干扰

独立性
说明
独立工作区
每个 Agent 有自己的 SOUL.md、AGENTS.md、USER.md 等
独立会话
聊天记录完全隔离,互不干扰
独立认证
每个 Agent 的 API Key、账号凭证独立存储
独立技能
每个 Agent 可以有不同的技能集
独立模型
工作 Agent 用 Opus,生活 Agent 用 Sonnet,省钱又高效

1.3 和多通道的区别

别搞混了——多通道 ≠ 多 Agent:

对比
多通道
多 Agent
是什么
用不同方式聊天(飞书+QQ+企业微信)
不同的 AI 人格
共享工作区
✅ 同一个大脑
❌ 每个独立
共享会话
✅ 聊天记录互通
❌ 完全隔离
适合场景
一个 AI 多渠道接入
不同人/场景用不同 AI

一句话:多通道 = 一个大脑多张嘴巴,多 Agent = 多个大脑各干各的。


2. 三种经典场景

场景知道了,具体怎么配?别急,先看三个最常见的例子——

2.1 场景一:工作人格 VS 生活人格

需求:工作时 AI 严谨专业,生活时轻松幽默,互不干扰。

{  "agents": {    "list": [      {        "id": "chat",        "name": "生活助手",        "workspace": "~/.openclaw/workspace-chat",        "model": "qwen-plus"      },      {        "id": "opus",        "name": "深度工作",        "workspace": "~/.openclaw/workspace-opus",        "model": "qwen-max"      }    ]  },  "bindings": [    // 飞书私信 → 生活助手    { "agentId": "chat", "match": { "channel": "feishu", "peer": { "kind": "dm" } } },    // 飞书群聊 → 深度工作    { "agentId": "opus", "match": { "channel": "feishu", "peer": { "kind": "group" } } }  ]}

效果

飞书场景
路由到的 Agent
AI 人格
飞书私信
生活助手
轻松幽默,帮你查天气、推新闻
飞书群聊
深度工作
严谨专业,写代码、分析数据

2.2 场景二:全家每人一个专属 AI,互不干扰

需求:你和家人共用一个 QQ 机器人,但每个人的 AI 偏好和记忆独立。

{  "agents": {    "list": [      {        "id": "xiaoming",        "name": "小明的 AI",        "workspace": "~/.openclaw/workspace-xiaoming"      },      {        "id": "xiaohong",        "name": "小红的 AI",        "workspace": "~/.openclaw/workspace-xiaohong"      }    ]  },  "bindings": [    {      "agentId": "xiaoming",      "match": {        "channel": "qqbot",        "peer": { "kind": "dm", "id": "100001" }      }    },    {      "agentId": "xiaohong",      "match": {        "channel": "qqbot",        "peer": { "kind": "dm", "id": "100002" }      }    }  ],  "channels": {    "qqbot": {      "dmPolicy": "allowlist",      "allowFrom": ["100001", "100002"]    }  }}

效果:同一个 QQ 机器人,不同人发消息,AI 用不同的人格和记忆回应。

2.3 场景三:家庭群里怎么共享一个 AI?

需求:在家庭企业微信群里有一个专属 AI,权限受限,只能用 @提及触发。

{  "agents": {    "list": [      {        "id": "family",        "name": "Family",        "workspace": "~/.openclaw/workspace-family",        "identity": { "name": "家庭助手" },        "groupChat": {          "mentionPatterns": ["@family", "@家庭助手"]        },        "sandbox": {          "mode": "all",          "scope": "agent"        },        "tools": {          "allow": [            "exec", "read", "sessions_list",            "sessions_history", "sessions_send",            "sessions_spawn", "session_status"          ],          "deny": ["write", "edit", "apply_patch", "browser", "canvas", "nodes", "cron"]        }      }    ]  },  "bindings": [    {      "agentId": "family",      "match": {        "channel": "wecom",        "peer": {          "kind": "group",          "id": "wr_family_group_xxx"        }      }    }  ]}

效果:家庭群里只有 @家庭助手 时 AI 才会回复,且只能用安全的工具(不能改文件、不能操作浏览器)。


3. 路由规则:消息怎么找到对的 Agent?

上面三个场景配好了,但消息到底是怎么找到对的 Agent 的?这就涉及到路由规则——

3.1 优先级顺序:从”最具体”到”最宽泛”

路由规则的本质是:条件越具体的规则,优先级越高

系统从上到下逐条检查,第一条匹配的规则生效,后面的不再看

优先级
匹配规则
匹配范围
类比
实际场景
1(最高) peer 匹配
指定某个人 / 某个群
快递写到”门牌号”
飞书中”张三的私信”或”开发群”
2 accountId
指定某个渠道账户
快递写到”小区名”
配了 2 个飞书应用,区分哪个应用发的消息
3(最低)
渠道级匹配
整个渠道的所有消息
快递写到”城市名”
“所有飞书消息”,不管谁发的
4(兜底)
默认 Agent
所有没匹配上的消息
快递写到”全国兜底仓”
其他渠道(QQ/Telegram)全走这里

怎么理解这四个级别?

  • peer:最具体,直接指定”某个人”或”某个群”。比如”张三的私信走这个 Agent,开发群走那个 Agent”。
  • accountId:中等具体,区分同一个平台的不同应用。比如你配了两个飞书应用(个人版和企业版),用 accountId 区分它们。
  • 渠道级匹配:最宽泛,只说”所有飞书消息”,不管是谁发的、从哪个应用来的。配置里只写 channel: “feishu”,不加 peer 或 accountId。
  • 默认 Agent:兜底,其他都没匹配上时走这里。

3.2 accountId 配置示例(什么时候需要区分账户)

场景:你配了两个飞书应用,一个是个人版,一个是企业版,想让不同应用的 AI 走不同的 Agent:

{  "agents": {    "list": [      { "id": "personal", "name": "个人助手" },      { "id": "work", "name": "工作助手" }    ]  },  "bindings": [    // 规则 A:个人版飞书应用的消息 → 个人助手    {      "agentId": "personal",      "match": {        "channel": "feishu",        "accountId": "personal_app"  // 指定某个飞书应用      }    },    // 规则 B:企业版飞书应用的消息 → 工作助手    {      "agentId": "work",      "match": {        "channel": "feishu",        "accountId": "work_app"  // 指定另一个飞书应用      }    }  ]}

效果

消息来源
匹配规则
路由结果
个人版飞书应用(personal_app)收到消息
规则 A:accountId 命中
→ 个人助手 Agent
企业版飞书应用(work_app)收到消息
规则 B:accountId 命中
→ 工作助手 Agent
QQ 收到消息
规则 A/B 都不匹配(不是飞书)
→ 走默认 Agent(如果有的话)
💡 什么时候用 accountId? 当你在同一个渠道(比如飞书)配了多个应用实例,需要区分”消息是从哪个应用来的”时用。如果只有一个飞书应用,不需要用 accountId,直接用 peer 或渠道级匹配就行。

怎么理解?

  • peer(优先级 1):你精确指定了”张三的私信”或”开发群”——最具体,所以最先检查
  • accountId(优先级 2):你配了多个飞书应用(比如个人版 + 企业版),用来区分是哪个应用发的消息
  • 渠道级(优先级 3):你只说”飞书的所有消息”——范围最大,优先级最低
  • 默认 Agent(优先级 4):什么都不匹配时的兜底——最宽泛,最后才用

3.2 举个具体例子,一看就懂

假设你配了 3 个 Agent:

{  "agents": {    "list": [      { "id": "boss", "name": "老板专属" },      { "id": "dev", "name": "开发群" },      { "id": "default", "name": "通用助手", "default": true }    ]  },  "bindings": [    // 规则 A:老板飞书私信 → boss Agent(peer 级,优先级 1)    {      "agentId": "boss",      "match": {        "channel": "feishu",        "peer": { "kind": "dm", "id": "ou_boss_123" }      }    },    // 规则 B:开发群 → dev Agent(peer 级,优先级 1)    {      "agentId": "dev",      "match": {        "channel": "feishu",        "peer": { "kind": "group", "id": "oc_dev_group" }      }    },    // 规则 C:飞书其他消息 → 通用助手(渠道级,优先级 5)    { "agentId": "default", "match": { "channel": "feishu" } }  ]}

现在来了 3 条消息,分别怎么走?

消息来源
匹配过程
最终路由
老板(ou_boss_123)飞书私信
先查规则 A → peer 精确命中 ✅
→ boss Agent(老板专属)
开发群(oc_dev_group)@AI
先查规则 A → 不匹配(不是 ou_boss_123)❌再查规则 B → peer 精确命中 ✅
→ dev Agent(开发群)
同事小红飞书私信
先查规则 A → 不匹配 ❌再查规则 B → 不匹配 ❌再查规则 C → 渠道级命中 ✅
→ default Agent(通用助手)
QQ 上有人发消息
规则 A/B/C 全不匹配(都不是 QQ)❌最终兜底 → default: true
→ default Agent(通用助手)

3.3 关键规则总结

  • 命中即停:从最高优先级开始检查,第一条匹配的就用,后面的不再看
  • 越具体越优先:peer(某个人/群)> accountId(某账户)> channel(某渠道)> 默认
  • 兜底机制:如果所有规则都不匹配,就走 default: true 的 Agent;如果没设 default,就走列表第一个
💡 类比理解:像寄快递——写了具体门牌号(peer)就送到门口,没写门牌但写了小区名(accountId)就送到小区,都没写就送到 default 地址。

3.4 实战:混合路由——不同消息走不同 Agent

{  "agents": {    "list": [      { "id": "chat", "name": "日常聊天", "default": true },      { "id": "opus", "name": "深度工作" }    ]  },  "bindings": [    // 优先级最高:这个人发消息 → 深度工作 Agent    {      "agentId": "opus",      "match": {        "channel": "feishu",        "peer": { "kind": "dm", "id": "ou_vip_user" }      }    },    // 优先级次之:其他所有飞书消息 → 日常聊天 Agent    { "agentId": "chat", "match": { "channel": "feishu" } }  ]}

4. 添加新 Agent:告诉 AI 就行

4.1 最简单的方法:直接跟 AI 说

“帮我添加一个名为 work 的新 Agent”

AI 会自动:

  • 创建工作区目录
  • 生成 Agent 配置文件
  • 初始化基础的大脑文件

4.2 想手动配置?告诉 AI 具体要求

“帮我配置一个工作助手 Agent,用 qwen-max 模型,工作区放在 ~/.openclaw/workspace-work”

AI 会帮你写好配置,你只需要确认并重启 Gateway。


5. 文件都放哪了?(开发者查阅)

添加完 Agent,你可能好奇:这些文件都存在哪?

普通用户不用看这节——AI 自己知道文件放哪。开发者手动调试时参考。

别纠结,看这张表就够了:

资源
路径示例
说明
配置文件 ~/.openclaw/openclaw.json
所有 Agent 共享,只有一份
工作区 ~/.openclaw/workspace-<agentId>/
每个 Agent 独立,有自己的 SOUL.md、MEMORY.md
Agent 目录 ~/.openclaw/agents/<agentId>/agent/
认证、配置,每个 Agent 独立
会话存储 ~/.openclaw/agents/<agentId>/sessions/
聊天历史,每个 Agent 独立
认证文件 ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
API Key 等,每个 Agent 独立
独立技能 ~/.openclaw/workspace-<agentId>/skills/
只有这个 Agent 能用
共享技能 ~/.openclaw/skills/
所有 Agent 都能用

5.1 共享 vs 独立:一张表说清楚

类型
路径
谁能用
举例
共享配置
~/.openclaw/openclaw.json
所有 Agent
路由规则在这里改一次,全局生效
共享技能
~/.openclaw/skills/
所有 Agent
天气查询、股票查询等通用技能放这里
独立工作区
~/.openclaw/workspace-<agentId>/
只有对应 Agent
SOUL.md、MEMORY.md 各自独立,互不影响
独立技能
~/.openclaw/workspace-<agentId>/skills/
只有对应 Agent
只有这个 Agent 需要的特殊技能
独立会话
~/.openclaw/agents/<agentId>/sessions/
只有对应 Agent
聊天记录完全隔离

5.2 独立技能 vs 共享技能:区别在哪?

两种技能目录的区别:

对比项
独立技能
共享技能
路径 ~/.openclaw/workspace-<agentId>/skills/ ~/.openclaw/skills/
谁能用
只有对应 Agent
所有 Agent 都能用
适用场景
特殊用途,只有某个 Agent 需要
通用技能,所有 Agent 都需要
举例
工作 Agent 专用的代码审查技能
天气查询、股票查询

一句话:通用技能放共享目录,特殊技能放独立工作区。

5.3 举个实际例子

假设你配了 2 个 Agent:chat 和 opus,文件分布是这样的:

~/.openclaw/├── openclaw.json                    ← 共享:配置文件(只有 1 份)├── skills/                          ← 共享:技能目录(只有 1 份)│   └── weather/├── workspace-chat/                  ← 独立:chat 的工作区│   ├── SOUL.md│   ├── MEMORY.md│   └── skills/├── workspace-opus/                  ← 独立:opus 的工作区│   ├── SOUL.md│   ├── MEMORY.md│   └── skills/├── agents/│   ├── chat/│   │   ├── agent/│   │   │   └── auth-profiles.json   ← 独立:chat 的认证│   │   └── sessions/                ← 独立:chat 的聊天记录│   └── opus/│       ├── agent/│       │   └── auth-profiles.json   ← 独立:opus 的认证│       └── sessions/                ← 独立:opus 的聊天记录

一句话总结:配置和技能是共享的(改一次全局生效),工作区、会话、认证是独立的(互不干扰)。


6. 安全配置:不同 Agent 不同权限

多 Agent 配好之后,得考虑权限问题——哪些 Agent 能做什么事。

6.1 一个例子看懂权限配置

假设你配了 2 个 Agent:personal(自己用)和 family(家人用)。

需求

  • 自己的 Agent:啥都能干
  • 家人的 Agent:只能聊天、查天气,不能改文件、不能操作浏览器

配置效果对比

权限项
personal(自己)
family(家人)
读写文件
✅ 可以
❌ 禁止
执行命令
✅ 可以
❌ 禁止
浏览器操作
✅ 可以
❌ 禁止
查天气/股票
✅ 可以
✅ 可以
沙箱隔离
❌ 不需要
✅ 开启(防止误操作)

对应的配置

{  "agents": {    "list": [      {        "id": "personal",        "name": "我的 AI",        // 啥限制都没有,全权限      },      {        "id": "family",        "name": "家庭助手",        "sandbox": { "mode": "all" },  // 沙箱隔离        "tools": {          "allow": ["read", "web_search", "web_fetch"],  // 只允许这些          "deny": ["write", "edit", "exec", "browser"]     // 禁止这些        }      }    ]  }}

实际效果

场景
谁在操作
结果
你说”帮我改一下配置文件”
personal
✅ 成功(有权限)
家人说”帮我改一下配置文件”
family
❌ 拒绝(write 被禁)
你说”帮我打开网页查资料”
personal
✅ 成功(有浏览器权限)
家人说”帮我打开网页”
family
❌ 拒绝(browser 被禁)
家人说”今天天气怎么样”
family
✅ 成功(web_search 允许)

6.2 沙箱隔离:什么时候需要?

如果你给家人或公开场景配了 Agent,建议开启沙箱隔离——让它在独立容器里运行,搞不坏主系统:

实际场景举例:

场景
需不需要开沙箱
举例说明
你自己的私有 AI
❌ 不需要
你信任自己,不会让 AI 做危险操作
家人共用一个 AI
✅ 建议开
小孩可能让 AI “帮我看看系统里有什么”,沙箱能防止误操作
公司内网公开的 AI
✅ 必须开
任何员工都能用,必须隔离防止安全问题
对外开放的客服 AI
✅ 必须开
陌生人能用,不开沙箱等于裸奔

配置

{  "agents": {    "list": [      {        "id": "personal",        "sandbox": { "mode": "off" }  // 个人 Agent,不沙箱      },      {        "id": "family",        "sandbox": {          "mode": "all",       // 始终沙箱隔离          "scope": "agent",    // 每 Agent 一个容器          "docker": {            "setupCommand": "apt-get update && apt-get install -y git curl"          }        }      }    ]  }}

效果对比

场景
personal(无沙箱)
family(有沙箱)
AI 执行 rm -rf /tmp/*
直接在主机执行,危险!
在容器内执行,删不到主机文件
AI 安装软件 npm install xxx
直接装到主机环境
只装到容器内,不影响主机
AI 运行用户给的脚本
有权限访问主机文件系统
只能在容器沙箱内运行

6.3 工具权限:哪些能碰,哪些不能碰?

沙箱之外,还可以精确控制每个 Agent 能用哪些工具。

实际场景举例:

场景
需要什么权限
举例说明
家人想用 AI 查天气、看股票
只给 web_searchweb_fetch
只读不写,不会改你文件
同事想用你的 AI 帮忙处理文档
给 readwriteedit,不给 exec
能改文件,但不能执行命令
你自己的工作 AI
全权限
啥都能干,效率第一
临时测试用的 AI
给最小权限
测完就删,别留后患

三种典型 Agent 的权限设计

Agent
allow(白名单)
deny(黑名单)
设计思路
personal
不设(全部放开)
不设
自己用,全权限
family
read, web_search, web_fetch write, edit, exec, browser, cron
只能查不能改
work
read, write, edit, exec, browser nodes, canvas
能干活但不能连设备

对应配置

{  "agents": {    "list": [      {        "id": "personal",        // 不设 tools,默认全部放开      },      {        "id": "family",        "tools": {          "allow": ["read", "web_search", "web_fetch"],  // 只允许这些          "deny": ["write", "edit", "exec", "browser", "cron"]  // 禁止这些        }      },      {        "id": "work",        "tools": {          "allow": ["read", "write", "edit", "exec", "browser"],          "deny": ["nodes", "canvas"]        }      }    ]  }}

实际效果

操作
personal
family
work
读写文件
✅ 只能读
执行命令
浏览器
连手机设备
定时任务
✅(未禁)

6.4 Agent 间通信:它们能互相聊天吗?

配完安全,你可能想:Agent 之间能不能互相帮忙?

默认情况下,Agent 之间不能互相发消息。

实际场景举例:

场景
需不需要开启
举例说明
家庭每人一个 AI,互不干扰
❌ 不需要
你的 AI 和你的对话,不需要被别人的 AI 看到
工作 AI 查到数据,生活 AI 要汇总
✅ 需要
工作 AI 查到股价,发给生活 AI 做每日报告
主 AI 调度子 AI 干活
✅ 需要
personal 派 task 给 work,让 work 去执行
多 Agent 协作写文章
✅ 需要
研究 AI 查资料,写作 AI 写文章,需要通信

配置

{  "tools": {    "agentToAgent": {      "enabled": true,     // 开启      "allow": ["personal", "work"]  // 只允许这两个互相通信    }  }}

效果

操作
enabled=false(默认)
enabled=true
personal 给 work 发消息
❌ 拒绝
✅ 成功
work 给 personal 发消息
❌ 拒绝
✅ 成功
family 给 personal 发消息
❌ 拒绝
❌ 拒绝(不在 allow 列表)

7. 实战配置:三种常见方案

理论讲完了,这里给三种最常见的配置组合。

7.1 方案 A 怎么配?飞书闲聊 + QQ 深度干

{  "agents": {    "list": [      {        "id": "chat",        "name": "日常助手",        "workspace": "~/.openclaw/workspace-chat",        "model": "qwen-plus"      },      {        "id": "opus",        "name": "深度工作",        "workspace": "~/.openclaw/workspace-opus",        "model": "qwen-max"      }    ]  },  "bindings": [    { "agentId": "chat", "match": { "channel": "feishu" } },    { "agentId": "opus", "match": { "channel": "qqbot" } }  ]}

效果

  • 飞书聊天 → 日常助手(快、省 token、轻松幽默)
  • QQ 聊天 → 深度工作(强、高质量、严谨专业)

7.2 方案 B:同一飞书渠道,不同群不同 Agent

{  "agents": {    "list": [      { "id": "xiaohong", "name": "小红的AI", "workspace": "~/.openclaw/workspace-xiaodi" },      { "id": "family", "name": "家庭助手", "workspace": "~/.openclaw/workspace-family" }    ]  },  "bindings": [    // 小的飞书私信 → 个人 Agent    {      "agentId": "xiaohong",      "match": {        "channel": "feishu",        "peer": { "kind": "dm", "id": "ou_xxx" }      }    },    // 飞书家庭群 → 家庭 Agent    {      "agentId": "family",      "match": {        "channel": "feishu",        "peer": { "kind": "group", "id": "oc_xxx" }      }    }  ]}

7.3 方案 C 怎么搞?企业微信多账号完全隔离

如果你有多个企业微信应用(比如个人团队 + 公司团队):

{  "channels": {    "wecom": {      "accounts": {        "personal": {},        "company": {}      }    }  },  "bindings": [    { "agentId": "home", "match": { "channel": "wecom", "accountId": "personal" } },    { "agentId": "work", "match": { "channel": "wecom", "accountId": "company" } }  ]}

8. 你可能想问的

配置讲完了,这里回答几个常见问题。

8.1 多 Agent 会多花钱吗?

不一定。 取决于你怎么配置:

策略
效果
不同 Agent 用不同模型
日常用便宜模型,工作用高质量模型 → 省钱
共享会话 → 不重复
每个人的会话独立,不会浪费 token
限制 Agent 工具
减少不必要的工具调用 → 省钱

8.2 Agent 之间能共享数据吗?

默认不能——每个 Agent 的工作区、会话、认证都是独立的。

如果确实需要共享(比如共享技能):

  • 共享技能放在 ~/.openclaw/skills/
  • 共享认证文件手动复制到每个 Agent 的 agentDir

8.3 怎么删除一个 Agent?

“帮我删除 work 这个 Agent”

AI 会帮你执行删除操作。

注意:删除会移除该 Agent 的会话和工作区引用,但文件保留在磁盘上。

8.4 加新 Agent 后需要重启 Gateway 吗?

需要。 修改配置后,告诉 AI:

“帮我重启 Gateway”

AI 会自动执行重启命令。


9. 总结

14 篇教程写下来,OpenClaw 能做的事越来越多了。这篇讲的是多 Agent 配置。

快速回顾之前的内容:

篇目
解锁的技能
第 1 篇
从零部署 OpenClaw
第 2-5 篇
安全配置(认知 → 入口 → 执行 → 进阶)
第 6-7 篇
通信通道配置(飞书/QQ/企业微信)
第 8 篇
大脑文件(人格 + 记忆)
第 9 篇
技能系统(让 AI 学会干活)
第 10 篇
浏览器控制(让 AI 能操作网页)
第 11 篇
定时任务 Cron(让 AI 到点自动干活)
第 12 篇
子代理(让 AI 能并行分身干活)
第 13 篇
设备配对(让 AI 能感知物理世界)
第 14 篇(今天) 多 Agent 配置(一个系统服务所有人)

一句话总结

多 Agent = 一个 Gateway,多个人格 = 从”一个全能助理”变成”一个助理团队”。

下一篇预告

有了多 Agent 配置,AI 能同时服务多个人了。但如果 AI 记不住东西,每次都要从头来过——

下一篇讲《记忆系统进阶全解》,聊聊怎么让 AI 定期回顾、提炼、清理记忆,越用越聪明。


👋 我是路人甲甲,公众号「AI 打怪升级」,专注 AI 工具实战。

觉得有用?点个在看,分享给需要的朋友。