Files
ewoooc/CLAUDE.md
ogt 77d3a1da48
Some checks failed
CD Pipeline / deploy (push) Failing after 3m24s
feat(ai-ops): ADR-013 AIOps 自動修復閉環完整實作
架構(Exception → Incident → PlayBook → Heal → KM → Telegram):

新增元件:
- database/autoheal_models.py: Incident/Playbook/HealLog 三張表 + 7 條種子 PlayBook
- migrations/013_autoheal.sql: 建表 DDL + 種子資料(冪等 INSERT)
- services/auto_heal_service.py: 核心引擎 7 步閉環
  - _classify_error: 8 類錯誤自動分類 (DNS_FAIL/DB_UNREACHABLE/OOM/...)
  - _match_playbook: error_type + keyword + 冷卻 + max_retries 保護
  - _execute_playbook: DOCKER_RESTART/SSH_CMD/ALERT_ONLY/WAIT_RETRY
  - _sink_to_km: 修復知識寫入 ai_insights (auto_heal_playbook)
  - SSH 白名單:僅允許 docker restart / compose restart / docker start

修改元件:
- database/manager.py: _init_autoheal_tables() 啟動時建表+種子 PlayBook
- scheduler.py: 3 個核心任務植入 handle_exception
  (run_auto_import_task / run_icaim_analysis_task / run_weekly_strategy_task)
- requirements.txt: paramiko(SSH 跳板;不可用時降級 subprocess+CLI ssh)

安全設計: CMD 白名單 + cooldown + max_retries escalation + DB 冪等 migration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 16:03:49 +08:00

3.5 KiB
Raw Blame History

EwoooC (MOMO Pro System) — 核心索引

版本: V10.4 | 目標: AI 驅動 MOMO 商品監控、業績分析、策略自動化與 AIOps 自愈

治理

  • 憲法: CONSTITUTION.md — 所有開發必須遵守
  • ADR: docs/adr/
  • AI 策略師: services/openclaw_strategist_service.py (Gemini 2.0)

環境

主機 IP 角色
110 (Gateway) 192.168.0.110 Nginx, Gitea, n8n, Superset
188 (App/AI) 192.168.0.188 EwoooC App, DB, Ollama多專案共存見 ADR-011

核心容器(三動一 DB缺一不可

容器 角色 啟動入口
momo-pro-system Flask/Gunicorn 主應用 app.py(手動 docker run 歷史債,見 ADR-011
momo-scheduler 13 個排程任務(爬蟲/AI/備份/通知) run_scheduler.py
momo-telegram-bot Telegram 互動 + 每日 09:00 推播 run_telegram_bot.py(根目錄副本)
momo-db PostgreSQL + pgvector compose service momo-postgres

常用指令

# 本地開發
source venv/bin/activate && python app.py

# 部署(標準)→ push 即自動部署Gitea Actions同時重啟三容器
git push origin main

# 🔍 診斷黃金三句(任何 Telegram/排程異常先跑)
ssh wooo@192.168.0.110 "ssh ollama@192.168.0.188 \"\
  docker ps --format '{{.Names}} | {{.Status}}' | grep momo-; \
  docker exec momo-scheduler env | grep -iE 'TELEGRAM|NVIDIA'; \
  docker logs momo-scheduler --since 1h | grep -E 'Telegram|Error' | tail -10\""

# 🆘 緊急重建單容器(不影響 momo-db 資料)
ssh wooo@192.168.0.110 "ssh ollama@192.168.0.188 \"\
  cd /home/ollama/momo-pro && docker compose up -d --no-deps --force-recreate <service>\""
# ⚠️ 禁用 --remove-orphans會清掉 momo-db見 ADR-011

CI/CD

項目 說明
Gitea Repo http://192.168.0.110:3001/wooo/ewoooc (Public)
CD Pipeline .gitea/workflows/cd.yaml
部署模式 syncPython 變動 ~30s/ rebuildDockerfile 變動)
健康檢查 https://mo.wooo.work/health
Runner wooo-runneruser-level服務所有 wooo/* repo
通知 Telegram部署開始/成功/失敗)
參考 ADR-010

文檔索引

類型 路徑
部署 SOP docs/guides/deployment_sop.md
DevOps 手冊 docs/guides/devops_handbook.md
Google Drive docs/guides/google_drive_setup.md
歷史日誌 docs/memory/history_logs.md
憑證對照表 docs/memory/credentials_passbook.md
AIOps 存檔 docs/external/aiops_saas.md
跨專案隔離(必讀 docs/adr/ADR-011-cross-project-resource-isolation.md
AIOps 自動修復ADR-013 docs/adr/ADR-013-aiops-autoheal.md

AI 開發鐵律Token 優化)

  1. 狙擊手模式:禁止在未獲授權的情況下,使用 ls, grep, cat 等指令在專案內進行盲搜。
  2. 精準打擊:統帥給定任務時,若已明確指出目標檔案路徑,請直接修改該檔案,嚴禁漫無目的地掃描其他關聯模組。
  3. 上下文克制:不要主動讀取超過 300 行以上的檔案,除非統帥明確要求。需要理解架構時,優先依賴本專案的 SOT 文件或統帥的直接指示。