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

第223章 MemoryExperienceRepository

第223章 MemoryExperienceRepository

223.1 MemoryExperienceRepository定义

前面已经建立:

Execution→Result→ExecutionHistoryExecution \rightarrow Result \rightarrow ExecutionHistory

执行历史记录系统过去真实发生过什么。

但是,如果所有历史数据都只是原样保存,系统每次进行认知计算时都必须重新处理大量历史事实。

因此 ICAI 需要进一步建立:

History
 ↓
Memory
 ↓
Experience

其中:

  • History:实际发生过的历史事实;
  • Memory:从历史中保留下来的、未来可以检索和使用的信息;
  • Experience:从多条历史、Memory、条件和结果中形成的结构化经验模式。

因此建立:

MemoryExperienceRepositoryMemoryExperienceRepository

核心模型:

MER=(M,E,H,Q,P,R,T)MER=(M,E,H,Q,P,R,T)

其中:

  • MM:Memory;
  • EE:Experience;
  • HH:History;
  • QQ:Query;
  • PP:Persistence;
  • RR:Relation;
  • TT:Time。

因此:

MemoryExperienceRepository=Memory+Experience+History+Query\boxed{ MemoryExperienceRepository = Memory + Experience + History + Query }

本 Repository 的核心作用不是“思考”,而是让已经形成的认知数据能够:

保存
读取
查询
更新
追踪
关联

因此:

MemoryExperienceRepository≠MemoryEngine\boxed{ MemoryExperienceRepository \neq MemoryEngine } MemoryExperienceRepository≠ExperienceEngine\boxed{ MemoryExperienceRepository \neq ExperienceEngine }


223.2 Memory领域对象

第164章已经定义 Memory:

M=(I,C,W,T,R)M=(I,C,W,T,R)

其中:

  • II:Information;
  • CC:Context;
  • WW:Weight;
  • TT:Time;
  • RR:Relation。

Memory表示:

值得保留并可以再次调用的信息\boxed{值得保留并可以再次调用的信息}

例如一次执行产生:

Object-A
State = Ready
Action-A1
Result = Success

经过处理后,可以形成:

Memory-M1

记录:

Object-A 在某条件下执行 Action-A1 成功

但 Memory 并不是原始执行记录。

因此:

Memory≠HistoryMemory\neq History


223.3 Experience领域对象

Experience模型:

E=(H,M,C,R,P)E=(H,M,C,R,P)

其中:

  • HH:History;
  • MM:Memory;
  • CC:Condition;
  • RR:Result;
  • PP:Pattern。

Experience表示:

过去事实中形成的可重复利用结构模式\boxed{过去事实中形成的可重复利用结构模式}

例如:

Condition:
Resource >= 2

Method:
M1

Result:
Success

经过多次历史验证后,可以形成:

Experience-E1

表达:

Resource≥2→M1→SuccessResource\geq2 \rightarrow M1 \rightarrow Success

Experience不是简单的“成功次数”。


223.4 History领域对象

History记录实际发生的事实。

基本形式:

H={h1,h2,…,hn}H=\{h_1,h_2,\ldots,h_n\}

单条历史:

h=(T,O,A,R,S)h=(T,O,A,R,S)

其中:

  • TT:时间;
  • OO:对象;
  • AA:动作;
  • RR:结果;
  • SS:状态。

执行历史还可以采用第222章的模型:

EH=(Ex,B,A,Sb,Sa,R,T)EH=(E_x,B,A,S_b,S_a,R,T)

因此:

HistoryHistory

可以来自:

Execution History
Behavior History
Decision History
State History
Method History
Feedback History

223.5 三者之间的关系

核心关系:

History→Memory→ExperienceHistory \rightarrow Memory \rightarrow Experience

但是这不是简单的数据复制。

实际过程是:

History
 ↓
筛选
 ↓
Memory
 ↓
比较
 ↓
关系建立
 ↓
Pattern
 ↓
Experience

因此:

History≠Memory≠Experience\boxed{ History\neq Memory\neq Experience }

三者承担不同职责。


