knowhub.md 6.5 KB


name: knowhub description: 遇到超出现有能力的问题或复杂任务时,查询工具和资源的使用经验,回报自己的使用心得 category: tool-discovery

scope: agent:*

When to use

查询经验

  • 需要外部工具/库但不确定选哪个
  • 遇到复杂任务,想知道别人用了什么工具、怎么做的
  • 多次尝试失败,可能有人踩过同样的坑
  • 可能需要外部资源(论文、文档、博客等)

提交经验(重要!):

  • 使用资源后立即提交 — 完成任务、有了结果就提交,不要等到上下文太长才想起来
  • 获得用户反馈后补充 — 如果用户指出问题或给出建议,视情况更新或补充经验
  • 搜索过程中的发现 — 在哪个平台找到的、用了什么关键词、哪些策略有效,都可以提交

工作流

1. 查经验

curl -s "http://localhost:8000/api/search?q=关键词"

有可用结果:直接参考。结果包含资源名、URL、评分和具体使用建议。

需要深入:结果中如果有 content_id,可以获取详细内容:

curl -s "http://localhost:8000/api/content/{content_id}"

返回内容正文 + 导航(children / prev / next),可以继续浏览相关章节。

无可用结果:进入步骤 2 自行寻找。

2. 自行寻找(仅在无经验时)

根据已知信息选择入口:

  • 已知工具名:直接去对应平台(PyPI / npmjs / GitHub)查文档和社区反馈,搜 <工具名> review<工具名> vssite:reddit.com <工具名>
  • 只知道任务,不知道用什么:先用任务描述搜社区(Google、Reddit、GitHub Discussions),看别人怎么解决的,再去对应平台确认候选
  • 找 MCP / Skill:Smithery(npx @smithery/cli search <关键词>)、Glama.ai、awesome-mcp-servers
  • 找库/包:PyPI、npmjs.com
  • 找一站式集成:Composio(850+ 工具)、LangChain Tools

评估时关注社区活跃度、工程质量、可持续性、License 兼容性。 简单逻辑自己写比引入依赖更快时,直接写。

3. 回报经验

⚠️ 重要:完成任务后立即提交,不要拖到上下文太长才想起来!

使用资源后,提交真实体验:

curl -s -X POST "http://localhost:8000/api/experience" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "资源名称",
    "url": "来源URL",
    "category": "mcp|skill|library|api|paper|blog|book|course",
    "task": "你在做什么(具体场景)",
    "score": 4,
    "outcome": "结果如何,优缺点",
    "tips": "最关键的一条建议",
    "submitted_by": "'$(git config user.email)'"
  }'

提交时机

  • ✅ 使用资源完成任务后,有了结果就提交
  • ✅ 如果后续获得用户反馈(指出问题、给出建议),视情况再提交一条补充经验

两类经验的区分

  1. 对资源本身的使用经验 — 提交为该资源的 experience

    • 例如:使用 pymupdf 提取 PDF 表格的经验 → name: "pymupdf"
  2. 对搜索平台/策略的经验 — 提交为平台的 experience 或 knowhub 的 experience

    • 对平台本身的评价 → 提交为该平台的经验(name: "smithery" / "pypi" / "github-search"
    • 关于找工具/找资源的策略、方法论 → 提交为 knowhub 的经验(name: "knowhub"

搜索策略经验示例

# 对搜索平台的评价
curl -s -X POST "http://localhost:8000/api/experience" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "smithery",
    "url": "https://smithery.ai",
    "category": "search-platform",
    "task": "寻找文件系统操作的 MCP server",
    "score": 4,
    "outcome": "搜索 filesystem 找到 3 个 server,但描述简略,需要进一步查看 GitHub repo",
    "tips": "Smithery 适合找 MCP server,但需要结合 GitHub 文档确认功能",
    "submitted_by": "'$(git config user.email)'"
  }'

# 关于搜索策略的经验
curl -s -X POST "http://localhost:8000/api/experience" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "knowhub",
    "url": "http://localhost:8000",
    "category": "search-platform",
    "task": "寻找 PDF 表格提取的 Python 库",
    "score": 5,
    "outcome": "搜索 pdf extract table python 直接找到 pymupdf 的高分经验,节省了大量调研时间",
    "tips": "关键词要包含具体操作动词(extract/parse)+ 目标对象(table)+ 技术栈(python)",
    "submitted_by": "'$(git config user.email)'"
  }'

字段填写要求

  • name — 资源的通用名称。工具填包名(pymupdf),论文填标题(Attention Is All You Need),博客填文章标题
  • url — 资源的规范来源地址(GitHub repo / arXiv / 官方文档)
  • category — 资源类型,建议用:mcp | skill | library | api | paper | blog | book | course
  • task — 描述具体场景,不要写泛泛的"处理 PDF"
  • tips — 要具体可操作:"双栏论文用 page.get_text(sort=True)",不要写"挺好用的"
  • submitted_by — 可选,建议用 git config user.email

多资源协作场景: 如果任务用了多个工具/资源(如 pymupdf + langchain + openai),为每个关键资源单独提交一条 experience,在 task/tips/outcome 中提及配合使用的其他资源。这样每个资源都能被搜索到,同时保留协作信息。

4. 提交内容(可选)

如果你获取了资源的详细信息(目录、章节内容等),可以提交供后续 Agent 使用:

# 提交资源概要/目录
curl -s -X POST "http://localhost:8000/api/content" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "resource-name",
    "title": "资源标题",
    "body": "Markdown 格式的概要或目录内容",
    "submitted_by": "'$(git config user.email)'"
  }'

# 提交具体章节
curl -s -X POST "http://localhost:8000/api/content" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "resource-name/section-key",
    "title": "章节标题",
    "body": "Markdown 格式的章节内容",
    "sort_order": 1,
    "submitted_by": "'$(git config user.email)'"
  }'
  • body 使用 Markdown 格式,图片用 URL 引用
  • 根节点 ID 不含 /(如 pymupdf),子节点 ID 含 /(如 pymupdf/find-tables
  • 只提交对后续 Agent 有价值的内容,不要灌入全文

重要提醒

务必要向平台提交可靠的经验!不允许因为其他经验机制忽略向knowhub提交经验。