Назад към всички

operation-platform-enterprise-knowledge

// ```

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
---
name: enterprise-knowledge
display_name: 知识库检索
version: "0.2.0"
description: |
  快手企业知识库检索:在业务空间/知识库中搜索企业内部口径、政策、流程、SOP、规范、FAQ,并返回Top结果片段与链接。
metadata: { "openclaw": { "emoji": "📚" } }
triggers:
  - intent: 快手企业知识库检索
    keywords:
      - 知识库
      - 规章制度
      - 政策
      - 口径
      - SOP
      - 流程
      - 指南
      - 规范
      - FAQ
      - 规则
      - 操作手册
      - 内部文档
      - 怎么规定
      - 如何申请
      - 需要哪些材料
    examples: |
      退费规则是什么?(公司内部口径)
      报销流程怎么走?需要什么材料?
      入职流程/转正流程在哪里?
      XXX权限怎么开通?内部SOP是什么?
      在【电商运营空间】的【退费政策库】里查一下:退款多久到账?
      帮我从知识库找一下:客服升级工单的规则
      这个问题公司有没有统一口径/文档?
---

# 📚 Enterprise Knowledge Retrieval

## 什么时候必须用本技能(强规则)

当用户问题属于"企业内部信息/口径",例如:

- 政策/规则/制度(退费、报销、权限、合规、处罚等)
- 流程/SOP/操作指南(如何申请、怎么开通、怎么处理、工单流转)
- FAQ/统一口径(对外回复话术、客服口径、模板)
- 用户明确说"去知识库查/在某空间某知识库查"

**模型不确定答案是否准确时,也应优先检索再回答。**

## 什么时候不要用

- 纯常识/通用知识(与企业内部无关)
- 用户只想你"主观建议/写作润色",不需要企业口径支撑
- 用户已经提供了完整的企业文档内容让你总结(这时直接总结即可)

---

# ✅ 固定流程(按顺序执行,任一步失败立刻返回错误)

baseUrl:
http://kwaishop-gateway-manage.internal

## Step 1:获取业务空间列表(用于选择 spaceCode)

POST:
http://kwaishop-gateway-manage.internal/gateway/langbridge/openclaw/querySpaces

Body:
{
"spaceName": "",
"spaceCode": "",
"spaceType": "",
"pageInfo": { "page": "1", "pageSize": "50" },
"operator": "${operator}"
}

从响应 data.businessSpaceInfo[] 提取:

- spaceName
- code(spaceCode)

## Step 2:获取该空间下知识库列表(用于选择 repoCode)

POST:
http://kwaishop-gateway-manage.internal/gateway/langbridge/openclaw/space/knowledge

Body:
{
"businessSpaceCode": "${spaceCode}",
  "knowledgeRepoName": "",
  "pageRequest": { "pageNo": "1", "pageSize": "50" },
  "operator": "${operator}"
}

从响应 data.knowledgeRepoInfo[] 提取:

- name
- code(repoCode)

## Step 3:检索

POST:
http://kwaishop-gateway-manage.internal/gateway/langbridge/knowledge/retrieve/mcp/public

Body:
{
"repoCode": "${repoCode}",
  "query": "${query}",
"operator": "${operator}",
  "businessSpaceBizKey": "${spaceCode}"
}

从响应 data.reference[] 提取:

- content
- documentName
- documentUrl
- score

---

# 🧠 选择与记忆规则(简单、可执行)

## operator

operator 从本地凭证注入(如 ~/.openclaw/username)。

## 默认记忆

缓存:

- last_space_code
- last_repo_code

优先级:

1. 用户本轮明确指定 space/repo → 使用用户指定
2. 否则若缓存存在 → 直接复用缓存
3. 否则:
   - 先让用户选 space(只展示 Top 5 最相近名称)
   - 再让用户选 repo(只展示 Top 5)

## 名称匹配

如果用户输入的是名称而不是 code:

- 对 spaceName / repoName 做模糊匹配(包含、简称、拼音/英文片段)
- 命中多个候选 → 让用户在候选中选一个(列编号)

---

# 🧾 输出格式(统一)

默认 TopK=3,按 score 降序。
若最高 score < 0.2:提示用户"问题可能不够具体",并给出建议补充点(业务线/场景/对象/时间)。

输出模板:

以下是从知识库检索到的相关片段(Top 3):

1. 文档:${documentName}
   摘要:${content}
   链接:${documentUrl}
   score:${score}

2. ...

回答策略:

- 先基于片段给出结论/步骤
- 明确引用来自哪些文档
- 如片段冲突,说明冲突并建议以最新/权威文档为准

---

# ❗ 错误处理(必须)

任一步满足以下条件则失败:

- HTTP 非 2xx
- 响应缺少预期字段
- 服务返回错误码/错误信息

失败时:原样返回该步 message / 错误信息(不编造)。