223.6 History:记录发生过什么

History关注:

事实\boxed{事实}

例如:

2026-09-11 10:00
Action A1
Result = Failed

这是历史事实。

Repository应该原样保存这一事实。

Repository不应该因为某次失败就自行推断:

Method invalid

更不能直接修改 Capability。


223.7 Memory:保存什么值得再次使用

Memory关注:

可检索的信息\boxed{可检索的信息}

例如:

Memory M1

Object-A
Condition-X
Result = Success

未来需要类似信息时,可以查询:

Query(Context)→MemoryQuery(Context)\rightarrow Memory

然后将 Memory 提供给 MemoryEngine / ExperienceEngine / DecisionEngine。


223.8 Experience:过去形成了什么模式

Experience关注:

可重复利用的经验结构\boxed{可重复利用的经验结构}

例如:

Condition X
 +
Method M1
 +
Capability C1
 →
Success

经过多次历史验证以后,可以形成:

ExperienceExperience

它可以参与:

Risk计算
Decision计算
Method选择
Capability判断
Learning计算

但 ExperienceRepository 本身不负责这些计算。


223.9 Memory的保存

Memory保存:

Save(M)→Validate→Map→Persist→VerifySave(M) \rightarrow Validate \rightarrow Map \rightarrow Persist \rightarrow Verify

有效 Memory 至少应该包含:

Memory ID
Information
Context
Weight
Time
Relation
State

这里的 Weight 不是神经网络参数。

而是确定性的 Memory 权重。

例如:

Wm=f(I,R,T,V)W_m=f(I,R,T,V)

其中:

  • II:重要性;
  • RR:相关性;
  • TT:时间因素;
  • VV:验证状态。

223.10 Memory查询

MemoryRepository最重要的职责之一是查询。

例如:

findMemoryById(ID)findMemoryById(ID)

或者:

findMemoriesByObject(O)findMemoriesByObject(O)

还可以:

findMemoriesByContext(C)findMemoriesByContext(C) findMemoriesByType(T)findMemoriesByType(T) findMemoriesByState(S)findMemoriesByState(S) findRecentMemories(T)findRecentMemories(T)

因此:

Context
 ↓
MemoryRepository
 ↓
Candidate Memories
 ↓
MemoryEngine
 ↓
Relevant Memories

Repository负责:

QueryQuery

MemoryEngine负责:

RelevanceCalculationRelevanceCalculation


223.11 查询不等于记忆计算

这是本章最重要的 Repository 边界之一。

例如:

findMemoriesByObject(O)findMemoriesByObject(O)

只表示:

找到与 Object O 关联的 Memory

并不代表:

这些Memory全部适用于当前情况

因此:

Query≠Relevance\boxed{ Query\neq Relevance }

正确流程:

Context
 ↓
Repository Query
 ↓
Memory Candidates
 ↓
MemoryEngine
 ↓
Relevance Calculation
 ↓
Recall Result

223.12 Memory Relation

Memory之间可以存在关系。

定义:

MR=(M1,T,M2,C)MR=(M_1,T,M_2,C)

其中:

  • M1M_1:Memory A;
  • TT:Relation Type;
  • M2M_2:Memory B;
  • CC:Relation Condition。

例如:

M1
 ↓ supports
M2

或者:

M1
 ↓ conflicts_with
M2

还可以:

same_as
similar_to
before
after
cause
effect
part_of
contains
used_with
derived_from

Repository负责保存和查询这些关系。

MemoryEngine负责使用这些关系进行认知计算。


223.13 Experience保存

Experience保存:

Save(E)→Validate→Map→Persist→VerifySave(E) \rightarrow Validate \rightarrow Map \rightarrow Persist \rightarrow Verify

基本结构:

Experience ID
History
Memory
Condition
Result
Pattern
State
Time

例如:

E1=(H1,H2,H3,M1,M2,C,R,P)E_1= (H_1,H_2,H_3,M_1,M_2,C,R,P)

表达多次历史事实经过比较以后形成的结构模式。


223.14 Experience查询

ExperienceRepository可以提供:

