Ontology Clawra Backup 20260319 151919

ClawSkills 作者 wu-xiaochen v1.0.0

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install clawskills:wu-xiaochen~ontology-clawra-backup-20260319-151919
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Awu-xiaochen~ontology-clawra-backup-20260319-151919/file -o ontology-clawra-backup-20260319-151919.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/cbbdb5171e24041d60d7b106ee70ad2b30d91e73
---
name: ontology-clawra
description: Palantir本体论实践版本 v3.5 - **强制执行版**。结构化知识图谱+规则引擎+科学推理方法论。**每次决策/分析前必须使用**。推理结果必须展示详细推理过程:包含用户需求、规则依据ID、规则内容、置信度标注。

**强制执行原则(v3.5 新增)**:
- **所有推理任务,必须首先使用本技能框架**,禁止凭经验输出
- 本技能用于:推理过程记录、本体完善、规则优化
- 本技能**不包含用户私人数据**,数据严格本地私有
- 本技能与 ontology-platform 项目**严格分离**:技能是内核,项目是衍生

**安全边界(重要)**:
- 自动学习:默认禁用,需用户明确授权"写入本体"
- 文件读取:仅读取 ~/.openclaw/skills/ontology-clawra/memory/
- 文件写入:仅在用户确认后写入本地本体
- 网络:不主动发起网络请求
- 隐私:**绝不上传用户数据到任何服务器**
- **红线**:用户私人推理记录、个人决策数据严禁同步到GitHub等外部平台

metadata:
  {
    "openclaw": {
      "emoji": "🧠",
      "version": "3.5.0",
      "last_updated": "2026-03-19"
    }
  }
---

# ontology-clawra v3.5

**Palantir本体论实践版本** - Clawra的核心智能引擎 v3.5

---

## ⚠️ 安全边界与风险控制(必读)

### 风险说明
- 自动学习触发器可能产生意外的持久更改
- 对本地本体的自动写入存在隐私风险
- 代理自主调用时可能产生未预期的持久化

### 安全措施

| 功能 | 默认状态 | 触发条件 |
|------|----------|----------|
| 自动抽取到本体 | 🔴 **禁用** | 用户明确确认"写入本体" |
| 自动置信度升级 | 🔴 **禁用** | 用户确认推理结果正确 |
| 读取工作区文件 | 🟡 **受限** | 仅读取memory/目录 |
| 写入本地本体 | 🔴 **禁用** | 用户确认后单次执行 |

### 使用规范

1. **自动学习**:默认不启用。用户说"写入本体"或"记录这个"时才执行单次写入
2. **工作区读取**:仅读取 `memory/` 目录,不读取其他敏感文件
3. **写入确认**:每次写入本地本体前,必须告知用户写入内容并确认
4. **隐私保护**:不将用户数据上传到GitHub/ClawHub(已在.gitignore中保护)

---

## 🆕 v3.3 新增:主动学习能力

### 核心升级:从被动到主动

| v3.2 | v3.3 (新增) |
|------|-------------|
| 用户不说"抽取" → 不提取 | 用户确认推理 → **自动提取** |
| 重复概念 → 忽略 | 重复出现3次 → **自动识别** |
| 推理失败 → 等待用户问 | 推理失败 → **主动建议补充** |

### 自动学习触发条件(⚠️ 默认禁用,需用户明确授权)

```yaml
AUTO_LEARN_TRIGGERS:
  # 触发1:用户明确说"写入本体"或"记录这个"
  - event: "user_says_write_ontology"
    action: "extract_to_ontology"
    requires_confirmation: true  # 每次写入前必须确认
  
  # 触发2:用户说"确认这个是对的"
  - event: "user_confirms_reasoning"
    action: "suggest_upgrade_confidence"
    requires_confirmation: true  # 建议升级,但需用户确认
  
  # 触发3:推理失败(仅提示,不自动写入)
  - event: "ontology_lookup_failed"
    action: "suggest_supplement"
    prompt_user: true
    auto_write: false  # 不自动写入
  
  # 触发4:用户纠正错误(仅记录,不自动修改)
  - event: "user_correction"
    action: "log_correction"
    auto_write: false  # 不自动修改本体
```
  - event: "user_correction"
    action: "update_entity"
    log: true
