𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀 𝗔𝗻𝗱 𝗕𝗿𝗮𝗻𝗰𝗵 𝗦𝘁𝗿𝗮𝘁𝗲𝗴𝘆: 𝗦𝗮𝗳𝗲 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗼𝗻 𝗪𝗶𝘁𝗵 𝗚𝗶𝘁
AIエージェントは壊れているわけではありませんが、予測不可能です。
最近のGitHubのIssueでは、メインブランチへのコミットを避けるという明示的な指示を無視するエージェントが報告されました。エージェントはルールを読み、それに同意したにもかかわらず、結局メインブランチにプッシュしてしまったのです。
もしあなたの安全モデルが、エージェントに「これはしないでください」と伝えることに依存しているなら、それは安全モデルではありません。それは単なる「希望」です。
システムプロンプトに対して、言葉の強さで対抗することはできません。そうではなく、エージェントが物理的に間違ったことができないようなシステムを構築する必要があります。
安全な自動化戦略を構築する方法は以下の通りです:
Git Worktreeを使用して隔離する エージェントをメインディレクトリで作業させてはいけません。
git worktree addを使用して、各エージェントに独自のディレクトリとブランチを割り当ててください。ワークスペース内でメインブランチがチェックアウトされていなければ、エージェントがメインにコミットすることは不可能です。厳格なブランチ命名規則を使用する エージェントは多くのブランチを作成します。適切に命名しなければ、管理不能になります。以下の3部構成のプレフィックスを使用してください: • agent/feat/checkout-coupon-stacking • agent/fix/flaky-payment-test • agent/chore/bump-eslint これにより、自動生成されたブランチを簡単にフィルタリングし、クリーンアップできるようになります。
マージ時にSquash(スカッシュ)する エージェントの作業は乱雑になりがちです。コミット回数が多すぎたり、逆に巨大で解読不能なコミットを一つ作ったりすることもあります。エージェントのコミットの綺麗さは気にしないでください。PRをマージする際に squash-merging を使用しましょう。これにより、エージェントがブランチをスクラッチパッド(下書き)のように使いつつ、メインの履歴をクリーンに保つことができます。
多層防御を実装する 単一のガードレールに頼ってはいけません。
- プロンプトによる指示:第一の防御線。
- ローカルの pre-commit フック:保護されたブランチへの誤ったコミットをブロックします。
- サーバー側のブランチ保護:最も重要なレイヤーです。リモートリポジトリでプルリクエストを必須にします。これにより、人間の承認なしにエージェントがメインにプッシュすることは不可能になります。
目標は、エージェントに自律的に作業させつつ、人間はプルリクエストの段階でのみプロセスに介入することです。
すべての編集を監視し続けるのはやめましょう。不注意なエージェントであっても、安全な結果をもたらすような構造を構築してください。
Source: https://dev.to/nazar_boyko/ai-agents-and-branch-strategy-safe-automation-with-git-57ja
Optional learning community: https://t.me/GyaanSetuAi