Skip to content

原文(日本語に翻訳)

パフォーマンス改善:長い会話を持つSDKセッションがトランスクリプトの書き込みで二次的に遅くなる問題を解消

原文(英語)

Improved performance: SDK sessions with long conversations no longer slow down quadratically on transcript writes

概要

Claude Code SDKを使用して長い会話セッションを実行している場合、会話が長くなるにつれてトランスクリプト(会話記録)の書き込み処理が二次時間的(O(n²))に遅くなる問題が修正されました。これにより、長時間・多ターンのエージェント作業でのパフォーマンスが大幅に改善されます。特に、自動化パイプラインや長時間実行されるエージェントタスクで顕著な改善が見られます。

基本的な使い方

修正内容はパフォーマンス最適化のため、v2.1.90 にアップデートするだけで恩恵を受けられます:

bash
# SDKセッションの更新
npm update -g @anthropic-ai/claude-code

# v2.1.90以降: 長い会話でもパフォーマンスが維持される

実践例

長時間エージェントタスクでの改善

多ステップの自動化タスク:

python
import subprocess

# 長時間実行されるClaude Codeセッション
result = subprocess.run(
    ["claude", "-p", "大規模なリファクタリングタスクを実行して..."],
    capture_output=True,
    text=True
)

# v2.1.90以降:
# - タスクが長くなっても処理速度が維持される
# - 100ターン目も1ターン目と同様の速度で処理される

Claude Agent SDKを使用した自動化

python
import anthropic

client = anthropic.Anthropic()

messages = []

# 長い会話セッションのシミュレーション
for i in range(50):  # 多ターン会話
    messages.append({
        "role": "user",
        "content": f"ステップ {i+1}: 次の処理を行って..."
    })
    
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        messages=messages
    )
    
    # v2.1.90以降: ターン数が増えても処理速度が低下しない
    messages.append({
        "role": "assistant",
        "content": response.content[0].text
    })

CI/CD パイプラインでの安定性

長時間のコードレビューや大規模な変更作業:

bash
# 大規模なリポジトリへの適用
claude -p "このリポジトリ全体のコードレビューと改善提案を行って" \
  --max-turns 100

# v2.1.90以降:
# - 長いセッションでもメモリとCPU使用量が適切に保たれる
# - タイムアウトのリスクが低下

注意点

  • この改善はSDKセッション(-p フラグや非インタラクティブモード)で特に効果があります
  • 通常のインタラクティブセッションでも改善の恩恵を受けられます
  • 会話が長いほど(ターン数が多いほど)、以前との差が顕著になります
  • O(n²)からO(n)への改善は、ターン数が増加しても線形にスケールすることを意味します

関連情報