Demo · 落地示例
本体语义层落地示例
关系库(系统记录) → 本体语义层 → API / MCP / skill → AI Agent
这是一个能落地、能跑、能接进 AI agent 的最小完整例子(对应课程 0010)。它把「供应链计划」的数据库事实映射成本体,再暴露成 API、MCP 工具和 skill,让大语言模型基于真实事实回答,而不是靠猜。整仓库源码见 demo/。
01架构:四层各司其职
关键:不是替换数据库,而是让语义层"虚拟地"坐在它上面;AI 从语义层取确定的事实来回答。
02本体(语义层)
本体定义"世界里有哪些类、怎么关联、有哪些规则"(ontology/sc-planning.ttl):
03数据库(系统记录)+ 打通
关系库仍是权威记录(db/schema.sql);用 R2RML 把列对准本体(db/mapping.r2rml):
生产级"数据不搬家"用 Ontop(本体数据访问)把 SPARQL 改写成 SQL,数据留在库里。
04真实运行:语义层 + 推理
纯 Python、零依赖(semantic_core.py),本机直接跑。这是真实输出:
看,大语言模型不必猜:它拿到的是"订单需要 5000、产能只有 1200"这些确定事实 + 推理,于是给出有依据的结论"排不下,缺 3800"。
05接进 AI Agent(API / MCP / skill)
三种组件,把同一套语义层暴露给 agent:
| 组件 | 是什么 | 怎么用 |
|---|---|---|
| API | FastAPI 把语义层暴露成 REST | uvicorn api.server:app;GET /facts/product/447、/answer/can-fulfill?order_id=1042&period=2026-06 |
| MCP | 把语义层封装成 agent 可调用的工具 | python3 mcp/server.py;agent 调用 product_facts / order_facts / can_fulfill / query_triples |
| skill | 教 agent 领域词汇 + 什么时候调用 | 把 skill/sc-planning-agent.md 交给 agent |
语义层(API/MCP)= 确定的事实+推理服务,无大语言模型;真正组装上下文、调用大语言模型 的是它上面的编排层(agent_orchestration.py)——听懂问题→选工具→拿事实→组装 prompt→调大语言模型。agent 正是通过 MCP 拿到本体化的确定事实,再据此回答,这才是"本体驱动的检索增强生成"的最小落地(课程 0009/0010 正解)。
06怎么在本地跑
所有文件在仓库 demo/:semantic_core.py(语义层)、agent_orchestration.py(编排层:组上下文+调大语言模型)、api/server.py、mcp/server.py、skill/sc-planning-agent.md、ontology/sc-planning.ttl、db/schema.sql、db/mapping.r2rml。有任何卡点或想把真实业务表接进来,直接问 agent。