# v0.17.3 Release Notes

> v0.17.2 -> v0.17.3

## Summary

This release introduces deferred tool loading via a `search_tools` mechanism, a major scheduler refactor into sub-packages with file-based state persistence, and prompt caching across all providers.

<details>
<summary>翻譯</summary>

本版本新增透過 `search_tools` 機制的延遲工具載入、將排程器重構為具備檔案狀態持久化的子套件，以及跨所有 Provider 的 Prompt 快取支援。

</details>

## Changes

### FEAT
- Add deferred tool loading with `search_tools` activation mechanism, allowing agents to discover and load tools on demand rather than upfront

<details>
<summary>翻譯</summary>

- 新增 `search_tools` 延遲工具載入機制，讓 Agent 可按需探索並載入工具，取代預先全量載入

</details>

### ADD
- Add `exclude_tools` parameter to `/v1/send` to allow per-request tool filtering
- Auto-prompt LLM to record error patterns to `.system/` after a tool retry succeeds

<details>
<summary>翻譯</summary>

- 在 `/v1/send` 新增 `exclude_tools` 參數，支援每次請求獨立過濾工具
- 工具重試成功後，自動提示 LLM 將錯誤模式記錄至 `.system/`

</details>

### UPDATE
- Skip tool confirmation prompt for read-only tools in the agent exec loop
- Enforce 256-rune description limit on skill selector and skill authoring to prevent context overflow
- Harden `fetchPage` URL handling and add structured output to `searchWeb`

<details>
<summary>翻譯</summary>

- Agent 執行迴圈中，唯讀工具略過確認提示
- 技能選擇器與技能撰寫限制說明欄位上限 256 字元，防止 Context 溢出
- 強化 `fetchPage` 的 URL 處理邏輯，並為 `searchWeb` 加入結構化輸出格式

</details>

### REFACTOR
- Replace network-based skill sync with embedded FS copy to `.system/`, removing external dependency
- Split scheduler monolith into `crons/`, `tasks/`, and `script/` sub-packages with file-based state persistence, replacing in-memory state
- Overhaul file tools with English descriptions, binary file detection, and PDF page-range reading support

<details>
<summary>翻譯</summary>

- 以嵌入式 FS 複製取代網路技能同步，移除外部依賴
- 將排程器拆分為 `crons/`、`tasks/`、`script/` 子套件，並以檔案持久化取代記憶體狀態
- 全面翻新檔案工具：英文說明、二進位檔偵測、PDF 分頁讀取

</details>

### PERF
- Add prompt caching support across Claude, Gemini, and Copilot providers to reduce latency and token consumption on repeated context

<details>
<summary>翻譯</summary>

- 在 Claude、Gemini、Copilot 三個 Provider 加入 Prompt 快取，降低重複 Context 的延遲與 Token 消耗

</details>

***

## Files Changed

| File | Status | Tag |
|------|--------|-----|
| `internal/tools/searchTools/register.go` | Added | FEAT |
| `internal/tools/searchTools/search.go` | Added | FEAT |
| `internal/routes/handler/send.go` | Modified | ADD |
| `internal/agents/exec/toolCall.go` | Modified | ADD |
| `internal/agents/exec/execute.go` | Modified | UPDATE |
| `internal/tools/fetchPage/load.go` | Modified | UPDATE |
| `internal/tools/fetchPage/download.go` | Modified | UPDATE |
| `internal/tools/external/searchWeb/SearchWeb.go` | Modified | UPDATE |
| `internal/tools/external/searchWeb/register.go` | Modified | UPDATE |
| `internal/skill/sync.go` | Modified | REFACTOR |
| `internal/scheduler/crons/add.go` | Added | REFACTOR |
| `internal/scheduler/crons/crons.go` | Added | REFACTOR |
| `internal/scheduler/crons/delete.go` | Added | REFACTOR |
| `internal/scheduler/crons/get.go` | Added | REFACTOR |
| `internal/scheduler/crons/list.go` | Added | REFACTOR |
| `internal/scheduler/crons/update.go` | Added | REFACTOR |
| `internal/scheduler/tasks/add.go` | Added | REFACTOR |
| `internal/scheduler/tasks/delete.go` | Added | REFACTOR |
| `internal/scheduler/tasks/parseTime.go` | Added | REFACTOR |
| `internal/scheduler/tasks/set.go` | Added | REFACTOR |
| `internal/scheduler/tasks/tasks.go` | Added | REFACTOR |
| `internal/scheduler/tasks/update.go` | Added | REFACTOR |
| `internal/scheduler/script/script.go` | Added | REFACTOR |
| `internal/scheduler/addCron.go` | Deleted | REFACTOR |
| `internal/scheduler/addTask.go` | Deleted | REFACTOR |
| `internal/scheduler/crons.go` | Deleted | REFACTOR |
| `internal/scheduler/deleteCron.go` | Deleted | REFACTOR |
| `internal/scheduler/deleteTask.go` | Deleted | REFACTOR |
| `internal/scheduler/tasks.go` | Deleted | REFACTOR |
| `internal/scheduler/updateCron.go` | Deleted | REFACTOR |
| `internal/scheduler/updateTask.go` | Deleted | REFACTOR |
| `internal/tools/file/readFile.go` | Modified | REFACTOR |
| `internal/tools/file/readPDF.go` | Added | REFACTOR |
| `internal/tools/file/writeFile.go` | Modified | REFACTOR |
| `internal/tools/file/writeScript.go` | Deleted | REFACTOR |
| `internal/agents/provider/claude/send.go` | Modified | PERF |
| `internal/agents/provider/gemini/send.go` | Modified | PERF |
| `internal/agents/provider/copilot/response/responses.go` | Modified | PERF |
| `go.mod` | Modified | CHORE |
| `go.sum` | Modified | CHORE |

***

Generated by [SKILL](https://github.com/pardnchiu/skill-version-generate)
