バックグラウンドサブエージェントの権限プロンプトをメインセッションに表示
原文(日本語に翻訳)
バックグラウンドサブエージェントが、自動拒否する代わりにメインセッションで権限プロンプトを表示するように変更されました。ダイアログにはどのエージェントが要求しているかが表示され、Escキーでその特定ツールのみを拒否できます。
原文(英語)
Changed background subagents to surface permission prompts in the main session instead of auto-denying; the dialog shows which agent is asking, and Esc denies just that tool
概要
以前は、バックグラウンドで動作するサブエージェントが権限が必要なツール(ファイル書き込みや外部API呼び出しなど)を使おうとした際に、自動的に拒否されていました。この変更により、権限リクエストがメインセッションに表示され、ユーザーが明示的に承認または拒否できるようになりました。Escキーで個別のツール要求を拒否しながら、エージェントの実行を継続させることも可能です。
基本的な使い方
バックグラウンドで動作するサブエージェントが権限を必要とする操作を行おうとすると:
- メインセッションに権限プロンプトが表示される
- ダイアログにどのエージェントが要求しているかが表示される
- 承認・拒否・Escで個別拒否を選択できる
[エージェント: my-worker] ファイルへの書き込みを許可しますか?
対象: /path/to/file.txt
[y] 許可 [n] 拒否 [Esc] このツールのみ拒否実践例
Workflow でのサブエージェント管理
javascript
// ワークフロースクリプト
export const meta = {
name: 'file-processor',
description: 'ファイルを処理するワークフロー',
}
const results = await parallel([
() => agent('ファイルAを分析して修正してください', {label: 'worker-A'}),
() => agent('ファイルBを分析して修正してください', {label: 'worker-B'}),
])各サブエージェント(worker-A, worker-B)がファイル書き込みを必要とする際に、メインセッションで個別に承認できます。
個別ツールの拒否
あるサブエージェントが意図しないファイルへの書き込みを要求した場合:
Escキーでそのツール要求のみを拒否- サブエージェントは続行(他のツールは使用可能)
- 他のサブエージェントには影響なし
エージェントの識別
権限ダイアログには要求元のエージェント名が表示されるため、複数のエージェントが並行動作している場合でも、どのエージェントが何を要求しているかを把握できます。
注意点
- 以前の動作(自動拒否)から変更されています。バックグラウンドエージェントが権限を必要とする場合、メインセッションへの注意が必要です
Escはそのエージェントの特定ツール要求のみを拒否します。エージェント全体を停止するわけではありません- 権限プロンプトへの応答をしない場合、エージェントはそのツール要求でブロックされます
allowedToolsやdeniedTools設定を事前に構成しておくと、プロンプト数を減らせます
関連情報
- Claude Code 権限設定
- エージェント設定:
.claude/settings.jsonのallowedTools/deniedTools