註冊並分享邀請連結,可獲得影片播放與邀請獎勵。

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
加入 May 2026
279 正在關注    408 粉絲
# Useful but Little-Known Features of Claude Agent SDK 🌍 Want to pause a subagent and pick up where it left off later? Resume keeps the full conversation history intact! Claude Agent SDK lets you resume subagents by capturing their session ID and agent ID, retaining all previous tool calls, results, and reasoning. 📌 Title: Subagent Resume 🔗 URL: 🧩 Overview When a subagent completes, the Agent tool result includes `agentId: `. By saving this `agentId` along with the `session_id`, you can resume the same session using the `resume` option and a prompt like `"Resume agent "`. The resumed subagent retains its full conversation history, including all previous tool calls, results, and reasoning. Note that built-in `Explore` and `Plan` agents are one-shot and do not emit `agentId`, so they cannot be resumed. 🛠 How to Use ```python # Python - resuming a subagent import re from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition, ToolResultBlock AGENTS = { "endpoint-finder": AgentDefinition( description="Locates and catalogs API endpoints", prompt="Find and document API endpoints", tools=["Read", "Grep", "Glob"], ) } # First run: execute subagent and capture IDs agent_id = None session_id = None async for message in query( prompt="Use the endpoint-finder agent to find all API endpoints", options=ClaudeAgentOptions( allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS, ), ): if hasattr(message, "session_id"): session_id = message.session_id for block in getattr(message, "content", None) or []: if isinstance(block, ToolResultBlock): text = str(block.content) if match := "agentId:\s*([\w-]+)", text): agent_id = # Second run: resume the same session with a follow-up if agent_id and session_id: async for message in query( prompt=f"Resume agent {agent_id} and list the top 3 most complex endpoints", options=ClaudeAgentOptions( allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS, resume=session_id, # Resume the same session ), ): if hasattr(message, "result"): print(message.result) ``` 🏗 Integration into Production Systems - Break long analysis tasks into phases, review intermediate results, then resume for follow-up - Persist `session_id` and `agentId` to a database for resumption at any later time - Use custom agents or `general-purpose` (Explore/Plan cannot be resumed) - Pass the same agent definition in the `agents` parameter when resuming 💡 Use Cases 🔄 Conduct phased investigations of large codebases, reviewing results at each stage 💬 Interactive workflows with follow-up questions on subagent analysis results 📊 Run detailed follow-up analysis with a narrowed scope after initial exploration ⚠️ Caveats - Resuming requires the same `session_id`; new `query()` calls start fresh sessions by default - Built-in `Explore` and `Plan` agents are one-shot and do not output `agentId`, so they cannot be resumed - Subagent transcripts are automatically cleaned up based on `cleanupPeriodDays` (default: 30 days) - Main conversation compaction does not affect subagent transcripts ✨ With resume, subagents become ongoing analysis partners rather than one-shot throwaway tools. Use it for iterative, multi-phase investigations! #ClaudeAgentSDK# #AIAgent#
顯示更多