name: knowhub
自包含单脚本,三种模式覆盖全部典型用法:
| 模式 | 做什么 | 何时用 |
|---|---|---|
ask |
深度回顾 —— 调远端 Librarian Agent 做规划+检索+整合 | 需要一个有引用的自然语言答案 |
search |
快速检索 —— 语义搜索 + LLM 精排 | 只想拿结构化条目列表,快 |
save |
保存知识 | 把调研结论/工具使用经验写库 |
自包含: 本 skill 目录下 knowhub.py 是独立脚本,不依赖 cyber-agent 安装,只需 pip install httpx。
| 变量 | 作用 | 默认 |
|---|---|---|
KNOWHUB_API |
KnowHub 服务器地址 | http://43.106.118.91:9999 |
KNOWHUB_OWNER |
save 的默认所有者;search 留空=不过滤,传 --owner=$KNOWHUB_OWNER 限定自己的 |
sunlit.howard@gmail.com |
也可以在 skill 目录下放 .env 文件覆盖默认(仅认 KEY=VALUE 纯文本,不依赖 python-dotenv)。
# 调 remote_librarian(默认,快,基于已入库知识)
python /Users/sunlit/.claude/skills/knowhub/knowhub.py ask --query="ControlNet 相关的工具"
# 调 remote_research(深,全网调研 + 入库,慢,分钟级)
python /Users/sunlit/.claude/skills/knowhub/knowhub.py ask --query="..." --deep
# 复用上下文(用上次返回的 sub_trace_id)
python /Users/sunlit/.claude/skills/knowhub/knowhub.py ask \
--query="基于刚才的结果补充..." \
--continue_from=65298f18-7cc4-4bc0-9fb8-6f2dd048df31
返回 {"mode","agent_type","sub_trace_id","status","summary","stats","error"},summary 字段是带引用的自然语言回答。
python /Users/sunlit/.claude/skills/knowhub/knowhub.py search \
--query="图片批量生成" \
--top_k=5 \
--min_score=3 \
--types=strategy,tool
按关系过滤(只看某 capability/tool/requirement 关联的):
python /Users/sunlit/.claude/skills/knowhub/knowhub.py search \
--query="..." --capability_id=CAP-008
返回 {"query","count","results":[...]},results 每项含 id / task / content / eval.score / types。
python /Users/sunlit/.claude/skills/knowhub/knowhub.py save \
--task="在用 flux 生成海报图时, 怎么让文字不错乱" \
--content="把文字用 [] 显式标出, 并在 prompt 末尾加 'clean typography, legible text'" \
--types=strategy \
--score=4 \
--source_name="flux 实测 2026-04" \
--source_urls=https://example.com/post-1
默认 owner = $KNOWHUB_OWNER,scopes=["org:cybertogether"]。需要覆盖用 --owner=... / --scopes=...。
ask 是同步阻塞的,timeout 600s;search 和 save 都在 60s / 30s 内返回error 字段有值且退出码 1--tags 接 JSON 字符串(如 '{"project":"xyz"}');其他逗号分隔的参数接 CSV