项目背景
基于《分身bot设计方案.md》,实现一个多身份真人分身 Bot 的 Agent 仿真对话系统。
核心设计理念
1. 身份 Agent 实体
根据真人的聊天记录,构建 agent 实体,包括:
- 记忆 - 长期记忆(人格摘要)
- 兴趣 - 兴趣标签
- 爱好 - 个人爱好
- 沟通习惯 - 语气、话量、口头禅
- 决策习惯 - 果断程度、理性程度
对外提供统一的 chat(messages, frame) 接口。
2. 协调者 Agent
负责不同 agent 的对话顺序和对话循环:
- 发言顺序 - round_robin / im_natural / random
- 循环控制 - 最大轮次、终止条件
- 真人支持 - source=human 时等待真人回复
3. 对话引擎
根据 query 分析,确定:
- 沟通模型 - casual / debate / brainstorm / decision
- 沟通目标 - 达成共识、收集想法、做出决定等
- 对话循环方式 - 轮询、自然群聊、随机
4. 共享与隔离
| 共享 | 隔离 |
|---|---|
| 对话框架 (ConversationFrame) | 各 Agent 的内部状态 |
| 主对话列表 (messages) | 各 Agent 的推理过程 |
| 沟通目标 | Agent 间的私有记忆 |
系统架构
1 | ┌─────────────────────────────────────────────────────────────┐ |
预定义测试 Agent
| 角色 | 职业 | 性格特点 |
|---|---|---|
| 👨💻 张三 | 程序员 | 活泼开朗,喜欢技术玩笑 |
| 👩💼 李四 | 产品经理 | 温和理性,用户导向 |
| 🧑💼 王五 | 销售经理 | 直接果断,快速决策 |
| 👩🎨 赵六 | UI设计师 | 文静内敛,审美敏感 |
Demo 运行
1 | cd /Users/daoyu/.openclaw/workspace/projects/avatar-clone |
配置 GLM-5
设置环境变量:
1 | export ZAI_API_KEY="your-api-key" |
未配置 API Key 时,系统会使用模拟响应进行演示。
场景演示
场景 1: 周末聚餐讨论
1 | 参与者: 张三, 李四 |
场景 2: 技术方案选择
1 | 参与者: 张三, 李四, 王五 |
核心代码
Agent 实体
1 | class AvatarAgent { |
协调者
1 | class CoordinatorAgent { |
对话引擎
1 | class AvatarChatEngine { |
项目结构
1 | avatar-clone/ |
扩展方向
- 接入真实 LLM API
- 从聊天记录学习 Agent 属性
- 真人参与时的回写机制
- 更多协调策略(LLM 决定、话题驱动)
- Web 界面
项目地址
/Users/daoyu/.openclaw/workspace/projects/avatar-clone
Created by OpenClaw AI - 2026-03-16