findExperienceById()
findExperiencesByCondition()
findExperiencesByObject()
findExperiencesByMethod()
findExperiencesByCapability()
findExperiencesByResult()
findExperiencesByState()
findRecentExperiences()

例如:

Query(C)→{E1,E2,…,En}Query(C) \rightarrow \{E_1,E_2,\ldots,E_n\}

然后:

ExperienceEngineExperienceEngine

进一步判断:

Applicable(E,C)Applicable(E,C)

因此:

Repository→CandidateExperiencesRepository \rightarrow Candidate Experiences

而不是:

Repository→FinalExperienceDecisionRepository \rightarrow Final Experience Decision


223.15 Experience调用

Experience调用过程:

Current Context
 ↓
ExperienceRepository
 ↓
Candidate Experience
 ↓
ExperienceEngine
 ↓
Condition Matching
 ↓
Pattern Matching
 ↓
Applicability
 ↓
Experience Result

可以表示为:

Recall(E,C)→ERRecall(E,C)\rightarrow ER

其中:

  • EE:Experience;
  • CC:Current Context;
  • ERER:Experience Recall Result。

Repository只是提供候选经验。


223.16 History查询

History不是只能按ID查询。

可以按照:

Individual
Object
Behavior
Action
Execution
Result
Method
Decision
Time
State

查询。

例如:

findExecutionHistory(Ex)findExecutionHistory(E_x)

或者:

findHistoryByObject(O)findHistoryByObject(O)

或者:

findHistoryByTime(T1,T2)findHistoryByTime(T_1,T_2)

形成:

Query(H,C)→{H1,…,Hn}Query(H,C)\rightarrow\{H_1,\ldots,H_n\}

然后交给 MemoryEngine / ExperienceEngine 进行后续计算。


223.17 History不能被修改成Memory

历史必须保持事实性。

例如:

History H1
Result = Failed

后来系统修复成功:

History H2
Result = Success

不能把:

H1 = Failed

直接改成:

H1 = Success

应该:

H1→H2H_1\rightarrow H_2

保留两个事实。

因此:

History必须可追溯\boxed{ History必须可追溯 }


223.18 Memory可以更新

Memory与History不同。

Memory可以根据新的验证事实更新:

Mt+ΔM→Mt+1M_t+\Delta M\rightarrow M_{t+1}

例如:

Memory M1
Weight = 0.6

经过新的验证:

Weight = 0.9

可以形成:

Memory Update

同时保留 Memory History。

因此建议:

memories
memory_history

分开保存。


223.19 Experience可以修订

Experience也不是永久不变。

例如:

Experience E1

Condition X
→
Method M1
→
Success

后来发现:

Condition X + Resource < 2
→
Failure

那么原 Experience 的适用条件可能需要修订。

形成:

Et+ΔE→Et+1E_t+\Delta E\rightarrow E_{t+1}

并记录:

Experience History

因此:

ExperienceUpdate≠ExperienceOverwriteExperienceUpdate \neq ExperienceOverwrite


223.20 Memory History

定义:

MH=(M,Mb,Ma,Δ,R,T)MH=(M,M_b,M_a,\Delta,R,T)

其中:

  • MM:Memory;
  • MbM_b:修改前;
  • MaM_a:修改后;
  • Δ\Delta:变化;
  • RR:原因;
  • TT:时间。

例如:

Memory M1

Before:
Weight = 0.6

After:
Weight = 0.9

Reason:
New verified evidence

这样可以追踪 Memory 为什么发生变化。


223.21 Experience History

定义:

EH=(E,Eb,Ea,Δ,R,T)EH=(E,E_b,E_a,\Delta,R,T)

其中:

  • EbE_b:更新前 Experience;
  • EaE_a:更新后 Experience;
  • Δ\Delta:变化;
  • RR:变化原因;
  • TT:变化时间。

这样:

Experience→ExperienceHistoryExperience \rightarrow ExperienceHistory

成为完整的经验演化轨迹。


223.22 Memory与Experience关系查询

Repository还需要查询:

Memory→ExperienceMemory\rightarrow Experience

