跳转至

02 推理与查询

本章覆盖:推理引擎与业务规则、REST API、CLI 双通道。示例均为实测输出。

2.1 推理引擎与业务规则

系统加载 OWL 本体后执行 OWL 2 RL 物化推理,并叠加业务规则:

规则 含义 示例
R1 能力匹配 属性链:has_capability ◦ required_by ⊑ can_execute 任务需要"编码实现"→ 具备 Coding 能力的研发 Agent 可执行
R2 任务聚合 可执行全部子任务 ⇒ 可执行复合任务 复合任务"新功能上线"由子任务构成
R3 依赖传递 depends_on 传递闭包 复合任务按依赖拓扑排序
R4 合规冲突 任务要求合规认证而 Agent 未认证 ⇒ 冲突报告 敏感数据报表开发 → 初级研发 Agent 未认证

每个推理结论附带可解释推导链(explain),并支持结构化证明导出(MCP explain_proof,mode=asserted/derived/unproven),可用于审计与程序化问答。

边界:领域推理 R1–R4 仅默认本体可用;通用查询(SPARQL/个体/类/类型/属性/重推理)与本体无关,任意 .owl 均可。

2.2 REST API(20+ 端点)

入口:启动后访问 http://127.0.0.1:8000/docs(Swagger UI,可直接调试)。

领域推理:

# 能力匹配:哪些智能体能执行登录模块开发
curl -s -X POST http://127.0.0.1:8000/api/reason \
  -H "Content-Type: application/json" \
  -d '{"type":"capability_match","task":"t_login_dev"}'

# 任务编排(复合任务拆解 + 依赖排序 + 逐环节匹配)
curl -s -X POST http://127.0.0.1:8000/api/reason \
  -H "Content-Type: application/json" \
  -d '{"type":"orchestrate","task":"t_feature"}'

# 分配 + R4 合规冲突检测
curl -s -X POST http://127.0.0.1:8000/api/reason \
  -H "Content-Type: application/json" \
  -d '{"type":"assign","task":"t_compliance_dev","agent":"junior_dev"}'

# 新增任务个体并自动分类
curl -s -X POST http://127.0.0.1:8000/api/classify \
  -H "Content-Type: application/json" \
  -d '{"name":"t_chat_task","capabilities":["Coding"],"constraints":["ComplianceRequirement"],"risk":5}'

# 最近一次推理的推导链(中文)
curl -s -X POST http://127.0.0.1:8000/api/explain

# 一致性 / 合规冲突全量检查
curl -s -X POST http://127.0.0.1:8000/api/consistency

通用查询(与本体定义无关):

curl -s -X POST http://127.0.0.1:8000/api/query -H "Content-Type: application/json" \
  -d '{"sparql":"SELECT ?i WHERE { ?i a <http://demo.example.org/agent-task-ontology#Agent> }"}'
curl -s -X POST http://127.0.0.1:8000/api/individuals -H "Content-Type: application/json" -d '{"class_name":"Agent"}'
curl -s -X POST http://127.0.0.1:8000/api/classes
curl -s -X POST http://127.0.0.1:8000/api/types -H "Content-Type: application/json" -d '{"individual":"dev_agent"}'
curl -s -X POST http://127.0.0.1:8000/api/property -H "Content-Type: application/json" -d '{"subject":"dev_agent","property":"has_capability"}'
curl -s -X POST http://127.0.0.1:8000/api/infer    # 重新推理,返回三元组/个体统计

实测 types 返回:dev_agent → ["Agent","DevAgent","NamedIndividual","Thing"];infer 返回:triples_before/after=676,classes=27,individuals=14。

本体管理 / 运维接口(热重载、状态、删除、撤销、批量导入、在线编辑)见 04 运维。

2.3 CLI 双通道(scripts/query.py)

默认 HTTP 优先、失败自动回退内嵌引擎(--local 零依赖跑通全部查询)。

# 领域命令(默认本体)
.venv/bin/python scripts/query.py capability_match --task t_login_dev --pretty
.venv/bin/python scripts/query.py orchestrate --task t_feature --pretty
.venv/bin/python scripts/query.py assign --task t_compliance_dev --agent junior_dev --pretty
.venv/bin/python scripts/query.py classify --name t_chat_task --capabilities Coding --constraints ComplianceRequirement --risk 5 --pretty
.venv/bin/python scripts/query.py consistency --pretty
.venv/bin/python scripts/query.py explain --pretty

# 通用命令(任意本体)
.venv/bin/python scripts/query.py query-sparql --sparql "SELECT ?i WHERE { ?i a <http://demo.example.org/agent-task-ontology#Agent> }" --pretty
.venv/bin/python scripts/query.py individuals --class Agent --pretty
.venv/bin/python scripts/query.py classes --pretty
.venv/bin/python scripts/query.py types --individual dev_agent --pretty
.venv/bin/python scripts/query.py property --subject dev_agent --property has_capability --pretty
.venv/bin/python scripts/query.py infer --pretty

通道控制:--http 强制 HTTP(服务不在时报错);--local 强制内嵌引擎;环境变量 DOUBAO_API_BASE 覆盖 API 地址(默认 http://127.0.0.1:8000)。

实测输出示例(--local,与默认本体 HTTP 通道一致):

// capability_match --task t_login_dev
{"task":"t_login_dev","task_label":"登录模块开发","matches":[
  {"agent":"dev_agent","agent_label":"研发Agent","certified":true,
   "shared_capabilities":["Coding"],"rule":"R1", ...}]}

// assign --task t_compliance_dev --agent junior_dev
{"task":"t_compliance_dev","agent":"junior_dev","assigned":true,
 "conflict":{"type":"合规认证冲突","message":"任务「敏感数据报表开发」要求合规认证,但 Agent「初级研发Agent」未通过认证","rule":"R4"}}

// orchestrate --task t_feature(复合任务)
{"task":"t_feature","is_complex":true,"steps":[{"task":"t_req","executor":"req_agent","idx":1}, ...]}

常用个体短名:任务 t_req / t_login_dev / t_login_review / t_login_test / t_deploy / t_compliance_dev / t_feature / t_double_dev;智能体 req_agent / dev_agent / junior_dev / test_agent / deploy_agent;能力类 RequirementAnalysis / Coding / CodeReview / Testing / Deployment。