Back to skills
SkillHub ClubAnalyze Data & AIFull StackBackendData / AI

lexiang

腾讯乐享知识库 API 集成。提供团队、知识库、知识节点、在线文档块的完整 CRUD 操作,以及通讯录管理、AI 搜索/问答、文件上传、任务管理等功能。此 skill 适用于需要通过 API 管理乐享知识库内容(创建/查询/编辑文档、搜索知识、管理团队权限等)的场景。

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,076
Hot score
99
Updated
March 20, 2026
Overall rating
C4.8
Composite score
4.8
Best-practice grade
C62.8

Install command

npx @skill-hub/cli install openclaw-skills-lexiang-skill

Repository

openclaw/skills

Skill path: skills/ajaxhe/lexiang-skill

腾讯乐享知识库 API 集成。提供团队、知识库、知识节点、在线文档块的完整 CRUD 操作,以及通讯录管理、AI 搜索/问答、文件上传、任务管理等功能。此 skill 适用于需要通过 API 管理乐享知识库内容(创建/查询/编辑文档、搜索知识、管理团队权限等)的场景。

Open repository

Best for

Primary workflow: Analyze Data & AI.

Technical facets: Full Stack, Backend, Data / AI.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install lexiang into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding lexiang to shared team environments
  • Use lexiang for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: lexiang
description: 腾讯乐享知识库 API 集成。提供团队、知识库、知识节点、在线文档块的完整 CRUD 操作,以及通讯录管理、AI 搜索/问答、文件上传、任务管理等功能。此 skill 适用于需要通过 API 管理乐享知识库内容(创建/查询/编辑文档、搜索知识、管理团队权限等)的场景。
homepage: https://lexiang.tencent.com/wiki/api/?event_type=link_exchange&event_channel=skill&event_detail=github
metadata: {"openclaw":{"emoji":"📚"}}
---

# 腾讯乐享知识库 API

腾讯乐享知识库是企业级知识管理平台,提供知识库、团队协作、文档管理、AI助手等功能。

## 数据模型

- **Team(团队)**:顶级组织单元,一个团队下可以有多个知识库(Space)
- **Space(知识库)**:知识的容器,属于某个团队,包含多个条目(Entry),有 `root_entry_id` 作为根节点
- **Entry(条目/知识)**:知识库中的内容单元,可以是页面(page)、文件夹(folder)或文件(file),支持树形结构(parent_id)
- **File(文件)**:附件类型的条目,如 PDF、Word、图片等

层级关系:`Team -> Space -> Entry(树形结构,root_entry_id 为根)`

## URL 规则

生成知识库链接时,必须使用企业专属域名(如 `csig.lexiangla.com`),**禁止使用** `https://lexiang.tencent.com/wiki/{id}` 格式。

| 资源类型 | URL 格式 |
|---------|----------|
| 团队首页 | `https://{domain}/t/{team_id}/spaces` |
| 知识库 | `https://{domain}/spaces/{space_id}` |
| 知识条目 | `https://{domain}/pages/{entry_id}` |

优先使用 API 响应中的 `links` 字段;如果 API 未返回完整链接,根据上述规则拼接。

## 凭证配置

### 环境变量
```bash
export LEXIANG_APP_KEY="your_app_key"
export LEXIANG_APP_SECRET="your_app_secret"
export LEXIANG_STAFF_ID="your_staff_id"  # 写操作必需
```

### 凭证配置优先级
1. 环境变量(最高优先级)
2. `~/.openclaw/openclaw.json` 中的 `skills.entries.lexiang.env` 字段
3. `~/.config/lexiang/credentials` JSON 文件

### 初始化(加载凭证 + 获取 Token)

执行 `scripts/init.sh` 脚本自动处理凭证加载和 Token 获取:
```bash
source scripts/init.sh
# 之后可使用 $LEXIANG_TOKEN 和 $LEXIANG_STAFF_ID
```

Token 有效期 2 小时,获取频率限制 20次/10分钟。脚本会自动缓存到 `~/.config/lexiang/token`。

## API 调用基础

### 请求头
```bash
# 读操作
-H "Authorization: Bearer $LEXIANG_TOKEN"
-H "Content-Type: application/json; charset=utf-8"

# 写操作(额外需要)
-H "x-staff-id: $LEXIANG_STAFF_ID"
```

### 需要 x-staff-id 的接口
所有写操作(创建/更新/删除)、AI 搜索/问答、权限设置

### 创建知识节点的格式
使用 **JSON:API 规范格式**,通过 `relationships` 指定所属知识库和父节点:
```json
{
  "data": {
    "type": "kb_entry",
    "attributes": {"entry_type": "page", "name": "标题"},
    "relationships": {
      "space": {"data": {"type": "kb_space", "id": "SPACE_ID"}},
      "parent_entry": {"data": {"type": "kb_entry", "id": "PARENT_ID"}}
    }
  }
}
```

### 通用限制
- 频率限制:大部分接口 3000次/分钟
- 权限要求:需在 AppKey 的授权范围内

## 核心工作流

### 1. 查询知识

```bash
# 获取团队列表
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams?limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"

# 获取知识库列表
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces?team_id={team_id}&limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"

# 获取知识列表
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?space_id={space_id}&limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"

# 获取文档内容(HTML 格式)
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/content?content_type=html" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 2. 创建文档

两种方式对比:

| 方式 | 优点 | 推荐场景 |
|------|------|---------|
| **上传 Markdown 文件** | 简单高效、格式完整保留 | 批量创建文档、Markdown 内容发布 |
| **块接口 (page + blocks)** | 精确控制格式、可实时编辑 | 需要程序化编辑文档内容 |

**推荐方式:上传 Markdown 文件**

使用 `scripts/upload_file.sh` 脚本:
```bash
source scripts/init.sh
bash scripts/upload_file.sh ./document.md SPACE_ID [PARENT_ENTRY_ID]
```

### 3. AI 搜索与问答

```bash
# AI 搜索
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/ai/search" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"query": "搜索关键词"}'