例如:

findExperiencesByMemoryId(M)findExperiencesByMemoryId(M)

以及:

findMemoriesByExperienceId(E)findMemoriesByExperienceId(E)

形成:

Memory M1
 ↓
supports
 ↓
Experience E1

或者:

Memory M2
 ↓
conflicts_with
 ↓
Experience E2

这些关系必须显式保存,而不能依靠程序猜测。


223.23 History → Memory

History到Memory的形成:

History
 ↓
Importance
 ↓
Relevance
 ↓
Recurrence
 ↓
Verification
 ↓
Memory Candidate
 ↓
MemoryEngine
 ↓
Memory
 ↓
MemoryRepository

这里:

MemoryCandidateMemoryCandidate

是计算结果。

Repository只负责最终保存。

因此:

MemoryEngine决定记忆计算\boxed{ MemoryEngine决定记忆计算 } MemoryRepository决定记忆持久化\boxed{ MemoryRepository决定记忆持久化 }


223.24 Memory → Experience

经验形成:

Memory
 ↓
Condition
 ↓
History Comparison
 ↓
Relation
 ↓
Pattern
 ↓
Experience Candidate
 ↓
ExperienceEngine
 ↓
Experience
 ↓
ExperienceRepository

公式:

Experience=f(H,M,C,R,P)Experience = f(H,M,C,R,P)

其中:

  • HH:历史;
  • MM:记忆;
  • CC:条件;
  • RR:结果;
  • PP:模式。

223.25 Repository不负责Experience生成

不能设计:

ExperienceRepository
    ↓
自动分析
    ↓
Experience

正确:

History
 ↓
ExperienceEngine
 ↓
Experience Candidate
 ↓
Verification
 ↓
ExperienceRepository
 ↓
MySQL

这样可以保持:

Engine=CalculationEngine=Calculation Repository=PersistenceRepository=Persistence


223.26 PHP接口

可以建立:

<?php

interface MemoryExperienceRepositoryInterface
{
    public function findMemoryById($id);

    public function findMemoriesByObjectId($objectId);

    public function findMemoriesByContext($context);

    public function findMemoriesByState($state);

    public function findRecentMemories($limit);

    public function saveMemory($memory);

    public function updateMemory($memory);

    public function saveMemoryHistory($history);

    public function findMemoryHistory($memoryId);

    public function findExperienceById($id);

    public function findExperiencesByCondition($condition);

    public function findExperiencesByObjectId($objectId);

    public function findExperiencesByMethodId($methodId);

    public function findExperiencesByCapabilityId($capabilityId);

    public function findRecentExperiences($limit);

    public function saveExperience($experience);

    public function updateExperience($experience);

    public function saveExperienceHistory($history);

    public function findExperienceHistory($experienceId);

    public function findHistoryByObjectId($objectId);

    public function findHistoryByTimeRange($start,$end);

    public function saveMemoryRelation($relation);

    public function findMemoryRelations($memoryId);

    public function saveExperienceRelation($relation);

    public function findExperienceRelations($experienceId);
}

223.27 MemoryMapper

class MemoryMapper
{
    public function toPersistence($memory)
    {
        return array(
            'id' => $memory->getId(),
            'information' => $memory->getInformation(),
            'context_data' => $memory->getContext(),
            'weight' => $memory->getWeight(),
            'memory_time' => $memory->getTime(),
            'state' => $memory->getState()
        );
    }

    public function toDomain($data)
    {
        $memory = new Memory();

        $memory->setId($data['id']);
        $memory->setInformation(
            $data['information']
        );
        $memory->setContext(
            $data['context_data']
        );
        $memory->setWeight(
            $data['weight']
        );
        $memory->setTime(
            $data['memory_time']
        );
        $memory->setState(
            $data['state']
        );

        return $memory;
    }
}

223.28 ExperienceMapper

class ExperienceMapper
{
    public function toPersistence($experience)
    {
        return array(
            'id' => $experience->getId(),
            'history_data' => $experience->getHistory(),
            'memory_data' => $experience->getMemory(),
            'condition_data' => $experience->getCondition(),
            'result_data' => $experience->getResult(),
            'pattern_data' => $experience->getPattern(),
            'state' => $experience->getState()
        );
    }

