
MiroFish-Offline 画像生成器全解一次看懂数百个独特 AI Agent 人设如何批量生成【免费下载链接】MiroFish-OfflineOffline multi-agent simulation prediction engine. English fork of MiroFish with Neo4j Ollama local stack.项目地址: https://gitcode.com/gh_mirrors/mi/MiroFish-Offline项目简介本地多智能体模拟引擎 MiroFish-OfflineMiroFish-Offline 是一款完全本地化的多智能体Multi-Agent模拟与舆情预测引擎基于 Neo4j Ollama 本地技术栈构建无需任何云端 API。它的核心能力是上传一份文档新闻稿、政策草案、财务报告系统就能从文档中抽取实体、构建知识图谱并批量生成数百个性格各异、背景独特的 AI Agent 人设在模拟社交平台上发帖、评论、争论、转变观点逐小时演化舆情。这篇文章聚焦项目里最神奇的一环——OASIS 画像生成器它如何把知识图谱里的一个普通实体节点变成一个拥有年龄、职业、MBTI、说话风格和完整人生记忆的社交账号。一、人设生成在整体流程中的位置MiroFish-Offline 的完整工作流分为五步人设生成画像生成是第 2 步承上启下Graph Build从文档中抽取实体人物、机构、事件与关系在 Neo4j 中构建知识图谱Env Setup本文章主角为图谱中的每个实体生成独特的 Agent 画像——个性化性格、观点倾向、反应速度、影响力级别、事件记忆SimulationAgent 在模拟社交平台上互动系统实时追踪情绪演化与话题传播ReportReportAgent 分析模拟后的环境生成结构化分析报告Interaction与任意 Agent 对话追问它为什么那样发帖前端的交互界面位于 Step2EnvSetup.vue生成完成后可点击每个画像卡片弹窗查看完整的人设详情bio、persona、MBTI、关注话题等。二、从文档实体到人设的完整数据流整个流程可以概括为知识图谱实体 → 上下文富集 → LLM 生成画像 → 校验/修复 → 平台格式落盘。核心实现集中在 oasis_profile_generator.py 一个文件中共约 1140 行由两个关键结构组成OasisAgentProfile数据类画像的结构化载体包含 user_id、username、bio、persona、age、gender、mbti、country、profession、interested_topics 等字段OasisProfileGenerator类生成逻辑主体从单个画像到批量并发生成的全部代码都在这里调用链路为simulation_manager.py模拟流程的第二阶段→ 生成器 → 最终保存为 OASIS 平台要求的文件格式。另外 API 层也提供了独立的画像生成接口见 simulation.py。三、核心代码实现拆解5 个关键设计1️⃣ 实体筛选谁有资格成为 Agent生成器并不直接使用所有节点而是依赖 entity_reader.py 中的EntityReader.filter_defined_entities()方法源码只保留带有自定义标签的节点标签仅有默认Entity/Node的会被跳过可选按实体类型白名单过滤如只要student、university为每个实体富集related_edges关联的事实/关系和related_nodes关联节点及其摘要得到的 EntityNode 对象携带了名称、标签、摘要、属性和邻域信息——这是后续人设有据可依的原料。2️⃣ 上下文富集让画像言之有物这是本项目人设质量高的关键。生成器通过_build_entity_context()方法源码为每个实体组装四段上下文上下文段落来源作用Entity Attributes节点属性基本事实Related Facts and Relationships实体关联边人物与事件的直接关系Related Entity Information关联节点摘要社交圈层背景Knowledge Graph Retrieved Facts混合检索更广的关联信息第四段最值得关注_search_graph_for_entity()源码会构造一句关于 XX 的所有信息、活动、事件、关系和背景的查询调用 GraphStorage 的混合检索0.7 × 向量相似度 0.3 × BM25 关键词分别检索边事实和节点摘要去重后拼入提示词。也就是说每个人设都不是凭空捏造而是有据可查地还原了实体在原文档中的真实处境。3️⃣ 双轨提示词个体 vs 机构生成器区分了两大类实体使用完全不同的系统提示词个体类student、professor、journalist、activist等 9 种见 INDIVIDUAL_ENTITY_TYPES由_build_individual_persona_prompt()生成提示词要求 LLM 输出一份约 2000 词的详细画像涵盖基本信息年龄/职业/教育背景/所在地、个人经历、性格特征MBTI、社交媒体行为习惯、立场与观点、口头禅等独特特征、以及个人记忆该人物与事件的关联及既有反应机构/团体类university、governmentagency、mediaoutlet等 9 种见 GROUP_ENTITY_TYPES由_build_group_persona_prompt()生成提示词生成机构官方账号式画像——固定虚拟年龄 30、性别other、严谨保守的 MBTI 风格重点刻画账号定位、话语风格、发布节奏与机构记忆两种提示词都强制要求返回 JSON 格式且所有字符串字段不得包含未转义的换行符。4️⃣ 三重容错保证 100% 产出批量生成数百个人设时任何一次 LLM 调用失败都不能让整体流程崩掉。_generate_profile_with_llm()源码实现了层层递进的防御最多 3 次重试每次重试降低 temperature0.7 → 0.6 → 0.5让输出更稳定并做线性退避JSON 修复针对截断自动闭合括号和字符串、换行污染正则清洗字符串值、部分信息提取只抢救出 bio/persona 也算成功等场景_try_fix_json()有多级修复策略规则兜底LLM 彻底失败时_generate_profile_rule_based()按实体类型模板生成基础画像学生 → 18-30 岁、学术话题专家 → 35-60 岁、ENTJ/INTJ机构 → 固定 ISTJ保证每个实体必有一个画像5️⃣ 并发生成 实时落盘generate_profiles_from_entities()源码是整个批处理的引擎使用ThreadPoolExecutor线程池并发生成默认parallel_count5可在调用处调整数百个实体并行流水线作业每完成一个画像立即通过进度回调刷新前端百分比实时写文件每生成一个画像就重写一次输出文件Reddit 用 JSON、Twitter 用 CSV即使中途中断也不丢失已生成的内容单个实体失败时自动降级为 fallback 画像不阻塞整体流程四、输出格式OASIS 平台的双轨适配最终画像必须严格符合 OASIS 模拟平台的读取规范由save_profiles()源码分平台处理Reddit 格式JSON包含user_idOASIS 匹配 Agent 的关键、username、bio、persona、karma、age、gender、mbti、country 等字段并自动补全默认值、规范化性别字段为male/female/otherTwitter 格式CSV表头为user_id, name, username, user_char, description。其中user_char是注入 LLM 系统提示词的完整画像决定 Agent 如何思考行动description是对外展示的短简介——一个内用、一个外用五、如何在自己项目中使用MiroFish-Offline 开箱即用最简单的启动方式是 Docker详见 README.mdgit clone https://gitcode.com/gh_mirrors/mi/MiroFish-Offline cd MiroFish-Offline cp .env.example .env docker compose up -d然后依次拉取 Ollama 模型qwen2.5:32b和nomic-embed-text打开http://localhost:3000在 Web 界面上传文档 → 构建图谱 → 进入 Env Setup 步骤就能亲眼看着控制台逐个滚动输出[Generated] 张三 (student)……的人设生成过程进度条与画像卡片实时刷新。如果你只想复用画像生成能力也可以直接实例化生成器from app.services.oasis_profile_generator import OasisProfileGenerator generator OasisProfileGenerator() # 读取 .env 中的 Ollama 配置 profiles generator.generate_profiles_from_entities( entitiesentities, # EntityReader 筛选出的实体列表 use_llmTrue, # False 则走纯规则模板 parallel_count5, realtime_output_pathreddit_profiles.json )总结MiroFish-Offline 的 OASIS 画像生成器之所以能批量产出数百个不重复、有记忆、有立场的 AI Agent 人设靠的是四个工程决策知识图谱混合检索提供真实上下文、个体/机构双轨提示词、重试JSON修复规则兜底的重度容错、以及线程池并发实时落盘的批处理架构。整套代码完全本地运行是研究大规模 Agent 人格生成这一课题非常值得精读的开源实现。 关键文件速查画像生成器 oasis_profile_generator.py实体筛选 entity_reader.py流程编排 simulation_manager.py前端画像展示 Step2EnvSetup.vue【免费下载链接】MiroFish-OfflineOffline multi-agent simulation prediction engine. English fork of MiroFish with Neo4j Ollama local stack.项目地址: https://gitcode.com/gh_mirrors/mi/MiroFish-Offline创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考