As agents become part of developer tools, the important engineering question shifts from raw automation to control. The useful systems are the ones that can be inspected, interrupted, combined with other tools, and recovered when something goes wrong.
Bound The Action Surface
Design for bounded action. Give the system a clear task surface, known inputs, explicit permissions, and a visible result instead of a vague request to do everything.
Boundaries are not a lack of ambition. They make the tool easier to test, easier to explain, and easier to trust.
Make State Legible
Logs, diffs, previews, and dry runs are not polish. They are the interface that lets a human trust and correct the tool.
- Show what will change before changing it.
- Keep intermediate state readable enough for review.
- Make recovery paths visible when the tool is uncertain.
Prefer Composable Tools
Small callable operations are easier to reuse than one giant assistant. They also make it clearer when a human should take the task back.
The durable design pattern is not to hide every step. It is to make useful steps crisp enough that people and tools can share them.
當 agent 變成開發工具的一部分,重點不只是自動化,而是控制感。好用的系統要能被檢查、能中止、能和其他工具組合,也能在出錯時回到人手上。
先限制行動範圍
任務面、輸入、權限和輸出都要清楚,避免把模糊的大任務直接丟給系統。
邊界不是缺乏企圖心。它會讓工具更容易測試、更容易說明,也更容易被信任。
讓狀態可讀
紀錄、差異、預覽和 dry run 不是裝飾,而是人能信任與修正工具的介面。
- 在改動前先讓人看到會改什麼。
- 中間狀態要保留到足以被審查。
- 工具不確定時,要看得到怎麼收回來。
偏好可組合的小工具
小而可呼叫的操作,比一個什麼都做的大助理更容易重用,也更容易判斷什麼時候該交還給人。
耐用的設計不是把所有步驟藏起來,而是把有用的步驟整理得足夠清楚,讓人和工具可以一起使用。