    public function toDomain($data)
    {
        $experience = new Experience();

        $experience->setId($data['id']);
        $experience->setHistory(
            $data['history_data']
        );
        $experience->setMemory(
            $data['memory_data']
        );
        $experience->setCondition(
            $data['condition_data']
        );
        $experience->setResult(
            $data['result_data']
        );
        $experience->setPattern(
            $data['pattern_data']
        );
        $experience->setState(
            $data['state']
        );

        return $experience;
    }
}

223.29 HistoryMapper

class HistoryMapper
{
    public function toPersistence($history)
    {
        return array(
            'object_id' =>
                $history->getObjectId(),
            'behavior_id' =>
                $history->getBehaviorId(),
            'action_id' =>
                $history->getActionId(),
            'execution_id' =>
                $history->getExecutionId(),
            'result_data' =>
                $history->getResult(),
            'before_state' =>
                $history->getBeforeState(),
            'after_state' =>
                $history->getAfterState(),
            'history_time' =>
                $history->getTime()
        );
    }
}

223.30 MySQL数据结构

Memory:

CREATE TABLE memories (
    id INT NOT NULL AUTO_INCREMENT,
    information TEXT NOT NULL,
    context_data TEXT,
    weight DECIMAL(12,6),
    memory_time DATETIME NOT NULL,
    state VARCHAR(50),
    created_at DATETIME NOT NULL,
    updated_at DATETIME,
    PRIMARY KEY (id)
);

Memory History:

CREATE TABLE memory_history (
    id INT NOT NULL AUTO_INCREMENT,
    memory_id INT NOT NULL,
    before_data TEXT,
    after_data TEXT,
    change_data TEXT,
    reason TEXT,
    changed_at DATETIME NOT NULL,
    PRIMARY KEY (id)
);

Experience:

CREATE TABLE experiences (
    id INT NOT NULL AUTO_INCREMENT,
    condition_data TEXT,
    result_data TEXT,
    pattern_data TEXT,
    state VARCHAR(50),
    created_at DATETIME NOT NULL,
    updated_at DATETIME,
    PRIMARY KEY (id)
);

Experience History:

CREATE TABLE experience_history (
    id INT NOT NULL AUTO_INCREMENT,
    experience_id INT NOT NULL,
    before_data TEXT,
    after_data TEXT,
    change_data TEXT,
    reason TEXT,
    changed_at DATETIME NOT NULL,
    PRIMARY KEY (id)
);

Memory Relation:

CREATE TABLE memory_relations (
    id INT NOT NULL AUTO_INCREMENT,
    memory_id INT NOT NULL,
    relation_type VARCHAR(50) NOT NULL,
    target_memory_id INT NOT NULL,
    condition_data TEXT,
    state VARCHAR(50),
    created_at DATETIME NOT NULL,
    PRIMARY KEY (id)
);

Experience Relation:

CREATE TABLE experience_relations (
    id INT NOT NULL AUTO_INCREMENT,
    experience_id INT NOT NULL,
    relation_type VARCHAR(50) NOT NULL,
    target_experience_id INT NOT NULL,
    condition_data TEXT,
    state VARCHAR(50),
    created_at DATETIME NOT NULL,
    PRIMARY KEY (id)
);

以上 SQL 是体系设计示例。正式实施时仍需要根据实际数据库版本、已有表结构、索引和关联关系进行验证。


223.31 查询条件模型

Repository查询可以形成结构化 Query:

Q=(O,C,S,T,R,L)Q=(O,C,S,T,R,L)

其中:

  • OO:Object;
  • CC:Context;
  • SS:State;
  • TT:Time;
  • RR:Relation;
  • LL:Limit。

例如:

$query = array(
    'object_id' => 10,
    'state' => 'verified',
    'start_time' => '2026-01-01 00:00:00',
    'end_time' => '2026-09-11 23:59:59',
    'limit' => 20
);

