Skip to content

原文(日本語)

権限待機時間がサブエージェントの実行時間表示に含まれる問題を修正しました。

原文(英語)

Fixed permission wait time being included in subagent elapsed time display

概要

Claude Code v2.1.41では、サブエージェント(Task toolで起動されたエージェント)の実行時間を表示する際、ユーザーが権限承認を待っている時間も含まれてしまう問題が修正されました。これにより、サブエージェントの実際の作業時間が正確に表示されるようになりました。

問題の詳細

修正前の動作

サブエージェントがツール実行の承認待ちになった場合、その待機時間も実行時間に含まれていました。

text
# 修正前の表示例
Subagent started: 10:00:00

# 10:00:05 - サブエージェントがBashツールを使用しようとする
# → 権限承認を要求

# ユーザーが5分間席を外す

# 10:05:10 - ユーザーが承認

# サブエージェント完了: 10:05:15
Elapsed time: 5分15秒  ← 実際の作業時間は約15秒なのに、待機時間が含まれている

修正後の動作

権限待機時間は実行時間から除外され、実際の作業時間のみが表示されます。

text
# 修正後の表示例
Subagent started: 10:00:00

# 10:00:05 - サブエージェントがBashツールを使用しようとする
# → 権限承認を要求(待機時間のカウント停止)

# ユーザーが5分間席を外す

# 10:05:10 - ユーザーが承認(作業時間のカウント再開)

# サブエージェント完了: 10:05:15
Elapsed time: 15秒  ← 実際の作業時間のみ表示
(Permission wait time: 5分5秒)  ← 待機時間は別途表示

基本的な使い方

サブエージェントの起動

修正後は、実際の作業時間が正確に表示されます。

bash
# Exploreサブエージェントを起動
> /explore "認証機能の実装パターンを調査してください"

# サブエージェントが権限を要求
⏸️  Permission required: Read file src/auth/config.ts
[Approve] [Deny]

# 承認後、作業が継続
# 完了時の表示(修正後)
 Subagent completed
Actual work time: 12秒
Permission wait time: 2分30秒
Total elapsed: 2分42秒

実践例

複数サブエージェントの並列実行

複数のサブエージェントを並列実行する際、各エージェントの実際のパフォーマンスを正確に把握できます。

bash
# 3つのサブエージェントを並列起動
> "フロントエンド、バックエンド、データベースの調査を並列で実行してください"

Agent 1 (Frontend): Started
Agent 2 (Backend): Started
Agent 3 (Database): Started

# 各エージェントが権限を要求
Agent 1: Permission required (10:00:05)
Agent 2: Permission required (10:00:07)
Agent 3: Permission required (10:00:10)

# 一括承認 (10:02:00)

# 完了時の表示(修正後)
Agent 1 completed:
  - Work time: 25秒
  - Wait time: 1分55秒

Agent 2 completed:
  - Work time: 18秒
  - Wait time: 1分53秒

Agent 3 completed:
  - Work time: 30秒
  - Wait time: 1分50秒

# 各エージェントの実際の作業効率が明確

パフォーマンス分析

サブエージェントのパフォーマンスを正確に測定できます。

bash
# コード解析タスクをサブエージェントに委託
> "このプロジェクトのコード品質を分析してください"

Subagent: code-analyzer started

# 複数の権限要求
File read permissions requested (x15)
# ユーザーが一括承認するまで待機

# 完了時のメトリクス(修正後)
 Code analysis completed

Performance metrics:
  - Actual analysis time: 45秒
  - File reading time: 30秒
  - Report generation: 15秒
  - Permission wait time: 3分20秒 (excluded from work time)

Total time: 4分5秒 (Work: 45秒, Wait: 3分20秒)

バッチ処理の効率測定

複数ファイルを処理するバッチ作業の効率を測定します。

bash
# 100個のファイルをサブエージェントで処理
> "これらのファイルを一括変換してください"

Batch processor started
Processing 100 files...

# 各ファイル処理で権限要求
# ユーザーが"全て承認"を選択

# 完了時の表示(修正後)
 Batch processing completed

Statistics:
  - Files processed: 100
  - Total work time: 2分30秒
  - Average per file: 1.5秒
  - Permission wait time: 45秒 (excluded)
  - Total elapsed: 3分15秒

Throughput: 40 files/minute (work time based)

CI/CDパイプラインでの活用

自動化されたCI/CDパイプライン内でサブエージェントを使用する場合です。

bash
# CI/CDパイプラインでテストを実行
> "全テストをサブエージェントで実行してください"

Test runner subagent started

# 権限設定により自動承認される
# (Permission wait time: 0秒)

# 完了時の表示(修正後)
 Tests completed

Performance:
  - Test execution time: 3分15秒
  - Setup time: 10秒
  - Cleanup time: 5秒
  - Permission wait time: 0秒 (auto-approved)

Total: 3分30秒

タイムアウト設定の最適化

正確な作業時間により、適切なタイムアウト値を設定できます。

bash
# サブエージェントのタイムアウト設定
> "大規模データ処理を実行(タイムアウト: 10分)"

Data processor started
Timeout: 10分 (work time only)

# 権限待機は10分にカウントされない(修正後)
Permission wait: 2分 (not counted toward timeout)
Actual work: 8分30秒

 Completed within timeout

この修正の利点

正確なパフォーマンス測定

  • サブエージェントの実際の作業時間が明確
  • パフォーマンス最適化の基準が正確
  • ボトルネックの特定が容易

公平な評価

  • ユーザーの承認待ち時間は除外
  • エージェントの実力を正しく評価
  • パフォーマンス比較が意味を持つ

最適化の判断材料

  • どのエージェントが効率的か判断可能
  • タイムアウト値の適切な設定
  • リソース配分の最適化

メトリクス表示の詳細

表示される時間の種類

項目説明
Work time実際の作業時間(権限待機を除く)
Permission wait権限承認待ち時間
Total elapsed全体の経過時間

計算式

Total elapsed = Work time + Permission wait time

注意点

  • この修正により、パフォーマンスメトリクスがより正確になります
  • 権限待機時間は別途表示されるため、全体の時間も把握できます
  • 自動承認設定の場合、Permission wait timeは0秒になります
  • 既存のサブエージェントにも自動的に適用されます

権限設定の最適化

自動承認設定

頻繁に使用するツールは自動承認に設定できます。

bash
# 設定ファイル (~/.claude/settings.json)
{
  "permissions": {
    "autoAllow": {
      "Read": ["src/**/*.ts"],
      "Bash": ["npm test", "npm run build"]
    }
  }
}

関連情報