```

### 自动抽取流程(⚠️ 每次写入需用户确认)

```
用户明确说"写入本体"或"记录这个"
        │
        ▼
┌─────────────────────────────┐
│ 1. 识别可抽取内容           │
│    - 新概念 (Concept)       │
│    - 新规律 (Law)           │
│    - 新规则 (Rule)          │
└─────────────┬───────────────┘
              │
              ▼
┌─────────────────────────────┐
│ 2. 展示给用户确认           │ ⚠️ 关键!
│    "即将写入以下内容:xxx"  │
└─────────────┬───────────────┘
              │ 用户确认"是的"
              ▼
┌─────────────────────────────┐
│ 3. 写入本体                │
└─────────────┬───────────────┘
              │
              ▼
┌─────────────────────────────┐
│ 4. 反馈用户                │
│    "已写入本体:xxx"       │
└─────────────────────────────┘
```

---

## 🧬 核心理念升级

### v2.0 问题
- 纯架构设计,缺少方法论
- 无本体自动构建能力
- 推理"照本宣科",缺乏科学性验证

### v3.0 改进
- ✅ 嵌入科学推理方法论
- ✅ 支持交互式本体构建
- ✅ 平衡灵活性与科学性

### v3.3 升级
- ✅ **主动学习**:用户确认后自动抽取
- ✅ **智能触发**:高频实体自动识别
- ✅ **推理失败建议**:主动提示补充本体

---

## 一、科学推理方法论(必读)

### ⚠️ 任何推理前必须遵循的流程

```
┌─────────────────────────────────────────────────────────────┐
│                   推理前置检查流程                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1️⃣ 检查本体(Check)                                       │
│     ↓                                                       │
│     本体有相关数据?→ 调用本体推理                           │
│     ↓ 无                                                    │
│     ↓                                                       │
│  2️⃣ 声明来源(Declare)                                     │
│     "以下为外部知识/猜测/假设,需要验证"                    │
│     ↓                                                       │
│  3️⃣ 交互确认(Confirm)- ⚠️ 关键步骤!                      │
│     关键假设必须用户确认后再深入                             │
│     ↓                                                       │
│  4️⃣ 标注假设(Label)                                       │
│     明确标注哪些是"推测"、哪些是"确认"                      │
│     ↓                                                       │
│  5️⃣ 灵活推理(Reason)                                      │
│     结合本体 + 合理假设 + 明确标注                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

### ⚠️ 铁律:不确定时必须交互确认

```
当推理过程中存在以下情况时,必须暂停并与用户确认:
───────────────────────────────────────────────────────────
  ❌ 禁止直接输出结论的情况:
  
  1. 存在 ASSUMED 级别的关键假设
     → 必须问用户确认后才能给出最终结论
  
  2. 缺少必要的输入参数
     → 必须先询问用户获取必要信息
  
  3. 计算结果依赖多个假设
     → 必须列出所有假设,让用户确认
  
  4. 给出多个方案但无法确定最优
     → 必须让用户选择或确认偏好
  
  ✅ 正确的交互流程:
  
  Step 1: 列出已确认的信息(本体数据)
  Step 2: 列出不确定的信息(需要确认的假设)
  Step 3: 提供典型场景/默认值供选择
  Step 4: 等待用户确认后再输出最终结论
  
  ⚡ 违规判定:
  - 如果直接给结论而没有先确认不确定信息 → 违反方法论
  - 如果结论依赖假设但未标注置信度 → 违反方法论
```

### 推理结果可信度标注

