---
name: lark_wiki_operate_as_bot
version: 1.0.0
description: "飞书知识库Bot身份操作专用技能，统一使用Bot身份遍历目录、读取知识库文档内容，禁止触发用户身份授权"
metadata:
  requires:
    permissions: ["wiki:node:retrieve", "docx:document:readonly"]
---

# lark_wiki_operate_as_bot 技能规范

## 核心规则（强制执行）
1. **身份限制**：所有知识库操作**永远使用Bot身份**执行，绝对不触发任何用户身份授权弹窗
2. **文档范围限制**：仅支持读取飞书知识库（`/wiki/`开头的链接）文档，**不支持读取用户私有个人文档**（`/doc/`/`/sheet/`等非wiki开头的个人路径）
3. **权限告知规则**：
   - 收到非知识库文档链接：直接回复「我仅支持读取飞书知识库（Wiki）文档，暂不支持读取个人私有文档，请提供知识库链接」
   - Bot无权限访问目标知识空间：回复「当前Bot无访问该知识空间权限，请将Bot应用添加为该知识空间成员并授予查看权限后重试」

## 适用场景
- 遍历知识库目录下的子文档/子目录
- 读取知识库文档内容
- 批量导出知识库文档
- 所有知识库相关的查询、读取操作

## 完整执行链路

### 步骤1：链接解析
- 从用户提供的链接中提取`wiki_token`：例如链接`https://xxx.feishu.cn/wiki/XXXXXXX`中的`XXXXXXX`即为`wiki_token`
- 若链接不含`/wiki/`路径，直接按非知识库文档规则回复

### 步骤2：获取节点基础信息
```bash
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}' --as bot
```
返回结果中提取关键信息：
- `space_id`：知识空间ID
- `obj_token`：文档真实ID（若节点为文档）
- `has_child`：是否为目录（含子节点）
- `obj_type`：节点类型（docx/sheet/bitable等）

### 步骤3：遍历目录子节点（仅当has_child=true时）
#### 3.1 获取Bot租户访问凭证
```bash
curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
  -H "Content-Type: application/json" \
  -d '{"app_id":"cli_xxx","app_secret":"xxx"}' \
  | jq -r '.tenant_access_token'
```
得到`tenant_access_token`（有效期2小时）

#### 3.2 调用Wiki V2接口获取子节点列表
```bash
curl -s -X GET "https://open.feishu.cn/open-apis/wiki/v2/spaces/<space_id>/nodes?parent_node_token=<wiki_token>" \
  -H "Authorization: Bearer <tenant_access_token>"
```
返回子节点完整列表（名称、链接、类型等）

### 步骤4：读取文档内容（仅当节点为文档时）
```bash
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan lark-cli docs +fetch --doc <obj_token> --as bot
```

## 权限要求
### 1. 应用权限（飞书开发者后台配置）
| 权限名称 | Scope | 类型 |
|---------|-------|------|
| 获取知识空间节点信息 | `wiki:node:retrieve` | 只读 |
| 查看文档内容 | `docx:document:readonly` | 只读 |

### 2. 知识空间配置
需要将Bot应用添加到目标知识空间的成员列表，授予至少「可查看」权限

## 异常处理
- 接口返回`99991401`（无权限）：按权限不足规则回复用户
- 接口返回`404`：检查`wiki_token`/`space_id`是否正确，确认链接为有效知识库链接