# AI 问答(research=true 使用专业研究模式)
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/ai/qa" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"query": "问题内容", "research": false}'
```

## 使用块接口的关键注意事项

对于需要使用在线文档块接口的场景,注意以下要点(详细示例见 `references/api-blocks.md`):

1. **新建文档不传 parent_block_id**:直接插入内容到页面根节点
2. **列表块字段名不同于类型名**:`bulleted_list` 用 `bulleted` 字段,`numbered_list` 用 `numbered` 字段
3. **标题块字段需匹配**:`h1` 用 `heading1`,`h2` 用 `heading2`,不是 `text`
4. **嵌套块必须使用 children 和 block_id**:表格/引用/高亮块通过临时 ID 建立父子关系
5. **不支持嵌套的类型**:`h1`-`h5`、`code`、`image`、`attachment`、`video`、`divider`、`mermaid`、`plantuml`

## 常见错误排查

| 错误信息 | 原因 | 解决方案 |
|----------|------|---------|
| `必须指定员工账号` | 缺少 x-staff-id | 添加 `-H "x-staff-id: $LEXIANG_STAFF_ID"` |
| `data.attributes.entry_type 不能为空` | 请求格式错误 | 使用 JSON:API 规范格式 |
| `content_type 不能为空` | 缺少参数 | 添加 `?content_type=html` |
| 列表内容为空 | 字段名错误 | 无序列表用 `bulleted`,有序列表用 `numbered` |
| 嵌套块创建失败 | 缺少关联 | 确保 `children` + `block_id` 配对 |
| 上传接口 404 | 旧版路径 | 使用 `/v1/kb/files/upload-params` |

## 详细 API 参考

按需查阅以下参考文件获取完整的接口文档:

| 文件 | 内容 | 搜索关键词 |
|------|------|-----------|
| `references/api-contact.md` | 通讯录管理(成员/部门 CRUD) | contact, user, department, staff |
| `references/api-team-space.md` | 团队与知识库管理 | team, space, 权限, subject |
| `references/api-entries.md` | 知识节点 CRUD 与权限 | entry, entries, page, directory, file |
| `references/api-blocks.md` | 在线文档块接口(创建/编辑块内容) | block, descendant, paragraph, table, list |
| `references/api-other.md` | 任务/属性/日志/AI/素材/导出/SSO | task, property, log, ai, search, qa, upload, sso |

## HTTP 错误码

| 状态码 | 说明 |
|--------|------|
| 200/201 | 成功 |
| 204 | 删除成功 |
| 400 | 请求参数错误 |
| 401 | Token 无效或过期 |
| 403 | 无权限 |
| 404 | 资源不存在 |
| 429 | 超出频率限制 |


---

## Referenced Files

> The following files are referenced in this skill and included for context.

### scripts/init.sh

```bash
#!/bin/bash
# 乐享知识库凭证加载和 Token 获取脚本
# 优先级:环境变量 > openclaw.json (env) > ~/.config/lexiang/credentials
#
# 使用方式:source scripts/init.sh
# 执行后可使用 $LEXIANG_TOKEN 和 $LEXIANG_STAFF_ID 变量

# 1. 检查环境变量(openclaw 会自动从 env 字段注入)
if [ -n "$LEXIANG_APP_KEY" ] && [ -n "$LEXIANG_APP_SECRET" ]; then
  echo "使用环境变量中的凭证"
  if [ -z "$LEXIANG_STAFF_ID" ]; then
    if [ -f ~/.openclaw/openclaw.json ]; then
      STAFF_ID=$(jq -r '.skills.entries.lexiang.env.LEXIANG_STAFF_ID // empty' ~/.openclaw/openclaw.json 2>/dev/null)
      if [ -n "$STAFF_ID" ]; then
        export LEXIANG_STAFF_ID="$STAFF_ID"
      fi
    fi
  fi

# 2. 检查 openclaw.json 的 env 配置
elif [ -f ~/.openclaw/openclaw.json ]; then
  APP_KEY=$(jq -r '.skills.entries.lexiang.env.LEXIANG_APP_KEY // empty' ~/.openclaw/openclaw.json 2>/dev/null)
  APP_SECRET=$(jq -r '.skills.entries.lexiang.env.LEXIANG_APP_SECRET // empty' ~/.openclaw/openclaw.json 2>/dev/null)
  STAFF_ID=$(jq -r '.skills.entries.lexiang.env.LEXIANG_STAFF_ID // empty' ~/.openclaw/openclaw.json 2>/dev/null)
  
  if [ -n "$APP_KEY" ] && [ -n "$APP_SECRET" ]; then
    export LEXIANG_APP_KEY="$APP_KEY"
    export LEXIANG_APP_SECRET="$APP_SECRET"
    if [ -n "$STAFF_ID" ]; then
      export LEXIANG_STAFF_ID="$STAFF_ID"
    fi
    echo "使用 ~/.openclaw/openclaw.json 中的凭证"
  fi

# 3. 检查独立配置文件
elif [ -f ~/.config/lexiang/credentials ]; then
  LEXIANG_CREDS=$(cat ~/.config/lexiang/credentials)
  export LEXIANG_APP_KEY=$(echo $LEXIANG_CREDS | jq -r '.app_key')
  export LEXIANG_APP_SECRET=$(echo $LEXIANG_CREDS | jq -r '.app_secret')
  STAFF_ID=$(echo $LEXIANG_CREDS | jq -r '.staff_id // empty')
  if [ -n "$STAFF_ID" ]; then
    export LEXIANG_STAFF_ID="$STAFF_ID"
  fi
  echo "使用 ~/.config/lexiang/credentials 中的凭证"
fi