Repository根据 Query 返回候选数据。


223.32 Memory查询与排序

Repository可以先返回:

M1
M2
M3
M4

然后 MemoryEngine 计算:

Score(Mi)Score(M_i)

例如:

Score(Mi)=WrRi+WvVi+WtTi+WiIiScore(M_i) = W_rR_i + W_vV_i + W_tT_i + W_iI_i

其中:

  • RiR_i:相关性;
  • ViV_i:验证程度;
  • TiT_i:时间因素;
  • IiI_i:重要性;
  • Wr,Wv,Wt,WiW_r,W_v,W_t,W_i:对应权重。

这里的排序属于 MemoryEngine,不属于 Repository。

因此:

Repository负责查询候选\boxed{ Repository负责查询候选 } MemoryEngine负责计算相关性\boxed{ MemoryEngine负责计算相关性 }


223.33 Experience查询与适用性

Repository返回:

E1
E2
E3

ExperienceEngine进一步计算:

Applicable(Ei,C)Applicable(E_i,C)

可能结果:

E1 = Applicable
E2 = Partial
E3 = Unmatched

因此:

ExperienceRepository≠ExperienceEngineExperienceRepository \neq ExperienceEngine


223.34 查询历史与时间

Memory、Experience都具有时间属性。

因此查询必须支持时间范围:

T1≤T≤T2T_1\leq T\leq T_2

例如:

过去30天
过去100次执行
最近20条Memory
最近10条Experience

时间过滤属于 Repository Query。

时间影响权重属于 MemoryEngine / ExperienceEngine。

这两个职责必须分离。


223.35 当前事实与历史记忆

Repository读取到的 Memory 是过去信息。

不能直接覆盖当前事实。

例如:

Memory:
Object-A = Ready

当前:

Current State:
Object-A = Blocked

那么:

CurrentState≠MemoryStateCurrentState \neq MemoryState

当前 State 应由 StateEngine / StateRepository 提供。

Memory只能作为辅助认知依据。

因此:

CurrentFact>HistoricalMemory\boxed{ CurrentFact > HistoricalMemory }

这里的“大于”表示当前实际事实具有更高的当前状态优先级,而不是数值大小。


223.36 Memory与Experience查询边界

可以建立:

Memory Query
 ↓
MemoryRepository

和:

Experience Query
 ↓
ExperienceRepository

也可以提供:

MemoryExperienceRepository

进行统一查询。

但是内部仍然应该保持:

Memory
Experience
History

三个独立 Domain Object。

因此:

UnifiedRepository≠UnifiedDomainObject\boxed{ UnifiedRepository \neq UnifiedDomainObject }


223.37 Repository与事务

Memory与Experience更新可能来自同一个 Learning 过程:

Learning
 ↓
Memory Update
 ↓
Experience Update

可以由 Service / TransactionManager 协调:

Begin
 ↓
Save Memory
 ↓
Save Memory History
 ↓
Save Experience
 ↓
Save Experience History
 ↓
Verify
 ↓
Commit

Repository参与持久化。

但:

MemoryExperienceRepository≠TransactionManagerMemoryExperienceRepository \neq TransactionManager


223.38 完整认知数据流

从执行阶段开始:

Behavior
 ↓
Action
 ↓
Execution
 ↓
Result
 ↓
Execution History
 ↓
Memory
 ↓
Experience
 ↓
Learning
 ↓
Update

Repository对应:

Execution
 ↓
ExecutionRepository

Result
 ↓
ResultRepository

History
 ↓
HistoryRepository

Memory
 ↓
MemoryRepository

Experience
 ↓
ExperienceRepository

协作层:

MemoryExperienceRepositoryMemoryExperienceRepository

负责 Memory、Experience、History 的联合持久化和查询。


223.39 与第222章连接

第222章:

Behavior→Action→Execution→Result→ExecutionHistoryBehavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow ExecutionHistory

第223章继续:

ExecutionHistory→Memory→ExperienceExecutionHistory \rightarrow Memory \rightarrow Experience

因此形成:

