OpenClaw AIエージェントの厳格なガードレール施行:承認ゲーティングと並行性制限

Mac miniでOllama(GLM 5.2、フォールバックはAnthropic Sonnet 4.6とHaiku)を使ってOpenClawボットを実行している開発者が、古典的な問題に直面しました。ボットは「承認なしにメールを送信しない」「同時呼び出しは最大5回」などのハードルールを、毎回理解を確認するにもかかわらず、繰り返し違反するのです。ユーザーの仮説は的確です。これは「文脈としてのルール」であり、「制約としてのルール」ではありません。モデルは指示を助言として扱うため、プロンプトや記憶の強化では修正できません。
標準的な修正方法は、強制をモデルの推論ループの外に置くことです。統計的なテキスト予測器にハードリミットを強制させることはできません。オーケストレーション層で決定的なチェックが必要です。
ツール呼び出しの承認ゲート
メール(または危険なアクション)を承認の後に実行するようにするには、ツール呼び出しをヒューマン・イン・ザ・ループパターンでラップします。
- モデルがメール送信を要求したら、実行前に呼び出しをインターセプトします。
- Discordで確認プロンプトを表示します(例:ボタンやリアクション)。
- ユーザーが承認した場合のみ、実際のAPI呼び出しを実行します。
# OpenClawツールハンドラ内の疑似コード
if tool == "send_email":
message = f"{to} へのメール送信を承認しますか?"
if not await discord_approval(message):
return "ユーザーが拒否しました。送信しないでください。"
# メールAPI呼び出しを続行
これにより、モデルが何を言おうと、物理的にゲートを迂回できなくなります。
オーケストレーションレベルでの同時実行制限
「最大5」のような同時実行制限には、コマンドディスパッチャにセマフォまたはカウンタを実装します:
import asyncio
semaphore = asyncio.Semaphore(5)
async def handle_tool_call(tool, args):
async with semaphore:
# ツール呼び出しを実行
制限を超える試みは、モデルの意図に関係なく、待機するか即座に失敗します。
これはGLM/Ollama固有の問題か?
ユーザーは、これがGLM固有の問題なのか、ローカルモデル全般に当てはまるのかを尋ねています。r/openclawの議論によると、これは一般的なLLMの限界です。すべてのモデルは指示を文脈として扱い、制約としては扱いません。プロンプトだけではハードリミットを強制できません。解決策は常にインフラストラクチャレベルの強制を必要とします。
推奨事項
メモリやスキルでルールを繰り返すのをやめてください。代わりに、ツール呼び出しレイヤーに明示的なチェックを組み込んでください。モデルを提案エンジンとして扱い、ポリシー執行者としては扱わないでください。
📖 全文を読む: r/openclaw
👀 See Also

新しいマルチプレイヤーゲームでAIボットをコーディングして人間と対戦させる
新しいマルチプレイヤーゲームでは、プレイヤーがAIボットをプログラミングして人間のプレイヤーとリアルタイムで対戦でき、コーディングとゲームの課題がユニークに融合しています。

35日間のClaude Code:3つの並列エージェントが本当の上限である理由
Claude Code の1,800ターン以上の分析で、ボトルネックはコンテキストではなく、人間の統合能力にあることが判明。N ≈ 1 / (待機時間の割合)という単純な式が、エージェント3つで壁にぶつかる理由を説明する。

Claude Codeの/insightsコマンドは、デバッグや自律的なタスクのヒントを提供します。
Redditユーザーが、Claude Codeの/insightsコマンドの実用的なテクニックを2つ紹介しています。バグのデバッグ時には少なくとも3つの潜在的な根本原因を特定するよう依頼すること、そして自律実行には包括的なタスク仕様と--dangerously-skip-permissionsフラグを使用することです。

CLAUDE.mdを最適化してClaude AIのコンテキスト不安を軽減する
Redditでの議論では、CLAUDE.mdの効果を高める実践的な戦略が紹介されています。具体的には、ファイルを200行以内に収めること、検証可能な具体的な指示を使用すること、トークンを無駄にする修正ループを防ぐためにClaudeの自動メモリ機能を活用することなどです。