# 检查凭证是否已加载
if [ -z "$LEXIANG_APP_KEY" ] || [ -z "$LEXIANG_APP_SECRET" ]; then
  echo "错误:未找到乐享凭证,请配置以下任一方式:"
  echo "  1. 设置环境变量 LEXIANG_APP_KEY 和 LEXIANG_APP_SECRET"
  echo "  2. 在 ~/.openclaw/openclaw.json 中配置 skills.entries.lexiang.env"
  echo "  3. 创建 ~/.config/lexiang/credentials 文件"
  return 1 2>/dev/null || exit 1
fi

if [ -z "$LEXIANG_STAFF_ID" ]; then
  echo "警告:未配置 LEXIANG_STAFF_ID,写操作可能会失败"
else
  echo "员工身份标识:$LEXIANG_STAFF_ID"
fi

# 检查是否有缓存的有效 token
if [ -f ~/.config/lexiang/token ]; then
  TOKEN_AGE=$(($(date +%s) - $(stat -f %m ~/.config/lexiang/token 2>/dev/null || stat -c %Y ~/.config/lexiang/token)))
  if [ $TOKEN_AGE -lt 7000 ]; then
    export LEXIANG_TOKEN=$(cat ~/.config/lexiang/token)
    echo "使用缓存的 Token (剩余有效期: $((7200 - TOKEN_AGE))秒)"
    return 0 2>/dev/null || exit 0
  fi
fi

# 获取新 token
export LEXIANG_TOKEN=$(curl -s -X POST "https://lxapi.lexiangla.com/cgi-bin/token" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d "{\"grant_type\":\"client_credentials\",\"app_key\":\"$LEXIANG_APP_KEY\",\"app_secret\":\"$LEXIANG_APP_SECRET\"}" \
  | jq -r '.access_token')

mkdir -p ~/.config/lexiang
echo $LEXIANG_TOKEN > ~/.config/lexiang/token
echo "已获取新 Token 并缓存"

```

### scripts/upload_file.sh

```bash
#!/bin/bash
# 乐享知识库文件上传脚本(三步流程)
# 使用方式:bash scripts/upload_file.sh <文件路径> <知识库ID> [父节点ID]
#
# 前置条件:已通过 source scripts/init.sh 设置好环境变量
#   - $LEXIANG_TOKEN
#   - $LEXIANG_STAFF_ID

set -e

FILE_PATH="$1"
SPACE_ID="$2"
PARENT_ID="${3:-}"

if [ -z "$FILE_PATH" ] || [ -z "$SPACE_ID" ]; then
  echo "用法: bash scripts/upload_file.sh <文件路径> <知识库ID> [父节点ID]"
  echo "示例: bash scripts/upload_file.sh ./doc.md abc123 parent_entry_id"
  exit 1
fi

if [ ! -f "$FILE_PATH" ]; then
  echo "错误:文件不存在: $FILE_PATH"
  exit 1
fi

if [ -z "$LEXIANG_TOKEN" ] || [ -z "$LEXIANG_STAFF_ID" ]; then
  echo "错误:请先执行 source scripts/init.sh 加载凭证"
  exit 1
fi

FILE_NAME=$(basename "$FILE_PATH")
echo "准备上传文件: $FILE_NAME"

# 步骤1: 获取上传凭证
echo "步骤1: 获取上传凭证..."
UPLOAD_PARAMS=$(curl -s -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/upload-params" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d "{\"name\": \"$FILE_NAME\", \"media_type\": \"file\"}")

BUCKET=$(echo "$UPLOAD_PARAMS" | jq -r '.options.Bucket')
REGION=$(echo "$UPLOAD_PARAMS" | jq -r '.options.Region')
KEY=$(echo "$UPLOAD_PARAMS" | jq -r '.object.key')
STATE=$(echo "$UPLOAD_PARAMS" | jq -r '.object.state')
AUTH=$(echo "$UPLOAD_PARAMS" | jq -r '.object.auth.Authorization')
COS_TOKEN=$(echo "$UPLOAD_PARAMS" | jq -r '.object.auth.XCosSecurityToken')

if [ -z "$BUCKET" ] || [ "$BUCKET" = "null" ]; then
  echo "错误:获取上传凭证失败"
  echo "$UPLOAD_PARAMS"
  exit 1
fi

echo "  Bucket: $BUCKET, Region: $REGION"

# 步骤2: 上传到腾讯云COS
echo "步骤2: 上传文件到COS..."
COS_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X PUT \
  "https://${BUCKET}.cos.${REGION}.myqcloud.com/${KEY}" \
  -H "Authorization: $AUTH" \
  -H "x-cos-security-token: $COS_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@$FILE_PATH")

if [ "$COS_RESPONSE" != "200" ]; then
  echo "错误:上传到COS失败,HTTP状态码: $COS_RESPONSE"
  exit 1
fi
echo "  上传成功"

# 步骤3: 创建知识节点
echo "步骤3: 创建知识节点..."

if [ -n "$PARENT_ID" ]; then
  RELATIONSHIPS='"parent_entry": {"data": {"type": "kb_entry", "id": "'"$PARENT_ID"'"}}'
else
  RELATIONSHIPS=""
fi

CREATE_RESPONSE=$(curl -s -X POST \
  "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?state=$STATE&space_id=$SPACE_ID" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d "{
    \"data\": {
      \"type\": \"kb_entry\",
      \"attributes\": {
        \"entry_type\": \"file\",
        \"name\": \"$FILE_NAME\"
      }$([ -n "$RELATIONSHIPS" ] && echo ", \"relationships\": {$RELATIONSHIPS}")
    }
  }")

ENTRY_ID=$(echo "$CREATE_RESPONSE" | jq -r '.data.id // empty')

if [ -n "$ENTRY_ID" ] && [ "$ENTRY_ID" != "null" ]; then
  echo "上传完成!"
  echo "  Entry ID: $ENTRY_ID"
  echo "  文件名: $FILE_NAME"
else
  echo "警告:节点创建可能失败,请检查响应:"
  echo "$CREATE_RESPONSE" | jq .
