news 2026/9/1 21:23:53

一个 OpenClaw 实例跑 3 个 Agent:电商多角色助手配置实战(附飞书接入)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一个 OpenClaw 实例跑 3 个 Agent:电商多角色助手配置实战(附飞书接入)

一个 OpenClaw 实例跑 3 个 Agent:电商多角色助手配置实战(附飞书接入)

本文是「OpenClaw 云上实战指南」系列第 4 篇。第 1 篇讲了 Bedrock + IAM 零密钥部署,第 2 篇讲了 Mac + iMessage 接入,第 3 篇讲了龙虾自己开服务器。这篇搞一件不一样的事——在同一个 OpenClaw 实例里跑 3 个不同角色的 Agent,分别对接不同的飞书群。

问题:一个龙虾不够用

前几篇都是"一个实例一个 Agent"的模式。但实际业务场景里,团队需要不止一个 AI 助手:

  • 销售群想要一个能查销售额、订单趋势的助手
  • 售后群想要一个能处理退款、查工单的助手
  • 运营群想要一个能监控库存、推日报的助手

你可以开 3 台服务器跑 3 个 OpenClaw 实例。但那是浪费——一个实例完全可以跑多个 Agent,各自有独立的人格、技能和对话历史。


最终效果

配完之后是这样的:

飞书群对应 Agent人格核心技能
销售讨论群sales热情、数据驱动销售额查询、订单分析、退货率
售后工单群support耐心、专业退款处理、工单状态、客诉分类
运营日报群ops简洁、效率导向库存预警、补货建议、每日报表

三个群 @ 同一个飞书 Bot,但回复风格和能力完全不同。用户感知是三个独立的助手,实际上是一个进程。


第 1 步:创建 Workspace 目录

每个 Agent 需要一个独立的 Workspace。这是 OpenClaw 隔离多 Agent 能力和人格的核心机制——不同 Workspace 下的SOUL.mdskills/USER.md互相独立。

# 在你的 OpenClaw 项目根目录下 mkdir -p /data/workspace-sales/skills mkdir -p /data/workspace-support/skills mkdir -p /data/workspace-ops/skills

写人格文件

销售助手 SOUL.md:

cat > /data/workspace-sales/SOUL.md << 'EOF' # 销售助手 你是电商团队的销售数据分析助手。 ## 风格 - 回复简洁,先给数据再给分析 - 用百分比和趋势描述变化("环比增长 12%") - 主动发现异常:"注意,华东区退货率比上周高了 3 个点" ## 边界 - 只回答销售相关问题 - 不处理售后和退款 - 数据来源是平台 API,不要编造数字 EOF

售后客服 SOUL.md:

cat > /data/workspace-support/SOUL.md << 'EOF' # 售后客服 你是电商团队的售后处理助手。 ## 风格 - 耐心,不急躁 - 先确认问题,再给方案 - 涉及退款金额时给出明确数字和操作步骤 ## 边界 - 只处理售后相关:退款、换货、工单、客诉 - 不回答销售数据问题 - 超过授权金额的退款,提醒用户找主管审批 EOF

运营助手 SOUL.md:

cat > /data/workspace-ops/SOUL.md << 'EOF' # 运营助手 你是电商团队的运营监控助手。 ## 风格 - 能用数字说的不用文字 - 预警信息标红标粗 - 主动推送,不等人问 ## 边界 - 关注库存、物流、补货 - 不处理销售分析和售后 - 发现异常数据立即通知 EOF

第 2 步:写 Skill 文件

Skill 是 Markdown 文件,放在各 Agent 的skills/目录下。OpenClaw 会自动加载并编译进该 Agent 的 System Prompt。

销售助手的核心 Skill:

cat > /data/workspace-sales/skills/sales-query/SKILL.md << 'EOF' # 销售数据查询 ## 触发条件 用户问销售相关问题:销售额、订单量、退货率、GMV、客单价、转化率 ## 执行方式 通过平台 API 获取数据: ### 查询今日销售概况 ```bash curl -s -H "Authorization: Bearer $SHOP_TOKEN" \ "$SHOP_API/v1/orders/stats?date=$(date +%Y-%m-%d)" | jq '{ total_orders: .data.order_count, total_amount: (.data.total_amount / 100 | tostring + " 元"), avg_price: (.data.avg_amount / 100 | tostring + " 元"), return_rate: (.data.return_rate | tostring + "%") }'

查询指定日期范围的趋势

curl -s -H "Authorization: Bearer $SHOP_TOKEN" \ "$SHOP_API/v1/orders/trend?start=$START&end=$END" | jq '.data[] | { date: .date, orders: .order_count, amount: (.total_amount / 100) }'

输出格式

  • 先报数字,再给同比/环比
  • 发现异常(如退货率 > 5%)主动标出 EOF
