strands-labs/ai-functions
Python functions powered by AI agents - with runtime post-conditions for reliable agentic workflows.
解決的問題
Strands AI Functions 提供了一種將 AI 代理視為標準 Python 函數的方法。它透過引入後置條件(post-conditions),解決了「提示即祈禱」(prompt-and-pray)式開發的問題,強制代理在輸出符合特定要求前不斷自我修正。同時,它也彌合了 LLM 文本輸出與現實世界資料之間的鴻溝,允許代理生成並執行 Python 程式碼,以回傳 Pandas DataFrames 等原生物件。
工作原理
該庫使用 @ai_function 裝飾器將 Python 函數轉換為代理任務。文件字串擔任提示範本,回傳類型註解定義了預期的輸出格式。
關鍵架構元件包括:
- 後置條件:驗證函數,當代理輸出未通過檢查時,會自動觸發重新提示。
- AI 線程:具備狀態的句柄,可在多次呼叫之間保持對話歷史。
- 協調器與工作者:一種系統,允許多個線程相互發現並傳送訊息,實現多代理協作。
- 分散式執行:基於 WebSocket 的協定,允許協調器與工作者在不同流程或機器上執行。
- 記憶體優化:一種自然語言的「反向傳播」系統,利用對結果的反饋來更新儲存在記憶體後端的提示、事實或程式碼,以提升未來執行效果。
適用對象
需要保證輸出結構、支援狀態化互動,並具備在分散式系統中編排代理團隊能力的 Python 開發者,用於建構複雜的 AI 工作流程。
主要亮點
- 自我修正迴圈:基於自訂 Python 或 AI 驅動的後置條件實現自動重試。
- 原生 Python 集成:透過本地程式碼執行,支援回傳複雜物件(如 DataFrames)。
- 多代理編排:內建
list_threads和send_message工具,支援代理間自主通訊。 - 執行時互操作性:提供對 Claude Code、Kiro、Codex 等外部執行時的封裝,將其視為標準線程。
- 分散式執行時:提供 CLI 和 WebSocket 伺服器,將協調器轉變為全系統可用的代理執行時。
- 自然語言優化:基於效能反饋的反饋迴圈,持續更新提示和邏輯。
相關
- 專案
- 專案
- 專案
- 專案
- 專案