fi

```

### references/api-blocks.md

```markdown
# 在线文档块接口 API

> **文档参考**: https://lexiang.tencent.com/wiki/api/15016.html

## 创建嵌套块

**接口地址**: `POST /cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant`

**请求头**:
- `Authorization: Bearer {access_token}`
- `x-staff-id`: 成员账号(作为创建者)
- `Content-Type: application/json; charset=utf-8`

**核心参数说明**:
| 参数 | 类型 | 必须 | 说明 |
|------|------|------|------|
| parent_block_id | String | 否 | 父块 ID。**留空则插入到页面根节点** |
| index | Int | 否 | 插入位置索引(从 0 开始) |
| children | Array | 嵌套块必填 | 第一级子块的临时 ID 列表 |
| descendant | Array | 是 | 所有待创建块的数组 |

> **提示**:对于新建的空白文档,**不传 parent_block_id** 即可直接插入内容到页面根节点。

**descendant 数组对象结构**:
| 参数 | 说明 |
|------|------|
| block_id | 嵌套块模式必填,自定义临时 ID(字符串),用于建立父子关系 |
| block_type | 块类型(见下表) |
| children | 该块包含的子块临时 ID 列表 |
| [内容字段] | 根据 block_type 不同使用不同字段 |

**块类型**:
`p`(段落), `h1`-`h5`(标题), `code`(代码), `table`(表格), `table_cell`(表格单元格), `task`(任务), `callout`(高亮块), `toggle`(折叠块), `bulleted_list`(无序列表), `numbered_list`(有序列表), `divider`(分隔线), `column_list`(分栏), `column`(列), `mermaid`, `plantuml`

**不支持嵌套子块的类型**: `h1`-`h5`, `code`, `image`, `attachment`, `video`, `divider`, `mermaid`, `plantuml`

---

## 示例

### 简单段落
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/descendant" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "descendant": [
      {
        "block_type": "p",
        "text": {
          "elements": [{"text_run": {"content": "这是一段普通文本"}}]
        }
      }
    ]
  }'
