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_threadssend_message 工具,支援代理間自主通訊。
  • 執行時互操作性:提供對 Claude Code、Kiro、Codex 等外部執行時的封裝,將其視為標準線程。
  • 分散式執行時:提供 CLI 和 WebSocket 伺服器,將協調器轉變為全系統可用的代理執行時。
  • 自然語言優化:基於效能反饋的反饋迴圈,持續更新提示和邏輯。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案