在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用opt-deploy
星标4
分支0
更新时间2026年5月6日 05:45
最適化モデルの運用設計。自動化・監視・フォールバックを定義する
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
最適化モデルの運用設計。自動化・監視・フォールバックを定義する
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
受け取ったデータから最適化問題の構造を把握し、仮説を立てる。最も重要なスキル。
実行可能性(feasibility)を確認する。問題の複雑度に応じて一発解きor段階的解法を選ぶ
ボトルネックに合わせた改善策を設計・実行・検証する
最適化結果を非技術者にも伝わる改善提案書にまとめる
追加データの依頼書を生成する。何がなぜ必要かを非技術者向けに説明
| name | opt-deploy |
| description | 最適化モデルの運用設計。自動化・監視・フォールバックを定義する |
| user_invocable | true |
/opt-deploy [project_path] で実行。
改善提案が承認された後、実際に現場で継続運用するための設計を行う。
run_*.py の構造(データ取得 → 検証 → 最適化 → 検証 → 通知)は subagent_type=Plan で先に設計→主導で実装run_in_background=true で投げ、その間に検証ルール表を作成scripts/ に同梱する設計を最初から組む詳細は reference/opus47_collaboration.md。
どれくらいの頻度で実行するか?
├── リアルタイム(数秒以内) → 軽量ヒューリスティクス or 事前計算テーブル
├── 日次(朝までに完了) → ソルバー + 十分な計算時間
├── 週次 → ソルバー + 長時間探索可能
└── 月次/都度 → 人間が確認しながら実行
計算時間の上限:
- バッチ: 実行開始から結果が必要な時刻まで
- リアルタイム: レスポンスタイム要件
→ ソルバーの time_limit をこの制約に合わせる
データはどこから来るか?
├── 手動アップロード(Excel/CSV) → バリデーション必須
├── DB/API から自動取得 → 接続設定とエラーハンドリング
└── 複数ソース → ETL パイプラインの設計
データの鮮度:
- マスタデータ: 変更頻度が低い → キャッシュ可能
- トランザクションデータ: 毎回最新を取得
推奨構成:
1. データ取得 → 2. バリデーション → 3. 前処理 → 4. 最適化実行
→ 5. 結果検証 → 6. 出力/通知
各ステップの設計:
Step 1: データ取得
- ソース接続の設定
- タイムアウトとリトライ
Step 2: バリデーション(★最重要)
□ 必須カラムが存在するか
□ データ型は正しいか
□ 値の範囲は妥当か(外れ値検出)
□ 前回からの変化率は異常でないか(±30%を超えたら警告)
□ レコード数は想定範囲内か
Step 3: 前処理
- data_preprocessing.md の定石を適用
- 前処理結果のログ出力
Step 4: 最適化実行
- ソルバーの time_limit を運用要件に合わせて設定
- メモリ使用量の監視
Step 5: 結果検証(★重要)
□ Feasibility チェック(全ハード制約を満たすか)
□ スコアが前回より大幅に悪化していないか
□ 異常な割当がないか(1人に極端に集中など)
→ 検証NGなら人間にエスカレーション
Step 6: 出力/通知
- 結果ファイルの出力(CSV/Excel/API)
- 担当者への通知(メール/Slack)
- 実行ログの保存
# cron の例(毎朝5時に実行)
# 0 5 * * * cd /path/to/project && python run_optimization.py >> log/$(date +\%Y\%m\%d).log 2>&1
# Python スクリプトの骨格
def main():
# 1. データ取得
data = load_data()
# 2. バリデーション
issues = validate_data(data)
if issues['critical']:
notify_error(issues)
return
# 3. 前処理
processed = preprocess(data)
# 4. 最適化実行
solution = optimize(processed, time_limit=300)
# 5. 結果検証
quality = verify_solution(solution, processed)
if not quality['feasible']:
notify_warning("Infeasible solution", quality)
# フォールバック: 前回の解を使用
solution = load_previous_solution()
# 6. 出力
export_solution(solution)
notify_success(quality)
■ 入力データの監視
- レコード数の推移(急増/急減は異常)
- 新しいカテゴリ値の出現(未知の従業員、新しい配送先)
- 欠損率の変化
■ 最適化結果の監視
- Feasibility(1回でもinfeasibleなら即アラート)
- スコアの推移(トレンドの変化を検知)
- 計算時間の推移(問題サイズの増大を早期検知)
- 制約違反の内訳(新しい種類の違反が出たら警告)
■ 仮定の妥当性監視
- 移動速度の仮定 vs 実績(乖離が大きくなっていないか)
- 作業時間の仮定 vs 実績
- 需要パターンの変化(季節変動、トレンド変化)
→ 仮定と実績の乖離が閾値を超えたらモデル見直しのアラート
以下のサインが出たらモデルの見直しが必要:
□ スコアが徐々に悪化(入力が変化しているのにモデルが追従していない)
□ 制約違反が増加傾向(新しい制約がデータに反映されていない)
□ 現場から「最近の結果がおかしい」というフィードバック
□ 仮定と実績の乖離が20%を超えた
対応:
→ /opt-assess で再アセスメント
→ 仮定の更新
→ 必要なら /opt-baseline からやり直し
ソルバーが落ちた場合:
1. リトライ(time_limit を短縮して再実行)
2. 簡易ヒューリスティクスにフォールバック
3. 前回の解をベースに微修正
4. 人間が手動で作成(最終手段)
データが取得できない場合:
1. リトライ(一定時間待って再取得)
2. 前回のデータ + 差分推定で実行
3. 人間に通知して手動データ入力を依頼
結果が infeasible の場合:
1. 制約を緩和して再実行(ソフト化)
2. 時間制限を延長して再実行
3. 前回の feasible 解を使用
4. 人間にエスカレーション
「今日の結果は使わず、昨日の結果に戻す」ができるように:
- 過去N回分の結果を保持する
- 結果ファイルにタイムスタンプとバージョンを付与
- ロールバックコマンドを用意
バージョンフォルダ内に以下を保存する:
reports/deploy_design.md(実行概要、パイプライン構成、バリデーションルール、監視指標、フォールバック手順、モデル見直しトリガー)scripts/run_*.py(本番パイプライン)## 運用設計書
### 実行概要
- 実行頻度: [日次/週次/月次/都度]
- 計算時間制限: [X秒/X分]
- データソース: [手動/DB/API]
- 出力先: [CSV/Excel/DB/API]
### パイプライン構成
[Step 1-6 の具体的な設定]
### バリデーションルール
| チェック項目 | 閾値 | アクション |
|------------|------|----------|
| [レコード数] | [前回比±30%] | [警告] |
| [欠損率] | [5%以上] | [エラー] |
| ... | ... | ... |
### 監視指標
| 指標 | 正常範囲 | アラート条件 | 通知先 |
|------|---------|------------|--------|
| [Feasibility] | [常に1] | [0になったら] | [担当者] |
| [スコア] | [前回比±10%] | [20%以上悪化] | [担当者] |
| ... | ... | ... | ... |
### フォールバック手順
1. [障害パターン1]: [対応手順]
2. [障害パターン2]: [対応手順]
### モデル見直しトリガー
- [ ] スコアが3回連続で悪化
- [ ] 仮定と実績の乖離 > 20%
- [ ] 現場からのフィードバック
→ /opt-assess で再アセスメントを実施
### 次のステップ
1. [パイプラインの実装]
2. [テスト環境での動作確認]
3. [本番移行(段階的ロールアウト推奨)]
.opt_state.yaml の全セクション(assess, baseline, improve, report)を読み込む.opt_state.yaml の deploy セクションを書き込むreference/state_schema.md を参照対策:
├── Docker コンテナ化(Dockerfile に pip install ortools を含める)
├── PuLP + HiGHS に切り替え(より軽量、プロキシ環境でも通りやすい)
├── SWO+IFS に切り替え(Python 標準ライブラリのみで動作)
└── API 化して別サーバーで実行(本番環境にソルバー不要)
対策:
├── time_limit を運用要件に合わせて短縮(解の品質は多少犠牲)
├── warm start(前回の解を add_hint() で渡して収束を高速化)
├── 問題を分解して並列実行
└── 夜間バッチで事前計算(リアルタイム要件がある場合)
対策:
├── 段階的導入: まず「参考」として提示、徐々に本番化
├── 現場の暗黙知を制約に反映(「この結果はおかしい」→ 新制約の発見)
├── 手動調整の余地を残す(100%自動化ではなく、人間が微修正できる出力形式)
└── Before/After の数値で効果を可視化して信頼を構築