本页内容
本页内容
区域平台
Feishu 动态代理
每用户代理隔离:为每个 Feishu DM 发送者提供自己的工作区、引导文件和对话历史记录。
按用户隔离智能体(动态智能体创建)
启用 dynamicAgentCreation 为每个 DM 用户自动创建 隔离代理实例。每个用户都有自己的:
- 独立工作区目录
- 单独的
USER.md/SOUL.md/MEMORY.md - 私有对话历史
- 隔离的技能和状态
对于希望每个用户都拥有自己私有 AI 助手体验的公共机器人来说,这一点至关重要。
快速设置
工作原理
当新用户发送第一个 DM 时:
- 该频道会生成一个唯一的
agentId:默认账户为feishu-{user_open_id},命名账户则为带有账户前缀的受限身份摘要 - 在
workspaceTemplate路径下创建新的工作区 - 注册该智能体并为此用户创建绑定
- 工作区帮助程序在首次访问时创建丢失的引导文件(
AGENTS.md、SOUL.md、USER.md等) - 将该用户未来的所有消息路由到其专属智能体
配置选项
| 设置 | 描述 | 默认值 |
|---|---|---|
channels.feishu.dynamicAgentCreation.enabled |
启用自动每用户代理创建 | false |
channels.feishu.dynamicAgentCreation.workspaceTemplate |
动态代理工作区的路径模板 | ~/.openclaw/workspace-{agentId} |
channels.feishu.dynamicAgentCreation.agentDirTemplate |
代理目录名称模板 | ~/.openclaw/agents/{agentId}/agent |
channels.feishu.dynamicAgentCreation.maxAgents |
创建的动态代理的最大数量 | 无限 |
模板变量:
{agentId}- 生成的代理 ID(e.g.、feishu-ou_xxxxxx或feishu-support-<identity_digest>){userId}- 发送方的Feishu open_id(e.g.,ou_xxxxxx)
会话范围
session.dmScope 控制私信如何映射到智能体会话。这是一个全局设置,会影响所有频道。
| 值 | 行为 | 最适合 |
|---|---|---|
"main" |
每个用户的 DM 映射到其代理的主会话 | 您希望自动加载 USER.md / SOUL.md 的单用户机器人 |
"per-peer" |
每个对端获得一个独立会话(与频道无关) | 仅按发送者身份进行隔离 |
"per-channel-peer" |
每个(频道 + 用户)组合获得一个独立会话 | 需要更强隔离的公共多用户机器人 |
"per-account-channel-peer" |
每个(账户 + 频道 + 用户)组合获得一个独立会话 | 需要账户级会话隔离的多账户机器人 |
权衡:使用 "main" 可以启用引导文件的自动加载(USER.md、SOUL.md、MEMORY.md),但这意味着所有频道的所有私信都会共享相同的会话键模式。对于更看重隔离而不是引导自动加载的公共多用户机器人,建议使用 "per-channel-peer" 并手动管理引导文件。
典型多用户部署
验证
检查网关日志,确认动态创建是否正常工作:
列出所有已创建的工作区:
说明
- 工作区隔离:每个用户都会获得自己的工作区目录和智能体实例。在正常消息交互流程中,用户无法看到彼此的对话历史或文件。
- 安全边界:这是一种消息上下文隔离机制,不是恶意共租户的安全边界。智能体进程和宿主环境是共享的。
- 必须保持配置写入开启:动态智能体创建会将智能体和绑定写入配置;当
channels.feishu.configWrites为false时会跳过(默认:开启)。 bindings应为空:动态智能体会自动注册自己的绑定- 升级路径:现有的手动绑定可以与动态智能体并存
session.dmScope是全局的:这会影响所有通道,而不仅仅是 Feishu
本页有帮助吗?