7 Commits

5 changed files with 227 additions and 1 deletions

5
.gitignore vendored
View File

@@ -55,3 +55,8 @@ build/
/data/
/generated-classes/
/.idea/copilot.data.migration.ask2agent.xml
.idea/copilot.data.migration.agent.xml
.gitignore
.idea/copilot.data.migration.edit.xml
.gitignore
.idea/copilot.data.migration.ask.xml

View File

@@ -7,7 +7,8 @@
## 设计理念
Partner 的目标不是复现某种单一能力,而是尝试在结构中形成“**跨模块协同与记忆演化的可能性**”。如果“自我”是结构的涌现而非静态实体,那么这种多维度的结构系统,也可能拥有它自身的存在路径。
## 整体流程
## 流程参考
### 整体流程
```mermaid
---
config:
@@ -52,6 +53,10 @@ flowchart TD
Act.Post[动作模块.分发]
end
```
### 模块流程参考
- [记忆模块](doc/architechture/memory.md)
- [感知模块](doc/architechture/perceive.md)
- [行动模块](doc/architechture/action.md) (尚未完工)
## 核心结构
### 主体部分
#### 结构化记忆系统

View File

@@ -0,0 +1,67 @@
# 流程参考: 行动模块
> 行动模块当前仍在推进中,当前展示的为设想中或者当前阶段的流程图,可能与最终实现存在差异
## 前置模块
### 行动规划模块: [ActionPlanner](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/planner/ActionPlanner.java)
```mermaid
---
config:
layout: elk
elk:
nodePlacementStrategy: LINEAR_SEGMENTS
---
flowchart TD
direction TB
Context --> Input[输入]
ActionCore --> ActionTendencyCache[行动意图缓存]
subgraph AC [行动缓存匹配]
Input[输入] --> ActionTendencyCache
ActionTendencyCache --> Hit{是否命中}
end
Hit --> |否| AR
subgraph AR [行动意图识别]
ActionExtractor[行动意图提取]
Input[输入] --> ActionExtractor
Messages --> ActionExtractor
ActionExtractor --> ExtractorResult{是否存在行动意图}
end
ExtractorResult --> |否| ResultEmpty
subgraph AE [行动意图评估]
ActionTendencies[行动意图列表]
EvaluatorResult[意图评估结果]
DATA[数据<br/>---<br/>记忆切片 可选行动单元 近期对话记录 用户信息]
Hit --> |是| ActionTendencies
ExtractorResult --> |是| ActionTendencies
DATA --> EvaluatorThread1
DATA --> EvaluatorThread2
DATA --> EvaluatorThread3
ActionTendencies --> Tendency1[行动意图1] --> EvaluatorThread1[评估线程1] --> EvaluatorResult
ActionTendencies --> Tendency2[行动意图2] --> EvaluatorThread2[评估线程2] --> EvaluatorResult
ActionTendencies --> Tendency3[行动意图3] --> EvaluatorThread3[评估线程3] --> EvaluatorResult
end
EvaluatorResult --> |放入行动池| ActionCore
EvaluatorResult --> |异步更新行动意图缓存| ActionCore
EvaluatorResult --> ResultNormal --> |回写| Context
ResultEmpty@{shape: braces, label: "[结束]<br/>---<br/>行动模块前置流程结束"}
ResultNormal@{shape: braces, label: "[结束]<br/>---<br/>聚合为特定格式的 Prompt"}
ActionCore[行动核心] --> DATA
MemoryCore[记忆核心] --> DATA
CognationCore[认知核心] --> DATA
PerceiveCore[感知核心] --> DATA
Context[流程上下文]
```

View File

