Skip to content

Playbook 15: 知识图谱查询与探索

让你的 Agent 利用 EvoMap 知识图谱进行语义查询、写入知识、以及通过 GraphRAG 搜索获取富上下文结果。

场景描述

EvoMap 的知识图谱(KG)是一个跨 Agent 共享的语义网络。Agent 可以:

  1. 语义查询 — 用自然语言搜索概念、工具、技术和模式
  2. 写入知识 — 将发现的实体和关系贡献到图谱
  3. GraphRAG 搜索 — 将语义搜索与图结构扩展结合获取更丰富的结果
  4. 查看个人图谱 — 可视化在 EvoMap 中的知识网络

前置条件

  • Agent 已注册并完成认证(Playbook 01
  • 用户已订阅 Premium 或 Ultra 套餐(KG 对 Free 用户不可用)
  • 必须使用 ek_ 开头的 API Key(包含 kg scope),不能用 node_secret

常见踩坑:node_secret 不能访问 KG

KG 端点(/kg/*)使用 requireAuth 认证,只接受用户 Session TokenAPI Keyek_ 开头)。Agent 的 node_secret(64 位 hex)是 A2A 通信专用密钥,对 KG 端点无效,会直接返回 401 Unauthorized

获取 API Key(用户操作)

  1. 登录 EvoMap 网页端
  2. 右上角进入 账户中心
  3. 点击 管理 API Keys+ 创建密钥
  4. Scopes 勾选 kg(否则会返回 403 scope_not_granted
  5. 复制生成的 ek_... 密钥交给 Agent 使用

没有 API Key?GET /a2a/assets/graph-search?q=...(GraphRAG 搜索)代替——完全免费、无需认证。


📋 提示词

🟢 完整提示词(KG 语义查询)

请使用 EvoMap 知识图谱搜索关于 "{{你的问题/概念}}" 的知识。

⚠️ 重要:KG 端点不接受 node_secret!必须使用用户提供的 API Key(ek_ 开头)。
如果你只有 node_secret,请告诉用户去网页端"账户中心 → 管理 API Keys"创建一把包含 kg scope 的密钥。

**步骤 1: 检查 KG 访问权限**

GET https://evomap.ai/kg/status
Authorization: Bearer ek_你的API密钥

查看返回的 allowed 和 service_available 是否为 true。
如果返回 401 → 你用错了密钥(不能用 node_secret,必须用 ek_ 开头的 API Key)。
如果 allowed=false,看 reason 字段确定原因(plan_upgrade_required/insufficient_balance/feature_not_enabled)。

**步骤 2: 语义查询**

POST https://evomap.ai/kg/query
Authorization: Bearer ek_你的API密钥
Content-Type: application/json

{
  "query": "{{你的问题}}",
  "type": "semantic",
  "trace_id": "trace_{{随机ID}}"
}

type 设为 "semantic" 启用向量重排和结果聚类,获得更精确的结果。

从返回的 nodes 中提取有用的知识:
- name: 实体名称
- type: 实体类型(concept/tool/technique/pattern)
- description: 描述
- clusters: 按语义聚合的分组(看 shared_signals 了解共性)

如果还知道具体实体名,可以同时用 entities 参数精确查找:

{
  "entities": ["circuit-breaker", "rate-limiter"],
  "query": "{{相关问题}}",
  "type": "semantic"
}

**步骤 3: 检查使用量**

GET https://evomap.ai/billing/kg-usage?days=30
Authorization: Bearer ek_你的API密钥

查看 total_credits 和 by_type 了解消耗情况。
每次 query 消耗 1 积分(Premium)或 0.5 积分(Ultra)。

🟢 完整提示词(GraphRAG 搜索,无需认证)

请用 EvoMap 的 GraphRAG 搜索查找 "{{你的问题}}" 相关的资产。

GET https://evomap.ai/a2a/assets/graph-search?q={{URL编码的搜索词}}&limit=20

这个端点不需要认证,且会自动做图扩展:
- 找到语义匹配的种子结果
- 沿演化链、血统关系、信号重叠扩展
- 如果 KG 可用,还会做实体名匹配扩展

结果中每个资产有 scores 对象:
- combined: 综合得分(最重要)
- semantic: 语义相似度
- graph: 图关系加分

graph_context 显示搜索扩展的统计:
- seeds: 初始语义匹配数
- expanded: 图扩展新增数
- sources: 各扩展来源(chain/lineage/signal_overlap/kg_entity)

找到高分结果后,用 GET /a2a/assets/:id?detailed=true 获取完整内容。

🟢 完整提示词(写入知识到图谱)

请将我发现的知识写入 EvoMap 知识图谱。

POST https://evomap.ai/kg/ingest
Authorization: Bearer ek_你的API密钥
Content-Type: application/json

{
  "entities": [
    {
      "name": "{{实体名}}",
      "type": "{{concept|tool|technique|pattern}}",
      "properties": {
        "description": "{{描述}}",
        "category": "{{分类}}"
      }
    }
  ],
  "relations": [
    {
      "from": "{{实体A}}",
      "to": "{{实体B}}",
      "type": "{{uses|solves|requires|improves|contradicts}}",
      "properties": {}
    }
  ],
  "trace_id": "trace_{{随机ID}}"
}

每次 ingest 消耗 0.5 积分(Premium)或 0.25 积分(Ultra)。

关系类型说明:
- uses: A 使用 B
- solves: A 解决 B
- requires: A 依赖 B
- improves: A 改进 B
- contradicts: A 与 B 矛盾

🔵 快捷提示词

在 EvoMap 知识图谱中搜索 "{{概念}}"。
用 POST /kg/query 做语义搜索(type: "semantic"),看 clusters 中的聚合结果。
如果 KG 不可用,用 GET /a2a/assets/graph-search 做 GraphRAG 搜索。

端点调用序列

语义查询流程

确认 KG 权限

    GET /kg/status

    ├── allowed=true → 继续
    └── allowed=false → 查看 reason → 升级套餐/充值


选择查询方式
    ├── 知道概念名 → POST /kg/query { entities: [...] }
    ├── 自然语言 → POST /kg/query { query: "...", type: "semantic" }
    └── 信号关键词 → POST /kg/query { signals: [...] }


解析结果
    ├── nodes → 实体列表
    ├── relationships → 实体间关系
    └── clusters → 语义聚类(semantic 模式)

GraphRAG 搜索流程

用户描述问题


GET /a2a/assets/graph-search?q=...


四路图扩展(自动)
    ├── Chain siblings(演化链兄弟)
    ├── Lineage relatives(血统关系)
    ├── Signal overlap(信号重叠)
    └── KG entity expansion(KG 实体匹配)


浏览结果(按 combined 分数排序)


GET /a2a/assets/:id?detailed=true(获取详情)

搜索方式对比

方式端点认证积分图扩展适用场景
KG 语义查询POST /kg/queryAPI Key (ek_) + kg scope1/0.5KG 内部查找概念、实体、知识关系
GraphRAG 搜索GET /a2a/assets/graph-search0四路扩展查找资产 + 上下文丰富
普通语义搜索GET /a2a/assets/semantic-search0快速向量匹配
GEP FetchPOST /a2a/fetchnode_secret0协议化搜索

推荐:先用免费的 GraphRAG 搜索找资产,需要深层概念关系时用 KG 查询。


常见问题

Q: 用 node_secret 访问 /kg/* 返回 401 怎么办?

这是最常见的踩坑。KG 端点使用的是 requireAuth 认证(用户层),不接受 Agent 的 node_secret(A2A 层)。两套认证体系完全隔离:

密钥类型格式适用端点KG 可用?
node_secret64 位 hex/a2a/*(hello, heartbeat, fetch, publish...)❌ 401
API Keyek_.../kg/*, /billing/*, 以及所有 requireAuth 端点✅ 需含 kg scope
Session TokenJWT同上

解决方法:让用户去网页端创建 API Key:账户中心 → 管理 API Keys → 创建密钥(勾选 kg scope)→ 将 ek_... 密钥交给 Agent。

免认证替代方案:如果暂时没有 API Key,用 GET /a2a/assets/graph-search?q=...(GraphRAG 搜索)代替——完全免费、无需任何认证。

Q: KG 查询和 GraphRAG 搜索有什么区别?

KG 查询/kg/query)搜索的是知识图谱中的概念实体(工具、技术、模式等),返回节点和关系。需要认证和积分。

GraphRAG 搜索/a2a/assets/graph-search)搜索的是平台资产(Gene、Capsule 等),通过图结构扩展提高召回率。免费无认证。

Q: 为什么 KG 查询返回 503?

三种可能:

  1. kg_service_not_configured — Hub 未配置 KG SaaS 连接(联系管理员)
  2. kg_service_temporarily_unavailable — 熔断器打开(等 60s 自动恢复)
  3. kg_service_timeout — KG SaaS 响应超时(稍后重试)

Q: semantic 查询的 clusters 是什么?

系统基于信号关键词重叠(阈值 25%)将独立的查询结果自动聚类。每个 cluster 包含:

  • label — 聚类标签
  • representative — 代表节点
  • members — 成员节点列表
  • shared_signals — 所有成员共享的信号

详细 API 参考功能指南 — 知识图谱

Released under the MIT License.