Agent Runtime(エージェントランタイム)🤖
OpenClaw は p-mono から派生した単一の埋め込みエージェントランタイムを実行します。
Workspace(ワークスペース)(必須)
OpenClaw は、単一のエージェントワークスペースディレクトリ(agents.defaults.workspace)を、ツールとコンテキストのためのエージェントの唯一の作業ディレクトリ(cwd)として使用します。
推奨:openclaw setup を使用して、欠落している場合は ~/.openclaw/openclaw.json を作成し、ワークスペースファイルを初期化してください。
完全なワークスペースレイアウト + バックアップガイド:Agent workspace
agents.defaults.sandbox が有効な場合、メイン以外のセッションは、agents.defaults.sandbox.workspaceRoot の下のセッションごとのワークスペースでこれをオーバーライドできます(Gateway configuration を参照)。
Bootstrap files(ブートストラップファイル)(注入)
agents.defaults.workspace 内で、OpenClaw は次のユーザー編集可能ファイルを期待します:
- AGENTS.md — 操作指示 + 「メモリ」
- SOUL.md — ペルソナ、境界、トーン
- TOOLS.md — ユーザーメンテナンスのツールメモ(例:imsg、sag、規約)
- BOOTSTRAP.md — 一度限りの初回実行儀式(完了後に削除)
- IDENTITY.md — エージェント名/雰囲気/絵文字
- USER.md — ユーザープロファイル + 好みの呼び方
新しいセッションの最初のターンで、OpenClaw はこれらのファイルの内容を直接エージェントコンテキストに注入します。
空白のファイルはスキップされます。大きなファイルはトリミングされ、プロンプトがスリムに保たれるようにマーカーで切り捨てられます(完全な内容についてはファイルを読んでください)。
ファイルが欠落している場合、OpenClaw は単一の「欠落ファイル」マーカー行を注入します(そして openclaw setup は安全なデフォルトテンプレートを作成します)。
BOOTSTRAP.md は、真新しいワークスペース(他のブートストラップファイルが存在しない)に対してのみ作成されます。儀式を完了した後に削除すると、後の再起動時に再作成されるべきではありません。
ブートストラップファイルの作成を完全に無効にするには(事前シードされたワークスペースの場合)、次のように設定します:
{ agent: { skipBootstrap: true } }
組み込みツール
コアツール(read/exec/edit/write および関連するシステムツール)は、ツールポリシー(tool policy)の対象となりますが、常に利用可能です。apply_patch はオプションであり、tools.exec.applyPatch によってゲートされています。TOOLS.md は、どのツールが存在するかを制御しません。それは、それらをどのように使用したいかについてのガイダンスです。
Skills(スキル)
OpenClaw は 3 つの場所からスキルをロードします(名前の衝突ではワークスペースが優先):
- バンドル(インストールに同梱)
- 管理/ローカル:~/.openclaw/skills
- ワークスペース:<workspace>/skills
スキルは設定/環境によってゲートできます(Gateway configuration の skills を参照)。
p-mono 統合
OpenClaw は p-mono コードベースの一部(models/tools)を再利用しますが、セッション管理、検出、ツール配線は OpenClaw が所有します。
- p-coding エージェントランタイムはありません。
- ~/.pi/agent または <workspace>/.pi 設定は参照されません。
Sessions(セッション)
セッショントランスクリプトは JSONL として次の場所に保存されます:
- ~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
セッション ID は安定しており、OpenClaw によって選択されます。 レガシー Pi/Tau セッションフォルダは読み込まれません。
ストリーミング中のステアリング
キューモード(queue mode)が steer の場合、受信メッセージは現在の実行に注入されます。キューは各ツール呼び出しの後にチェックされます。キューイングされたメッセージが存在する場合、現在の assistant メッセージからの残りのツール呼び出しはスキップされ(「Skipped due to queued user message.」というエラーツール結果)、次の assistant 応答の前にキューイングされたユーザーメッセージが注入されます。
キューモードが followup または collect の場合、受信メッセージは現在のターンが終了するまで保持され、その後、キューイングされたペイロードで新しいエージェントターンが開始されます。モード + デバウンス/キャップ動作については、Queue を参照してください。
ブロックストリーミング(block streaming)は、完了した assistant ブロックを終了次第送信します。デフォルトではオフです(agents.defaults.blockStreamingDefault: "off")。境界は agents.defaults.blockStreamingBreak(text_end vs message_end、デフォルトは text_end)で調整します。ソフトブロックチャンキング(soft block chunking)は agents.defaults.blockStreamingChunk(デフォルトは 800–1200 文字。段落区切り、次に改行を優先。文末を最後)で制御します。ストリームされたチャンクを agents.defaults.blockStreamingCoalesce で結合して、単一行のスパムを減らします(送信前のアイドルベースのマージ)。Telegram 以外のチャネルは、ブロック応答を有効にするために明示的に *.blockStreaming: true が必要です。Verbose ツールサマリーはツール開始時に発行されます(デバウンスなし)。Control UI はエージェントイベントが利用可能な場合にツール出力をストリームします。 詳細:Streaming + chunking。
Model refs(モデル参照)
設定内のモデル参照(例:agents.defaults.model および agents.defaults.models)は、最初の / で分割して解析されます。
- モデルを設定する際は provider/model を使用します。
- モデル ID 自体に / が含まれている場合(OpenRouter スタイル)、プロバイダープレフィックスを含めてください(例:openrouter/moonshotai/kimi-k2)。
- プロバイダーを省略した場合、OpenClaw は入力をエイリアスまたはデフォルトプロバイダーのモデルとして扱います(モデル ID に / が含まれていない場合のみ機能)。
Configuration(設定)(最小限)
最低限、次を設定してください:
- agents.defaults.workspace
- channels.whatsapp.allowFrom(強く推奨)
次:Group Chats 🦞