```

### 带样式的标题
```bash
{
  "block_type": "h2",
  "heading2": {
    "elements": [
      {"text_run": {"content": "普通文本"}},
      {"text_run": {"content": "加粗", "text_style": {"bold": true}}},
      {"text_run": {"content": "下划线", "text_style": {"underline": true}}}
    ]
  }
}
```

**text_style 支持的样式**: bold, italic, underline, strikethrough, code, color, background_color

### 任务块
```json
{
  "block_type": "task",
  "task": {
    "name": "完成 API 文档更新",
    "done": false,
    "due_at": {"date": "2025-12-31", "time": "18:00:00"},
    "assignees": [{"staff_uuid": "员工UUID"}]
  }
}
```

### 代码块
```json
{
  "block_type": "code",
  "code": {
    "language": "python",
    "content": "def hello():\n    print(\"Hello, World!\")"
  }
}
```

### 引用块(嵌套结构)
```json
{
  "children": ["quote-1"],
  "descendant": [
    {
      "block_id": "quote-1",
      "block_type": "quote",
      "children": ["quote-text-1"]
    },
    {
      "block_id": "quote-text-1",
      "block_type": "p",
      "text": {"elements": [{"text_run": {"content": "引用文本"}}]}
    }
  ]
}
```

### 高亮块 (Callout)
```json
{
  "children": ["callout-1"],
  "descendant": [
    {
      "block_id": "callout-1",
      "block_type": "callout",
      "callout": {"background_color": "#FFF3E0", "icon": "⚠️"},
      "children": ["callout-text-1"]
    },
    {
      "block_id": "callout-text-1",
      "block_type": "p",
      "text": {"elements": [{"text_run": {"content": "警告提示"}}]}
    }
  ]
}
```

### 无序列表
```json
{
  "block_type": "bulleted_list",
  "bulleted": {
    "elements": [{"text_run": {"content": "列表项内容"}}]
  }
}
```
> 注意:`block_type` 是 `bulleted_list`,但内容字段是 `bulleted`

### 有序列表
```json
{
  "block_type": "numbered_list",
  "numbered": {
    "elements": [{"text_run": {"content": "列表项内容"}}]
  }
}
```
> 注意:`block_type` 是 `numbered_list`,但内容字段是 `numbered`

### 表格(嵌套块典型用法)
```json
{
  "children": ["table-1"],
  "descendant": [
    {
      "block_id": "table-1",
      "block_type": "table",
      "table": {
        "row_size": 2,
        "column_size": 2,
        "column_width": [200, 200],
        "header_row": true,
        "header_column": false
      },
      "children": ["cell-1-1", "cell-1-2", "cell-2-1", "cell-2-2"]
    },
    {
      "block_id": "cell-1-1",
      "block_type": "table_cell",
      "table_cell": {"align": "center", "vertical_align": "middle"},
      "children": ["text-1-1"]
    },
    {
      "block_id": "text-1-1",
      "block_type": "p",
      "text": {"elements": [{"text_run": {"content": "表头", "text_style": {"bold": true}}}]}
    }
  ]
}
```

**table 参数**: row_size(行数), column_size(列数), column_width(各列宽度), header_row(是否有表头行), header_column(是否有表头列)
**table_cell 参数**: align(left/center/right), vertical_align(top/middle/bottom)

### 批量创建多个块
将多个块放在同一个 `descendant` 数组中,一次请求完成。

---

## 更新块内容
```bash
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/{block_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"action": "update_text_elements", "text_elements": [{"type": "text", "text": "更新内容"}]}'
```

## 删除块
```bash
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/{block_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID"
```

## 获取块详情
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/{block_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 获取子块列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/page/entries/{entry_id}/blocks/children?parent_block_id={block_id}&with_descendants=0" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 获取附件详情
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/{file_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
> 响应包含 `links.download` 附件下载链接

```

### references/api-contact.md

```markdown
# 通讯录管理 API

## 一、成员管理

### 创建成员
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/create" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "staff_id": "zhangsan",
    "name": "张三",
    "phone": "13800138000",
    "email": "[email protected]",
    "department": [1, 2],
    "position": "产品经理"
  }'
```
**参数:**
| 参数 | 必须 | 说明 |
|------|------|------|
| staff_id | 是 | 员工账号,企业内唯一 |
| name | 是 | 成员名称 |
| phone | 是 | 手机号码,企业内唯一 |
| email | 否 | 邮箱 |
| department | 否 | 部门ID列表 |
| is_leader_in_dept | 否 | 是否为部门领导(数组,对应 department) |
| direct_leader | 否 | 直属上级(staff_id 数组) |
| main_depart | 否 | 主部门ID |
| position | 否 | 职务 |
| extra_attr | 否 | 自定义字段 |

> **频率限制**:3000次/分钟

### 更新成员
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/update" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"staff_id": "zhangsan", "name": "张三丰"}'
```
> **注意**:成员激活后,phone 和 email 不可通过接口变更

### 删除成员(离职)
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/resign" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"staff_id": "zhangsan"}'
```
> 删除后无法再使用乐享或接收消息,如需恢复可调用"重新入职"接口

### 重新入职
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/entry" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"staff_id": "zhangsan", "department": [1]}'
```

### 禁用成员(批量)
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/forbidden" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"staffs": ["staff1", "staff2"]}'
```
> 禁用后无法使用乐享或接收消息,但其他成员仍可见其数据。最多100个

### 重新启用
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/active" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"staffs": ["staff1", "staff2"]}'
```

### 添加管理员
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/add-manager" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"staff_id": "zhangsan"}'
```

### 获取成员信息
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/get?staff_id=zhangsan" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 获取部门下成员
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/list?department_id=1&page=1&per_page=100&fetch_child=1" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
| 参数 | 必须 | 说明 |
|------|------|------|
| department_id | 是 | 部门ID |
| page | 否 | 页码,默认1 |
| per_page | 否 | 每页数量,最大1000 |
| fetch_child | 否 | 1:包含子部门成员, 0:不包含 |

### 获取管理员列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/managers" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 获取自定义字段
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/user/extra-attrs" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 导出所有成员信息(异步)
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/export/user" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"aeskey": "your_32_char_aes_key_here_12345"}'
```
> - `aeskey` 为32位加密密钥(a-z, A-Z, 0-9),用于解密下载文件
> - 频率限制:10次/分钟
> - 需轮询查询任务状态获取下载链接

## 二、部门管理

### 创建部门
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/create" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"name": "研发部", "parent_id": 1, "order": 100}'
```
| 参数 | 必须 | 说明 |
|------|------|------|
| name | 是 | 部门名称 |
| parent_id | 是 | 父部门ID(根部门为1) |
| id | 否 | 指定部门ID(32位整型,>1) |
| order | 否 | 排序值(范围 [0, 2^32),越大越靠前) |

**常见错误码:**
- 1003: 参数错误
- 1005: 部门名称已存在
- 1007: 部门层级超过15层

### 更新部门
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/edit" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"id": 2, "name": "产品研发部"}'
```

### 删除部门
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/delete" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"id": 2}'
```
> 不能删除根部门、含有子部门或成员的部门

### 获取子部门
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/index?id=1&with_descendant=1" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 获取单个部门信息
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/contact/department/get?id=2" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 导出所有部门信息(异步)
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/contact/export/department" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"aeskey": "your_32_char_aes_key_here_12345"}'
```

## 通讯录错误码

| 错误码 | 说明 |
|--------|------|
| 1001 | 用户不存在 |
| 1002 | 部门不存在 |
| 1003 | 参数错误 |
| 1004 | 部门下存在子部门 |
| 1005 | 部门下存在用户 / 部门名称已存在 |
| 1006 | 该部门是根部门 |
| 1007 | 部门层级超过15层 |
| 1010 | 父部门不能为该部门的子部门 |

```

### references/api-team-space.md

```markdown
# 团队与知识库管理 API

## 一、团队管理

### 获取团队列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams?limit=20&page_token=" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 获取团队详情
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 设置团队成员与权限
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}/subject?downgrade=0" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "data": [
      {"type": "staff", "id": "lisi", "role": "manager"},
      {"type": "department", "id": "123", "role": "editor"}
    ]
  }'
```
| 参数 | 说明 |
|------|------|
| downgrade | 0:仅增加/不降级, 1:允许覆盖权限 |
| type | staff(成员) 或 department(部门) |
| role | manager(管理), editor(编辑), downloader(查看下载), viewer(仅查看) |

### 移除团队成员与权限
```bash
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}/subject" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"data": [{"type": "staff", "id": "lisi", "role": "editor"}]}'
```

### 获取团队成员与权限
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/teams/{team_id}/subject?limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 二、知识库管理

### 创建知识库
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "name": "技术文档库",
    "team": {
      "data": {"type": "team", "id": "team_id_here"}
    },
    "visible_type": 1,
    "subject": [
      {"type": "staff", "id": "lisi", "role": "editor"}
    ]
  }'
```
| 参数 | 必须 | 说明 |
|------|------|------|
| name | 是 | 知识库名称 |
| team.data.id | 是 | 所属团队ID |
| visible_type | 否 | 0:不可见, 1:可见, 2:跟随团队 |
| subject | 否 | 初始化权限设置 |

### 更新知识库
```bash
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"name": "新知识库名称"}'
```

### 删除知识库
```bash
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID"
```

### 获取知识库列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces?team_id={team_id}&limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 获取知识库详情
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 设置/移除/获取知识库成员与权限

设置:
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/subject?downgrade=0" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "data": [
      {"type": "staff", "id": "lisi", "role": "editor"},
      {"type": "department", "id": "123", "role": "viewer"}
    ]
  }'
```

