mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
Compare commits
7 Commits
fix
...
doc/archit
| Author | SHA1 | Date | |
|---|---|---|---|
| bfdc9b00e5 | |||
| dff7b69b51 | |||
| d77ffd1db6 | |||
| fea7f9c81f | |||
| ae5caf8475 | |||
| 980d9384d1 | |||
| 9ba0d1363a |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -55,3 +55,8 @@ build/
|
|||||||
/data/
|
/data/
|
||||||
/generated-classes/
|
/generated-classes/
|
||||||
/.idea/copilot.data.migration.ask2agent.xml
|
/.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
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
## 设计理念
|
## 设计理念
|
||||||
Partner 的目标不是复现某种单一能力,而是尝试在结构中形成“**跨模块协同与记忆演化的可能性**”。如果“自我”是结构的涌现而非静态实体,那么这种多维度的结构系统,也可能拥有它自身的存在路径。
|
Partner 的目标不是复现某种单一能力,而是尝试在结构中形成“**跨模块协同与记忆演化的可能性**”。如果“自我”是结构的涌现而非静态实体,那么这种多维度的结构系统,也可能拥有它自身的存在路径。
|
||||||
|
|
||||||
## 整体流程
|
## 流程参考
|
||||||
|
### 整体流程
|
||||||
```mermaid
|
```mermaid
|
||||||
---
|
---
|
||||||
config:
|
config:
|
||||||
@@ -52,6 +53,10 @@ flowchart TD
|
|||||||
Act.Post[动作模块.分发]
|
Act.Post[动作模块.分发]
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
### 模块流程参考
|
||||||
|
- [记忆模块](doc/architechture/memory.md)
|
||||||
|
- [感知模块](doc/architechture/perceive.md)
|
||||||
|
- [行动模块](doc/architechture/action.md) (尚未完工)
|
||||||
## 核心结构
|
## 核心结构
|
||||||
### 主体部分
|
### 主体部分
|
||||||
#### 结构化记忆系统
|
#### 结构化记忆系统
|
||||||
|
|||||||
67
doc/architechture/action.md
Normal file
67
doc/architechture/action.md
Normal 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[流程上下文]
|
||||||
|
```
|
||||||
93
doc/architechture/memory.md
Normal file
93
doc/architechture/memory.md
Normal 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[认知核心]
|
||||||
|
```
|
||||||
56
doc/architechture/perceive.md
Normal file
56
doc/architechture/perceive.md
Normal 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[静态记忆提取模块]
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user