如何用Semantica+CrewAI给Agent装上知识图谱工具?kg_tool实战指南
【免费下载链接】semanticaGraph-Native Infrastructure for Context and Accountable AI Systems项目地址: https://gitcode.com/GitHub_Trending/sema/semantica
Semantica 是一款开源的图原生知识基础设施(Graph-Native Infrastructure),专为上下文管理和可问责 AI 系统设计。本文带你实战它的 CrewAI 集成组件kg_tool(SemanticaKGTool),几步就能让你的 AI Agent 在推理过程中直接构建和查询共享知识图谱,让 Agent 从"只靠向量相似度"升级为"有结构、有关系、可解释"的智能体。
为什么 Agent 需要知识图谱工具?
大多数 AI Agent 的知识检索靠向量嵌入(embedding)——只有相似度分数,没有实体关系,也无法解释"为什么返回这个结果"。
Semantica 的思路不同:它把碎片化的数据变成结构化的 Context Graph 与知识图谱(KG),Agent 可以沿着图上的边做关系推理、溯源和因果分析。对 CrewAI 用户来说,官方提供了三个开箱即用的组件:
| 组件 | 挂载方式 | 核心能力 |
|---|---|---|
SemanticaKGTool | Agent(tools=[...]) | 实体抽取、关系抽取、建图、图查询、关联发现 |
SemanticaDecisionTool | Agent(tools=[...]) | 记录决策、查先例、因果链追踪、策略校验 |
SemanticaKnowledgeSource | Crew(knowledge_sources=[...]) | 把整张 ContextGraph 灌给 Crew 里每个Agent 检索 |
上图是 Semantica 的知识浏览器(Knowledge Explorer),632 个知识节点、1069 条映射关系一目了然——Agent 通过 kg_tool 写入的图,最终就是这样一个可导航、可查询的"活系统"。
快速安装:一条命令完成
Semantica 采用可选依赖(extras)设计,CrewAI 集成单独打包,不影响主包体积:
pip install "semantica[crewai]"两个注意点:
- 要求
crewai >= 0.80.0,且 Python 版本需 ≥ 3.10; - 即使没装
crewai,集成模块也能正常导入并保留完整 API(优雅降级),只是无法把对象传给Crew。
依赖声明见 pyproject.toml,集成包入口在 integrations/crewai/。
kg_tool 解剖:5 个核心动作
SemanticaKGTool继承 CrewAI 的BaseTool,源码位于 integrations/crewai/kg_tool.py。它把 Semantica 的抽取与图能力封装成 5 个 Agent 可调用的动作:
| 动作 | 说明 | 关键入参 |
|---|---|---|
extract_entities | 从文本抽取命名实体 | text |
extract_relations | 从文本抽取实体间关系 | text |
add_to_graph | 抽取实体/关系并写入共享图 | text |
query_graph | 按关键词搜索图谱节点 | query |
find_related | 沿边跳hops跳找关联概念 | entity,hops |
三个设计细节值得新手了解(详见 kg_tool.py 第 56-64 行):
- 全部返回 JSON——Agent 拿到的是结构化、可解析的结果,比如
{"entities": [...], "count": 3}; - 幂等写入——
add_to_graph会跳过重复节点和边,重复调用不会污染图谱; - 每图一把锁——多个 Agent 并发操作同一张图时不会重复计数,不同图之间互不阻塞。
三步实战:给 Crew 装上知识图谱工具
第一步:创建共享的 ContextGraph
from semantica.context import ContextGraph graph = ContextGraph()ContextGraph是内存中的图存储,实现位于 semantica/context/context_graph.py,自带邻居发现、类型索引、图分析等能力。
第二步:把 kg_tool 挂到 Agent 上
from crewai import Agent, Crew, Task from integrations.crewai import SemanticaKGTool analyst = Agent( role="Knowledge Analyst", goal="Build and explore a knowledge graph from documents", backstory="You map entities and relationships into a shared graph.", tools=[SemanticaKGTool(graph=graph)], )第三步:定义任务并启动
crew = Crew( agents=[analyst], tasks=[Task( description="Extract and link key entities from the brief", expected_output="JSON", agent=analyst, )], ) result = crew.kickoff()运行时 Agent 会自主决定调用哪个动作:先add_to_graph把文档实体入图,再query_graph查关键词,最后find_related沿关系边扩展上下文。
多 Agent 共享知识图谱:避坑指南
这是新手最容易踩的坑:每个 kg_tool 实例如果不传graph,就会各自创建一个全新的内存图——两个自动建图的 Agent 之间并不共享任何知识。
✅ 正确做法:把同一个ContextGraph实例传给每个需要共享知识的 Agent:
tool_a = SemanticaKGTool(graph=shared_graph) tool_b = SemanticaKGTool(graph=shared_graph) # 同一个对象!另外两个注意事项(出自 integrations/crewai/README.md):
- 检查点恢复后需重挂图:CrewAI 的 JSON 序列化不包含活体图对象,从 checkpoint 恢复后要执行
restored_tool.graph = live_graph; - 需要检索全图的场景:除 kg_tool 外,可加
SemanticaKnowledgeSource(graph=graph)到 Crew 上,让每个 Agent 都获得图的检索访问(需配置 embedder)。
延伸:决策智能与知识源
装好知识图谱工具后,你的 Crew 还能继续升级:
- SemanticaDecisionTool:Agent 可以记录决策、检索历史先例、追踪因果链、用图中心性分析影响面,实现"有据可依"的决策智能;
- SemanticaKnowledgeSource:把 ContextGraph 的节点、边、元数据序列化进 CrewAI 知识库,全 Crew 共享图检索。
完整组件说明见官方文档 docs/integrations/crewai.md,底层机制可进一步阅读 docs/guides/context-graphs.md 和 docs/guides/decision-intelligence.md。
总结
| 你想知道的 | 答案 |
|---|---|
| 如何安装 | pip install "semantica[crewai]" |
| 核心工具在哪 | integrations/crewai/kg_tool.py |
| 5 个动作 | extract_entities / extract_relations / add_to_graph / query_graph / find_related |
| 多 Agent 共享 | 传同一个ContextGraph实例 |
| 结果格式 | 全部 JSON,Agent 友好 |
Semantica 让 Agent 不再只"猜"答案,而是沿着知识图谱的结构化关系去"找"答案——这正是上下文感知(Context)与可问责(Accountable)AI 的基础。现在就可以动手,给你的第一个 Crew 装上 kg_tool 试试 🚀
【免费下载链接】semanticaGraph-Native Infrastructure for Context and Accountable AI Systems项目地址: https://gitcode.com/GitHub_Trending/sema/semantica
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考