Kweaver-dip smart-search-tables
install
source · Clone the upstream repo
git clone https://github.com/kweaver-ai/kweaver-dip
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/kweaver-ai/kweaver-dip "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/smart-search-tables" ~/.claude/skills/kweaver-ai-kweaver-dip-smart-search-tables && rm -rf "$T"
manifest:
skills/smart-search-tables/SKILL.mdsource content
Smart Search Tables(找表 / 找数)
本 skill 定义 固定先后顺序 的找表工具链:先 对象实例检索 锁定表与元数据线索,再 部门职责语义查询 补足治理与责任边界,最后 总结。子工具契约以同名 skill 为准;
references/ 提供编排说明、样例与跳转。
OpenClaw:
metadata.openclaw.skillKey 为 smart-search-tables。流水线与默认 base_url / tools.*.url_path / kn_id / user_id 见 config.json。
在数据分析员工体系中,本 skill 宜由 smart-data-analysis 总入口完成意图与 KN 编排后再进入执行。
必读 references(按步骤)
| 步骤 | 说明 | Reference |
|---|---|---|
| 1 | (找表/元数据实例) | references/query-object-instance.md |
| 2 | (相关部门职责) | references/department-duty-query.md |
| — | 端到端逻辑与总结要点 | references/tool-examples.md |
主流程(必须按序)
找表进度: - [ ] 1. 运行 [scripts/query_object_instance.py](scripts/query_object_instance.py):在元数据 KN 下检索,得到表/视图候选与部门/主题线索;请求体三层结构见 [references/query-object-instance.md](references/query-object-instance.md) - [ ] 2. 运行 [scripts/department_duty_query.py](scripts/department_duty_query.py):根据线索构造职责问句并查询;格式见 [references/department-duty-query.md](references/department-duty-query.md) - [ ] 3. 总结:必须展示候选表(以表业务名 `business_name` 为主、完整全称;并补充表技术名 `technical_name`);**有则**补充职责要点。若第 2 步失败(如 HTTP **404**,多与职责侧 `kn_id` 与环境不一致),简短说明即可,**仍以第 1 步结果为主要交付**;不暴露 token 与完整调试 URL
进度展示样式(更直观)
状态图例:
已完成[✓]
待执行[ ]
失败并终止[✗]
约定可跳过(仅用于第 2 步 404 例外)[−]
minimal(多轮压缩):
找表进度:1✓ -> 2✓ -> 3✓
standard(默认,推荐):
### 找表执行进度 - [✓] 1 对象检索:query_object_instance 已返回候选表/视图 - [ ] 2 职责查询:待执行 department_duty_query - [ ] 3 结果汇总:待输出候选表 + 职责 + 下一步
第 2 步命中 404 例外时,推荐这样回显(保持直观且不误导):
### 找表执行进度 - [✓] 1 对象检索:已完成 - [−] 2 职责查询:HTTP 404(职责侧 kn_id/环境不一致),按规则跳过 - [✓] 3 结果汇总:已基于第 1 步结果完成交付
阶段进度汇报(硬约束)
- 流程门禁:主流程 1→2→3 中,每一阶段结束后必须先向用户展示该阶段结果/进度,再进入下一阶段;除下文「职责查询失败(如 404)仍进入总结」这一明示例外外,任一阶段失败则终止,不得调用下一阶段脚本或输出“下一阶段已完成”的假象结论。
- 职责查询失败例外:仅当第 2 步
失败且属于本 skill 已约定的 HTTP 404(职责侧department_duty_query
/ 环境不一致等) 场景时,允许进入第 3 步总结,并必须以第 1 步检索结果为主交付;其他失败(含第 1 步检索失败/无可用候选)不得进入第 2 步或第 3 步。kn_id
脚本查询(强制)
两步 必须使用本目录提供的脚本 完成调用:
scripts/query_object_instance.py、scripts/department_duty_query.py。默认 URL / kn_id 等与 config.json 及脚本一致,字段细节以 references/ 为准。禁止在本 skill 内新建 _tmp_*.py / _tmp_*.sh 等临时代码作为 HTTP 请求入口。
在 PowerShell 中执行 Python 时,一律使用脚本的完整路径,不要依赖当前工作目录;同一条命令行里串联多个操作时,请使用分号(
;)分隔,例如:cd C:\path\to\repo; python C:\path\to\script.py ...。
第 1 步:query_object_instance
query_object_instance- 脚本:scripts/query_object_instance.py
- 认证:
/--token
或位置参数;否则由脚本内部使用-t
和QOI_TOKEN
主动获取kweaver token - 检索词:
/--search
或第 2 个位置参数(默认-s
)企业 - 必填参数:
/--base-url
:平台网关-b
,可通过base_url
的 Issuer 字段获取kweaver auth whoami
/--account-id
:请求头-a
,可通过x-account-id
的 User ID 字段获取kweaver auth whoami
- 常用可选:
、--kn-id
、--ot-id
、--limit
、--url-path
、--x-business-domain
、--insecure
、--timeout--out - 说明:脚本内
为need_total
;false
须为元数据网且符合kn_id
。SOUL.md
第 2 步:department_duty_query
department_duty_query- 脚本:scripts/department_duty_query.py
- 认证:
/--token
或位置参数;否则由脚本内部使用-t
和DDQ_TOKEN
主动获取kweaver token - 必填参数:
/--base-url
:平台网关-b
,可通过base_url
的 Issuer 字段获取kweaver auth whoami
- 问句:
/--query
或第 2 个位置参数(未给则用脚本内默认长句)-q - 注意:请求 JSON 内
当前固定kn_id
,menu_kg_dept_infosystem_duty
未写入 body。脚本会先向 stdout 打印请求体再发请求,联调时注意区分输出。--kn-id - 404:不阻断第 1 步表/视图结论,见「步骤约束」。
临时文件清理(成功后)
本 skill 在调用子能力时,允许在“本机任务目录”创建临时脚本(用于组织请求 JSON/发起 HTTP)与临时数据文件(如
_tmp_*.json / _tmp_*.ndjson);MUST NOT 将临时文件落在仓库 skills/ 及其任意子目录下,若仓库内另有 .claude/skills/ 等 skill 同步树亦同。宜 使用工作区根目录、系统临时目录等与上述路径隔离的位置。为减少磁盘残留,本 skill 增加清理门禁:
- MUST:当且仅当本轮流程成功完成到“总结(第 3 步)”并输出最终回复后,删除本轮创建的临时脚本文件。
- MUST:仅删除满足以下规则的文件名模式:以
开头,后缀为_tmp_
/.py
/.sh
(大小写不敏感也视为匹配)。.ps1 - MUST:当且仅当本轮流程成功完成到“总结(第 3 步)”并输出最终回复后,删除本轮创建的临时数据文件(以
开头、后缀为_tmp_
/.json
,大小写不敏感也视为匹配)。.ndjson - MUST:绝对不删除仓库中的任何
样例脚本,或用户非本轮创建的临时文件。*_request_example* - MUST:若流程在任一步骤发生异常并提前终止,则不删除临时脚本与临时数据(保留用于排查);在异常回执中可提示“临时文件已保留”。
- MUST:若用户明确要求“保留调试文件/导出详情/展开详情”,则不删除相关临时脚本与临时数据。
严格限定(找数场景)
- 来源强约束:找表链路使用的知识网络(
、kn_id_find_table
)必须来自query_object_instance.query.kn_id
已配置知识网络。SOUL.md - 缺失处理:若
缺失或未配置可用知识网络,必须先提醒用户配置SOUL.md
,并暂停第 1 步检索。SOUL.md - 找数必须使用元数据知识网络:当用户目标是“找数/找表/找字段/定位资产”时,第 1 步
的query_object_instance
只能为元数据知识网络。query.kn_id - 无元数据 KN 不得执行检索:若当前上下文未提供元数据 KN(或
不明确/不在元数据候选中),必须先向用户确认「请提供或确认元数据知识网络 kn_id」;确认前不得继续第 1 步。kn_id - 口径冲突时优先安全:若用户给出的
与元数据用途不匹配,先提示并二次确认;未确认前停止执行。kn_id
步骤约束(摘要)
- 双 KN:第 1 步
(常为元数据网,须写入请求 JSON 的tools.query_object_instance.kn_id
);第 2 步query.kn_id
(常为职责网,如tools.department_duty_query.kn_id
)。禁止混用未经验证的duty
。kn_id- 上述
均须来自kn_id
配置;未配置不得调用。SOUL.md
- 上述
- tool-box URL:若 endpoint 含
,第 1 步 POST 体必须为agent-operator-integration/v1/tool-box/
+body
+query
结构(见 query-object-instance reference);header
/include_logic_params
用 JSON 布尔include_type_info
。false - 第 2 步的职责
必须能由第 1 步结果 派生;若第 1 步无部门线索,则用用户原问题中的部门/组织词,或 简要反问 后再调职责查询。若职责脚本/接口返回 404 等错误,仍须完整交付第 1 步的表/视图结论,并简短说明职责步骤未成功(常见为职责query
与环境不一致)。kn_id - 总结 中区分:事实发现(检索到的表)与 治理描述(职责库中的条文);二者无法强绑定时如实说明。最终结果中,候选表输出必须包含表技术名
与表业务名technical_name
(若缺失则标注“暂无”);展示时以business_name
为主,且必须使用完整全称,禁止截断、省略或缩写。business_name - 映射约定:在
结果中,视图与表按同等关系处理;query_object_instance
等价于view_tech_name
(可归并为table_tech_name
),technical_name
等价于view_business_name
(可归并为table_business_name
)。business_name - 禁止创建临时脚本作为入口:本 skill 不得新建
/_tmp_*.py
等临时文件作为 HTTP 请求入口;所有调用必须通过现有脚本或等价内嵌请求逻辑完成。_tmp_*.sh
与 smart-data-analysis 的关系
由 smart-data-analysis 路由到本 skill 时,主意图为 找表/定位;若上下文已有
kn_id_find_table,仅当其可确认是元数据知识网络时,才可用于第 1 步 query_object_instance 的 kn_id。
若
kn_id_find_table 缺失、无法确认或与元数据用途冲突,必须先向用户确认元数据知识网络 kn_id,确认前不得执行第 1 步检索。
用户后续要 指标与 SQL 取数 → 转 smart-ask-data。
配置
- 统一默认:config.json
:defaults
、user_idx_business_domain
:平台网关域名;完整网关 URL 约定为base_url
+base_urltools.<tool>.url_path
:默认两步流程使用tools
、query_object_instance
;另外可选子工具包括department_duty_query
、custom_search_strategy
(不加入本 skilldatasource_rerank
)。各工具均以pipeline
、url_path
、kn_id
为主要配置;若user_id
含url_path
,第 1 步须按 references/query-object-instance.md 组装agent-operator-integration/v1/tool-box/
+body
(含query
/kn_id
/布尔开关)+ot_id
(header
/x-account-id
);默认值见x-account-type
、default_queryenvelope_header
:每步pipeline
映射到defaults_key
中的键tools
调用示例
/smart-search-tables 采购订单相关宽表在哪个库、叫什么,谁在数据治理里负责? /smart-search-tables 销售域 KPI 用哪张汇总表,对应部门职责怎么说