移除:
```bash
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/subject" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"data": [{"type": "staff", "id": "lisi", "role": "editor"}]}'
```

获取:
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/subject?limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 权限角色说明

| 角色 | 说明 |
|------|------|
| manager | 管理权限 |
| editor | 编辑权限 |
| downloader | 查看/下载权限 |
| viewer | 仅查看权限 |

```

### references/api-entries.md

```markdown
# 知识节点 API

## 知识节点 CRUD

### 创建文件夹
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "data": {
      "type": "kb_entry",
      "attributes": {
        "entry_type": "directory",
        "name": "文件夹名称"
      },
      "relationships": {
        "space": {
          "data": {"type": "kb_space", "id": "space_id_here"}
        },
        "parent_entry": {
          "data": {"type": "kb_entry", "id": "parent_entry_id"}
        }
      }
    }
  }'
```
> **注意**:使用 JSON:API 规范格式,`space_id` 和 `parent_entry_id` 需要通过 `relationships` 指定

### 创建在线文档
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "data": {
      "type": "kb_entry",
      "attributes": {
        "entry_type": "page",
        "name": "文档标题"
      },
      "relationships": {
        "space": {
          "data": {"type": "kb_space", "id": "space_id_here"}
        },
        "parent_entry": {
          "data": {"type": "kb_entry", "id": "parent_entry_id"}
        }
      }
    }
  }'
```

### 上传文件(需先获取 state)
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?state={STATE}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "data": {
      "type": "kb_entry",
      "attributes": {
        "entry_type": "file",
        "name": "文件名.pdf"
      },
      "relationships": {
        "space": {
          "data": {"type": "kb_space", "id": "space_id_here"}
        },
        "parent_entry": {
          "data": {"type": "kb_entry", "id": "parent_entry_id"}
        }
      }
    }
  }'
```
> 支持类型:video(视频), audio(音频), file(图片/文档等)

### 重命名知识节点
```bash
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/rename" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"name": "新名称"}'
```

### 重新上传文件
```bash
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/upload?state={STATE}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID"
```

### 删除知识节点
```bash
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID"
```
> **注意**:删除节点前必须保证其下没有子节点

### 获取知识列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?space_id={space_id}&parent_id={parent_id}&limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 获取知识详情
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
> 对于文件类型,响应包含临时 `download` 下载链接(有效60分钟)

### 获取线上文档内容
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/content?content_type=html" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
| 参数 | 必须 | 说明 |
|------|------|------|
| content_type | 是 | 内容格式,可选值:html |

> 仅支持 page 类型,返回 HTML 格式内容

### 设置/移除/获取知识节点成员与权限

设置:
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/subject?downgrade=0" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"data": [{"type": "staff", "id": "lisi", "role": "editor"}]}'
```

移除:
```bash
curl -X DELETE "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/subject" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"data": [{"type": "staff", "id": "lisi", "role": "editor"}]}'
```

设置继承:
```bash
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/inherit" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"member_inherit_type": "inherit"}'
```

获取:
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/subject?limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 知识反馈

### 获取反馈列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/spaces/{space_id}/feedbacks?limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
**反馈状态 status:** unprocessed / processing / processed / not_process
**反馈类型 type:** kb_content_incomplete / kb_content_mistake / kb_content_suggestion

```

### references/api-other.md

```markdown
# 其他 API(任务、属性、日志、AI、素材、导出、SSO)

## 一、任务管理

### 查询成员任务列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/tasks?staff_id=zhangsan&type=reading&status=0&limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
| 参数 | 必须 | 说明 |
|------|------|------|
| staff_id | 是 | 被查询者员工ID |
| type | 否 | reading(阅读任务), collaboration(协作任务) |
| status | 否 | 0:未完成, 2:已完成 |
| limit | 否 | 每页数量,默认20,最大100 |
| page_token | 否 | 分页令牌 |

