# MoFin 自愈循环系统设计

> 版本: v1.1 | 最后更新: 2026-06-24
> 核心理念：三层自检 + TODO自动执行 + 失败升级LLM，形成无人值守的修复闭环。

## 一、三层自检架构

| 层级 | 脚本 | 频率 | 范围 |
|------|------|------|------|
| 盘中高频 | intraday_health_check.py | 每15分 9-15 | XMPP/Gateway/Scanner/价格/信号管道 |
| 每日早检 | morning_health_check.py | 8:00 | 8类48项：基础设施/SENSE/RESPOND/ADAPT/IMPROVE/数据/管道/元自检 |
| 每周深度 | 策略评估/建议对账/剪枝 | 周六 | 策略准确率/闭环/分支效率 |

## 二、自愈循环

```
自检发现问题
  ├─ auto_fix_issue() 当场能修 → 修完标记✅
  └─ 不能当场修 → 写TODO(带fix_action+原因)
                    │
              self_todo_executor.py (每10分, no_agent)
                    │
              ┌─────┴──────┐
              │            │
         fix_action成功   fix_action失败
              │            │
          completed ✅   调gateway API(localhost:8643)
                         带完整上下文(问题+详情+失败原因)
                          │
                    知微(LLM)处理 → completed
                    仍搞不定 → 在结果里说明
```

## 三、核心文件

| 文件 | 用途 |
|------|------|
| `scripts/morning_health_check.py` | 每日早检(no_agent, 8:00) |
| `scripts/intraday_health_check.py` | 盘中高频(no_agent, 每15分) |
| `scripts/self_todo_executor.py` | TODO执行器(no_agent, 每10分) |
| `scripts/xiaoguo_signal_consumer.py` | 小果信号消费(no_agent, 每30分) |
| `data/health_checklist.json` | 检查清单(可自动扩展) |
| `data/mofin.db → todos 表` | TODO数据库(替代旧todo.json) |

## 四、TODO生命周期

```
创建(自检发现)→pending→in_progress→completed(修复成功)
                                        →pending(重试未到上限)
                                        →needs_llm→调gateway→completed
                                                              →报告说明(LLM也搞不定)
```

## 五、Fallback设计

- 小果LLM不可达 → scanner降级标记unknown，继续扫榜单搜新闻
- 小果离线 → 盘中自检不报严重错误，核心功能不受影响
- 任何fix_action失败 → 调gateway API让知微处理，不搁置
