一、系统功能全景地图
守望者必须知道系统所有功能状态。根据盘点,系统共有 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对话建议用户: 当前板块集中度已超标
修复等级:
四、机器能力感知与自动调参
守望者启动时运行 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,340AI对话: 对话 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 AIGuardianif not hasattr(self, '_guardian'):self._guardian = AIGuardian(self._main_app)self._guardian.start()
_v2_tool_executor → 新增 goal_card toolif tool_name == 'create_goal_card':guardian.create_goal(GoalCard(...))if tool_name == 'get_system_health':return guardian.get_health_summary()
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. 省资源
根据机器诊断结果自动调速:
3. 省 Token
全规则判断,不调用 LLM 只有 AI 对话通过 tool call 主动查询时才响应
4. 自愈
A2(板块缓存过期)→ 自动 force refreshA4(题材数据为空)→ 自动 trigger_theme_collection()每次重试 3 次,成功则静默,失败则升级告警
集成点
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 短暂断开,已自动修复,建议关注"
夜雨聆风