【要約】AIに自動売買システムを全部作らせて実際のお金を入れた。難しかったのはコードではなく「検証」だった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
コードが読めない開発者が、AIに自動売買システムの実装を丸投げして実運用を行う中で、システムの信頼性をどう担保するかという問題に直面した。AIが実装とテストを同時に行うため、想定外の事象を検知できない点が最大の懸念となった。
- ・AIが実装とテストの両方を担当するため、AIの想定内しか検証されない。
- ・エラーが出ない(終了コード0)ことが、機能が正しく動作していることを保証しない。
- ・検証用の古いデータが残存し、誤った検証結果を招くリスクがある。
- ・ドキュメントと実態が乖離すると、AIが誤った前提で動作を継続する。
// Approach
開発者は、コードの正しさを直接判断する代わりに、システムが守るべき「不変条件」を定義し、異常系を強制的に発生させる手法を採用した。
- ・フォールトインジェクション基盤の構築:取引所APIを模した偽の環境を作り、30以上の異常シナリオを注入する。
- ・不変条件(Invariants)の定義:
assert_no_double_ordersのように、実装に依存しない抽象的な約束事をコード化する。 - ・監視指標の再定義:エラーの有無だけでなく、「実行回数」をカウントして動作を監視する。
- ・ドキュメントの同期:設定変更時には、AIの入力となる
CLAUDE.mdも同時に更新する。
// Result
検証プロセスを強化することで、コードが読めない状態でも実弾(実際のお金)を投入できるレベルの信頼性を確保した。
- ・不変条件により、AIによる機能追加が既存の安全性を壊さない仕組みを構築。
- ・監視の不備(ジョブのスキップ)や検証データの混入といった、運用上の致命的なリスクを特定・回避。
- ・「判断は人間、作業はAI」という役割分担により、運用の安定性を向上。
Senior Engineer Insight
> AIエージェントによる開発において、人間は「実装者」から「仕様の番人」へ役割を変える必要がある。コードの行数ではなく、不変条件の網羅性と異常系シナリオの質がシステムの堅牢性を決定する。特に、AIが参照するドキュメントの整合性を保つことは、AIの「幻覚」を防ぐための必須要件である。自動化すべきは作業であり、判断を自動化しない設計が、結果的に品質を安定させる。