MiroFish 核心技术深潜:重塑 AI 仿真的工程范式

0. 引言:当“黑天鹅”在比特世界被驯服

案例:跨平台连锁舆情博弈。
模拟脚本:Reddit 用户发现某企业存在劳工权益隐患,随后 Twitter 上的意见领袖(KOL)介入转发。

这是一个典型的黑天鹅场景。在大部分 AI 实验中,这仅仅意味着两段无关联的文本生成。但在 MiroFish 的内核中,这一动作触发了一连串复杂的并发反应:

  1. SimulationManager 锁定了相关的 200 个数字 Agent;
  2. Zep GraphRAG 瞬间调取了该企业过去 3 年在知识图谱中沉淀的 1500+ 条拓扑事实;
  3. ReportAgent 开启了它的 ReACT 循环,开始在一个并行的访谈空间里向虚拟的“前雇员 A”追问内幕。

最终,系统产出了一份长达 50 页的深度预判:风险会在 18 小时后穿透行业壁垒,触达监管层。

MiroFish 的护城河不在于“生成文本”,而在于一套从本体建模、行为编排、逻辑推理到实时感知的完整工程闭环。

cover_deepdive.png


1. 群体智能的编排艺术:SimulationManager 的多维律动

V
SimulationManager 是整个仿真的生命历程指挥官,它负责解决“如何让上百个 LLM 实例协同工作且不发生逻辑崩坍”的问题。

(1) 关键工程入口

  • 入口方法SimulationManager.prepare_simulation(requirement, doc_text)
  • 核心逻辑:该方法整合了 ZepEntityReader 读取本体图谱、OasisProfileGenerator 批量生成人设以及 SimulationConfigGenerator 注入环境配置。

(2) 基于 GraphRAG 的“灵魂注入”

在 MiroFish 中,实体(Entity)不仅仅是数据库里的一行,它们必须具备“活性”。这通过其内部的 OasisProfileGenerator 模块实现:

  • 信息反哺 (Information Enrichment):在创建一个 Agent 之初,系统会针对该实体名在 Zep 图谱中发起混合搜索,捕获其所有历史背景。
  • 人格重塑:利用 LLM 生成包含社会背景、性格心理(MBTI 锚定)及核心记忆的多维 Persona。

(3) 并发编排生命周期图

@startuml
participant "SimulationManager" as SM
participant "ZepReader" as ZR
participant "ProfileGen" as PG
participant "ConfigGen" as CG
participant "Runner" as SR

SM -> ZR: fetch_defined_entities()
ZR --> SM: Array<EntityNode>

group 并发加速层 (ThreadPoolExecutor)
    SM -> PG: generate_profiles_from_entities()
    PG -> Zep: get_entity_context(uuid)
    Zep --> PG: Facts & Relationships
    PG -> LLM: 构建 2000 字维度 Persona
    LLM --> PG: profiles.json
end

SM -> CG: generate_config(requirement)
CG --> SM: simulation_config.json

SM -> SR: start_simulation(simulation_id)
SR -> Subprocess: 拉起 OASIS 仿真实例
@enduml

2. 智慧报告的诞生:ReportAgent 与 ReACT 思考拓扑

当仿真产生万级海量数据时,如何提取有价值的洞察?ReportAgent 采用了 ReACT (Reasoning + Acting) 模式,解决了传统总结型 AI “知其然不知其所以然”的痛点。

(1) 关键工程入口

  • 入口方法ReportAgent._generate_section_react(section_title, plan)
  • 工具解析入口ReportAgent._parse_tool_calls(response) —— 负责从 LLM 混杂的输出中精准提取 XML/JSON 格式的工具指令。

(2) ReACT 循环:深度调研员模式

Agent 不再是简单的总结者,而是调研员:

  • Thought (思考):通过 ReportLogger 记录分段逻辑,识别信息缺失点。
  • Action (行动/工具带)
    • InterviewAgents:这是技术难点。它会创建一个临时的访谈子线程,在那个空间里与特定的 Agent 进行“超越脚本”的 1 对 1 提问。
    • InsightForge:调用 Zep 的深度搜索,追踪“传播链条”。
  • Observation (观察):解析访谈结果及其与历史事实的冲突。

(3) ReACT 循环状态机

@startuml
[*] --> Thinking
Thinking --> TakingAction : 需要更多数据
TakingAction --> CallingTool : 调用 Interview/Search
CallingTool --> Observing : 获取工具返回值
Observing --> Thinking : 整合 Observation
Thinking --> FinalAnswering : 信息足够
FinalAnswering --> SelfReflection : 内容完整性审计
SelfReflection --> [*] : 输出 Markdown
@enduml

3. 数据血脉:Zep GraphRAG 与长期记忆架构

没有记忆的仿真只是随机漫步。MiroFish 的认知核心是 Zep Cloud 驱动的 GraphRAG 系统,解决了传统 RAG 无法处理“事实演变”的问题。

(1) 关键工程入口

  • 核心模块ZepToolsService
  • 深度搜索入口ZepToolsService.insight_forge(query) —— 实现子问题自动拆解与语义+关系双路召回。

(2) 时序事实管理 (Temporal Facts)

MiroFish 存储的是拓扑事实轨迹。每个关系(Edge)都携带了元数据:

  • valid_at:事实何时生效。
  • invalid_at / expired_at:事实何时被后续动作覆盖。
    这使得通过 PanoramaSearch,系统可以清晰地识别出某项声明是在何时被新事实取代的,精准还原舆情的动态演变。

(3) GraphRAG 知识闭环流程

@startuml
agent "Simulation Runner" as SR
database "Zep Graph" as Zep
node "ReportAgent" as RA

SR -> Log: 捕获 Agent A 动作
Log -> Zep: upsert_edge(Fact: A 支持 B)
Zep -> Zep: 自动提取实体/关系
RA -> Zep: PanoramaSearch(Query: 舆情趋势)
Zep --> RA: 返回带有时序权重的 Facts
RA -> RA: 生成深度洞察
@enduml

4. 前端交互驱动:实时可视化状态同步

前端不仅仅是 UI,它是万级分布式异步任务的“监控器”。

(1) 关键工程入口

  • 状态视图SimulationRunView.vue
  • 图谱渲染组件GraphPanel.vue (集成 D3.js)
  • 核心逻辑:通过 refreshGraph 轮询配合 D3 的 force-directed 布局实现增量节点的平滑展示。

(2) 状态机同步逻辑

前端通过严密的轮询与异步任务绑定,将后端复杂的 SimulationRunner 过程转化为可见的进度条和呼吸灯。

  • D3.js 增量更新:采用“进入-更新-退出(Enter-Update-Exit)”策略,确保上千节点在大负载下依然流畅。

5. 工程难点解析

(1) 冗余与重试机制 (_call_with_retry)

由于 Zep Cloud 与 LLM API 的不稳定性,ZepEntityReader 实现了一套带指数退避(Exponential Backoff)的重试机制,确保在网络波动时仿真序列不中断。

(2) 章节内聚与上下文管理

为了解决长报告的“语义漂移”,我们在 ReportAgent 中设计了摘要注入机制:生成第 N 章节时,会自动携带前 N-1 章节的核心摘要,确保整篇报告的逻辑一致性。


6. 结语

SimulationManager 的编排起点,到 Zep GraphRAG 的记忆中枢,再到 ReportAgent 的智慧产出,MiroFish 正在定义一种新的 AI 仿真范式。这不仅仅是代码的堆砌,而是对复杂社会系统在数字世界的底层重构。

—>

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