Behavior→Action→Execution→Result→History→Memory→Experience\boxed{ Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow History \rightarrow Memory \rightarrow Experience }

这已经从执行系统进入长期认知数据系统。


223.40 与LearningEngine连接

Experience形成后:

Experience
 ↓
LearningEngine
 ↓
Learning Candidate
 ↓
UpdateEngine
 ↓
Knowledge / Capability / Method / Individual

完整关系:

History→Memory→Experience→Learning→UpdateHistory \rightarrow Memory \rightarrow Experience \rightarrow Learning \rightarrow Update

Repository在这里承担的是数据边界:

History
 ↕
Repository

Memory
 ↕
Repository

Experience
 ↕
Repository

而计算仍由:

MemoryEngine
ExperienceEngine
LearningEngine
UpdateEngine

分别完成。


223.41 PHP工程结构

推荐:

app/
├── Domain/
│   ├── Memory/
│   │   └── Memory.php
│   ├── Experience/
│   │   └── Experience.php
│   └── History/
│       └── History.php
│
├── Engines/
│   ├── MemoryEngine.php
│   └── ExperienceEngine.php
│
├── Services/
│   └── MemoryExperienceService.php
│
├── Repositories/
│   ├── MemoryRepository.php
│   ├── ExperienceRepository.php
│   ├── HistoryRepository.php
│   └── MemoryExperienceRepository.php
│
└── Infrastructure/
    ├── Database/
    └── Mapping/

保持:

Domain→Engine→Service→Repository→MySQLDomain \rightarrow Engine \rightarrow Service \rightarrow Repository \rightarrow MySQL

各层职责独立。


223.42 完整查询流程

Memory查询:

Request
 ↓
MemoryExperienceService
 ↓
MemoryExperienceRepository
 ↓
MySQL
 ↓
Memory Data
 ↓
MemoryMapper
 ↓
Memory Domain Object
 ↓
MemoryEngine
 ↓
Recall Result

Experience查询:

Request
 ↓
MemoryExperienceService
 ↓
MemoryExperienceRepository
 ↓
MySQL
 ↓
Experience Data
 ↓
ExperienceMapper
 ↓
Experience Domain Object
 ↓
ExperienceEngine
 ↓
Applicable Experience

Repository始终位于持久化边界。


223.43 完整保存流程

Memory:

Memory→Validate→Map→Repository→MySQLMemory \rightarrow Validate \rightarrow Map \rightarrow Repository \rightarrow MySQL

Experience:

Experience→Validate→Map→Repository→MySQLExperience \rightarrow Validate \rightarrow Map \rightarrow Repository \rightarrow MySQL

History:

History→Validate→Map→Repository→MySQLHistory \rightarrow Validate \rightarrow Map \rightarrow Repository \rightarrow MySQL

三个对象分别保存,但可以由同一个 Service 统一协调。


223.44 本章核心公式

Memory:

M=(I,C,W,T,R)\boxed{ M=(I,C,W,T,R) }

Experience:

E=(H,M,C,R,P)\boxed{ E=(H,M,C,R,P) }

History:

H={h1,h2,…,hn}\boxed{ H=\{h_1,h_2,\ldots,h_n\} }

单条History:

h=(T,O,A,R,S)\boxed{ h=(T,O,A,R,S) }

Memory History:

MH=(M,Mb,Ma,Δ,R,T)\boxed{ MH=(M,M_b,M_a,\Delta,R,T) }

Experience History:

EH=(E,Eb,Ea,Δ,R,T)\boxed{ EH=(E,E_b,E_a,\Delta,R,T) }

Memory Relation:

MR=(M1,T,M2,C)\boxed{ MR=(M_1,T,M_2,C) }

Experience Relation:

ER=(E1,T,E2,C)\boxed{ ER=(E_1,T,E_2,C) }

Memory更新:

Mt+ΔM→Mt+1\boxed{ M_t+\Delta M\rightarrow M_{t+1} }

Experience更新:

Et+ΔE→Et+1\boxed{ E_t+\Delta E\rightarrow E_{t+1} }

核心认知链:

