Skip to content

原文(日本語)

マルチエージェントワークフロー向けに TeammateIdleTaskCompleted フックイベントが追加されました。

原文(英語)

Added TeammateIdle and TaskCompleted hook events for multi-agent workflows

概要

マルチエージェントワークフローを制御するための新しいフックイベント、TeammateIdleTaskCompleted が追加されました。これらのイベントを使用することで、エージェントチームメイトがアイドル状態になったときや、タスクが完了したときに、カスタムスクリプトやコマンドを自動実行できるようになります。

基本的な使い方

フックイベントは、Claude Codeの設定ファイル(~/.claude/settings.json)で定義します。

json
{
  "hooks": {
    "TeammateIdle": "echo 'Teammate is now idle'",
    "TaskCompleted": "echo 'Task has been completed'"
  }
}

実践例

タスク完了時の通知システム

タスクが完了したときに、デスクトップ通知を送信する例:

json
{
  "hooks": {
    "TaskCompleted": "notify-send 'Claude Code' 'タスクが完了しました' --urgency=normal"
  }
}

macOSの場合:

json
{
  "hooks": {
    "TaskCompleted": "osascript -e 'display notification \"タスクが完了しました\" with title \"Claude Code\"'"
  }
}

エージェントのアイドル状態を検知してログ記録

エージェントチームメイトがアイドル状態になったときに、ログファイルにタイムスタンプを記録:

json
{
  "hooks": {
    "TeammateIdle": "echo \"[$(date '+%Y-%m-%d %H:%M:%S')] Teammate idle\" >> ~/.claude/agent-activity.log"
  }
}

複数のコマンドを連鎖実行

タスク完了時に、複数のアクションを実行する例:

json
{
  "hooks": {
    "TaskCompleted": "notify-send 'Task Complete' && echo \"Task completed at $(date)\" >> task-log.txt && curl -X POST https://your-webhook.com/task-complete"
  }
}

CI/CDとの統合

タスク完了時に、外部のCI/CDパイプラインをトリガーする:

json
{
  "hooks": {
    "TaskCompleted": "gh workflow run deploy.yml --ref main"
  }
}

チーム連携での活用

Slackに通知を送信して、チームメンバーに進捗を共有:

json
{
  "hooks": {
    "TaskCompleted": "curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"Claude Code: タスクが完了しました\"}' https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
    "TeammateIdle": "curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"エージェントがアイドル状態です\"}' https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
  }
}

開発環境の自動管理

エージェントがアイドル状態になったら、リソースを節約するために自動でクリーンアップを実行:

json
{
  "hooks": {
    "TeammateIdle": "docker system prune -f && echo 'Docker cleanup completed'"
  }
}

注意点

  • フックコマンドは、Claude Codeを実行しているユーザーの権限で実行されます
  • 長時間実行されるコマンドは避けてください。フックは同期的に実行されるため、処理が完了するまでワークフローがブロックされる可能性があります
  • フックコマンドのエラーは、Claude Codeのログに記録されます
  • セキュリティ上の理由から、フックコマンド内で機密情報(APIキーなど)を直接記述することは避け、環境変数を使用してください
  • TeammateIdle イベントは、エージェントチームメイトが作業を完了してアイドル状態になったときにトリガーされます
  • TaskCompleted イベントは、Task tool を使用して起動されたタスクが完了したときにトリガーされます
  • これらのフックは、マルチエージェントワークフローに特化しており、単一エージェントでの通常のタスクでは発動しない場合があります

関連情報