原文(日本語に翻訳)
サブエージェント(Taskツール)がパーミッション拒否後も作業を継続し、代替アプローチを試行できるよう改善しました
原文(英語)
Improved subagents (Task tool) to continue working after permission denial, allowing them to try alternative approaches
概要
Claude Code v2.1.0で改善された、サブエージェントの柔軟な実行機能です。以前のバージョンでは、Taskツールで起動したサブエージェントがパーミッションを要求し、ユーザーが拒否すると、サブエージェントはエラーで停止していました。この改善により、パーミッション拒否後もサブエージェントが別の方法を試行できるようになり、より柔軟なタスク実行が可能になりました。
改善前の動作
パーミッション拒否で停止
bash
# サブエージェントを起動
claude
> Use Task tool to analyze codebase
# サブエージェントが危険なコマンドを実行しようとする
Subagent: Execute `rm -rf node_modules`?
[Deny]
# 修正前:
Error: Permission denied
Subagent terminated
Task failed
# タスク全体が失敗改善後の動作
代替アプローチを試行
bash
# サブエージェントを起動
claude
> Use Task tool to analyze codebase
# サブエージェントが危険なコマンドを実行しようとする
Subagent: Execute `rm -rf node_modules`?
[Deny]
# 修正後:
Subagent: Permission denied for rm command
Subagent: Trying alternative approach...
Subagent: Using safer method: analyzing package.json instead
# ✓ タスク継続
# ✓ 代替方法で完了実践例
コードベース解析
危険な操作を避けながら解析。
bash
# タスク: コードベース全体を解析
claude "Analyze entire project"
# サブエージェント起動
# 1. すべてのファイルを読み込もうとする
Subagent: Read 10,000 files?
[Deny] # ファイル数が多すぎる
# 修正後: 代替アプローチ
Subagent: Switching to sampling approach
Subagent: Analyzing 100 representative files
✓ Analysis complete
# ✓ より安全な方法で完了データベース操作
本番DBへの直接操作を回避。
bash
# タスク: データベーススキーマを確認
claude "Check database schema"
# サブエージェント
Subagent: Connect to production database?
[Deny] # 本番環境は危険
# 修正後:
Subagent: Checking local schema files instead
Subagent: Reading migrations/*.sql
✓ Schema documented
# ✓ 本番に触れずに完了ファイル削除タスク
安全な代替手段を提案。
bash
# タスク: 不要なファイルをクリーンアップ
claude "Clean up temp files"
# サブエージェント
Subagent: Execute `find / -name "*.tmp" -delete`?
[Deny] # ルートディレクトリは危険
# 修正後:
Subagent: Limiting scope to current project
Subagent: `find . -name "*.tmp" -delete`
[Approve]
✓ Cleanup complete
# ✓ より安全なスコープで実行ネットワーク操作
外部接続を避ける。
bash
# タスク: APIエンドポイントをテスト
claude "Test API endpoints"
# サブエージェント
Subagent: Send requests to production API?
[Deny] # 本番APIは避けたい
# 修正後:
Subagent: Using mock server instead
Subagent: Testing with local data
✓ Tests passed
# ✓ 本番に影響なし注意点
- Claude Code v2.1.0(2026年1月7日リリース)で実装
- 代替アプローチの例:
- ファイル操作: 大量読み込み → サンプリング
- コマンド実行: 危険なコマンド → 安全な代替コマンド
- ネットワーク: 本番環境 → ローカル/モック
- データベース: 直接接続 → スキーマファイル読み込み
- サブエージェントの判断:
- パーミッション拒否を検知
- タスクの目的を再評価
- 代替手段を探索
- より安全な方法を提案
- ユーザーの制御:
- 代替アプローチも承認が必要
- いつでもタスクを中断可能
- Ctrl+Cでサブエージェント停止
- 失敗するケース:
- 代替手段が見つからない場合
- すべての方法が拒否された場合
- タスクが本質的に危険な場合
- デバッグ:
--debugフラグで代替アプローチの詳細を確認- サブエージェントの思考プロセスを表示
- セキュリティ:
- 代替アプローチも同じパーミッションルールに従う
- 拒否された操作を迂回することはない
- より安全な方法のみ提案