场景与角色构建
Role = Persona (性格) + Identity (身份)
- 固定身份与多目标: 场景内角色身份保持稳态,支持在同一场景下挂载多个不同目标(Goal)。
- 任务特化: 每次对话任务指定单一目标,确保行为的可观测性。
- 状态继承: 目标完成后角色状态更新并保存记忆,实现跨任务的属性连续性。
Willingness 发言意愿机制
1. 内在量化打分:
- 被他人提及的频率
- 历史发言轮数权重
- 个人需求(Need)达成度
2. 外部上帝视角:
引入独立 Judge Agent,从全局视角判断社交逻辑合理性,动态决策最合适的接话者。
PersonaLLM 性格矩阵
参考 PersonaLLM 实现方法,构建 2^5 (32种) 人格组合矩阵。
- 智能匹配: 根据具体任务目标自动调配最合理的性格组合。
- 表达审计: 建立打分机制,检验 Agent 的言行是否在选定性格组合下得到正确表达。
扮演检验与闭环优化 (Sotopia-π)
利用评价系统对扮演质量进行审计,并生成 精简进化建议。
- 建议注入: 评估结果将转化为指令,动态加入下一轮的 System Prompt,驱动 Agent 自我扮演修正。
Thinking 思考增强模块
在生成最终回复前,引导 LLM 生成内部思考链(Thinking),并通过后处理技术确保输出的精简性与决策的高效性。
长短期记忆检验逻辑
- Episode 1 (20轮): 基础积累期,保存 Agent 创建信息及全量长短期记忆。
- Episode 2 (10轮): 记忆验证期。 重新设定 Goal,强制验证 Agent 对上一轮长期记忆的提取与应用能力。
动态印象分析系统
采用动态打分制,根据对话关键词对各个维度进行基准值调整。后期将演进为由 LLM 自主感知的互评系统,用于辅助检验角色扮演的深度。
环境感知与人机协同
坐标实现:
模拟地理坐标,对齐 AI Town 接入格式,实现 Agent 进入对话范围的动态加入逻辑。
用户控制:
支持在任意轮次手动接管特定 Agent 发言,实现人在回路的引导式对话。
Catopia 的工程演进与尝试
基于上述架构,Catopia 项目在复现与落地过程中进行了深层优化:
- 架构重构 从任务向社交演进: 通过
pure_chat.py 成功将 CAMEL 框架从纯任务导向重构为社交关系导向,验证了师生/上下级等社会关系对对话风格的决定性影响。
- 记忆隔离 双层上下文策略: 实现了 Judge 的全局长效记忆与 Actor 的局部短效窗口分离,有效解决了长对话场景下的“角色漂移”顽疾。
- 精准控制 原子化发言权: 弃用模糊的“Round”定义,引入 Total Utterances 计数逻辑,使对话在成本控制和逻辑判定上更加精准。