History→Memory→Experience\boxed{ History \rightarrow Memory \rightarrow Experience }

Repository查询:

Query(Context)→Candidates\boxed{ Query(Context)\rightarrow Candidates }

而最终适用性判断:

Candidates→MemoryEngine/ExperienceEngine→CognitiveResult\boxed{ Candidates \rightarrow MemoryEngine/ExperienceEngine \rightarrow CognitiveResult }


223.45 本章核心原则

原则一:History、Memory、Experience必须分离

History≠Memory≠ExperienceHistory\neq Memory\neq Experience

原则二:History记录事实

History=PastFactsHistory=PastFacts

原则三:Memory保存可再次使用的信息

Memory=RetainedInformationMemory=RetainedInformation

原则四:Experience保存结构化模式

Experience=StructuredPatternExperience=StructuredPattern

原则五:Repository负责保存与查询

Repository=Persistence+QueryRepository=Persistence+Query

原则六:MemoryEngine负责记忆计算

MemoryEngine=Calculation+Recall+UpdateEvaluationMemoryEngine=Calculation+Recall+UpdateEvaluation

原则七:ExperienceEngine负责经验计算

ExperienceEngine=Calculation+Invocation+UpdateEvaluationExperienceEngine=Calculation+Invocation+UpdateEvaluation

原则八:查询不等于认知判断

Query≠RelevanceQuery\neq Relevance Query≠ApplicabilityQuery\neq Applicability

原则九:历史不能被最终结果覆盖

H1≠H2H_1\neq H_2

即使第二次执行成功,也不能删除第一次失败历史。

原则十:当前事实优先于历史记忆

CurrentFact>HistoricalMemoryCurrentFact > HistoricalMemory

Memory不能覆盖当前 State。

原则十一:Memory和Experience的更新必须可追溯

Update→HistoryUpdate \rightarrow History

原则十二:Repository不能代替Engine

Repository≠MemoryEngineRepository\neq MemoryEngine Repository≠ExperienceEngineRepository\neq ExperienceEngine


223.46 本章总结

第223章建立了 ICAI 长期认知数据的重要 Repository 边界:

MemoryExperienceRepository=Memory+Experience+History+Query\boxed{ MemoryExperienceRepository = Memory + Experience + History + Query }

其中:

History

记录实际发生的事实\boxed{记录实际发生的事实}

Memory

保存未来可以重新调用的信息\boxed{保存未来可以重新调用的信息}

Experience

从历史与记忆中形成可重复利用的结构化模式\boxed{从历史与记忆中形成可重复利用的结构化模式}

三者形成:

History→Memory→Experience\boxed{ History \rightarrow Memory \rightarrow Experience }

Repository负责:

Save
Load
Update
Query
Relation
History

MemoryEngine负责:

Memory Calculation
Memory Recall
Memory Update Evaluation

ExperienceEngine负责:

Experience Calculation
Experience Invocation
Experience Update Evaluation

LearningEngine继续负责:

Experience
 ↓
Learning Candidate

UpdateEngine负责:

Learning Candidate
 ↓
Verified Update

因此完整链条形成:

Execution→Result→History→Memory→Experience→Learning→Update\boxed{ Execution \rightarrow Result \rightarrow History \rightarrow Memory \rightarrow Experience \rightarrow Learning \rightarrow Update }

再返回:

Update→Knowledge/Capability/Method/Individual\boxed{ Update \rightarrow Knowledge / Capability / Method / Individual }

最终重新进入:

CognitiveEngine→Goal→Capability→Matching→Method→Decision→Behavior→Action→Execution\boxed{ CognitiveEngine \rightarrow Goal \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Execution }

由此形成一个完整的、可以持续保存过去事实、调用过去信息、形成经验、产生学习变化并更新未来认知计算基础的 ICAI 数据闭环。

整个体系仍然基于符号对象、离散数据、规则、条件、关系、历史、记忆、经验和确定性计算,不依赖 LLM、Transformer、Embedding、Vector Search、Prompt Engineering、神经网络或 LLM API。

Leave a Reply

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