OpenClawの設定 - メモリとタスク管理

提供: MochiuWiki : SUSE, EC, PCB

概要

OpenClawのメモリとタスク管理システムは、3つのファイルによって構成される。

OpenClawの状態管理ファイル
ファイル 説明
MEMORY.md セッション間の永続メモリ
重要な決定事項、ユーザの好み、恒久的な事実を保持する長期メモリの単一の情報源 (Source of Truth) として機能する。
HEARTBEAT.md 定期タスク管理
デフォルトで30分ごとにcronジョブがエージェントを起動し、定期的なチェック項目やリマインダーを確認する。
WORKING.md マルチエージェント間の共有タスクリスト管理
複数のエージェントが協調してタスクを実行するための共有スペースとして機能する。


これら3つのファイルが連携することで、エージェントの長期記憶・自律行動・協調動作が実現される。

また、memory/ ディレクトリ以下に配置される日次ログ (memory/YYYY-MM-DD.md) と合わせて、メモリシステム全体を構成する。

全てのファイルはプレーンテキストのMarkdown形式で管理されるため、Gitによるバージョン管理との互換性がある。


MEMORY.md (永続メモリ)

MEMORY.mdは、OpenClawエージェントの長期メモリの単一の情報源 (Source of Truth) として機能するファイルである。

セッション開始時に自動的に読み込まれ、エージェントが過去の経緯や重要な事実を踏まえた動作を継続できるようにする。

構造と記述方法

MEMORY.mdは、Markdownプレーンテキスト形式で記述する。

