Prompting for Agents
先說一句:顏值這么高,你倆要出道啊。
此圖基本就是claude倡導的agent prompt結構了,可以看到經過一年時間的演變,基本都是follow這個結構去寫prompt。我比較喜歡用Role→react→task→histroy→few shot→rules/guidelines這個結構
可以根據這個表評估一下,直接丟給AI也可以
目前比較常見的就這幾個了吧,做的都比較成熟了,當然啦,還有目前超火的AI scientist
- Jeremy覺得prompt是很重要的,prompt作為概念工程就是人在給AI賦予insight。
- 去設計agent要以agent的角度去思考,把他當成Intern去教,搜索的時候tool 的使用次數,什么時候停止,要清楚的寫出來。
- tool selection比較重要, 可能需要你再fewshot和tool description的時候做的比較詳細
- 另外一個option就是構建好thought,這個可以依賴模型本身提升比如說RL和人工few shot
- prompt可能會導致agent無止境的調用tool并且沒有答案,所以emm,加點rules吧,這也是為啥RL一定程度上對agent很重要
- 控制context也就是chat history怎么弄呢,compress,然后summary,絕大情況下還好,但summary肯定會丟一丟丟細節。我覺得目前agent memory部分的工作需要做的更方便易用一點,同時盡可能保留足夠多的細節,同志們還要努力啊。multiagent某種程度上會緩解這個部分問題,其是看任務場景的話,大部分好用的實現都是agent as tools,整體還行。
展示了一個好的tool design的例子,這個確實比我們的做的詳細,很多人偷懶不會寫那么多parameter進去,但是這個對系統擴展不是很友好,我個人不喜歡這種做法,如果不是官方tool call,就用自然語言去描述就比較方便,anyone can make any tools,當然還有一些工作是讓agent自己寫tool加進去的,或許有用。。。但是想想就覺得不是很穩定
claude有個模擬器,牛啊,你可以測試并迭代你的prompt,thought什么的都有展示,有點像langsmith。
eval也是比較重要的一環,感覺可以來個綜合策略去eval?
- 這個就是測試的工作啦,面對極端的case,抗壓測測
- LLM judge,有點用但不多
- 終極解法:轉人工。所以human in the loop 是不可或缺的一環。
一些cases,anyway, try you best to eval.