### 查询任务详情
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/tasks/{task_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 查询任务成员列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/tasks/{task_id}/members?limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 二、自定义属性管理

### 获取自定义属性列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/properties?source_type=company&limit=20" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
| 参数 | 说明 |
|------|------|
| source_type | company(公司属性), kb_space(知识库属性) |
| source_id | 当 source_type=kb_space 时必填 |

### 获取自定义属性详情
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/properties/{property_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### 编辑自定义属性
```bash
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/properties/{property_id}/schema" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "name": "属性名称",
    "description": "属性描述",
    "multiple": false,
    "options": [
      {"key": "opt1", "value": "选项1"},
      {"key": "opt2", "value": "选项2"}
    ]
  }'
```

### 获取/修改知识自定义属性
获取:
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/properties/values" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

修改:
```bash
curl -X PUT "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/properties/values" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"properties": [{"id": "property_id", "value": ["opt1"]}]}'
```

## 三、操作日志

### 获取知识操作日志列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/operation-logs?log_type=kb&started_at=2025-01-01&ended_at=2025-12-31" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
> 返回知识库内的文档操作(新建、添加权限等),包含操作人、IP、地理位置及具体操作内容

### 获取管理操作日志列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/operation-logs?log_type=manager&started_at=2025-01-01&ended_at=2025-12-31" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 四、AI 助手

### FAQ 列表
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/ai-faqs?limit=20&page=1" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

### AI 搜索(需要 x-staff-id)
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/ai/search" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"query": "搜索关键词"}'
```

### AI 问答(需要 x-staff-id)
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/ai/qa" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"query": "问题内容", "research": false}'
```
> `research=true` 使用专业研究模式

### 知识解析
```bash
# 获取知识解析结果
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/parsed-content" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"

# 获取知识解析切片(用于 Embedding,返回 jsonl 下载地址,有效期60分钟)
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries/{entry_id}/chunked-content" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"

# 获取附件解析结果/切片
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/{file_id}/parsed-content" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
curl "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/{file_id}/chunked-content" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```

## 五、素材管理(文件上传三步流程)

> **文档参考**: https://lexiang.tencent.com/wiki/api/12004.html

### 步骤一:获取上传凭证
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/upload-params" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"name": "文件名.md", "media_type": "file"}'
```
| 参数 | 必须 | 说明 |
|------|------|------|
| name | 是 | 文件名(需带扩展名) |
| media_type | 是 | `file`(文件), `video`(视频), `audio`(音频) |

### 步骤二:上传文件到腾讯云 COS
```bash
curl -X PUT "https://{Bucket}.cos.{Region}.myqcloud.com/{key}" \
  -H "Authorization: {object.auth.Authorization}" \
  -H "x-cos-security-token: {object.auth.XCosSecurityToken}" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @/path/to/file
```

### 步骤三:使用 state 创建知识节点
```bash
curl -X POST "https://lxapi.lexiangla.com/cgi-bin/v1/kb/entries?state={state}&space_id={space_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN" \
  -H "x-staff-id: $LEXIANG_STAFF_ID" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "data": {
      "type": "kb_entry",
      "attributes": {"entry_type": "file", "name": "文件名.md"},
      "relationships": {
        "parent_entry": {"data": {"type": "kb_entry", "id": "parent_entry_id"}}
      }
    }
  }'
```

> 建议使用 `scripts/upload_file.sh` 脚本完成完整的三步上传流程。

## 六、导出任务管理

### 查询任务
```bash
curl "https://lxapi.lexiangla.com/cgi-bin/v1/jobs/{job_id}" \
  -H "Authorization: Bearer $LEXIANG_TOKEN"
```
> - 只能查询72小时内创建的任务
> - `download_url` 有效期约 5 小时
> - status: 0(等待中), 1(进行中), 2(已完成)

## 七、单点登录(SSO)

乐享知识库支持 OAuth 授权码模式的单点登录,分为 SP 发起和 IdP 发起两种流程。

**可信 IP**(用于判断请求是否合法):`111.230.70.44`, `111.230.156.88`

```



---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### README.md

```markdown
# 腾讯乐享知识库 Skill

<p align="center">📚 适用于 AI Agent 的腾讯乐享知识库 API 技能包</p>

## 关于腾讯乐享

[腾讯乐享](https://lexiang.tencent.com/?event_type=link_exchange&event_channel=skill&event_detail=github) 是腾讯旗下的企业级 AI 知识管理平台,融合大模型能力,为企业提供知识库管理、团队协作、智能问答、AI 创作等一站式知识服务。

### 核心能力

- **多源多模态知识管理**:支持 102+ 种文件格式(文档、表格、PPT、PDF、视频、音频、图片等),一键导入 Confluence、iWiki、腾讯文档、公众号文章、腾讯会议录制等多平台内容
- **AI 智能问答**:基于 DeepSeek-R1 的企业级 RAG 问答,准确率 92.1%,幻觉率低至 2.64%,支持多知识域、联网搜索、视频/表格深度解析
- **AI 创作工具**:智能生成 PPT、思维导图、知识图解,支持学习模式渐进掌握知识
- **企业级安全**:四级权限隔离,7 项国际合规认证,支持私有化部署
- **开放生态**:240+ API 接口,深度集成企业微信、腾讯会议、腾讯文档,支持 MCP 协议对接 AI Agent

### 适用场景

| 角色 | 典型场景 |
|------|---------|
| 产品/研发团队 | 技术文档管理、API 文档维护、需求文档协同、代码规范沉淀 |
| 交付/销售团队 | 客户案例库、解决方案管理、移动端 AI 问答、企微机器人支持 |
| 设计团队 | 设计规范与组件库管理、品牌资产沉淀、设计协同 |

## 关于本 Skill

本 Skill 为 AI Agent 提供腾讯乐享知识库的完整 API 集成能力,包括:

- 📚 知识库管理(创建、查询、更新、删除)
- 👥 团队与成员管理
- 📝 在线文档编辑(块接口)
- 🔍 AI 搜索与问答
- 📤 文件上传与下载
- 📋 任务管理
- 🔗 MCP 协议支持

## 安装与使用

### 方式一:CodeBuddy 安装

```bash
# 通过 CodeBuddy Skill 市场搜索 "lexiang" 安装
```

### 方式二:OpenClaw 安装

```bash
openclaw skills install github:tencent-lexiang/lexiang-skill
```

### 方式三:手动集成

将 `SKILL.md` 文件内容作为 System Prompt 或 Context 提供给你的 AI Agent 即可。也可以下载 [Release](https://github.com/ajaxhe/lexiang-skill/releases) 中的 zip 包。

## 配置凭证

### 环境变量方式

```bash
export LEXIANG_APP_KEY="your_app_key"
export LEXIANG_APP_SECRET="your_app_secret"
export LEXIANG_STAFF_ID="your_staff_id"
```

### 配置文件方式

```json
{
  "LEXIANG_APP_KEY": "your_app_key",
  "LEXIANG_APP_SECRET": "your_app_secret",
  "LEXIANG_STAFF_ID": "your_staff_id"
}
```

### 获取凭证

1. 登录乐享企业管理后台
2. 进入【开发】→【接口凭证管理】
3. 点击**添加凭证**,保存 AppKey 和 AppSecret

> 详细的 API 凭证文档请参考 [乐享开放平台](https://lexiang.tencent.com/wiki/api/?event_type=link_exchange&event_channel=skill&event_detail=github)

## 项目结构

```
lexiang-skill/
├── SKILL.md                 # 核心 Skill 文件(精简工作流 + 关键提示)
├── references/              # 详细 API 参考文档(按需加载)
│   ├── api-contact.md       # 通讯录管理 API
│   ├── api-team-space.md    # 团队与知识库管理 API
│   ├── api-entries.md       # 知识节点 API
│   ├── api-blocks.md        # 在线文档块接口 API
│   └── api-other.md         # 任务/属性/日志/AI/素材/导出/SSO
├── scripts/                 # 辅助脚本
│   ├── init.sh              # 凭证加载 + Token 获取
│   └── upload_file.sh       # 文件上传三步流程
└── dist/
    └── lexiang-skill.zip    # 打包文件
```

## 相关链接

- [腾讯乐享官网](https://lexiang.tencent.com/?event_type=link_exchange&event_channel=skill&event_detail=github)
- [免费注册体验 AI 知识库](https://lexiang.tencent.com/register?version=2&event_type=link_exchange&event_channel=skill&event_detail=github)
- [乐享开放 API 文档](https://lexiang.tencent.com/wiki/api/?event_type=link_exchange&event_channel=skill&event_detail=github)
- [MCP 配置中心](https://lexiangla.com/mcp)

## License

MIT

---

# Tencent Lexiang Knowledge Base Skill

<p align="center">📚 Tencent Lexiang Knowledge Base API Skill for AI Agents</p>

## About Tencent Lexiang

[Tencent Lexiang](https://lexiang.tencent.com/?event_type=link_exchange&event_channel=skill&event_detail=github) is Tencent's enterprise-grade AI knowledge management platform. Powered by large language models, it provides one-stop knowledge services including knowledge base management, team collaboration, intelligent Q&A, and AI-powered content creation.

### Core Capabilities

- **Multi-source & Multi-modal Knowledge Management**: Supports 102+ file formats (documents, spreadsheets, PPT, PDF, video, audio, images, etc.), with one-click import from Confluence, iWiki, Tencent Docs, WeChat articles, Tencent Meeting recordings, and more
- **AI-Powered Q&A**: Enterprise-grade RAG Q&A powered by DeepSeek-R1, with 92.1% accuracy and only 2.64% hallucination rate. Supports multi-knowledge-domain queries, web search, and deep analysis of video/spreadsheet content
- **AI Creation Tools**: Intelligent generation of PPT, mind maps, and knowledge infographics, with a guided learning mode for progressive knowledge mastery
- **Enterprise Security**: 4-tier permission isolation, 7 international compliance certifications, with private deployment support
- **Open Ecosystem**: 240+ API endpoints, deep integration with WeCom, Tencent Meeting, and Tencent Docs, with MCP protocol support for AI Agent connectivity

### Use Cases

| Role | Typical Scenarios |
|------|---------|
| Product/Engineering Teams | Technical documentation, API docs maintenance, requirements collaboration, coding standards |
| Delivery/Sales Teams | Customer case library, solution management, mobile AI Q&A, WeCom bot support |
| Design Teams | Design system & component library management, brand asset storage, design collaboration |

## About This Skill

This Skill provides AI Agents with full API integration for Tencent Lexiang Knowledge Base, including:

- 📚 Knowledge base management (CRUD)
- 👥 Team & member management
- 📝 Online document editing (block API)
- 🔍 AI search & Q&A
- 📤 File upload & download
- 📋 Task management
- 🔗 MCP protocol support

## Installation & Usage

### Option 1: CodeBuddy Installation

```bash
# Search for "lexiang" in CodeBuddy Skill marketplace
```

### Option 2: OpenClaw Installation

```bash
openclaw skills install github:tencent-lexiang/lexiang-skill
```

### Option 3: Manual Integration

Provide the contents of `SKILL.md` as a System Prompt or Context to your AI Agent. You can also download the zip package from [Releases](https://github.com/ajaxhe/lexiang-skill/releases).

## Credential Configuration

### Environment Variables

```bash
export LEXIANG_APP_KEY="your_app_key"
export LEXIANG_APP_SECRET="your_app_secret"
export LEXIANG_STAFF_ID="your_staff_id"
```

### Configuration File

```json
{
  "LEXIANG_APP_KEY": "your_app_key",
  "LEXIANG_APP_SECRET": "your_app_secret",
  "LEXIANG_STAFF_ID": "your_staff_id"
}
```

### Obtaining Credentials

1. Log in to the Lexiang admin console
2. Navigate to **Development** → **API Credential Management**
3. Click **Add Credential** and save the AppKey and AppSecret

> For detailed API credential documentation, see [Lexiang Open Platform](https://lexiang.tencent.com/wiki/api/?event_type=link_exchange&event_channel=skill&event_detail=github)

## Project Structure

```
lexiang-skill/
├── SKILL.md                 # Core skill file (streamlined workflow + key hints)
├── references/              # Detailed API reference docs (loaded on demand)
│   ├── api-contact.md       # Contact management API
│   ├── api-team-space.md    # Team & knowledge base management API
│   ├── api-entries.md       # Knowledge entry API
│   ├── api-blocks.md        # Online document block API
│   └── api-other.md         # Task/property/log/AI/material/export/SSO
├── scripts/                 # Helper scripts
│   ├── init.sh              # Credential loading + token retrieval
│   └── upload_file.sh       # 3-step file upload workflow
└── dist/
    └── lexiang-skill.zip    # Packaged skill file
```

## Links

- [Tencent Lexiang Official Site](https://lexiang.tencent.com/?event_type=link_exchange&event_channel=skill&event_detail=github)
- [Free Trial - AI Knowledge Base](https://lexiang.tencent.com/register?version=2&event_type=link_exchange&event_channel=skill&event_detail=github)
- [Lexiang Open API Documentation](https://lexiang.tencent.com/wiki/api/?event_type=link_exchange&event_channel=skill&event_detail=github)
- [MCP Configuration Center](https://lexiangla.com/mcp)

## License

MIT

```

### _meta.json

```json
{
  "owner": "ajaxhe",
  "slug": "lexiang-skill",
  "displayName": "Lexiang",
  "latest": {
    "version": "0.1.2",
    "publishedAt": 1771932010189,
    "commit": "https://github.com/openclaw/skills/commit/bb475c75945a4f851c5332e816d61449061db0a6"
  },
  "history": []
}

```

lexiang | SkillHub