sequenceDiagram
  autonumber
  actor U as 用户
  participant UI as UI面板(P4)
  participant Core as 引擎(P1a+P1b)
  participant LLM as 大模型底座
  participant Memory as 记忆系统(L0/L1/L2)
  participant Sandbox as Skill沙箱(Deno)
  participant Browser as 浏览器内核(P2)

  U->>UI: "对比 A 和 B 公司最新财报"
  UI->>Core: 发送复杂任务请求

  rect rgb(255, 247, 237)
    Note over Core,LLM: Think 阶段：大模型拆解目标
    Core->>LLM: 意图分析 + 生成执行计划 (Plan)
    LLM-->>Core: 返回步骤列表：① 搜 A 财报 → ② 搜 B 财报 → ③ 对比汇总
  end

  rect rgb(254, 242, 242)
    Note over Core,Browser: ReAct 循环：逐步执行，每步评估
    loop 针对每个拆解步骤（Step 1..N）
      Core->>Sandbox: Act：加载当前步骤对应的 Skill
      Sandbox->>Browser: 执行 BrowserAction（操作页面）
      Browser-->>Sandbox: 返回页面反馈（Observation）
      Sandbox-->>Core: Skill 执行结果
      Core->>Memory: 写入 L1 短期记忆（RingBuffer）
      Core->>LLM: Critic 评估：当前步骤是否成功？
      LLM-->>Core: 决断：继续下一步 / 纠错重试
    end
  end

  Core->>LLM: 汇总所有步骤结果，生成最终报告
  LLM-->>Core: 输出多维度财报对比分析
  Core->>Memory: 将成功路径写入 L2 长期记忆（SQLite）
  Core-->>UI: 返回完整分析报告
  UI-->>U: 界面展示多维度对比结果
