首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第44章 FactMemory

第44章 FactMemory

FactMemory(事实记忆)是 LongMemory 中专门用于保存、查询、验证和维护**事实(Fact)**的记忆机制。

如果 LongMemory 解决:

“过去发生过什么、过去保存了什么?”

那么 FactMemory 进一步解决:

“这个事实是什么?是否真实有效?现在还能不能作为认知依据?”

Fact 是 ICAI 进行理解、推理和决策的重要基础。


1. Fact 定义

Fact(事实)是经过记录、识别或验证后,可以作为认知依据的结构化信息单元

最基本的形式:

Subject
   ↓
Property
   ↓
Value

例如:

Company_A
   ↓
location
   ↓
Shenzhen

表示:

Company_A 的 location 是 Shenzhen。

Fact 也可以表示关系:

Company_A
   ↓
provides
   ↓
Service_A

因此 Fact 不只是“属性事实”,还可以表示:

对象事实
属性事实
关系事实
状态事实
时间事实
地点事实
事件事实

例如:

Customer_A
    location = Shenzhen

Customer_A
    uses
    Service_A

Order_001
    state = completed

Order_001
    completed_at = 2026-08-23

这些都可以成为 Fact。


2. Fact 结构

Fact 必须具有明确结构,不能只是保存一段没有上下文的文字。

基本结构:

Fact
{
    id
    subject
    predicate
    value
    type
    source
    state
    confidence
    created_at
    updated_at
}

例如:

{
    "id": 1001,
    "subject": "Company_A",
    "predicate": "location",
    "value": "Shenzhen",
    "type": "property",
    "source": "source_001",
    "state": "confirmed",
    "confidence": 0.95,
    "created_at": "2026-08-20",
    "updated_at": "2026-08-20"
}

其中:

subject

表示事实主体。

predicate

表示事实关系或属性。

value

表示事实值。

因此:

Fact
=
Subject
+
Predicate
+
Value

是 Fact 最基础的结构。


Fact关系结构

当 Fact 表示对象之间的关系时,可以扩展为:

Fact
{
    subject: "Company_A",
    predicate: "provides",
    object: "Service_A"
}

形成:

Company_A
    ↓
provides
    ↓
Service_A

此时 object 与普通属性 Fact 中的 value 不完全相同。

例如:

location = Shenzhen

是:

Subject + Property + Value

而:

Company_A → provides → Service_A

是:

Subject + Relation + Object

因此 FactMemory 可以同时保存两种结构。


3. Fact 保存

Fact 保存的基本流程:

Information
    ↓
Perception
    ↓
Element
    ↓
Object / Property / Relation
    ↓
Fact
    ↓
Fact Validation
    ↓
FactMemory

不是所有获取到的信息都应该立即成为 confirmed Fact。

例如:

输入信息
    ↓
识别
    ↓
Fact Candidate
    ↓
验证
    ↓
Confirmed Fact

因此可以存在:

candidate
confirmed
uncertain
conflict
invalid

等事实状态。

一个简单的保存结构:

FactMemory
{
    "facts": [
        {
            "id": 1001,
            "subject": "Company_A",
            "predicate": "location",
            "value": "Shenzhen",
            "state": "confirmed"
        }
    ]
}

保存时首先需要判断:

是否已经存在?
        ↓
是 → 查询已有 Fact
        ↓
否 → 创建新 Fact

这样可以避免重复保存完全相同的事实。


4. Fact 查询

FactMemory 的查询必须支持结构化条件。

例如:

subject = Company_A

查询:

Company_A

可以得到:

Company_A
    location = Shenzhen
    provides = Service_A
    status = active

按属性查询

例如:

subject = Company_A
predicate = location

结果:

Company_A
location
Shenzhen

按值查询

例如:

predicate = location
value = Shenzhen

可以找到:

Company_A
Company_B
Company_C

按关系查询

例如:

subject = Company_A
predicate = provides

得到:

Company_A
    ↓
provides
    ↓
Service_A
Service_B
Service_C

按状态查询

例如:

state = confirmed

只返回已经确认的事实。

因此 Fact 查询可以形成:

Query
 ↓
Subject
 ↓
Predicate
 ↓
Value
 ↓
State
 ↓
Time
 ↓
Source
 ↓
Fact Result

5. Fact 验证

Fact 验证是 FactMemory 非常重要的机制。

因为:

被获取的信息 ≠ 已确认事实。

例如系统获取:

Company_A
location = Shenzhen

首先只能形成:

FactCandidate

然后进入验证。

基本流程:

FactCandidate
      ↓
结构验证
      ↓
来源验证
      ↓
一致性验证
      ↓
历史匹配
      ↓
冲突检查
      ↓
Fact State

① 结构验证

判断:

subject 是否存在?
predicate 是否存在?
value 是否有效?

例如:

subject = Company_A
predicate = location
value = Shenzhen

