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

第41章 Memory

第41章 Memory

第41章承接第40章 Understanding

前面的认知链路已经形成:

Information
   ↓
Perception
   ↓
Elements
   ↓
Cognition
   ↓
Matching
   ↓
Understanding

第41章开始解决一个新的问题:

ICAI 已经理解的信息,如何保存、再次使用、修改和管理?

因此:

Understanding
      ↓
    Memory
      ↓
   Reasoning

Memory 不是简单的“文件存储”,而是 ICAI 对已经获得并形成意义的信息进行持续保存和管理的机制


41.1 Memory 定义

Memory(记忆)是 ICAI 对经过感知、认知、匹配和理解后形成的信息结构进行保存、组织、读取、更新和生命周期管理的能力。

可以定义:

Memory
=
Store
+
Retrieve
+
Update
+
Delete
+
State
+
Lifecycle

核心目的:

当前理解
   ↓
保存
   ↓
未来再次使用

例如:

用户输入:
深圳到香港家具送货上门

经过理解以后形成:

Object:
Furniture

Origin:
Shenzhen

Destination:
Hong Kong

Service:
Door-to-door Delivery

Memory 将其保存。

以后再次遇到:

“深圳到香港家具运输”

系统可以读取已有记忆:

Shenzhen
Hong Kong
Furniture
Delivery

从而减少重复认知。

因此:

Memory 使 ICAI 的认知结果具有时间连续性。


41.2 Memory 对象

Memory 中保存的不是单纯的文字,而是具有结构的记忆对象

记忆对象可以来自:

Element
Object
Property
Relation
State
Fact
Condition
Understanding
Experience
Knowledge

例如:

Memory Object
{
    id,
    type,
    object,
    properties,
    relations,
    state,
    source,
    created_at,
    updated_at
}

一个实际记忆:

id = 1001

object = FurnitureDelivery

property:
    mode = DoorToDoor

relation:
    origin = Shenzhen
    destination = Hong Kong

state:
    valid

因此:

Memory
   ↓
Memory Object
   ↓
Object + Property + Relation + State

记忆对象分类

可以进一步划分:

1. Information Memory

保存原始信息。

“深圳到香港家具送货上门”

2. Element Memory

保存元素。

深圳
香港
家具
送货

3. Object Memory

保存对象。

Furniture
Delivery
Shenzhen
Hong Kong

4. Relation Memory

保存关系。

Shenzhen
   ↓ origin
Delivery

5. Fact Memory

保存已经确认的事实。

origin = Shenzhen
destination = Hong Kong

6. Experience Memory

保存已经发生并完成的过程结果。

例如:

任务
→ 执行
→ 成功
→ 结果

这部分将在后续 Experience 章节进一步展开。


41.3 Memory 写入

Memory Write 是把新的认知结果保存到记忆中的过程。

基本流程:

Understanding Result
        ↓
Memory Write
        ↓
Memory Object
        ↓
Storage

例如:

UnderstandingResult
{
    object: Furniture,
    origin: Shenzhen,
    destination: Hong Kong,
    mode: DoorToDoor
}

写入:

Memory
{
    id: 1001,
    object: Furniture,
    origin: Shenzhen,
    destination: Hong Kong,
    mode: DoorToDoor
}

写入前检查

ICAI 不应该无条件写入。

可以先进行:

1. Object Check
2. Structure Check
3. Duplicate Check
4. Conflict Check
5. State Check
6. Source Check
7. Write

即:

Understanding
      ↓
Validation
      ↓
Duplicate?
 ┌────┴────┐
Yes        No
 ↓          ↓
Update      Write

这样可以避免:

同一个记忆
重复保存100次

Memory Write 示例

class Memory
{
    protected $items = array();

    public function write($item)
    {
        if (empty($item['id'])) {
            return false;
        }

        $this->items[$item['id']] = $item;

        return true;
    }
}

这是最基本的内存对象写入。

实际系统中可以进一步把:

Memory

连接到:

JSON
Database
File

等存储机制。

但:

存储介质 ≠ Memory 本身。

Memory 是认知层的记忆机制,JSON、数据库或文件只是它的持久化载体。


41.4 Memory 读取

Memory Read 是根据条件从已有记忆中获取相关记忆对象。

基本过程:

Query
 ↓
Memory
 ↓
Match
 ↓
Memory Result

例如:

查询:

深圳
香港
家具

Memory 中存在:

Memory 1001
Furniture
Shenzhen
Hong Kong
Door-to-door

系统读取:

MemoryResult

然后交给:

Matching

进行匹配。

所以读取不是简单:

SELECT *

而是:

Query
 ↓
Memory Search
 ↓
Matching
 ↓
Relevant Memory

Memory Read 示例

public function read($id)
{
    if (isset($this->items[$id])) {
        return $this->items[$id];
    }

    return null;
}

如果按对象查询:

public function findByObject($object)
{
    $result = array();

    foreach ($this->items as $item) {
        if (isset($item['object']) &&
            $item['object'] === $object) {
            $result[] = $item;
        }
    }

    return $result;
}

例如:

$memory->findByObject('Furniture');

得到:

Memory 1001
Memory 1015
Memory 1032

再由 Matching 判断哪个最相关。


41.5 Memory 更新

Memory Update 是对已经存在的记忆进行修改。

例如原始记忆:

Product
state = available

后来获得新的事实:

stock = 0

经过状态理解:

state = out_of_stock

因此:

旧记忆
available

        ↓

新记忆
out_of_stock

更新过程:

New Information
       ↓
Matching
       ↓
Existing Memory
       ↓
Conflict / Difference Check
       ↓
Update

更新不是覆盖一切

ICAI 更新 Memory 时应该保留必要的历史。

例如:

Version 1
state = available

Version 2
state = low_stock

