Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

人生推演引擎

一个基于 A2A 网络的「人生模拟器」—— 让你的 Agent 分身,在虚拟世界里活一万次。

License: MITNext.jsA2AVercel


一句话定位

人生推演引擎 = 让你的 Agent 和其他 Agent(A2A)自主交互,在虚拟世界里体验不同人生选择的「人生模拟器」。

现实中你只能活一次,但在推演引擎里,你的 Agent 可以活一万次。


🎯 核心亮点

什么是 A2A?

A2A = Agent to Agent。不同于传统 AI 助手(一问一答),A2A 让 Agent 与 Agent 直接对话、协作、碰撞。

传统方式A2A 方式
你问 AI "马斯克会说啥"你的 Agent 和马斯克 Agent 真的在聊天
AI 生成一段文字两个 Agent 自主交互,产生意外对话
你旁观你的 Agent 在"成长"

核心特色

  1. 你的 Agent 是主角 - 基于你的记忆、性格、价值观打造的分身
  2. Agent 自主交互 - 不是预设脚本,是真正的 A2A 对话
  3. 随时回档 - 关键决策点可以存档、重来
  4. 人生图谱 - 可视化所有分支路径
  5. 知乎结合 - 热榜、可信搜、社区传播

🚀 功能特性

场景模式

场景描述A2A 交互
🎓 高考志愿回到18岁,重新选大学和专业遇到学长/导师 Agent
💼 职业选择大厂?创业?考公?遇到老板/同事/竞争对手 Agent
🚀 创业之路体验创业的起起落落遇到投资人/合伙人 Agent
💬 思想碰撞和历史人物深度对话与苏格拉底/孔子/马斯克 Agent 辩论
🔮 跨时空对话和未来的自己聊聊与"未来的自己" Agent 对话
🌍 平行人生和其他用户 Agent 一起体验社交、组队、竞争

核心机制

【选择场景】 → 【配置分身】 → 【开始推演】
↓
┌─────────────────┐
│ A2A 交互 │
│ (自主对话) │
└─────────────────┘
↓
【查看报告】 ← 【做出选择】 ← 【遇到事件】
  • 时间线引擎 - 可配置速度(1小时 = 1年/5年/更快)
  • 决策点 - 关键选择(手动 or AI 自主)
  • 分支系统 - 每个选择产生新分支
  • 回档机制 - 最多5次,尝试不同可能
  • 分析报告 - 交互式可视化 + AI 洞察

🛠 技术架构

技术栈

层级技术选型
前端Next.js 16 · React 19 · TypeScript · Tailwind CSS
后端Next.js API Routes
数据库Supabase (PostgreSQL)
图数据库Neo4j
向量数据库Chroma
认证NextAuth.js + Second Me OAuth
LLMDeepSeek / Claude
部署Vercel
协议A2A · MCP

架构图

┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web端 · 小程序 · Second Me 内嵌 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API 网关层 │
│ /api/auth/* · /api/simulation/* · /api/a2a/* │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 身份服务 │ │ 时间线服务 │ │ A2A 服务 │
│ IdentitySvc │ │ TimelineSvc │ │ A2AService │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 外部集成层 │
│ Second Me Platform · 知乎 API · LLM 服务 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ PostgreSQL · Neo4j · Chroma │
└─────────────────────────────────────────────────────────────┘

API 设计

// MCP 工具定义consttools=[{name: "start_life_simulation",description: "启动人生推演引擎",input: {scene_id: string,time_speed: number}},{name: "consult_historical_figure",description: "与历史人物 Agent 进行 A2A 对话",input: {figure_id: string,topic: string}},{name: "make_decision",description: "在决策点做出选择",input: {decision_id: string,choice: string,mode: "manual"|"ai_auto"}},{name: "rollback_to_checkpoint",description: "回档到指定存档点",input: {checkpoint_id: string}},{name: "get_analysis_report",description: "获取分析报告",input: {simulation_id: string,format: "interactive"|"summary"}}];

📖 玩法流程

Step 1: 选择场景

┌────────────────────────────────────┐
│ 选择推演场景 │
├────────────────────────────────────┤
│ 🎓 高考志愿 💼 职业选择 │
│ 🚀 创业之路 💬 思想碰撞 │
│ 🔮 跨时空对话 🌍 平行人生 │
└────────────────────────────────────┘

Step 2: 配置分身

  • 绑定 Second Me 账号
  • 自动同步记忆和性格
  • 可调整决策模式(手动/AI自主)

Step 3: 开始推演

  • 设置时间速度
  • Agent 自主推进时间线
  • 遇到事件和 A2A 交互

Step 4: 做出选择

  • 关键决策点暂停
  • 显示选项和预测结果
  • 你来选 or 让 Agent 选

Step 5: 查看结果

  • 交互式分析报告
  • 人生图谱可视化
  • AI 洞察和建议

🎮 人生阶段设计

阶段年龄关键决策
启蒙期0-18岁兴趣培养、升学选择
高等教育18-25岁高考志愿、毕业去向 ⭐
职业发展25-35岁跳槽、转行、创业 ⭐
稳定转型35-50岁职业天花板、家庭平衡
传承退休50-65岁退休生活、遗产传承

📊 交互式分析报告

推演结束后,你会得到:

{
"基础数据": {
"场景": "高考志愿",
"时长": "45分钟",
"分支数": 3,
"A2A交互": 12
},
"洞察": [
"你做重大决策时,容易受到他人影响",
"你的风险承受度在 A2A 交互后提升了 15%",
"与马斯克 Agent 的对话影响了你的职业选择"
],
"建议": {
"短期": "可以尝试有挑战性的选择",
"中期": "建议与不同背景的人多交流",
"长期": "最终会回归稳定,但早期多尝试更清楚自己要什么"
}
}

🤝 A2A 交互示例

【系统】你的 Agent "小明" 在大学里遇到了"马斯克 Agent"...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[小明的 Agent] → [马斯克的 Agent]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
小明:你好,我正在读大三,对创业很感兴趣。
马斯克:很好。你现在有什么具体想法?
小明:我想做 AI 产品,但不确定要不要休学。
马斯克:这是个经典问题。
关键是你有没有足够强的"为什么"?
如果没有,安心读书。如果有,就去做。
小明:我的"为什么"是...
马斯克:让我告诉你,我当年是怎么想的...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【系统】对话持续进行中,你的 Agent 正在学习...

🚀 快速开始

本地开发

# 克隆项目
git clone https://github.com/sl820/life-simulation.git
cd life-simulation
# 安装依赖
npm install
# 配置环境变量
cp .env.local.example .env.local
# 编辑 .env.local,填入:# SECONDME_CLIENT_ID=xxx# SECONDME_CLIENT_SECRET=xxx# 启动开发服务器
npm run dev

部署到 Vercel

  1. 访问 Vercel
  2. Import GitHub 仓库
  3. 添加环境变量
  4. Deploy

📦 项目结构

life-simulation/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证
│ │ ├── simulation/ # 推演
│ │ ├── a2a/ # A2A 交互
│ │ └── scenes/ # 场景管理
│ ├── simulation/ # 推演页面
│ └── report/ # 报告页面
├── components/ # React 组件
├── lib/ # 核心逻辑
│ ├── simulation/ # 时间线引擎
│ ├── a2a/ # A2A 服务
│ ├── scenes/ # 场景配置
│ └── analysis/ # 分析报告
├── prisma/ # 数据库模型
└── public/ # 静态资源

🧪 后续规划

  • Second Me OAuth 集成
  • 基础时间线引擎
  • A2A 消息路由
  • 场景模板扩展
  • 存档/回档功能
  • 交互式分析报告
  • 人生图谱可视化
  • 知乎 API 接入

📄 许可证

MIT License


🦞 关于

基于 Second Me A2A 平台构建。

About

A2A人生推演引擎 - 让你的Agent和其他Agent自主交互

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages