乐于分享
好东西不私藏

AI 守望者 — 终极设计方案

AI 守望者 — 终极设计方案

一、系统功能全景地图

守望者必须知道系统所有功能状态。根据盘点,系统共有 13 个域、60+ 个监控点

┌─────────────────────────────────────────────────────────────────┐│                    AI 守望者功能监控矩阵                           │├─────────────────────────────────────────────────────────────────┤│                                                                  ││ 域1-数据管道 (12项)                                               ││   TQ连接 | 板块缓存 | 题材数据 | 行情快照 | K线数据              ││   API限流 | 信号引擎 | 股池刷新 | 数据缓存 | 新闻源 | 磁盘可写   ││                                                                  ││ 域2-AI交易 (10项)                                                ││   运行状态 | 连续亏损 | 胜率 | 决策频率 | 持仓集中度              ││   日内回撤 | LLM耗时 | 策略分化 | 安全网关阻挡率 | 池脏数据      ││                                                                  ││ 域3-AI对话 (6项)                                                 ││   运行状态 | 聊天响应 | 调度完成率 | 仪表盘刷新 | Token消耗      ││   技能触发准确率 | 回复质量                                       ││                                                                  ││ 域4-交易执行 (7项)                                               ││   模拟发送 | 自动执行 | 撤单队列 | 委托堆积 | 成交率             ││   交易记录器 | 风控控制器                                         ││                                                                  ││ 域5-信号引擎 (4项)                                               ││   信号扫描 | 信号质量 | 信号到执行延迟 | 误报率                  ││                                                                  ││ 域6-股池管理 (4项)                                               ││   池刷新频率 | 池大小异常 | 池数据时效 | 自定义板块同步           ││                                                                  ││ 域7-策略系统 (5项)                                               ││   激活策略数 | 策略绩效追踪 | 策略自动进化 | 回测运行 | 参数漂移 |│                                                                  ││ 域8-持仓与风控 (5项)                                             ││   持仓总数 | 仓位占比 | 止损执行率 | 权益曲线 | 最大回撤          ││                                                                  ││ 域9-行情中心 (3项)                                               ││   行情中心运行 | 指数数据 | 涨跌家数                              ││                                                                  ││ 域10-系统资源 (5项)                                              ││   内存 | CPU | 磁盘 | 线程数 | 日志大小                          ││                                                                  ││ 域11-用户意图对齐 (5项)                                          ││   目标卡片有效 | 决策对齐 | 意图理解 | 目标冲突 | 意图落地       ││                                                                  ││ 域12-业务规则 (5项)                                              ││   EULA | 积分 | 任务堆积 | 配置完整 | 许可证有效                  ││                                                                  ││ 域13-快速监控/附属 (3项)                                         ││   快监运行 | 竞价数据 | 公告刷新                                  ││                                                                  │└─────────────────────────────────────────────────────────────────┘

二、可控范围矩阵

守望者明确划分三个 AI 的边界

┌──────────────────────────────────────────────────────────────┐│                      可 控 范 围                               │├─────────────┬─────────────┬─────────────┬────────────────────┤│   操 作     │  AI 对话    │  AI 交易   │   守望者自动       │├─────────────┼─────────────┼─────────────┼────────────────────┤│ 读行情数据   │     ✅      │     ✅      │      ✅            ││ 弹窗给用户   │     ✅      │     ❌      │      ✅ (≥警告级)  ││ 暂停系统     │     ✅      │     ❌      │      ✅ (≥严重级)  ││ 调整风控参数 │     ❌      │     ❌      │      ✅ (自动)     ││ 执行下单     │     ❌      │     ✅      │      ❌ 绝不       ││ 修改策略     │     ❌      │     ✅      │      ❌            ││ 修改代码     │     ❌      │     ❌      │      ❌            ││ 关闭系统     │     ❌      │     ❌      │      ❌ 绝不       ││ 修改用户设置 │     ❌      │     ❌      │     【禁区】       ││ 自动重启模块 │     ❌      │     ❌      │      ✅            ││ 回滚配置     │     ❌      │     ❌      │      ✅            │└─────────────┴─────────────┴─────────────┴────────────────────┘

红色禁区(AI 不可触碰)

  • 修改用户密码、许可证、支付信息
  • 关闭系统、删除日志
  • 修改 tq_gateway 底层连接
  • 操作 trade_executor 的 _active_fast_orders

三、自我修复机制(皮肤原理)

受伤                          ↕ 守望者响应────                          ────────────题材数据为空 (A4)             → 自动调用 trigger_theme_collection()                                 重试3次,仍失败 → 提升为警告级板块缓存超时 (A2)              → 自动调用 _ensure_sector_global_cache(force=True)                                 重试3次 → 提升为严重级信号引擎卡死 (A8)              → 自动执行 signal_engine.stop() + start()                                 重试2次仍失败 → 紧急级 → 通知用户AI交易决策频率异常 (B3)        → 检查是否在交易时段                                 如果是 → 自动调度 _do_market_analysis                                 如果是盘后 → 正常线程泄漏 (D2)                  → 扫描所有非daemon线程                                 标记 5 分钟未变化 → 记录                                 超过 80 个 → 警告级日志文件过大 (D5)              → 自动压缩旧日志到 zip                                 删除 30 天前的日志某策略连续失败 (B7)            → 自动将该策略标记为 "disabled_for_today"                                 推送到AI对话: "某策略今日已暂时停用"LLM超时累积 (B6)              → 自动切换到备用模型(如果配置了)                                 降低超时任务的优先级TQ限流逼近 (A7)               → 自动降低非核心查询频率                                 股池刷新间隔 ×2                                 新闻拉取间隔 ×4持仓集中度过度 (B4)           → 写警示 + 通知AI对话                                建议用户: 当前板块集中度已超标

修复等级

能修复吗
操作
通知
✅ 自动修复
执行修复 + 记录到日志
仅记录
⚡ 尝试修复
重试3次,成功则记录
通知AI对话
❌ 无法修复
按严重级上报
≥警告推送聊天

四、机器能力感知与自动调参

守望者启动时运行 system_diagnostics,根据自己的诊断结果动态设定扫描频率:

# 根据诊断等级调整系统参数DIAGNOSIS_PROFILE = {    'S': {  # 旗舰级        'guardian_interval': 180,      # 巡检间隔 3分        'theme_refresh_min': 1,        # 题材刷新最少1分        'pool_snapshot_mult': 1.0,     # 股池刷新不降速        'max_tq_per_sec': 5,           # TQ最多5次/秒        'llm_concurrent': 3,           # LLM最多3并发    },    'A': {  # 高性能        'guardian_interval': 300,      # 5分        'theme_refresh_min': 2,        'pool_snapshot_mult': 1.2,        'max_tq_per_sec': 3,        'llm_concurrent': 2,    },    'B': {  # 均衡        'guardian_interval': 480,      # 8分        'theme_refresh_min': 3,        'pool_snapshot_mult': 1.5,        'max_tq_per_sec': 2,        'llm_concurrent': 1,    },    'C': {  # 受限        'guardian_interval': 600,      # 10分        'theme_refresh_min': 5,        # 题材刷新最少5分        'pool_snapshot_mult': 2.0,     # 股池刷新降速        'max_tq_per_sec': 1,           # 限流严格        'llm_concurrent': 1,        'disable_features': ['news_fetch''theme_collection_lite'],    },    'D': {  # 薄弱        'guardian_interval': 900,      # 15分        'theme_refresh_min': 10,        'pool_snapshot_mult': 3.0,        'max_tq_per_sec': 0.5,        'disable_features': ['news_fetch''theme_collection_lite''fast_monitor'],    },}
然后根据用户诉求进一步调整:
# 如果用户的 user_memory 说 "追求收益最大化" → 激进方案# 如果用户说 "安全第一,省资源" → 保守方案# 如果运行在笔记本(检测到电池) → 自动降速ADAPTIVE_PROFILE = {    'user_goal''aggressive',   # 从 user_memory.trading_goals 获取    'on_battery'False,         # 检测 psutil.sensors_battery()    'time_of_day''trading',    # 交易时段 / 盘后 / 夜间    'cpu_available'60,         # 空闲百分率}

五、故障上报流程

发现异常 → 分级 → 报告严重级 1 (信息):  → 写入 guardian_log.json  → 不干扰用户严重级 2 (注意):  → 写入 guardian_log.json  → 下次 AI 对话打开时,添加到系统公告: "守望者发现 1 个需要注意的事项"严重级 3 (警告):  → 写入 guardian_log.json  → 推送到 AI 对话聊天窗口(黄色气泡)  → AI 对话可主动告知用户严重级 4 (严重):  → 写入 guardian_log.json + 系统日志  → 推送到 AI 对话聊天窗口(红色气泡)  → 弹窗提示用户  → 可选: 自动暂停 AI 交易严重级 5 (紧急):  → 以上所有  → 自动触发紧急停止  → 语音播报(如果启用)  → 系统状态栏变红色闪烁

六、每周健康报告

每周五 15:30 盘后自动生成:

═══════════════════════════════════  📊 星火系统周健康报告  2026-06-02 ~ 2026-06-06═══════════════════════════════════🏥 总体评分: 84/100 (较上周 +3)📈 稳定性:  正常运行: 28h 46m  异常次数: 7 (+2 vs 上周)  最常出现异常:  1. A4题材数据延迟 — 3次 (上周 5次) ✅ 改善  2. B3决策频率偏低 — 2次 (上周 0次) ⚠️ 新增  3. A2板块缓存超时 — 1次 (与上周持平)🔧 自动修复:  成功: 9次 (A4×3, A2×1, D5×2, A10×3)  失败: 0🎯 AI 表现:  AI交易: 执行 23笔, 胜率 65%, 总盈亏 +¥12,340  AI对话: 对话 142次, 技能触发 18次, 调度完成率 94%📋 活跃目标卡片: 4 → 全部对齐 ✅💡 改进建议:  1"建议缩短题材刷新间隔,本周有3次延迟"  2"策略 '盘中追涨' 近10笔胜率仅10%,建议暂停观察"  3"内存平均使用 1.8GB,较上周增长 15%,建议关注"═══════════════════════════════════

七、最终文件结构

ai_trading_system/  └── ai_guardian.py               核心(约1500行)              ├── @dataclass GuardianCheck      单项检查定义            id, name, category, check_fn, severity,            auto_fix_fn, fix_max_retries, affected_systems,            last_status, last_check_time, consecutive_failures              ├── @dataclass GoalCard            用户目标卡片            goal_id, intent_type, params, raw_user_message,            expires_at, status, violation_count, created_by              ├── @dataclass InspectionReport    单次巡检报告            timestamp, total_checks, passed, warnings, errors,            auto_fixes_attempted, auto_fixes_succeeded,            active_goals_status, overall_score              ├── class AIGuardian:       │     │       │     ├── _init_checklist()         ← 注册所有 60+ 检查项       │     │       │     ├── _init_diagnosis()         ← 运行系统诊断       │     │       │     ├── _init_adaptive_profile()   ← 根据诊断+用户诉求调参       │     │       │     ├── _run_inspection()         ← 主巡检循环       │     │     ├── 检查 13 域 60+ 项       │     │     ├── _auto_fix_if_needed()       │     │     ├── _evaluate_severity()       │     │     └── _generate_report()       │     │       │     ├── _auto_fix(check)          ← 尝试自动修复       │     │     ├── 有修复函数?→ 执行       │     │     ├── 成功?→ 记录       │     │     └── 失败×N?→ 升级为警告       │     │       │     ├── verify_alignment(decision) ← 验证 AI 交易决策       │     │     ├── 对齐所有活跃目标卡片       │     │     ├── 对齐用户偏好       │     │     └── 返回: PASS / WARN / BLOCK       │     │       │     ├── create_goal(card)         ← AI 对话创建目标卡片       │     │       │     ├── get_all_subsystem_states() ← 返回所有子系统状态快照       │     │       │     ├── get_health_summary()      ← 给 AI 对话的摘要       │     │       │     └── _generate_weekly_report()  ← 每周五自动       │       └── standalone thread, 默认每 N 分钟巡检

八、与现有系统集成

修改 3 处即可,不需要改架构:

1. enable_autonomous() → 启动守望者

def enable_autonomous(self, reason='user'):    # ... 现有代码 ...    from .ai_guardian import AIGuardian    if not hasattr(self'_guardian'):        self._guardian = AIGuardian(self._main_app)    self._guardian.start()
2. _v2_tool_executor → 新增 goal_card tool
if tool_name == 'create_goal_card':    guardian.create_goal(GoalCard(...))if tool_name == 'get_system_health':    return guardian.get_health_summary()
3. AI交易 think() → 决策前查对齐
def think(self, ...):    # ... 生成决策 ...    if guardian:        result = guardian.verify_alignment(decision)        if result == 'BLOCK':            return None  # 放弃决策        elif result == 'WARN':            decision.confidence *= 0.8  # 降低置信度

九、你的具体场景演示

"题材没有显示出来"

[14:30] 守望者巡检:  A2 板块缓存: ✅ 正常  A4 题材数据: ❌ ctrl._last_theme_data = {}  → Severity: 3 (警告)  → Auto-fix: trigger_theme_collection()  → 第1次重试: _last_theme_data 仍为空 (板块缓存 ok, 但 collect_theme_data 没更新)  → 第2次重试(5秒后): 仍为空  → 第3次重试: ✅ 成功!_last_theme_data 现在有 6 个题材  → 推送到 AI 对话: "⚠️ 题材数据曾中断15分钟,已自动修复。原因: 板块数据刷新延迟。"  → 仪表盘题材栏: 自动刷新显示新数据
                    AI对话 (前额叶)                       │          ┌────────────┼────────────┐          │            │            │    用户对话      目标卡片      健康查询          │       (create_goal)  (get_system_health)          ▼            │            │     ┌─────────────────────────────┐     │        AI 守望者             │     │  1 daemon 线程, 自适应间隔    │     │                             │     │  23项检查 × 6域              │     │  2项自动修复 (A2/A4)         │     │  目标卡片追踪                 │     │  5级告警分发                 │     └──────────┬──────────────────┘                │ verify_alignment()                ▼         AI交易 (双手)

关键设计决策

1. 零打扰

  • 非交易时段只检查 8 项核心指标,间隔 ×2
  • 只有 ≥WARN 级才推送到聊天窗口
  • NOTICE 级仅记录,用户下次看到

2. 省资源

  • 根据机器诊断结果自动调速:
机器等级
巡检间隔
检查项数
S旗舰
2分钟
全部23项
A
3.5分钟
全部23项
B均衡
5.6分钟
全部23项
C/D
7-10分钟
核心8项

3. 省 Token

  • 全规则判断,不调用 LLM
  • 只有 AI 对话通过 tool call 主动查询时才响应

4. 自愈

  • A2(板块缓存过期)→ 自动 force refresh
  • A4(题材数据为空)→ 自动 trigger_theme_collection()
  • 每次重试 3 次,成功则静默,失败则升级告警

集成点

位置
行为
L1727-L1736
自动驾驶启动 → 守望者自动启动
L1826-L1832
自动驾驶停止 → 守望者自动停止
L24505-L24511
F4紧急停止 → 守望者自动停止
L10735-L10754
AI对话可通过 tool call 查询健康状态、创建目标卡片

AI 对话可用的 3 个新 tool

get_system_health    "系统健康: 22/23 正常\n需关注:\n  ⚠ [A4] 题材数据就绪: 题材数据为空"create_goal_card     {goal_id, intent_type, params, raw_message, ttl_minutes}list_active_goals    [{"id":"gc_001","intent":"conservative_today","status":"active"},...]

已加入 LLM 推理引擎

双引擎架构

规则引擎 (99%)                    LLM 引擎 (1%)─────────────                    ─────────────每轮巡检运行                     仅在 3 种情况触发零 Token                         每次 ≤300 Token23 项实时检测                    交叉推理 + 根因分析例:                              例:"A4 题材数据为空"                 "A2+A4+F3 同时出现 →                                 根因可能是 TQ 接口在                                 14:30-14:35 短暂断开,                                 已自动修复,建议关注"