セクション分けで情報を管理し、重要度や種別に応じたセクションを設ける。

  • 記述形式
    Markdownのヘッダ (##) でセクションを区切り、箇条書きや平文で情報を記録する。
  • セクション例
    ユーザ情報、プロジェクト情報、ルール、好み、重要な決定事項


記録する内容

MEMORY.mdに記録すべき主な内容を以下に示す。

MEMORY.mdに記録すべき内容
項目 説明
重要な決定事項 プロジェクトの方向性、技術選定、設計上の判断等
ユーザの好みと設定 コミュニケーションスタイル、作業上の好み、通知方法の設定
恒久的な事実 プロジェクトの構成、環境設定、チームメンバーの役割
プロジェクト関連の永続的な知識 アーキテクチャの概要、依存関係、既知の制約


メモリ昇格の仕組み

日次ログ (memory/YYYY-MM-DD.md) から重要な情報を選別し、MEMORY.mdに昇格 (プロモーション) する仕組みを採用している。

MEMORY.mdのメンテナンスガイドライン
項目 説明
昇格の基準 3回以上の日次ログで参照された情報は、MEMORY.mdへの昇格を検討することが推奨される。
削除の基準 古くなり参照されなくなった情報は削除し、MEMORY.mdをクリーンな状態に保つ。
昇格のタイミング 週次レビュー時に日次ログを確認し、重要な情報をMEMORY.mdに集約する。


記述例

MEMORY.mdの記述例を以下に示す。

 # MEMORY
 
 ## ユーザ情報
 
 * 名前: 田中太郎
 * 呼称: 田中さん
 * タイムゾーン: Asia/Tokyo
 * コミュニケーションスタイル: 簡潔な回答を好む。箇条書きを多用する。
 
 ## プロジェクト情報
 
 * メインプロジェクト: ECサイトのマイクロサービス移行
 * 使用技術: Go, gRPC, Kubernetes
 * リポジトリ: github.com/example/ec-platform
 
 ## 重要な決定事項
 
 * 2026-02-10: データベースをPostgreSQLからCockroachDBに移行することを決定
 * 2026-02-15: APIゲートウェイにEnvoyを採用
 * 2026-02-20: テスト戦略としてコントラクトテストを導入
 
 ## ルールと好み
 
 * コードレビューは必ず2名以上で実施
 * コミットメッセージはConventional Commits形式を使用
 * ドキュメントは日本語で記述



日次ログ (memory/YYYY-MM-DD.md)

日次ログは、エージェントの日々の活動や実行結果を記録するための一時的なメモリファイルである。

ディレクトリ構造

日次ログは memory/ ディレクトリ以下に、YYYY-MM-DD.md形式のファイル名で配置する。

  • 配置場所
    ワークスペースルート直下の memory/ ディレクトリ
  • ファイル名形式
    memory/2026-02-25.md のように日付をYYYY-MM-DD形式で使用する


特性

日次ログファイルの主な特性を以下に示す。

日次ログの運用特性
項目 説明
アペンド専用の一時的メモリ 既存の内容を上書きせず、末尾に追記していく形式で運用する。
セッション開始時の自動読み込み 当日および前日の日次ログが、セッション開始時に自動的に読み込まれる。
エラーなしの欠損許容 ファイルが存在しない場合でもエラーにならず、正常にセッションが開始される。


記述例

日次ログの記述例を以下に示す。

 ## 2026-02-25
 
 ### 午前
 * メール受信箱を確認 - 緊急アイテム3件をフラグ付け
 * カレンダーのプロジェクトタイムラインを更新
 
 ### 午後
 * PR #142のコードレビューを完了
 * チームとデプロイ戦略について議論
 
 ### 学び
 * ユーザはリアルタイム通知よりも非同期更新を好む
 * 新しいAPIエンドポイントには認証トークンが必要


運用サイクル

日次ログを中心としたメモリ管理の推奨サイクルを以下に示す。

  • 日次
    memory/YYYY-MM-DD.md に活動を追記する。
  • 週次
    日次ログをレビューし、重要な事実をMEMORY.mdに集約する。
  • 月次
    古いメモリファイルをアーカイブし、MEMORY.mdを整理する。



HEARTBEAT.md (定期タスク)

HEARTBEAT.md は、定期的にチェックすべきタスク、リマインダー、チェックリストを定義するファイルである。

cronジョブによって定期的にエージェントが起動され、HEARTBEAT.mdの内容に従ってタスクの確認と実行が行われる。

実行スケジュール

下表に、HEARTBEAT.mdの実行スケジュールに関する設定を示す。

HEARTBEAT.mdの動作仕様
項目 説明
デフォルトの実行間隔 30分ごとにcronジョブがエージェントを起動する。
スキップ条件 HEARTBEAT.mdが空の場合、ハートビートAPIコールはスキップされる。


cronコマンド

下表に、OpenClawが提供するcron管理コマンドを示す。

cron ジョブの管理コマンド
コマンド 説明
openclaw cron list 現在登録されているcronジョブの一覧を表示する。
openclaw cron add 新しいcronジョブを追加する。
openclaw cron remove 既存のcronジョブを削除する。


記述例

HEARTBEAT.mdの記述例を以下に示す。

 # HEARTBEAT
 
 ## 定期チェック
 
 * メールの緊急アイテムを確認
 * カレンダーの今後の予定を確認
 * GitHubの通知でメンションを確認
 
 ## 日次タスク
 
 * 日次ログにサマリーを更新
 * 保留中のメッセージを確認して返信
 
 ## 週次タスク
 
 * MEMORY.mdをレビューし、日次ログを集約
 * プロジェクトの締め切りとマイルストーンを確認


タスク実行時の特性

HEARTBEAT.mdに基づくタスク実行の主な特性を以下に示す。

  • コンテキストベースの判断
    エージェントは日次ログを参照しながら、各タスクの優先度を判定して実行する。
  • 自動化安全性
    高速・ローカル・決定論的な処理を前提として設計されており、安全に自動化できる。



WORKING.md (マルチエージェント協調)

WORKING.md は、複数のエージェントが協調してタスクを管理するための共有タスクリストファイルである。

各エージェントは、WORKING.mdを参照・更新することにより、タスクの割り当て、依存関係、進捗状況を共有する。

マルチエージェントアーキテクチャ

OpenClawのマルチエージェントアーキテクチャは、以下に示す3つの層で構成される。

OpenClawのアーキテクチャ層
説明
Gateway層 メッセージングと制御を担当する。
127.0.0.1:18789 にバインドされる。
Brain層 タスクスケジューリングと意思決定を担当する。
Skill層 独立した実行ユニットとして、個々のタスクを実行する。


各エージェントは独立したワークスペース、会話履歴、権限設定を持ち、WORKING.md を通じて協調して動作する。

タスク管理の記述方法

WORKING.mdへのタスク記述では、以下に示す情報を明記することが推奨される。

WORKING.md のタスク管理の記述方法
項目 説明
割り当てエージェントの明記 各タスクを担当するエージェントを Owner: フィールドで指定する。
依存関係の記述 他のタスクへの依存関係を Dependencies: フィールドで記述する。
優先度の設定 [HIGH][MEDIUM][LOW] 等のラベルでタスクの優先度を示す。
完了状況の管理 タスクの完了後は「Completed Tasks」セクションに移動し、完了日を記録する。


記述例

WORKING.mdの記述例を以下に示す。

 # WORKING
 
 ## 進行中のタスク
 
 ### [高] マイクロサービス移行
 - 担当: dev-agent
 - 状態: 進行中
 - 依存関係: なし
 - 期限: 2026-03-15
 
 ### [中] ドキュメント更新
 - 担当: docs-agent
 - 状態: 保留中
 - 依存関係: マイクロサービス移行
 - 期限: 2026-03-30
 
 ## 完了したタスク
 
 ### [完了] API認証セットアップ
 - 担当: dev-agent
 - 完了日: 2026-02-20


運用の推奨事項

下表に、WORKING.mdを効果的に運用するための推奨される事柄を示す。

WORKING.md の運用に関する推奨事項
推奨事項 説明
各タスクに担当エージェントを明記する タスクの責任範囲を明確にし、重複作業や見落としを防ぐ。
依存関係を明確化する タスク間の依存関係を記述し、実行順序の判断ミスを防ぐ。
定期的に進捗を更新する タスクの状態変化をリアルタイムに反映し、最新の状態を維持する。
完了の定義を事前に設定する 各タスクの完了条件を明確にしておくことで、判断の一貫性を保つ。



3ファイルの連携

MEMORY.md、日次ログ、HEARTBEAT.md、WORKING.mdは、それぞれ異なる役割を持ちながら連携して動作する。

データフロー

下表に、各ファイルのデータフローの概要を示す。

各ファイルのデータフロー
ファイル 記録内容 更新頻度 読み込みタイミング
MEMORY.md 恒久的な事実・決定事項 週次で日次ログから昇格 セッション開始時
memory/YYYY-MM-DD.md 日々の活動・実行結果 日次 (アペンド) 当日+前日をセッション開始時
HEARTBEAT.md 定期チェック項目 タスク変更時 30分ごとのcron実行時
WORKING.md マルチエージェント共有タスク タスク進捗更新時 エージェント間で共有参照


運用フロー

3ファイルが連携する運用フローを以下に示す。

  • セッション開始
    MEMORY.mdと当日・前日の日次ログを読み込み、コンテキストを復元する。
  • 定期実行 (ハートビート)
    HEARTBEAT.mdを確認し、タスクを評価して実行結果を日次ログに記録する。
  • マルチエージェント協調
    WORKING.mdを参照してタスクを実行し、完了後に WORKING.md を更新する。
  • メモリ整理
    日次ログから重要情報をMEMORY.mdに昇格させ、古い日次ログをアーカイブする。



推奨スクリプト

OpenClawのproductionテンプレートは、メモリ管理を効率化するためのスクリプトを提供している。

productionテンプレートのメモリ管理スクリプト
スクリプト 説明
log.sh タイムスタンプ付きの日次エントリを自動作成するスクリプト
日次ログへの追記を簡略化する。
sync.sh クリーンなGitノート形式でメモリをコミットするスクリプト
メモリファイルのバージョン管理を支援する。
status.sh メモリシステムの健全性を診断するスクリプト
各ファイルの状態と整合性を確認できる。



関連項目