**运营助手的库存预警 Skill:** ```bash cat > /data/workspace-ops/skills/inventory-alert/SKILL.md << 'EOF' # 库存预警 ## 触发条件 - 用户问库存情况 - 定时任务触发(Cron 调度) ## 执行方式 ```bash # 获取低于安全库存的 SKU curl -s -H "Authorization: Bearer $SHOP_TOKEN" \ "$SHOP_API/v1/inventory/alerts" | jq '.data[] | select(.stock < .safety_stock) | { sku_id: .sku_id, name: .product_name, stock: .stock, safety: .safety_stock, gap: (.safety_stock - .stock) }'

输出格式

  • 按缺口大小排序
  • 缺口超过安全库存 50% 的标为"紧急"
  • 给出补货建议数量(= 安全库存 × 2 - 当前库存) EOF
--- ## 第 3 步:配置 openclaw.json 这是核心配置——定义 Agent 列表和路由规则: ```json { "ai": { "provider": "amazon-bedrock", "model": "us.anthropic.claude-sonnet-4-6", "auth": "aws-sdk" }, "agents": { "list": [ { "id": "sales", "name": "销售助手", "workspace": "/data/workspace-sales" }, { "id": "support", "name": "售后客服", "workspace": "/data/workspace-support" }, { "id": "ops", "name": "运营助手", "workspace": "/data/workspace-ops" } ] }, "bindings": [ { "match": { "channel": "feishu", "peer": { "kind": "group", "id": "oc_sales_group_id" } }, "agentId": "sales" }, { "match": { "channel": "feishu", "peer": { "kind": "group", "id": "oc_support_group_id" } }, "agentId": "support" }, { "match": { "channel": "feishu", "peer": { "kind": "group", "id": "oc_ops_group_id" } }, "agentId": "ops" } ], "channels": { "feishu": { "enabled": true, "accounts": [{ "appId": "cli_your_app_id", "appSecret": "your_app_secret" }], "dmPolicy": "open", "groupPolicy": "open", "requireMention": true } }, "session": { "dmScope": "per-peer" } }

几个关键点:

  • bindings是路由核心:飞书群 ID → Agent ID 的映射。不同群的消息自动路由到不同 Agent
  • requireMention: true:群里必须 @ Bot 才响应,避免刷屏
  • dmScope: per-peer:同一个群里不同人的对话自动隔离,session 互不串扰
  • 三个 Agent 共享一个 Bedrock 后端,模型调用走 IAM 角色认证,配置里没有任何密钥

怎么拿飞书群 ID?在飞书群设置 → 群信息 → 群 ID(oc_开头的那串)。


第 4 步:接入飞书

OpenClaw 对飞书的接入方式是出站 WebSocket——不需要公网 IP,不需要 Webhook。

4.1 创建飞书应用

  1. 打开 飞书开放平台 → 创建企业自建应用
  2. 记下 App ID 和 App Secret
  3. 添加权限:
  4. im:message— 获取消息内容
  5. im:message:send_as_bot— 以 Bot 身份发消息
  6. im:chat:readonly— 读取群信息
  7. 开启Bot 能力

4.2 启动 OpenClaw

# 确保 openclaw.json 已配置好飞书凭证 openclaw gateway start # 看日志确认连接成功 tail -f ~/.openclaw/logs/gateway.log | grep feishu # 期望输出: # [feishu] WebSocket connected to wss://open.feishu.cn/... # [feishu] Bot info loaded: open_id=ou_xxxxx

4.3 配置事件订阅

⚠️ 顺序很重要:必须先启动 OpenClaw(WebSocket 连上),再去飞书开放平台配置事件订阅。否则飞书会报连接失败。

  1. 回到飞书开放平台 → 事件与回调 → 添加事件
  2. 订阅im.message.receive_v1
  3. 发布应用版本

4.4 把 Bot 拉进飞书群

把 Bot 分别拉进销售群、售后群、运营群。在群里 @ Bot 说句话测试:

@销售助手 今天卖了多少?

如果配置正确,销售群里会收到salesAgent 的回复,售后群里会收到supportAgent 的回复——人格和技能完全不同。


第 5 步:加上定时推送

运营助手光被动回答不够,还要主动推信息。在openclaw.json里加 Cron:

{ "cron": { "jobs": [ { "id": "morning-report", "schedule": "0 9 * * *", "agentId": "ops", "task": "生成昨日运营日报,包含:销售额、订单量、退货率、低库存 SKU 清单,推送到运营群", "channel": "feishu", "target": "group:oc_ops_group_id" }, { "id": "stock-check", "schedule": "every 4h", "agentId": "ops", "task": "检查库存,如有 SKU 低于安全库存线,立即推预警消息", "channel": "feishu", "target": "group:oc_ops_group_id" } ] } }

效果:每天早上 9 点运营群自动收到日报,每 4 小时检查一次库存。运营人员不需要主动问,关键信息自动送达。


