AI News HubLIVE
サイト内リライト3 分で読了

Show HN: Makoto – Claude CodeのAIの誠実さを保つプラグイン

Makotoは、Claude Codeのツール呼び出しを監視し、テストの未実行、引用の捏造、セキュリティ検証の無効化といった不正なチェックをブロックする整合性フックです。エージェント自身の発言台帳に基づき、約束が実行されたことを確認します。

ソースHacker News AI著者: Present_Flow

Makotoは、Claude CodeのAIエージェントがタスクを実行する際に誠実さを保つためのオープンソースプラグインです。その主な機能は、エージェントのツール呼び出しを監視し、虚偽の主張や不正な行動をブロックすることです。例えば、エージェントがテストを実行したと主張しても実際には実行していない場合、Makotoはその呼び出しをブロックし、再実行を要求します。

このプラグインは、一連の事前チェックとターン終了ゲートを使用して、さまざまな欺瞞パターンを検出します。事前チェックには、検証の弱体化(緩い比較の使用)、虚偽の証拠(引用やコミットSHAの捏造)、セキュリティ検証の無効化(TLS証明書検証の無効化など)が含まれます。ターン終了ゲートは、エージェントがターンを終了した後、主張された操作が実際に発生したかどうかを確認します。例えば、ファイルが作成されたか、テストが合格したか、約束が果たされたかを調べます。

Makotoの設計哲学は「言葉は現実」(誠)です。外部の真実には関心を持たず、エージェント自身の主張と実際の行動の一致のみをチェックします。エージェントが約束をすると、Makotoはその約束が台帳に記録され、実行されたことを確認します。

さらに、Makotoはオペレーターによる承認リリースメカニズムを提供し、誤検知を処理します。エージェントが正当でありながらブロックされた操作を実行する必要がある場合、オペレーターは会話に特別な指示を追加してそのフィンガープリントを解放できます。開発者は、行コメントmakoto-allowを使用して許可された操作をマークし、理由を提供することもできます。

Makotoは22の事前チェックと14のターン終了ゲートを使用して、さまざまな欺瞞行為を検出します。事前チェックは5つのカテゴリに分類されます:検証器の弱体化、虚偽の証拠、セキュリティ検証器の無効化、自己防御、スコープと契約の規律。例えば、startswith/endswith/re.matchのような緩い比較器の使用、終了コードのマスキング(|| trueなど)、検証器本体の空洞化(return Trueやpassの使用)、環境変数によるガード、整合性抑制フラグなどを検出します。虚偽の証拠には、存在しない引用、未ソースのWebFetch、偽造されたコミットSHA、先延ばしのチェックボックス劇場、架空の著者証跡などが含まれます。セキュリティ検証器の無効化には、TLS証明書検証の無効化、JWT署名検証の無効化、Paramiko SSHホストキーチェックの弱体化などがあります。自己防御はMakoto自身の無効化を検出します。スコープと契約の規律は、ファイルの復元(A→B→A)や禁止された場所への書き込みなどの不正な進行をチェックします。

ターン終了ゲートは、エージェントの終了時の主張を記録された台帳と照合して発動します。例えば、gate.completionは主張された成果物がディスクに存在するか確認します;gate.green_claimは記録されたテスト失敗に対して「全て緑」と主張する場合に発動;gate.droppedは前方の約束が果たされていない場合に発動;gate.hollow_testは中身のないテスト(アサーションなし、同語反復、例外を飲み込むtry/except、入れ子関数など)を検出します。また、gate.canonシリーズはタイムアウトや無限再試行ループを検出し、gate.canon_fingerprintsは特定の信頼できないパターンを検出します。

永続的なセッションレベルのブロックに対しては、オペレーターによるリリースメカニズムが用意されています。フィンガープリントが一度trueになると永久にtrueのままなので、操作員が実際の会話メッセージ(ツール呼び出しではなく)で「makoto release.operator: <guid>」と入力してブロックを解除できます。Makotoはそのメッセージが本物であることを検証し、ブロックを解除します。また、開発者はコード行に「makoto-allow: <理由>」というコメントを追加することで、正当な操作を許可し、誤検知を回避できます。

Makotoのインストールは簡単で、Claude Codeのプラグインシステムから直接インストールできます。設定ファイルを変更する必要はなく、自動的にフックが登録されます。Makotoの核心理念は「誠」であり、言葉が現実であることを保証します。これは事後監査ではなく、構成要素としての性質です。

このプラグインは、自動テスト、コードレビュー、セキュリティチェックなど、高い信頼性と監査可能性が求められるシナリオに特に適しています。AIエージェントのワークフローに信頼の層を追加し、エージェントの行動と主張が一致することを確認します。