agent-sdk/agent-loop.md +9 −9
102 </CodeGroup>102 </CodeGroup>
103</Accordion>103</Accordion>
104 104
105105## Tool execution## Eksekusi tool
106 106
107Tools memberikan agent Anda kemampuan untuk mengambil tindakan. Tanpa tools, Claude hanya dapat merespons dengan teks. Dengan tools, Claude dapat membaca file, menjalankan perintah, mencari kode, dan berinteraksi dengan layanan eksternal.107Tools memberikan agent Anda kemampuan untuk mengambil tindakan. Tanpa tools, Claude hanya dapat merespons dengan teks. Dengan tools, Claude dapat membaca file, menjalankan perintah, mencari kode, dan berinteraksi dengan layanan eksternal.
108 108
111SDK mencakup tools yang sama yang menggerakkan Claude Code:111SDK mencakup tools yang sama yang menggerakkan Claude Code:
112 112
113| Kategori | Tools | Apa yang mereka lakukan |113| Kategori | Tools | Apa yang mereka lakukan |
114114| :------------------ | :----------------------------------------------- | :--------------------------------------------------------------------------- || :------------------ | :-------------------------------------------------------------- | :--------------------------------------------------------------------------- |
115| **File operations** | `Read`, `Edit`, `Write` | Baca, modifikasi, dan buat file |115| **File operations** | `Read`, `Edit`, `Write` | Baca, modifikasi, dan buat file |
116| **Search** | `Glob`, `Grep` | Temukan file berdasarkan pola, cari konten dengan regex |116| **Search** | `Glob`, `Grep` | Temukan file berdasarkan pola, cari konten dengan regex |
117| **Execution** | `Bash` | Jalankan shell commands, scripts, git operations |117| **Execution** | `Bash` | Jalankan shell commands, scripts, git operations |
118| **Web** | `WebSearch`, `WebFetch` | Cari web, ambil dan parse halaman |118| **Web** | `WebSearch`, `WebFetch` | Cari web, ambil dan parse halaman |
119| **Discovery** | `ToolSearch` | Temukan dan muat tools secara dinamis on-demand daripada preloading semuanya |119| **Discovery** | `ToolSearch` | Temukan dan muat tools secara dinamis on-demand daripada preloading semuanya |
120120| **Orchestration** | `Agent`, `Skill`, `AskUserQuestion`, `TodoWrite` | Spawn subagents, invoke skills, tanya pengguna, track tasks || **Orchestration** | `Agent`, `Skill`, `AskUserQuestion`, `TaskCreate`, `TaskUpdate` | Spawn subagents, invoke skills, tanya pengguna, track tasks |
121 121
122Melampaui built-in tools, Anda dapat:122Melampaui built-in tools, Anda dapat:
123 123
197 197
198## The context window198## The context window
199 199
200200Context window adalah total jumlah informasi yang tersedia untuk Claude selama sesi. Ini tidak reset antara turns dalam sesi. Semuanya terakumulasi: system prompt, tool definitions, conversation history, tool inputs, dan tool outputs. Content yang tetap sama di seluruh turns (system prompt, tool definitions, CLAUDE.md) secara otomatis [prompt cached](https://platform.claude.com/docs/en/build-with-claude/prompt-caching), yang mengurangi cost dan latency untuk repeated prefixes.The context window adalah total jumlah informasi yang tersedia untuk Claude selama sesi. Ini tidak reset antara turns dalam sesi. Semuanya terakumulasi: system prompt, tool definitions, conversation history, tool inputs, dan tool outputs. Content yang tetap sama di seluruh turns (system prompt, tool definitions, CLAUDE.md) secara otomatis [prompt cached](https://platform.claude.com/docs/id/build-with-claude/prompt-caching), yang mengurangi cost dan latency untuk repeated prefixes.
201 201
202### What consumes context202### What consumes context
203 203
204Berikut adalah cara setiap komponen mempengaruhi context dalam SDK:204Berikut adalah cara setiap komponen mempengaruhi context dalam SDK:
205 205
206| Sumber | Ketika dimuat | Dampak |206| Sumber | Ketika dimuat | Dampak |
207207| :----------------------- | :---------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- || :----------------------- | :---------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
208| **System prompt** | Setiap request | Small fixed cost, selalu present |208| **System prompt** | Setiap request | Small fixed cost, selalu present |
209| **CLAUDE.md files** | Session start, melalui [`settingSources`](/id/agent-sdk/claude-code-features) | Full content dalam setiap request (tetapi prompt-cached, jadi hanya request pertama yang membayar full cost) |209| **CLAUDE.md files** | Session start, melalui [`settingSources`](/id/agent-sdk/claude-code-features) | Full content dalam setiap request (tetapi prompt-cached, jadi hanya request pertama yang membayar full cost) |
210210| **Tool definitions** | Setiap request | Setiap tool menambahkan schemanya; gunakan [MCP tool search](/id/agent-sdk/mcp#mcp-tool-search) untuk load tools on-demand daripada semuanya sekaligus || **Tool definitions** | Setiap request; MCP schemas deferred secara default | Built-in tool schemas dimuat setiap request. [Tool search](/id/agent-sdk/mcp#mcp-tool-search) menunda MCP tool schemas secara default, kembali ke upfront loading pada Vertex AI atau non-first-party `ANTHROPIC_BASE_URL`. Lihat [Configure tool search](/id/agent-sdk/tool-search#configure-tool-search) untuk full matrix |
211| **Conversation history** | Terakumulasi di seluruh turns | Tumbuh dengan setiap turn: prompts, responses, tool inputs, tool outputs |211| **Conversation history** | Terakumulasi di seluruh turns | Tumbuh dengan setiap turn: prompts, responses, tool inputs, tool outputs |
212| **Skill descriptions** | Session start, melalui setting sources | Short summaries; full content dimuat hanya ketika invoked |212| **Skill descriptions** | Session start, melalui setting sources | Short summaries; full content dimuat hanya ketika invoked |
213 213
215 215
216### Automatic compaction216### Automatic compaction
217 217
218218Ketika context window mendekati limitnya, SDK secara otomatis compacts conversation: ini merangkum older history untuk membebaskan space, menjaga most recent exchanges dan key decisions Anda tetap intact. SDK memancarkan message dengan `type: "system"` dan `subtype: "compact_boundary"` dalam stream ketika ini terjadi (di Python ini adalah `SystemMessage`; di TypeScript ini adalah tipe [`SDKCompactBoundaryMessage`](/id/agent-sdk/typescript#sdkcompactboundarymessage) terpisah).Ketika context window mendekati limitnya, SDK secara otomatis compacts conversation: ini merangkum older history untuk membebaskan space, menjaga most recent exchanges dan key decisions Anda tetap intact. SDK memancarkan message dengan `type: "system"` dan `subtype: "compact_boundary"` dalam stream ketika ini terjadi (di Python ini adalah `SystemMessage`; di TypeScript ini adalah tipe `SDKCompactBoundaryMessage` terpisah).
219 219
220Compaction menggantikan older messages dengan summary, jadi specific instructions dari early dalam conversation mungkin tidak dipertahankan. Persistent rules milik CLAUDE.md (dimuat melalui [`settingSources`](/id/agent-sdk/claude-code-features)) daripada dalam initial prompt, karena CLAUDE.md content di-re-inject pada setiap request.220Compaction menggantikan older messages dengan summary, jadi specific instructions dari early dalam conversation mungkin tidak dipertahankan. Persistent rules milik CLAUDE.md (dimuat melalui [`settingSources`](/id/agent-sdk/claude-code-features)) daripada dalam initial prompt, karena CLAUDE.md content di-re-inject pada setiap request.
221 221
244Beberapa strategi untuk long-running agents:244Beberapa strategi untuk long-running agents:
245 245
246* **Gunakan subagents untuk subtasks.** Setiap subagent dimulai dengan fresh conversation (tidak ada prior message history, meskipun dimuat system prompt dan project-level context seperti CLAUDE.md sendiri). Ini tidak melihat parent's turns, dan hanya final responsenya kembali ke parent sebagai tool result. Main agent's context tumbuh oleh summary itu, bukan oleh full subtask transcript. Lihat [What subagents inherit](/id/agent-sdk/subagents#what-subagents-inherit) untuk details.246* **Gunakan subagents untuk subtasks.** Setiap subagent dimulai dengan fresh conversation (tidak ada prior message history, meskipun dimuat system prompt dan project-level context seperti CLAUDE.md sendiri). Ini tidak melihat parent's turns, dan hanya final responsenya kembali ke parent sebagai tool result. Main agent's context tumbuh oleh summary itu, bukan oleh full subtask transcript. Lihat [What subagents inherit](/id/agent-sdk/subagents#what-subagents-inherit) untuk details.
247247* **Jadilah selective dengan tools.** Setiap tool definition mengambil context space. Gunakan field `tools` pada [`AgentDefinition`](/id/agent-sdk/subagents#agentdefinition-configuration) untuk scope subagents ke minimum set yang mereka butuhkan, dan gunakan [MCP tool search](/id/agent-sdk/mcp#mcp-tool-search) untuk load tools on demand daripada preloading semuanya.* **Jadilah selective dengan tools.** Setiap tool definition mengambil context space. Gunakan field `tools` pada [`AgentDefinition`](/id/agent-sdk/subagents#agentdefinition-configuration) untuk scope subagents ke minimum set yang mereka butuhkan.
248248* **Perhatikan MCP server costs.** Setiap MCP server menambahkan semua tool schemas-nya ke setiap request. Beberapa servers dengan banyak tools dapat mengkonsumsi significant context sebelum agent melakukan pekerjaan apa pun. Tool `ToolSearch` dapat membantu dengan loading tools on-demand daripada preloading semuanya. Lihat [MCP tool search](/id/agent-sdk/mcp#mcp-tool-search) untuk configuration.* **Perhatikan MCP server costs.** [MCP tool search](/id/agent-sdk/mcp#mcp-tool-search) menunda MCP tool schemas secara default dan memuat mereka on demand. Ketika tool search dimatikan, pada Vertex AI, atau di belakang non-first-party `ANTHROPIC_BASE_URL`, setiap MCP server menambahkan semua tool schemas-nya ke setiap request, jadi beberapa servers dengan banyak tools dapat mengkonsumsi significant context sebelum agent melakukan pekerjaan apa pun. Lihat [Configure tool search](/id/agent-sdk/tool-search#configure-tool-search) untuk full matrix.
249* **Gunakan lower effort untuk routine tasks.** Set [effort](#effort-level) ke `"low"` untuk agents yang hanya perlu membaca files atau list directories. Ini mengurangi token usage dan cost.249* **Gunakan lower effort untuk routine tasks.** Set [effort](#effort-level) ke `"low"` untuk agents yang hanya perlu membaca files atau list directories. Ini mengurangi token usage dan cost.
250 250
251Untuk detailed breakdown dari per-feature context costs, lihat [Understand context costs](/id/features-overview#understand-context-costs).251Untuk detailed breakdown dari per-feature context costs, lihat [Understand context costs](/id/features-overview#understand-context-costs).