經過前兩天的番外篇,或許可以給大家一些LLM目前困境與瓶頸的認識。
在我們了解了Agent的3大組件,接下來的問題是:它們怎麼協同合作?
ReAct循環就是讓LLM、上下文、工具串連起來的機制,接下來就來看一個Agent是如何思考和行動的。
Agent執行任務的核心模式是ReAct(reasoning + acting),雖然名字只顯示思考和行動,但實際上循環應當包含3個環節:模型先"思考"當前任務,然後調用工具"行動",再"觀察"工具返回的結果並繼續思考下一步。(可以往前翻D7有圖例)
這樣"想→做→看→想→做→看”的循環不斷重複,直到任務完成。
讓我們通過一個"多幣種收入匯總"的例子來理解Agent的"軌跡(trajectory)"。軌跡是Agent在執行任務過程中不斷累積的消息歷史--用戶訊息、模型回復(思考過程和工具調用)、工具執行結果。每次調用LLM時,它接收的完整上下文由"靜態前綴"(系統提示詞 + 工具定義)和"軌跡"(動態消息歷史)兩部分組成。
這顯示了個關鍵:Agent的上下文 = 靜態前綴 + 軌跡
具體來說,靜態前綴對應我們在上下文篇時的2個組件(系統提示詞 + 工具定義),軌跡對應後3項(用戶消息 + 模型回覆 + 工具執行結果,並隨交互不斷成長)。
基於這個完整的上下文,LLM生成下一步的響應,然後這個響應又加入至軌跡之中,供下一次調用使用。
來看最小運行骨架。這說"明機制如何運行":model負責決策(下一步),Harness負責組裝上下文、校驗並執行工具,Environment負責產生真實狀態變化和觀察。
trajectory = [user_request]
repeat:
context = stable_prefix + trajectory
decision = Model(context)
trajectory.append(decision)
if decision has no tool call:
return decision.answer
for call in decision.tool_calls: # independent calls may run in parallel
validated_call = Harness.validate(call)
observation = Environment.execute(validated_call)
trajectory.append(observation)
最後,簡單來說 --
Agent's Trajectory 是 Agent 為完成任務所經歷的「Observation → Reasoning → Action → Observation」序列,也是 Agent 決策過程的完整執行路徑。
BookToSkill是一個開源命令列工具,支持將TXT、MD、DOCX、PDF格式的一分或多份文檔,轉化成一個可直接部署的.zip技能包
GitHub: https://github.com/virgiliojr94/book-to-skill