Learn from pstack
Agent 開發的問題Link to this section: Agent 開發的問題
- 無法理解人類的真實意圖
- 缺乏足夠的上下文
建立自己的驗證系統Link to this section: 建立自己的驗證系統
不只是 chrome dev tool 等工具,包含自己打造的系統。
也建議自己打造合適的驗證系統。
例如可供 Agent 操作的 CLI,可以減少 Token 的消耗,也可以正確的進行驗證。
可以包含以下的內容:
- Inspection:
info,snapshot,screenshot,components - Navigation:
home,new-session,select-project,select-runtime,scroll - Interaction:
send,click,click-xy,aria-click,type,press,eval,upload-image,add-context,feature-flag - Performance:
trace,profile,record,perf-metrics,wait-settle - Streaming:
console,network-log,network-summary - Health & cleanup:
doctor,cleanup,watch --restart
CLI 的建立也有一些準則可以進行參考:
- 容易組合的指令,參考 The Philosophy of Software Design – with John Ousterhout
- 有 Side Effect 的行為應該要提供 dry run mode
- 漸進式的曝露 Command 曝露,而不是一次提供所有
- 可以理解的 Error Message
- 詳細的說明指引 (--help)
- 可以 output 容易被處裡的格式 (JSON)
Agent 必須也能看見我們所看見的所有問題。
Feature MapLink to this section: Feature Map
簡單的指引告訴 Agent ,如何從 User 的角度到達他想去的地方。
例如瀏覽到某個頁面或是開啟某個功能。讓 Agent 不會迷路
Indirect PromptLink to this section: Indirect Prompt
要告訴他要達成的目標,又不能過於限制住他,要給他一定的自由。
可能 Agent 會有我們自己未想到的解決方式。
使用間接式 prompt 的方式,讓 LLM 自己把要做的事情說出來。
例如告訴 Agent Slack 討論對話記錄,請他使用簡潔的方式重述問題,並告知認為的 root cause 是什麼。
好處在於:
- 由 LLM 將問題整理壓縮成有結構的陳述
- 如果 LLM 有誤解,可以及時的進行發現
- 不自己判斷可能不對或是限制 Agent 的處理,導致跑到錯誤的方向
透過讓 Agent 陳述說明他將作什麼以及為什麼這麼做,能夠幫助自身理解,同時也幫助 Agent。
README Driven DevelopmentLink to this section: README Driven Development
在尚未開發的時候,先進行說明文件的撰寫,預期使用者會如何使用他。
透過 Agent 反向推導 API 的設計、Interface 等。
README 框架包含:
- Tutorial:新使用者會如何使用
- How-to guide:資深、有經驗的使用者會怎麼使用
- Reference:相關的技術資料、API 等
- Explanation:高層次的東西,例如背景、設計考量
多次嘗試Link to this section: 多次嘗試
Agent 可以快速的開發,所以可以進行很多的嘗試,再開發的時候也可以平行的進行相關的實驗。
建立許多不同的方案去做選擇。
讓 Agent 透過 code 去進行不同的方案實踐,code 就是我們的 Plan。
不管是架構或是功能的開發都能以此進行,透過實踐可以避免幻覺的產生。
Tool/SkillLink to this section: Tool/Skill
寫一個新的 Tool/Skill 讓 Agent 去使用,所有的 Agent 都能因此受益。提高 Agent 的整體產出。
對於 Agent 常犯的錯,建立驗證機制,避免再次犯下。