掘金 人工智能 05月22日 11:03
🏘️AI 小镇角色生活系统
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

AI小镇是一个基于JSON、MCP和Langchain架构的角色模拟系统。它模拟小镇中角色的日常生活,每个角色都有独立的状态,如生活节奏、目标、情绪、体力和金钱。系统支持自动或交互式地模拟角色的生活行为,包括工作、饮食、社交等。项目结构清晰,包括角色数据、数据集、角色编辑器、人物动作工具等模块。角色模型包含详细的个人信息、日常安排、目标和人际关系,通过MCP工具可以更新角色的状态,食物系统影响角色的体力和情绪。系统还支持角色间的自动对话和状态更新逻辑,并具有丰富的扩展方向。

🏘️ **角色驱动**:AI小镇的核心在于模拟角色的日常生活,每个角色都拥有独特的JSON状态数据,包括姓名、年龄、职业、性格、兴趣爱好、体力、金钱、情绪等,这些数据驱动着角色的行为。

📦 **模块化架构**:项目采用模块化架构,将角色数据、食物数据、工作数据等分别存储在不同的JSON文件中。同时,提供角色编辑器、人物动作工具等辅助模块,方便开发者进行角色管理和行为模拟。

🧠 **状态更新与交互**:系统通过MCP工具更新角色的位置、日常安排、体力、情绪和金钱等状态。角色之间可以进行自动对话,对话记录存储在数据库中,为后续分析和改进提供数据支持。

🎯 **扩展性强**:项目具有良好的扩展性,未来可以扩展饥饿系统与能量消耗、角色职业成长与技能系统、食物库存与消耗逻辑、性格影响决策等功能,从而使角色模拟更加真实和有趣。

🏘️ AI 小镇角色生活系统

这是一个构建在 JSON + MCP + 多代理 + langchian全家桶架构基础上的小镇角色模拟系统。每个角色拥有独立的生活节奏、目标、情绪、体力、金钱等状态,支持自动或交互式模拟其生活行为。

https://github.com/Michaeljiekexuan/ai_town

📦 项目结构

project/├── human/ # 存储角色 JSON 状态数据│ └── jack.json│ └── anna.json│ └── tom.json│ └── emily.json│ └── yuri.json│├── dataset/ │ └── foods.json # 食物菜单 JSON 数据│ └── jods.json # 工作列表菜单│ └── town_news.json # 新闻菜单│├── character_editor # 角色mcp工具│├── humen # 人物动作工具│├── jack.py # 角色启动器├── test.py # 角色测试器├── db_config.py # 内容存储数据库配置├── db_utils.py # 存储工具├── emily # 小镇新闻构造工具│├── app.py # flask启动 (对接前端页面)├── serve.py # 套接字服务 (对接unity游戏)│├── main.py # 启动交互或自动仿真代理系统(暂无开发)

🧠 角色模型(human/*.json)

每个角色包含以下字段:

{  "name": "anna",  "age": 20,  "gender": "female",  "job": "图书管理员",  "personality": {    "introversion": 0.6,    "friendliness": 0.95,    "curiosity": 0.8  },  "language_style": "你说话有一点可爱,喜欢开玩笑、互怼。并且有点计较",  "hobbies": [    "喜欢运动",    "享受美食",    "购物"  ],  "physical": 13,  "money": 640,  "recent_emotion": 5,  "today_jods": [    {      "job": "图书馆管理员",      "time": "17:00",      "location": "图书馆",      "lose": {        "physical": -1,        "emotion": 1      },      "give": {        "money": 60      }    },    {      "job": "与Jack在小镇公园散步放松,同时记录生活中的美好瞬间,为Yuri挑选礼物寻找灵感。",      "time": "14:00",      "location": "小镇公园",      "lose": {        "physical": -2      },      "give": {        "money": 0      }    }  ],  "current_thought": "在查找隐私保护资料时,发现差分隐私技术可能适用于我们的小游戏!得赶紧和Jack讨论如何在收集口音样本时加入噪声扰动,既保护隐私又能保持趣味性~(核心训练时腹部好酸!但想到能和Jack讨论新点子就超兴奋!)",  "daily_routine": {    "08:00": "吃早餐并计划一天的活动,同时回顾昨天的工作进展和Jack讨论小游戏规则设计细节,适当休息放松心情",    "12:00": "与Jack在小镇餐厅享用午餐,讨论关于AI艺术结合项目的创意方向,并分享各自的感受",    "19:00": "休息:尝试用新学的蒜香番茄酱搭配意大利面,和Jack分享烹饪心得",    "24:00": "睡觉",    "18:00": "与Jack一起准备晚餐,并聊聊一天的感受,享受轻松愉快的时光"    .....  },  "current_activity": "与Jack一起准备晚餐,并聊聊一天的感受,享受轻松愉快的时光",  "goals": [    "提升自己的绘画和设计能力",    "和jack建立深厚的感情",    "记录生活中的美好片刻",  ],  "location": "厨房",  "relationship": {    "jack": "男朋友"  },  "memory": [    "[记忆总结于 2025-05-20]: ....."  ]}

⚙️ MCP 工具(可被角色调用)

工具名功能
update_location(name, location)更改角色当前位置
update_daily_routine_batch(name, updates)批量更新日程
delete_daily_routine_batch(name, times)批量删除日程
update_physical(name, delta)调整体力值(最小1,最大10)
update_emotion(name, delta)调整情绪等级(最小1,最大5)
update_money(name, delta)更改角色金钱值
manage_today_jobs(name, jobs)增删今天的工作安排
还有很多.....

🍱 食物系统

{  "name": "香煎三文鱼",  "price": 80,  "physical": 3,  "emotion": 2,  "description": "新鲜三文鱼煎至外酥里嫩,营养丰富"}

食物可以影响:

1.physical: 体力值(1~10)

2.recent_emotion: 情绪等级(1~5)

3.money: 金钱减少

角色会根据当前状态选择合适食物(如情绪低优先选提情绪食物)。

👥 多角色交互

系统支持角色间自动对话对话记录会自动写入数据库(MySQL),结构大致为:

CREATE TABLE conversation_log (  id INT AUTO_INCREMENT PRIMARY KEY,  agent1 VARCHAR(32),  agent2 VARCHAR(32),  content TEXT,  timestamp DATETIME DEFAULT CURRENT_TIMESTAMP);

🎯 状态更新逻辑建议

1.情绪值范围:1(糟糕)到 5(极好),低于 1 将被重设为 1

2.体力值范围:1 到 10,最低保持在 1

3.金钱无上限,可为负数(用于欠债逻辑扩展)

📌 后续可扩展方向

✅ 饥饿系统与能量消耗

✅ 角色职业成长与技能系统

✅ 食物库存与消耗逻辑

✅ 性格影响决策:节俭、享乐、冲动

✅ 自动日程生成(已实现)

🛠️ 事件触发与情境应变(如突发事故)

📱 Unity 渲染角色状态(通过 socket 连接)

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI小镇 角色模拟 Langchain MCP JSON
相关文章