Communityライティング&編集github.com

agent-sync

AIコーディングエージェント間でメモリを同期し、あるエージェントで中断した作業を別のエージェントで引き継げるようにします。

agent-sync とは?

このスキル「agent-sync」は、複数のAIコーディングエージェント(Claude Code、Codex CLI、Gemini CLIなど)間で、ファイルを介したターンベースの連携作業を可能にするためのプロトコルを定義しています。コーディネーター(人間またはユーザーが指定したエージェント)がタスクを定義し、ワーカーエージェントが仕様に基づいてアーティファクトを生成し、結果をファイルに書き込むことで非同期的に作業を進めます。ワーカーはタスクディレクトリ内の`task.md`を読み取り、成果物を作成し、`result.md`を出力します。同一リポジトリ上での並行編集による競合を防ぐため、ロック機構(`mkdir`によるアトミックなロック)または`git worktree`を使用することを推奨しています。ワーカーには認証情報や本番環境へのアクセスは与えず、コーディネーターが最終的な検証とマージを行います。このスキルは、複数のAIエージェントを安全かつ効率的に連携させ、大規模な開発タスクを分担するための実践的なガイドラインを提供します。

対応✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add hibeekaey/agent-sync

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

コーディングエージェント間での作業連携

あなたはコーディネーターです。タスク定義を所有し、すべての成果物をレビューし、次のアクションを決定します。他のすべてのエージェントはワーカーです。ワーカーは仕様を受け取り、アーティファクトを生成し、停止します。ベンダー間のメッセージバスは存在しないため、連携はターンベースでファイルを介して行われます。

you task.mdを書く -> ワーカーがヘッドレスで実行 -> ワーカーがresult.mdを書く ->
あなたが読み、確認し、次のターンを決定する

agent-sync がインストールされている場合は、委任前に agent sync を実行して、すべてのワーカーがあなたが持っているのと同じ合成メモリから開始するようにします。

1. タスクディレクトリを作成する

task/
  task.md      # 仕様書(以下の契約を参照)
  ...inputs... # ワーカーが必要とするものすべて。ワーカーはこれ以外のコンテキストを得られません
  result.md    # ワーカーが書き込むファイル。このファイルの存在が完了を示します

task.md は請負業者への指示書であり、以下を含む必要があります。

  • 目標(1段落で)
  • 正確な成果物(ファイル名付き)
  • 確認可能な完了条件
  • 成果物を書き込んだら停止する指示
  • ワーカーが共有ツリーを編集する場合の、セクション2のロックまたはワークツリールール

2. 呼び出す前に共有モードを選択する

ルールゼロ:2つのエージェントが同時に同じワーキングツリーを変更してはなりません。

状況モード
ワーカーが読み取りのみを行う(レビュー、分析、セカンドオピニオン)同じディレクトリ、ロックなし
1つのツリーで交代で編集を行う同じディレクトリ + mkdir ロック
並行して試行する、または並行してファイルに触れるサブタスクワーカーごとに1つの git worktree
2つのエージェントが1つのツリーを同時に編集する決して行わない。構造を変更する

同じディレクトリでのロック(mkdir はアトミックです。これらの手順も task.md に記述してください):

until mkdir .agent-lock 2>/dev/null; do sleep 1; done   # 取得
echo "$(whoami):$$" > .agent-lock/owner
# ... 作業 ...
rm -rf .agent-lock                                       # 解放

経過時間によるロックの自動期限切れは絶対に行わないでください。遅いワーカーは停止したワーカーと見分けがつきません。古いロックをクリアする前に、ワーカープロセスが停止していることを確認してください。

ワークツリーモード: ワーカーごとに git worktree add ../task-<worker> -b agent/<worker> を実行します。ワーカーは決してプッシュせず、互いのツリーに触れることもありません。メインチェックアウトは読み取り専用のままにし、あなた(コーディネーター)が唯一の直列化されたステップとしてすべてのマージを実行します。

3. ワーカーをヘッドレスで呼び出す

ワーカーコマンド
Claude Codeclaude -p "このディレクトリの task.md を読み、完了してください。"
Codex CLIcodex exec --skip-git-repo-check --sandbox workspace-write "このディレクトリの task.md を読み、完了してください。" </dev/null
Gemini CLIgemini -p "このディレクトリの task.md を読み、完了してください。"

苦労して学んだルール:

  • タスクディレクトリ内からワーカーを実行し、その書き込みアクセス権をそのディレクトリに限定してください。
  • バックグラウンドで実行するワーカーには stdin を閉じてください(</dev/null)。そうしないと入力待ちでハングする可能性があります。
  • Codex は --skip-git-repo-check なしでは信頼されていない非gitディレクトリを拒否します。

4. 確認し、決定する

  • ワーカーの言葉は成果物ではありません。result.md を読み、完了条件と照らし合わせて確認してください。コードの場合は、自分でテストを実行してください。
  • 成果物がない、または間違っている場合は、同じ仕様をリトライするのではなく、より明確な仕様で新しいターンを開始してください。
  • あなたは受け入れたすべてのものに対して責任を持ち続けます。ワーカーの差分を、人間の請負業者のPRと同様にレビューしてください。

境界

  • ワーカーに認証情報、デプロイ権限、実際のユーザーへのアクセスを決して与えないでください。ワーカーはアーティファクトを生成し、コーディネーター(ユーザーとともに)が出荷します。
  • 「ちょっとしたタスク」であっても、ロックやワークツリーなしで、このプロトコルを1つのツリー内で編集を並列化するために決して実行しないでください。
  • ユーザーがどのエージェントをコーディネーターにするかを決定します。コーディネーションをワーカーに引き継がないでください。

関連スキル