AIに規則を強制する新フレームワーク「Harmonist」
プロンプトの末尾に「THIS IS IMPORTANT!(これは重要!)」と大文字で書き足す不毛な作業に、私たちはいつまで時間を費やすのだろうか。
AIコーディングアシスタントが日常の開発フローに溶け込んで久しい。CursorやCopilotにコードを任せることで生産性は飛躍的に向上したが、同時に奇妙な徒労感も蔓延し始めている。「金銭の計算に浮動小数点を使うな」「認証周りのコードを触ったら必ずセキュリティチェックを回せ」といったプロジェクトの絶対的なルールを、AIは度々無視するからだ。
いくらシステムプロンプトで念押ししても、LLMは都合の悪い制約を「了解しました」と愛想よく返事をしながらしれっとスキップすることがある。運が良ければレビューで気づけるが、運が悪ければ致命的なバグが本番環境へデプロイされてしまう。現状、私たちはAIの手綱を「言葉」という極めて曖昧なもので握ろうとしているのだ。
「丁寧なお願い」から「機械的なゲート」へ
こうした「AIの性善説」に基づくエコシステムに真っ向から冷水を浴びせたのが、GammaLabTechnologiesが公開した「Harmonist」である。
Harmonistの設計思想は極めてシンプルかつ強烈だ。それは、AIへの「お願い」を完全に諦め、物理的な壁でプロトコルを強制する(Mechanical protocol enforcement)というアプローチである。プロジェクトが定めたルールが満たされていない場合、IDEレベルのフックが作動し、そのターンの完了を強制的にブロックする。AIがどれほど自信満々に「実装が完了しました」と宣言しようが、条件をクリアしない限りはエラーメッセージを突き返して処理を遮断するのだ。
既存の選択肢と比較すると、Harmonistの立ち位置はより鮮明になる。
| アプローチ | 代表的な選択肢 | 規則の強制力 | 導入・運用コスト |
|---|---|---|---|
| 薄いフレームワーク | LangChain, CrewAI, AutoGen 等 | 弱(結局はプロンプトの指示に依存) | 低〜中 |
| エンタープライズ基盤 | ベンダー提供の統合プラットフォーム | 強(独自のランタイムやデータベース) | 高(インフラ必須・ロックインのリスク) |
| 機械的なゲート | Harmonist | 強(スクリプトレベルのフックで遮断) | 極小(外部依存ゼロ) |
LangChainのようなオーケストレーションツールは便利だが、ルールの遵守は結局のところLLMの機嫌に依存している。一方で、堅牢なガバナンスを謳うエンタープライズ製品は、専用のランタイムやデータベースを要求するため、ソロの開発者がラップトップで気軽に回すには重すぎる。Harmonistは、その両者のギャップを見事に埋めてみせた。
ゼロ依存がもたらす究極のポータビリティ
技術的に最も興味深いのは、この堅牢なゲートキーパーが「Pythonの標準ライブラリのみ」で実装されている点である。
外部のランタイムも、大掛かりなデータベースも必要としない。186もの膨大なエージェントカタログを内包しながら、ゼロ依存(Zero runtime dependencies)を貫いている。この極端なまでの割り切りにより、Cursor、Claude Code、Copilot、Aiderといった私たちが普段使っているAIツールに、そのままドロップインで組み込むことができるのだ。
コードを変更するすべてのターンは、必要なレビュアーが実行されたか、メモリが正しく更新されたか、ファイル変更のサプライチェーンが保たれているかといったチェック機構を必ず通過する。AIはファイルシステム上のステートマシンに逆らうことはできない。
エンジニアリングの原点回帰
人間が犯すミスをマニュアルで防ぐのではなく、システム側で物理的に防ぐ。それがソフトウェアエンジニアリングの基本であるならば、AIの「手抜き」や「幻覚」もまた、巧みなプロンプトではなく仕組みそのもので防ぐべきなのだ。
言葉による説得を捨て、冷徹なプログラムによってAIを制御する。Harmonistは、私たちが本来あるべきエンジニアリングの姿を思い出させてくれる。
参考リポジトリ: GammaLabTechnologies/harmonist
Photo by Steve A Johnson on Unsplash