Files
Partner/README.md
slhafzjw b416d85232 继续进行第一阶段的调试修复
- 调整了动态提示词的动态插入方式,但插入格式后续仍需要调整
- 调整了`MemorySelector`的动态提示词
- 调整了`MemorySummarizer`的提示词中摘要的生成流程,现在生成的摘要将包括整体细节
- 细化提取主题时的了recall机制
- 各模块主提示词的身份已明确为该智能体的具体模块
-
2025-05-13 22:27:35 +08:00

45 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Partner
以多模型协作为基础, 具备结构化记忆能力、支持多用户同上下文窗口, 支持可推断任务交互与调度(规划中)的智能体系统
## 核心结构
### 结构化记忆系统
> 构建以**主题树+记忆切片**为基础的记忆图谱。
单个主题节点下存在多级子主题。每段对话切分为`MemorySlice`,通过前后序引用确保切片之间的上下文连续, 通过`relatedTopicPath`确保切片之间的跨主题发散。切片将聚合为`MemoryNode`(记忆节点)的形式挂载到主题节点。除此之外,每个记忆节点还将按照日期进行索引。
### 多用户会话管理
> 构建区分用户的单上下文窗口、多用户会话的管理机制
## 模块实现
- 预处理模块: `Preprocessor`
- 记忆模块
- 记忆选择模块: `MemorySelector`
- 主题提取模块: `MemorySelectExtractor`
- 切片评估模块: `SliceSelectEvaluator`
- 记忆更新模块: `MemoryUpdater`
- 记忆总结模块: `MemorySummarizer`
- 静态记忆提取模块: `StaticMemoryExtractor`
- 主对话模块: `CoreModel`
## 当前问题
- 角色设定机制会导致对于所有用户采用同一种语气回应。
- 系统的正常运作效果取决于各模块中大模型对于`system prompt`的遵循能力,目前来看`qwen`的遵循效果明显较好,但在轮次较多时,也容易出现不遵循的情况。正在尝试通过临时的`system prompt`进行强化。
- 各模块(尤其是记忆更新模块)的身份感缺失进行主题路径生成、切片摘要时需确保以Partner的视角执行操作。
- 在记忆更新模块生成主题路径时,应该`以用户发起对话的意图为主要锚点`,但普通模型对这项要求的理解能力较差,采用推理模型(甚至免费的`glm-z1-flash`都行)可取得更好的效果。
## 后续规划
### 短期规划
- [ ] 当前`MemoryGraph`承担职责较重,已远超原`记忆图谱`的职责,需要进行拆分重构。(或许可以叫`MemoryCore`吧)
- [ ] 看看是否需要将主模型的对话职责进行分离用来减少LLM因不遵循`system prompt`带来的影响,但这应该会是规模较大的重构()。
- [ ] 实现身份感知模块(用户识别、熟悉度判断、记忆片段检索、人物画像、对话口吻调整)。
- [ ] 实现流式输出,同时在各模块执行时可向客户端返回回调信息,优化使用体验。(现在用的是`websocket`与客户端通信, 应该实现这点会简单些)
- [ ] 实现全局异常捕获,并对异常发生时的状态(主要是流转上下文`InteractionContext``SessionManager``MemoryGraph`)进行快照保存,方便后续问题排查。
- [ ] 当前主模型对于对话缓存中的记忆有些‘过度回应’,`MemorySelector`处的动态提示词或需要进一步调整。
- [ ] 踩坑。
### 长期规划
- [ ] 实现角色演进机制
- [ ] 实现任务调度模块(主动调度、意图推断、定时调度)