| 标注 | 含义 | 行动 |
|------|------|------|
| 🟢 **CONFIRMED** | 本体/记忆中有确凿数据 | 直接使用 |
| 🟡 **ASSUMED** | 基于合理假设,未验证 | 需用户确认 |
| 🔴 **SPECULATIVE** | 纯猜测,无依据 | 明确声明,谨慎使用 |
| ⚪ **UNKNOWN** | 确实不知道 | 坦诚告知用户 |

---

## 二、四大支柱(保留并增强)

### 2.1 Objects(对象)

```yaml
# 主体
Person:
  - id, name, role, goals[], preferences{}, capabilities[]

# 概念/抽象
Concept:
  - id, name, definition, examples[], properties{}
  
# 规律/法则
Law:
  - id, name, domain, statement, conditions[], effects[], source, confidence

# 意图
Objective:
  - id, name, priority, criteria{}, status

# 项目
Project:
  - id, name, objectives[], status, owner, depends_on[]

# 任务
Task:
  - id, title, status, priority, assignee, blockers[], estimated_hours

# 规则
Rule:
  - id, name, condition, action, enabled, weight, source, confidence

# 决策
Decision:
  - id, context, options[], selected, rationale, based_on_rules[], confidence
```

### 2.2 Links(关系)

```yaml
# 基础关系
works_on: Person → Project/Task
depends_on: Task/Project → Task/Project  
has_objective: Project → Objective
has_rule: Project/Objective → Rule

# 知识关系
exemplifies: Concept → Example
governs: Law → Domain
explains: Concept → Law
supports: Evidence → Rule
contradicts: Fact → Rule
derived_from: Rule/Law → Evidence  # 新增:规则/规律的数据来源

# 推理关系
triggers: Rule → Decision
validates: Rule → Decision
refines: Rule → Rule

# 元关系
relates_to: Any → Any
is_a: Concept → Concept
part_of: Object → Object
```

### 2.3 Functions(规则引擎)

```python
# 推理引擎核心函数(增强版)

def check_ontology(query):
    """1. 检查本体是否有相关数据"""
    results = search_objects(query) + search_laws(query) + search_rules(query)
    if results:
        return {"status": "FOUND", "data": results, "confidence": "CONFIRMED"}
    return {"status": "NOT_FOUND", "data": None, "confidence": "UNKNOWN"}

def declare_source(confidence_level, content):
    """2. 声明数据来源"""
    labels = {
        "CONFIRMED": "🟢 本体数据",
        "ASSUMED": "🟡 合理假设",
        "SPECULATIVE": "🔴 推测",
        "UNKNOWN": "⚪ 未知"
    }
    return f"{labels.get(confidence_level, '')} {content}"

def confirm_with_user(assumptions):
    """3. 交互确认关键假设"""
    # 返回需要确认的问题列表
    return [f"请确认: {a}" for a in assumptions]

def label_result(content, confidence):
    """4. 标注结果可信度"""
    prefix = {
        "CONFIRMED": "🟢",
        "ASSUMED": "🟡",
        "SPECULATIVE": "🔴",
        "UNKNOWN": "⚪"
    }
    return f"{prefix.get(confidence, '')} {content}"

def flexible_reasoning(ontology_data, assumptions, user_confirmations):
    """5. 灵活推理 - 结合本体+假设+确认"""
    # 如果本体有数据,优先使用
    # 如果需要假设,明确标注
    # 如果用户已确认,升级置信度
    pass

# 链式推理
def chain_reasoning(facts, rules, confidence_threshold=0.5):
    """链式推理:事实 + 规则 → 新结论"""
    conclusions = []
    for rule in rules:
        if rule.confidence < confidence_threshold:
            continue
        if all(fact_matcher(f, rule.conditions) for f in facts):
            conclusion = infer(rule, facts)
            conclusion.source = f"derived_from:{rule.id}"
            conclusion.confidence = min(rule.confidence, min(f.confidence for f in facts))
            conclusions.append(conclusion)
    return conclusions
```

### 2.4 Actions(操作)

```yaml
# 操作类