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