anthropics / anthropics/claude-agent-sdk-python

Feature request: configurable API response timeout for subagent calls

未關閉
#666 2 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
8.1k
分支
1.3k
平均合併
2 天 31 分鐘
30 天內合併 PR
1

描述

## Summary

When a subagent makes an API call with large context (~83K tokens) and needs to generate large output (~30KB), the API call can hang indefinitely with zero events written to the JSONL transcript. There is no configurable timeout to detect or recover from this state.

## Reproduction

1. Launch a background agent (`run_in_background=True`) with a task requiring large context
2. Agent accumulates ~80K+ tokens of context via multiple Read calls
3. Agent makes a tool call that succeeds (e.g., `mkdir`)
4. Next API call (to generate a large Write) hangs — zero JSONL events for 4+ minutes
5. Parent agent polls via TaskOutput — always sees `status: running`
6. No mechanism to detect the hang or kill the subagent

## Observed behavior

- JSONL transcript stops at the successful `tool_result` — no new entries
- `TaskOutput` always returns `running` (can't distinguish "actively generating" from "API hung")
- `KillShell` fails ("not a local bash task")
- `TaskStop` kills the agent but destroys any in-progress work

## Expected behavior

A configurable timeout (e.g., `api_timeout_seconds` in `ClaudeAgentOptions`) that:
1. Detects when an API response hasn't produced any events for N seconds
2. Marks the agent as `error` with a clear timeout message
3. Writes the error to the agent's JSONL for downstream tracking

## Workaround

We implemented a 20-minute wall-clock timeout in our stop hook that unblocks the parent task, but the hung agent process itself stays alive consuming resources.

## Environment

- claude-agent-sdk: 0.1.48
- Claude Code CLI: 2.1.72 (bundled)
- Observed on: Python 3.12, Linux (GKE)
- Original incident: CLI 2.0.72, but the underlying issue (no API timeout) persists

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。