结构完整。


② 来源验证

Fact 应记录来源:

source = source_001

这样 ICAI 后续可以追溯:

Fact
 ↓
Source
 ↓
原始信息

③ 一致性验证

如果已有:

Company_A
location = Shenzhen

新信息又出现:

Company_A
location = Shenzhen

两者一致:

MATCH

可以提高事实稳定性。


④ 冲突验证

如果新信息是:

Company_A
location = HongKong

而历史 Fact 是:

Company_A
location = Shenzhen

则不能直接覆盖。

应该产生:

CONFLICT

然后进一步判断:

哪个时间更新?
哪个来源可靠?
是否两个事实都曾经成立?
是否发生了对象状态变化?

6. Fact 更新

Fact 更新不能简单理解为:

旧值 → 新值

因为 Fact 可能具有历史意义。

例如:

Company_A
location = Shenzhen

后来:

Company_A
location = HongKong

合理的处理方式是:

旧 Fact
    ↓
历史保留

新 Fact
    ↓
当前有效

形成:

Fact 001
Company_A
location = Shenzhen
valid_to = 2026-08-31

Fact 002
Company_A
location = HongKong
valid_from = 2026-09-01
valid_to = null

这样 ICAI 可以知道:

过去:
Shenzhen

现在:
HongKong

而不是失去历史。


Fact 更新状态

可以定义:

NEW
ACTIVE
UPDATED
STALE
CONFLICT
INVALID
ARCHIVED

例如:

NEW
 ↓
ACTIVE
 ↓
UPDATED
 ↓
STALE
 ↓
ARCHIVED

如果发现事实错误:

ACTIVE
 ↓
INVALID

如果存在冲突:

ACTIVE
 ↓
CONFLICT
 ↓
VERIFY
 ↓
ACTIVE / INVALID

7. FactMemory 示例

下面用一个完整案例说明 FactMemory。

假设 ICAI 获取到:

Company_A 位于深圳,
提供家具运输服务,
某订单于 2026-08-23 完成。

经过 Perception 后形成:

Object:
Company_A

Property:
location = Shenzhen

Relation:
provides → FurnitureDelivery

Event:
Order_001 completed

进一步形成 Fact:

Fact 001:
Company_A
location
Shenzhen
Fact 002:
Company_A
provides
FurnitureDelivery
Fact 003:
Order_001
state
completed

保存到 FactMemory:

FactMemory
│
├── Fact 001
│   ├── subject: Company_A
│   ├── predicate: location
│   ├── value: Shenzhen
│   └── state: confirmed
│
├── Fact 002
│   ├── subject: Company_A
│   ├── predicate: provides
│   ├── value: FurnitureDelivery
│   └── state: confirmed
│
└── Fact 003
    ├── subject: Order_001
    ├── predicate: state
    ├── value: completed
    └── state: confirmed

之后再次收到:

Company_A 位于香港。

系统发现:

旧 Fact:
Company_A → location → Shenzhen

新 Fact:
Company_A → location → HongKong

首先:

Conflict Detection

然后检查时间:

Shenzhen
    ↓
历史有效

HongKong
    ↓
当前有效

最终 FactMemory 可以保存:

Company_A
    │
    └── location
          │
          ├── Shenzhen
          │    └── historical
          │
          └── HongKong
               └── active

这样,FactMemory 就同时拥有:

事实
+
事实来源
+
事实状态
+
事实历史
+
事实验证结果

FactMemory 与 LongMemory 的关系

两者不能混淆。

LongMemory
     │
     ├── FactMemory
     │
     ├── RelationMemory
     │
     ├── StateMemory
     │
     ├── ExperienceMemory
     │
     └── HistoryMemory

LongMemory 是长期记忆体系。

FactMemory 是其中专门管理 Fact 的部分。

因此:

LongMemory
    ↓
长期保存历史认知资源

FactMemory
    ↓
长期保存结构化事实

进一步形成 ICAI 的认知链:

Information
    ↓
Perception
    ↓
Elements
    ↓
Objects / Relations / Properties
    ↓
Fact
    ↓
Fact Validation
    ↓
FactMemory
    ↓
Cognition
    ↓
Understanding
    ↓
Reasoning
    ↓
Decision

本章核心定义

FactMemory 是 ICAI Memory 体系中专门用于保存、查询、验证、更新和维护结构化事实的长期记忆机制。

其核心模型为:

Fact
=
Subject
+
Predicate
+
Value

扩展后:

FactMemory
=
Fact
+
Source
+
State
+
Validation
+
History
+
Time

因此 FactMemory 的真正作用不是“存数据”,而是:

让 ICAI 能够知道一个事实是什么、来自哪里、是否有效、是否发生变化,以及在后续认知过程中能否继续作为可靠的事实依据。

Leave a Reply

Your email address will not be published. Required fields are marked *