@@ -0,0 +1,93 @@
# 流程参考: 记忆模块
> 仅展示大致流程,缓存命中、持久化等内容在下方流程图中尚未体现
## 前置模块: [MemorySelector](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/MemorySelector.java)
```mermaid
---
config:
layout: elk
elk:
nodePlacementStrategy: LINEAR_SEGMENTS
---
flowchart TD
direction TB
Input[输入] --> |主题提取| Extractor
subgraph TE [主题提取]
Extractor[主题提取模块] --> Extract{主题提取}
Extract --> |提取到主题| TopicSet[主题路径集合]
TopicSet --> TopicPath1[主题路径.1] --> Slice1[记忆切片.1]
TopicSet --> TopicPath2[主题路径.2] --> Slice2[记忆切片.2]
TopicSet --> TopicPath3[主题路径.3] --> Slice3[记忆切片.3]
end
subgraph SE [切片评估]
Evaluator[切片评估模块]
Slice1 --> Evaluator --> Thread1[评估线程.1] --> Evaluated{评估是否通过}
Slice2 --> Evaluator --> Thread2[评估线程.2] --> Evaluated{评估是否通过}
Slice3 --> Evaluator --> Thread3[评估线程.3] --> Evaluated{评估是否通过}
Evaluated --> |否| Throwed
end
Context[流程上下文]
Extract --> |未提取到主题| ResultEmpty
Evaluated --> |是| ResultNormal
ResultEmpty --> |写入| Context
ResultNormal --> |写入| Context
ResultEmpty@{shape: braces, label: "[结束]<br/>---<br/>记忆无命中"}
ResultNormal@{shape: braces, label: "[结束]<br/>---<br/>聚合为特定格式的 Prompt"}
Throwed@{ shape: dbl-circ, label: "丢弃" }
```
### 后置模块: [MemoryUpdater](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/MemoryUpdater.java)
```mermaid
---
config:
layout: elk
elk:
nodePlacementStrategy: LINEAR_SEGMENTS
---
flowchart TD
direction TB
Trigger.Time[触发: 时间周期] --> MT
Trigger.Threshold[触发: 对话阈值] --> MT
CognationCore --> |读取| Messages
subgraph MT [对话分流]
Messages[对话记录] --> Single[单个主体对话]
Single --> Single1[主体1]
Single --> Single2[主体2]
Single --> Single3[主体3]
Messages[对话记录] --> Multi[多个主体对话]
end
subgraph MS [对话摘要]
Single1 --> |并发| SSum1[单主体摘要线程1] --> SSResult1[单主体摘要结果1]
Single2 --> |并发| SSum2[单主体摘要线程2] --> SSResult2[单主体摘要结果2]
Single3 --> |并发| SSum3[单主体摘要线程3] --> SSResult3[单主体摘要结果3]
Multi --> MSum[多主体摘要] --> MSResult[多主体摘要结果]
end
subgraph MU[记忆更新]
MemoryCore[记忆核心]
SSResult1 --> Slice1[记忆切片1] --> |更新| MemoryCore
SSResult2 --> Slice2[记忆切片2] --> |更新| MemoryCore
SSResult3 --> Slice3[记忆切片3] --> |更新| MemoryCore
MSResult --> Slice4[记忆切片4] --> |更新| MemoryCore
end
MU --> |滚动对话窗口| CognationCore
CognationCore[认知核心]
```

View File

@@ -0,0 +1,56 @@
# 流程参考: 感知模块
> 相较于其他模块,目前的感知模块实际上流程非常简单,但后续或将添加一些新的内容
> 此外,其后置模块实际上与 [记忆模块](./memory.md) 中的后置模块为并发执行,且都为后台任务
## 前置模块: [PerceiveSelector](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/selector/PerceiveSelector.java)
```mermaid
flowchart TD
Context[流程上下文] --> |获取| UserId
UserId --> |查询| PerceiveCore
PerceiveCore --> |结果回写| Context
subgraph result [感知核心查询结果]
relation[关系]
attitude[态度]
impression[印象]
static_memory[静态记忆]
end
```
## 后置模块: [PerceiveUpdater](../../Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/PerceiveUpdater.java)
```mermaid
---
config:
layout: elk
elk:
nodePlacementStrategy: LINEAR_SEGMENTS
---
flowchart TD
Trigger.Time[触发: 时间周期] --> PE
Trigger.Threshold[触发: 对话阈值] --> PE
CognationCore --> |读取| Messages[对话记录]
PerceiveCore --> |读取| UserInfo[现有的用户信息]
subgraph PE [内容提取]
Messages --> |输入| RelationExtractor
UserInfo --> |输入| RelationExtractor
Messages --> |输入| StaticExtractor
UserInfo --> |输入| StaticExtractor
end
subgraph PU [感知更新]
StaticExtractor --> |生成| NewInfo[修正后的用户信息]
RelationExtractor --> |生成| NewInfo[修正后的用户信息]
end
NewInfo --> |更新| PerceiveCore
CognationCore[认知核心]
PerceiveCore[感知核心]
RelationExtractor[关系提取模块]
StaticExtractor[静态记忆提取模块]
```