Learn from pstack

Created · Updated

Agent 開發的問題Link to this section: Agent 開發的問題

  1. 無法理解人類的真實意圖
  2. 缺乏足夠的上下文

建立自己的驗證系統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

Feature Map 範例

簡單的指引告訴 Agent ,如何從 User 的角度到達他想去的地方。

例如瀏覽到某個頁面或是開啟某個功能。讓 Agent 不會迷路

Indirect PromptLink to this section: Indirect Prompt

要告訴他要達成的目標,又不能過於限制住他,要給他一定的自由。

可能 Agent 會有我們自己未想到的解決方式。

使用間接式 prompt 的方式,讓 LLM 自己把要做的事情說出來。

例如告訴 Agent Slack 討論對話記錄,請他使用簡潔的方式重述問題,並告知認為的 root cause 是什麼。

好處在於:

  1. 由 LLM 將問題整理壓縮成有結構的陳述
  2. 如果 LLM 有誤解,可以及時的進行發現
  3. 不自己判斷可能不對或是限制 Agent 的處理,導致跑到錯誤的方向

透過讓 Agent 陳述說明他將作什麼以及為什麼這麼做,能夠幫助自身理解,同時也幫助 Agent。

README Driven DevelopmentLink to this section: README Driven Development

在尚未開發的時候,先進行說明文件的撰寫,預期使用者會如何使用他。

透過 Agent 反向推導 API 的設計、Interface 等。

README 框架包含:

  1. Tutorial:新使用者會如何使用
  2. How-to guide:資深、有經驗的使用者會怎麼使用
  3. Reference:相關的技術資料、API 等
  4. Explanation:高層次的東西,例如背景、設計考量

多次嘗試Link to this section: 多次嘗試

Agent 可以快速的開發,所以可以進行很多的嘗試,再開發的時候也可以平行的進行相關的實驗。

建立許多不同的方案去做選擇。

讓 Agent 透過 code 去進行不同的方案實踐,code 就是我們的 Plan。

不管是架構或是功能的開發都能以此進行,透過實踐可以避免幻覺的產生。

Tool/SkillLink to this section: Tool/Skill

寫一個新的 Tool/Skill 讓 Agent 去使用,所有的 Agent 都能因此受益。提高 Agent 的整體產出。

對於 Agent 常犯的錯,建立驗證機制,避免再次犯下。

ReferencesLink to this section: References

  1. pstack part 1
  2. pstack part 2
  3. pstack
  4. Loops You Can Trust