Version 3
state = out_of_stock

于是:

Memory
├── Current
│   └── out_of_stock
│
└── History
    ├── available
    └── low_stock

这样后续 Experience 和 Learning 才可以知道:

对象以前是什么状态,现在发生了什么变化。


41.6 Memory 删除

Memory Delete 是从当前记忆系统中移除一个记忆对象。

基本过程:

Memory Object
      ↓
Delete Request
      ↓
Validation
      ↓
Delete

例如:

public function delete($id)
{
    if (!isset($this->items[$id])) {
        return false;
    }

    unset($this->items[$id]);

    return true;
}

但是 ICAI 的删除需要区分:

Physical Delete

和:

Logical Delete

物理删除

真正从存储中删除:

Memory 1001
    ↓
不存在

逻辑删除

保留历史,但标记:

state = deleted

例如:

Memory 1001
{
    state: deleted
}

对于 ICAI,更适合根据记忆类型决定是否物理删除。

例如:

临时数据 → 可以物理删除

历史事实 → 可以保留

重要经验 → 不应随意删除

41.7 Memory 状态

Memory 本身也需要状态管理。

可以定义:

NEW
ACTIVE
UPDATED
STALE
INVALID
CONFLICT
ARCHIVED
DELETED

例如:

NEW
 ↓
ACTIVE
 ↓
UPDATED
 ↓
STALE
 ↓
ARCHIVED

如果发现冲突:

ACTIVE
   ↓
CONFLICT
   ↓
VERIFY
   ↓
ACTIVE / INVALID

Memory 状态与对象状态不同

这一点必须区分。

例如:

Object State:
out_of_stock

表示:

产品当前缺货。

而:

Memory State:
active

表示:

这条关于产品状态的记忆当前仍然有效。

因此:

Object State
≠
Memory State

这是 Memory 设计中非常重要的区别。


41.8 Memory 生命周期

Memory Lifecycle 描述一个记忆从产生到最终退出当前系统的完整过程。

基本生命周期:

Create
  ↓
Write
  ↓
Active
  ↓
Read
  ↓
Update
  ↓
Verify
  ↓
Archive
  ↓
Delete

可以形成:

              ┌──────────────┐
              │              ↓
Create → Write → Active → Update
              │       ↑       │
              │       │       ↓
              └──── Read    Verify
                              │
                              ↓
                           Archive
                              │
                              ↓
                           Delete

生命周期中的时间因素

记忆不是永远保持相同状态。

例如:

2026-09-01
库存 = 100

到了:

2026-09-10

可能已经发生变化。

因此系统可以计算:

Age
LastUpdated
Validity
Expiration

例如:

Memory:
stock = 100

created_at:
2026-09-01

updated_at:
2026-09-01

current:
2026-09-12

系统可以认为:

Memory may be stale

于是重新获取信息:

Memory
 ↓
Validation
 ↓
External Information
 ↓
Matching
 ↓
Update Memory

这就形成了 Memory 自身的维护循环。


第41章完整 Memory 案例

继续使用前面的案例。

输入:

深圳到香港家具送货上门

经过:

Perception
   ↓
Cognition
   ↓
Matching
   ↓
Understanding

形成:

UnderstandingResult
{
    object: Furniture,
    origin: Shenzhen,
    destination: Hong Kong,
    service: DoorToDoor
}

写入 Memory

Memory ID: 1001

Object:
Furniture

Relation:
origin → Shenzhen
destination → Hong Kong

Service:
DoorToDoor

State:
active

再次输入

“深圳到香港家具运输”

感知:

深圳
香港
家具
运输

认知:

Object = Furniture
Origin = Shenzhen
Destination = Hong Kong

Matching:

Memory 1001
       ↑
       │
     Match
       │
New Information

得到:

Object Match = 1.00
Origin Match = 1.00
Destination Match = 1.00

系统读取:

Memory 1001

因此不必从零开始建立所有关系。


如果信息发生变化

原记忆:

mode = DoorToDoor

新信息:

mode = WarehouseDelivery

系统发现:

Property Conflict

进入:

CONFLICT

然后进行验证。

确认新信息有效后:

Old:
DoorToDoor

New:
WarehouseDelivery

Memory:

Current:
WarehouseDelivery

History:
DoorToDoor

第41章核心结构

Memory
│
├── Memory Object
│
├── Write
│
├── Read
│
├── Update
│
├── Delete
│
├── State
│
└── Lifecycle

完整数据流:

Understanding Result
        ↓
   Memory Write
        ↓
     Memory
        │
 ┌──────┼──────┐
 ↓      ↓      ↓
Read  Update  Delete
 │      │      │
 └──────┼──────┘
        ↓
   Memory State
        ↓
 Memory Lifecycle

而整个 ICAI 主链进一步形成:

Information
    ↓
Perception
    ↓
Elements
    ↓
Cognition
    ↓
Matching
    ↓
Understanding
    ↓
Memory
    ↓
Reasoning
    ↓
Decision
    ↓
Action
    ↓
Experience
    ↓
Learning
    ↓
Memory Update

这里尤其重要的是最后形成了一个闭环

理解
 ↓
记忆
 ↓
推理
 ↓
决策
 ↓
行动
 ↓
经验
 ↓
学习
 ↓
更新记忆
 └────────→ 再次参与认知

因此,第41章的核心定义可以归纳为:

Memory 是 ICAI 保存认知结果、维持认知连续性,并为后续匹配、理解、推理、决策和学习提供历史信息的结构化记忆机制。

并且必须明确:

Memory ≠ Database
Memory ≠ File Storage
Memory ≠ Knowledge Base

数据库、JSON、文件只是 Memory 的存储载体;Memory 本身属于 ICAI 的认知能力结构。

Leave a Reply

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