ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw 飞书(Feishu)协作者与权限管理技能 feishu-perm:feishu_perm 工具配置与使用指南

OpenClaw 飞书(Feishu)协作者与权限管理技能 feishu-perm:feishu_perm 工具配置与使用指南 OpenClaw 飞书Feishu协作者与权限管理技能 feishu-permfeishu_perm 工具配置与使用指南【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw导读本文围绕 OpenClaw 项目中飞书插件自带的feishu-perm技能extensions/feishu/skills/feishu-perm/SKILL.md展开系统讲解如何通过feishu_perm工具对飞书云文档文档、表格、多维表格、知识库、幻灯片、文件夹等进行协作者查看、添加与移除操作。读完本文你将掌握feishu_perm的三种 actionlist/add/remove的完整参数含义、工具默认关闭的原因、如何在channels.feishu.tools.perm中开启它以及如何在日常 Agent 协作中安全地执行“查看协作者 → 变更访问权限”的完整流程。一、技能定位为什么权限管理需要单独一个技能在 OpenClaw 的飞书插件中Agent 可以操作文档、聊天、知识库、云盘、多维表格等多种能力分别对应feishu_doc、feishu_chat、feishu_wiki、feishu_drive、feishu_bitable等工具。其中权限管理被拆分为独立的feishu-perm技能核心原因是它直接改变用户数据文档/资源的访问权限属于敏感操作。从插件配置 extensions/feishu/openclaw.plugin.json 可以看到feishu_perm与其他飞书工具一样注册在插件工具列表中并声明了配置信号需要channels.feishu下或 accounts 覆盖层中的appId与appSecret才能生效。技能本身定位明确当用户明确要求查看或修改飞书文档的分享、权限或协作者时激活。它把所有操作收敛到单一工具feishu_perm及其当前 action schema 中避免权限变更散落在多个工具里难以审计。二、工具默认关闭先看懂channels.feishu.tools.permfeishu_perm默认是关闭的。原因在 extensions/feishu/src/tools-config.ts 的默认配置注释中写得很清楚// perm: disabled by default (sensitive operation) const DEFAULT_TOOLS_CONFIG: RequiredFeishuToolsConfig { doc: true, chat: true, wiki: true, drive: true, perm: false, // 权限管理默认关闭敏感操作 scopes: true, bitable: true, };也就是说doc、chat、wiki、drive、scopes、bitable默认开启唯独perm默认false。这是刻意的安全设计权限变更会影响他人对数据的访问能力因此需要运维者显式放行。开启方式在 OpenClaw 配置文件的飞书渠道配置中加入channels: feishu: appId: cli_xxxxxxxx appSecret: xxxxxxxxxxxxxxxx tools: perm: true # 显式启用权限管理工具配置项定义在 extensions/feishu/src/config-schema.ts 的FeishuToolsConfigSchema中注释为perm: z.boolean().optional() // Permission management (default: false, sensitive)。该 schema 同时注明了两条依赖关系wiki依赖doc知识库内容通过文档工具编辑perm可以独立工作但通常与drive配合使用。tools配置既可以在飞书渠道顶层设置也可以在**每个账号accounts 覆盖层**下单独设置——extensions/feishu/src/types.ts 中FeishuToolsConfig的全部字段都是可选的未设置的字段会回退到顶层配置与默认值。未开启时会发生什么如果perm未启用工具注册函数 extensions/feishu/src/perm.ts 中的registerFeishuPermTools会在注册阶段直接返回null即该工具根本不会暴露给 Agentapi.registerTool( (ctx) { const cfg ctx.runtimeConfig ?? ctx.config ?? api.config; if (!cfg || !resolveAnyEnabledFeishuToolsConfig(cfg).perm) { return null; // perm 未开启 → 不注册工具 } ... }, { name: feishu_perm }, );此时如果用户请求查看/修改协作者Agent 应当向用户说明需要先在配置中启用channels.feishu.tools.perm。这也是技能文档里明确的兜底行为“if it is unavailable, explain thatchannels.feishu.tools.permmust be enabled”。在多账号场景下账号路由逻辑位于 extensions/feishu/src/tool-account.ts 的resolveImplicitToolAccountId它会优先使用调用参数中的显式accountId其次使用 Agent 上下文默认账号、顶层defaultAccount最后遍历所有启用且已配置、且其tools.perm开启的账号若没有任何账号开启 perm 工具会抛出No usable Feishu account has Perm tools enabled。路由测试 extensions/feishu/src/tool-account-routing.test.ts 覆盖了feishu_perm的多种账号路由场景。三、feishu_perm工具的动作与参数详解feishu_perm暴露三个动作list、add、remove。参数 schema 定义在 extensions/feishu/src/perm-schema.ts实现位于 extensions/feishu/src/perm.ts底层调用飞书开放平台drive.permissionMember系列接口list/create/delete。3.1 通用参数所有动作都需要两个公共参数参数类型说明actionlist/add/remove要执行的操作tokenstring文件 token飞书云文档资源的唯一标识typestringtoken 对应的资源类型type支持的类型TokenType包括doc、docx、sheet、bitable、folder、file、wiki、mindnote。其中list在实现层额外兼容minutes、slides等类型见perm.ts中的ListTokenType而CreateTokenType还包含slides与minutes。3.2list查看当前协作者在修改任何权限之前先list查看现状这是技能工作流的第一步。调用示例{ action: list, token: doccnxxxxxxxxxxxxxxxx, type: docx }底层实现listMembers调用client.drive.permissionMember.list返回每个协作者的member_type协作者类型见下节member_id协作者 IDperm当前权限级别name协作者名称。返回结构{ members: [ { member_type: openid, member_id: ou_xxx, perm: edit, name: 张三 } ] }3.3add添加协作者并授予权限add在list之外还需要三个参数参数说明member_type协作者类型member_id协作者 IDemail、open_id、user_id 等perm权限级别view/edit/full_access调用示例{ action: add, token: doccnxxxxxxxxxxxxxxxx, type: docx, member_type: email, member_id: colleagueexample.com, perm: view }底层addMember调用client.drive.permissionMember.create并固定传need_notification: false不发送通知返回{ success: true, member }。MemberType支持email、openid、userid、unionid、openchat、opendepartmentidschema 层面实现层 perm.ts 的类型定义还包含groupid与wikispaceid覆盖了群组与知识库空间的协作者类型。3.4remove移除协作者remove需要member_type与member_id来精确定位要移除的协作者{ action: remove, token: doccnxxxxxxxxxxxxxxxx, type: docx, member_type: openid, member_id: ou_xxxxxxxx }底层removeMember调用client.drive.permissionMember.delete成功返回{ success: true }。3.5 错误处理三个动作的实现都包裹在try/catch中当飞书 API 返回非 0 的code时抛出res.msg最终通过toolExecutionErrorResult返回错误结果确保 Agent 能感知失败原因而非静默失败。四、官方工作流安全地完成一次权限变更技能文档定义了 5 步工作流是 Agent 操作权限的权威流程解析精确的 file token 与 type先确认目标资源的 token 及类型文档/表格/多维表格/知识库等token 错误将直接导致 API 调用失败变更前先list检查当前协作者任何add/remove之前必须先查看现状避免重复添加或误删add时解析协作者精确标识并选择满足请求的最低权限能用view就不用edit能用edit就不用full_access遵循最小权限原则remove时在请求含糊或范围过大的情况下先确认精确的协作者与文件避免误伤同名协作者或错误文件汇报变更结果但不暴露无关协作者数据只报告本次变更涉及的信息list得到的其他协作者数据不外泄。身份解析的硬性约束技能文档特别强调绝不允许仅凭显示名称推断 email、用户 ID、部门或群聊。member_id必须是精确的标识符邮箱、open_id、user_id、union_id、chat_id 等这是防止 Agent 张冠李戴、把权限授予错误对象的关键安全红线。五、最小权限与安全最佳实践默认关闭按需开启perm是飞书渠道中唯一默认关闭的工具族。仅在确有协作者管理需求、且运行环境可信时开启。最低权限授予添加协作者时按需选择view→edit→full_access不要把full_access作为默认值。先查后改严格遵循list→add/remove的顺序任何变更都基于真实现状而非猜测。多账号路由多账号部署时feishu_perm会按“显式 accountId → Agent 上下文账号 → 顶层 defaultAccount → 启用且开启 perm 的账号”顺序解析运维者应确保只有目标账号开启了perm。结果最小化汇报向用户汇报时只描述“哪个协作者被添加/移除、权限级别变为多少”不附带无关协作者列表。六、与其它飞书技能的分工feishu-perm技能位于 extensions/feishu/skills/ 目录与以下技能共同构成飞书文档协作能力矩阵技能职责feishu-doc文档内容读写、块级编辑feishu-drive云盘文件操作feishu-wiki知识库wiki操作依赖 docfeishu-perm协作者与权限管理本文主题从 config-schema.ts 的依赖注释可知权限管理“可以独立工作但通常与 drive 配合使用”——例如先通过feishu_drive定位/确认文件 token再通过feishu_perm调整其协作者。技能文件通过 openclaw.plugin.json 的skills: [./skills]声明加载即该目录下所有技能随插件一并提供给 Agent。七、快速上手 Checklist确认飞书应用已配置appId/appSecret在channels.feishu.tools中显式设置perm: true并重启/重载配置向 Agent 提出明确请求如“把doccnxxx的编辑权限授给 colleagueexample.com”Agent 依工作流先list查看现状再执行add或remove最后汇报结果若工具不可用检查配置中channels.feishu.tools.perm是否已开启、账号是否启用且已配置。通过以上配置与流程你可以放心地让 OpenClaw 的飞书 Agent 承担协作者管理这类敏感操作同时借助默认关闭、最小权限、先查后改等机制把误操作风险降到最低。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表