# v0.17.2 Release Notes

> v0.17.1 -> v0.17.2

## Summary

Add three external agent tools (`call_external_agent`, `verify_with_external_agent`, `review_result`) with internal priority-model selection, and refactor session message assembly into four fixed segments with reactive context trimming.

<details>
<summary>翻譯</summary>
新增三個外部 agent 工具（call_external_agent、verify_with_external_agent、review_result）並支援內部優先序模型選擇，同時將 session 訊息組裝重構為四個固定段，加入 reactive context trimming 機制。
</details>

## Changes

### ADD
- Add `call_external_agent` tool to delegate tasks directly to a specified external agent
- Add `verify_with_external_agent` tool for parallel cross-validation across all declared external agents
- Add `review_result` tool for internal completeness review using priority model selection (claude-opus → gpt-5.4 → gemini-3.1-pro → claude-sonnet)

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

- 新增 `call_external_agent` 工具，可將任務直接委派給指定外部 agent
- 新增 `verify_with_external_agent` 工具，對所有已宣告外部 agent 進行並行交叉驗證
- 新增 `review_result` 工具，依優先序自動選擇內部模型進行完整性審查（claude-opus → gpt-5.4 → gemini-3.1-pro → claude-sonnet）

</details>

### REFACTOR
- Restructure session message assembly into 4 fixed segments (SystemPrompts / OldHistories / UserInput / ToolHistories) with reactive context trimming on context-length errors

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

- 重構 session 訊息組裝為四個固定段（SystemPrompts / OldHistories / UserInput / ToolHistories），並在 context 超限時觸發 reactive trimming

</details>

### UPDATE
- Add `model` field to `/v1/send` request to allow caller to bypass agent selection and specify model directly
- Extend `toolCall.go` to track `review_result` invocations and apply `trimReviewContext` (draft + feedback) instead of full context trim

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

- `/v1/send` 請求新增 `model` 欄位，允許呼叫方直接指定模型略過自動選擇
- 擴充 `toolCall.go` 追蹤 `review_result` 呼叫，並套用 `trimReviewContext`（草稿 + 審查回饋）取代完整 context 壓縮

</details>

### DOC
- Update `system_prompt.md` with explicit routing rules distinguishing `review_result` (internal, no external agent required) from `verify_with_external_agent` (requires declared agents)

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

- 更新 `system_prompt.md`，明確區分 `review_result`（內部審查，不依賴外部 agent 宣告）與 `verify_with_external_agent`（需宣告外部 agent）的路由規則

</details>

### CHORE
- Add `EXTERNAL_COPILOT`, `EXTERNAL_CLAUDE`, `EXTERNAL_CODEX` to `.env.example` for external agent configuration

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

- 在 `.env.example` 新增 `EXTERNAL_COPILOT`、`EXTERNAL_CLAUDE`、`EXTERNAL_CODEX` 外部 agent 設定欄位

</details>

***

## Files Changed

| File | Status | Tag |
|------|--------|-----|
| `internal/tools/externalAgent/callExternalAgent.go` | Added | ADD |
| `internal/tools/externalAgent/verifyWithExternalAgent.go` | Added | ADD |
| `internal/tools/externalAgent/reviewResult.go` | Added | ADD |
| `internal/tools/externalAgent/command.go` | Added | ADD |
| `internal/tools/externalAgent/register.go` | Modified | ADD |
| `internal/agents/exec/execute.go` | Modified | REFACTOR |
| `internal/agents/exec/trimMessages.go` | Modified | REFACTOR |
| `internal/agents/exec/toolCall.go` | Modified | UPDATE |
| `internal/agents/exec/getSession.go` | Modified | UPDATE |
| `internal/agents/types/agent.go` | Modified | UPDATE |
| `internal/discord/session.go` | Modified | UPDATE |
| `internal/routes/handler/send.go` | Modified | UPDATE |
| `configs/prompts/system_prompt.md` | Modified | DOC |
| `.env.example` | Modified | CHORE |
| `internal/tools/register.go` | Modified | CHORE |

***

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