自律エージェントハーネス は何をしますか?
Claude Codeのセッションツールと、個別に設定されたスケジューリング、メモリ、コンピュータ操作の統合を組み合わせます。これはセットアップパターンであり、バンドルされた常時稼働ランタイムではありません。
同意と安全の境界
自律的な操作は、ユーザーが明示的にリクエストし、その範囲を指定する必要があります。ユーザーがその機能と現在のセットアップの対象ワークスペースを承認しない限り、スケジュールを作成したり、リモートエージェントを派遣したり、永続メモリに書き込んだり、コンピュータ制御を使用したり、外部に投稿したり、サードパーティのリソースを変更したり、プライベート通信に作用したりしないでください。
定期的またはイベント駆動型のアクションを有効にする前に、ドライランプランとローカルキューファイルを優先してください。認証情報、プライベートワークスペースのエクスポート、個人データセット、アカウント固有の自動化は、再利用可能なECCアーティファクトから除外してください。
アクティブ化のタイミング
- ユーザーが継続的またはスケジュールに基づいて実行されるエージェントを望んでいる場合
- 定期的にトリガーされる自動ワークフローを設定する場合
- セッション間でコンテキストを記憶するパーソナルAIアシスタントを構築する場合
- ユーザーが「これを毎日実行して」、「これを定期的にチェックして」、「監視を続けて」と言った場合
- Hermes、AutoGPT、または類似の自律エージェントフレームワークの機能を再現したい場合
- スケジュール実行と組み合わせたコンピュータ操作が必要な場合
アーキテクチャ
┌──────────────────────────────────────────────────────────────┐
│ Claude Code ランタイム │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ Crons │ │ 派遣 │ │ メモリ │ │ コンピュータ│ │
│ │ スケ │ │ リモート │ │ ストア │ │ 操作 │ │
│ │ ジュール │ │ エージェント│ │ │ │ │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └──────┬──────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ ECC スキル + エージェント層 │ │
│ │ │ │
│ │ skills/ agents/ commands/ hooks/ │ │
│ └──────────────────────────────────────────────────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ MCP サーバー層 │ │
│ │ │ │
│ │ memory github exa supabase browser-use │ │
│ └──────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
コアコンポーネント
1. 永続メモリ
Claude Codeのビルトインメモリシステムと、構造化データ用のMCPメモリサーバーを拡張して使用します。
ビルトインメモリ (~/.claude/projects/*/memory/):
- ユーザーの好み、フィードバック、プロジェクトコンテキスト
- フロントマター付きのMarkdownファイルとして保存
- セッション開始時に自動的に読み込まれる
MCPメモリサーバー (構造化ナレッジグラフ):
- エンティティ、関係、観察
- クエリ可能なグラフ構造
- セッション間での永続性
メモリパターン:
# 短期: 現在のセッションコンテキスト
TodoWrite を使用してセッション内タスク追跡
# 中期: プロジェクトメモリファイル
~/.claude/projects/*/memory/ に書き込み、セッション間で記憶
# 長期: MCPナレッジグラフ
mcp__memory__create_entities を使用して永続的な構造化データ
mcp__memory__create_relations を使用して関係マッピング
mcp__memory__add_observations を使用して既知のエンティティに関する新しい事実
2. スケジュール操作 (Crons)
インタラクティブセッション内で定期的なプロンプトを実行するには、Claude Codeのネイティブスケジュールタスクを使用します。これらのタスクはセッションスコープです。開始されたセッションとは独立して実行する必要がある作業には、外部スケジューラが必要です。/loop にはスケジューリングMCPサーバーは不要です。
cronの設定:
# インタラクティブなClaude Codeセッション内で
/loop 30m このリポジトリのオープンPRを確認し、CIの失敗を要約してください。
シェルからの1回限りの実行には、CLIを呼び出す前に作業ディレクトリを設定します:
cd "/path/to/repo" && claude -p "オープンPRを確認し、要約してください"
インタラクティブセッションが実行されていないときにそのコマンドを繰り返し呼び出すには、OSスケジューラまたはCIスケジュールを使用します。ランナーの認証とツールの権限は個別に設定してください。
便利なcronパターン:
| パターン | スケジュール | 使用例 |
|---|---|---|
| 日次スタンドアップ | 0 9 * * 1-5 | PR、Issue、デプロイ状況の確認 |
| 週次レビュー | 0 10 * * 1 | コード品質メトリクス、テストカバレッジ |
| 毎時モニター | 0 * * * * | プロダクションヘルス、エラーレートチェック |
| 夜間ビルド | 0 2 * * * | フルテストスイート実行、セキュリティスキャン |
| ミーティング前 | */30 * * * * | 今後のミーティングに向けたコンテキスト準備 |
3. 派遣 / リモートエージェント
認証されたCIジョブまたはWebhookレシーバーが、所有するワークスペースでClaude Codeを呼び出せるようにします。サポートされるエントリポイントはプログラムCLIモードであり、公開Anthropicディスパッチエンドポイントではありません。
派遣パターン:
# CIワークスペース内で実行
cd "/path/to/repo" && claude -p "main でのビルドが失敗しました。失敗を診断してください。"
# Webhookからトリガー
# GitHub webhook -> 認証済みCIランナー -> claude -p -> レビュー可能な結果
# 別のエージェントからトリガー
claude -p "セキュリティスキャンの出力を分析し、問題に対するIssueを作成してください"
4. コンピュータ操作
コンピュータ制御には、個別に設定された統合が必要です。Anthropicのcomputer-useツールとリファレンス環境は、隔離されたデスクトップ環境でツールコールを実行するためのアプリケーションを必要とします。MCPパッケージ名を追加しても、その環境は提供されません。
機能:
- ブラウザ自動化 (ナビゲート、クリック、フォーム入力、スクリーンショット)
- デスクトップ制御 (アプリを開く、タイピング、マウス制御)
- CLIを超えたファイルシステム操作
ハーネス内でのユースケース:
- Web UIの自動テスト
- フォーム入力とデータエントリ
- スクリーンショットベースの監視
- マルチアプリワークフロー
5. タスクキュー
セッション境界を超えて存続するタスクの永続キューを管理します。
実装:
# メモリを介したタスク永続化
タスクキューを ~/.claude/projects/*/memory/task-queue.md に書き込む
# タスク形式
---
name: task-queue
type: project
description: 自律動作のための永続タスクキュー
---
## アクティブタスク
- [ ] PR #123: CIがグリーンならレビューして承認
- [ ] デプロイ監視: 30分ごとに2時間 /health をチェック
- [ ] 調査: AIツール分野で5つのリードを見つける
## 完了済み
- [x] 日次スタンドアップ: 3つのPR、2つのIssueをレビュー
Hermesの置き換え
| Hermesコンポーネント | ECC同等機能 | 方法 |
|---|---|---|
| Gateway/Router | CLI + 外部スケジューラ | 認証済みランナーがエージェントセッションを開始 |
| Memory System | Claudeメモリ + MCPメモリサーバー | ビルトイン永続化 + ナレッジグラフ |
| Tool Registry | MCPサーバー | 動的に読み込まれるツールプロバイダー |
| Orchestration | ECCスキル + エージェント | スキル定義がエージェントの動作を指示 |
| Computer Use | 個別に設定された統合 | 隔離環境でのブラウザまたはデスクトップ制御 |
| Context Manager | セッション管理 + メモリ | ECC 2.0セッションライフサイクル |
| Task Queue | メモリ永続化されたタスクリスト | TodoWrite + メモリファイル |
セットアップガイド
ステップ 1: MCPサーバーの設定
メモリMCPはオプションです。MCPリファレンスメモリサーバーは @modelcontextprotocol/server-memory として公開されています。バージョン 2026.8.31 は2026-09-07に公開npmレジストリで確認されました。これはリファレンス実装であり、ECCバンドルサービスではありません。
そのパッケージを確認し、使用を承認した後、このエントリを ~/.claude.json のユーザースコープのMCP設定にマージし、既存の設定を保持します。MEMORY_FILE_PATH を、自分が所有するプライベートディレクトリ内の絶対パスに置き換えてください。CLI登録とWindows cmd /c npx の設定については、Claude Code MCP設定 を参照してください。
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/[email protected]"],
"env": {
"MEMORY_FILE_PATH": "/absolute/path/to/private/memory.jsonl"
}
}
}
}
推測された、または未公開のnpmパッケージを登録しないでください。npx -y は、後でその名前で公開されたものを実行することになります。別のサーバーを追加する前に、正確なパッケージ、公開元、バージョンを確認してください。スケジューリングとコンピュータ操作には、ここに以前リストされていた3つの未公開パッケージ名は必要ありません。
ステップ 2: 基本Cronの作成
インタラクティブセッション中のポーリングには、次のように入力します:
/loop 30m このリポジトリのオープンPRを確認し、CIの失敗を要約してください。
閉じたセッションを超えて存続する必要がある日次または週次の作業には、OS cronジョブやGitHub Actionsなどの外部スケジューラを設定して、コアコンポーネントのステップ2からワンショットコマンドを実行します。スケジュールを要求するために claude -p を呼び出しても、常時稼働スケジューラはプロビジョニングされません。有効にする前に、スケジュール、ワークスペース、および許可されるアクションを明示的に選択してください。
ステップ 3: メモリグラフの初期化
# 自分のアイデンティティとコンテキストをブートストラップ
claude -p "me(ユーザープロファイル)、私のプロジェクト、私の主要な連絡先のメモリエンティティを作成してください。現在の優先事項に関する観察を追加してください。"
ステップ 4: コンピュータ操作の有効化(オプション)
上記でリンクされたコンピュータ操作リファレンス環境、またはレビュー済みの特定のブラウザ統合のドキュメントに従ってください。必要な権限のみを付与し、スケジュールされたワークフローに追加する前に、隔離環境で無害なアクションを確認してください。
ワークフロー例
自律PRレビュアー
Cron: 勤務時間中は30分ごと
1. 監視対象リポジトリの新しいPRを確認
2. 新しいPRごとに:
- ブランチをローカルにプル
- テストを実行
- code-reviewerエージェントで変更をレビュー
- GitHub MCPを介してレビューコメントを投稿
3. レビューステータスでメモリを更新
パーソナルリサーチエージェント
Cron: 毎日午前6時
1. メモリに保存された検索クエリを確認
2. 各クエリに対してExa検索を実行
3. 新しい発見を要約
4. 昨日の結果と比較
5. ダイジェストをメモリに書き込み
6. 朝のレビュー用に優先度の高いアイテムをフラグ付け
ミーティング準備エージェント
トリガー: 各カレンダーイベントの30分前
1. カレンダーイベントの詳細を読む
2. 参加者に関するコンテキストをメモリから検索
3. 参加者との最近のメール/Slackスレッドをプル
4. トークポイントとアジェンダの提案を準備
5. 準備ドキュメントをメモリに書き込み
制約
- ネイティブのスケジュールプロンプトは、そのインタラクティブセッションを共有します。外部スケジューラの呼び出しは、明示的に再開されない限り、個別のセッションを開始します。
- コンピュータ操作には明示的な権限付与が必要です。アクセスを想定しないでください。
- CLI自動化は依然としてモデル使用量を消費し、設定されたプロバイダーの制限の対象となります。適切なスケジューラ間隔を選択してください。
- メモリファイルは簡潔に保つ必要があります。ファイルが無制限に成長するのを防ぐために、古いデータはアーカイブしてください。
- スケジュールされたタスクが正常に完了したことを常に確認してください。cronプロンプトにエラーハンドリングを追加してください。