进阶:多租户 SaaS 化

上面是"一个团队用"的场景。如果你是电商平台方,想给每个卖家都提供 AI 助手呢?

思路是一商户一实例,用容器编排:

# docker-compose.yml — 单个卖家的 Agent 实例 version: '3' services: openclaw: image: openclaw/openclaw:latest environment: - SELLER_ID=${SELLER_ID} volumes: - ./workspace-${SELLER_ID}:/data/workspace restart: always mem_limit: 512m

用 Amazon ECS 或 EKS 管理这些容器,CloudFormation 模板化部署,新商户开通分钟级完成。所有实例共享一个 Bedrock 模型后端(按量付费),数据通过独立 Workspace 目录天然隔离。

这种模式的好处是隔离性强——一个商户的 Agent 出问题不影响其他商户。坏处是资源利用率不如共享进程高,但在 Agent 场景下(主要消耗模型调用,不是 CPU/内存),这个代价可以接受。


小结

一个 OpenClaw 实例跑 3 个 Agent 的配置,总共改了这些东西:

新增文件: /data/workspace-sales/SOUL.md /data/workspace-sales/skills/sales-query/SKILL.md /data/workspace-support/SOUL.md /data/workspace-support/skills/ticket-handler/SKILL.md /data/workspace-ops/SOUL.md /data/workspace-ops/skills/inventory-alert/SKILL.md 修改文件: openclaw.json ← 加了 agents.list + bindings + cron

不需要写任何后端代码。Skill 是 Markdown,人格是 Markdown,路由是 JSON 配置。整个过程是"配置驱动"的,不是"开发驱动"的。这是 OpenClaw 做多 Agent 场景和传统 Function Calling 方案的本质区别。

完整的架构设计和部署模式分析,参考亚马逊云科技官方博客的深度解析文章。


本系列其他文章:-第 1 篇:Bedrock + IAM 零密钥部署-第 2 篇:Mac + iMessage 接入-第 3 篇:龙虾自己开服务器-第 5 篇:从本地到云:迁移踩坑实录(完结篇,即将发布)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 17:26:57

计算机毕业设计源码:python唯品会商品数据可视化系统 Flask框架 requests爬虫 可视化 数据清洗 数据分析 大数据 大模型 人工智能 agent deepseek(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…

作者头像 李华
网站建设 2026/7/14 17:27:00

大模型:RAG基础介绍

目录一、RAG的基本介绍二、向量的基础概念三、余弦相似度扩展一、RAG的基本介绍 通用大模型存在的一些问题&#xff1a; LLM的知识不是实时的&#xff0c;模型训练好之后不具备自动更新知识的能力&#xff0c;会导致部分信息滞后。LLM领域知识是缺乏的&#xff0c;大模型的知…

作者头像 李华
网站建设 2026/7/14 17:27:02

LeetCode题解--94.二叉树的中序遍历(简单)

一&#xff0c;题目描述二&#xff0c;解题思路中序遍历的顺序是&#xff1a;左子树 → 根节点 → 右子树。我们可以通过三种方法实现&#xff1a;递归、迭代&#xff08;栈&#xff09;和 Morris 遍历。 方法 1&#xff1a;递归 递归是最直观的方法&#xff0c;按照中序遍历的…

作者头像 李华
网站建设 2026/7/14 17:27:00

用bug制造神迹:让甲方以为系统被上帝眷顾

第一章 神迹的本质&#xff1a;预期管理中的认知偏差 1.1 黑盒视角的魔力 甲方对系统内部逻辑的无知是“神迹”诞生的土壤。例如&#xff1a; 延迟响应变“预加载”&#xff1a;刻意设计0.5秒的异步处理延迟&#xff0c;当用户点击后立即显示加载动画&#xff0c;实际数据返回…

作者头像 李华
网站建设 2026/7/14 17:27:01

vue2 和 vue3自定义指令有什么区别,都是怎么实现和使用一个指令

vue2 和 vue3自定义指令有什么区别&#xff0c;都是怎么实现和使用一个指令 Vue2 和 Vue3 自定义指令&#xff08;Custom Directive&#xff09; 整体思想一样&#xff1a;直接操作 DOM 的一种扩展机制&#xff0c;通常用于权限控制、焦点、拖拽、懒加载等。但 API 设计、生命周…

作者头像 李华
网站建设 2026/7/14 17:27:14

2026数字人制作软件十大免费试用榜:先体验后付费的平台推荐清单

一、引言在数字人应用逐步渗透各行业的当下&#xff0c;不少个人创作者、中小企业都想借助数字人制作软件实现内容生产降本增效&#xff0c;却普遍存在付费前怕踩坑、担心软件功能与需求不匹配的顾虑。大家最关心的问题集中在&#xff1a;免费试用的数字人制作软件是否能开放核…

作者头像 李华