strands-labs/ai-functions

Python functions powered by AI agents - with runtime post-conditions for reliable agentic workflows.

何を解決するか

Strands AI Functions は、AIエージェントを標準のPython関数として扱う方法を提供します。"プロンプトを送って祈る"開発の問題を解決するために、エージェントが出力が特定の要件を満たすまで自己修正するよう強制するポストコンディションを導入しています。また、LLMのテキスト出力と現実世界のデータの間のギャップを埋めるために、エージェントがPythonコードを生成・実行し、Pandas DataFramesなどのネイティブオブジェクトを返すことを可能にしています。

動作方法

このライブラリは @ai_function デコレータを使用して、Python関数をエージェントタスクに変換します。ドキュメント文字列がプロンプトテンプレートとして機能し、戻り値の型アノテーションが期待される出力形式を定義します。

主なアーキテクチャコンポーネントは以下の通りです:

  • ポストコンディション:エージェントの出力がチェックに失敗した場合、自動的に再プロンプトをトリガーする検証関数。
  • AIスレッド:複数回の呼び出しにわたって会話履歴を保持する状態保持ハンドル。
  • コーディネーターとワーカー:複数のスレッドが互いに発見・メッセージを送受信できるシステムで、マルチエージェント協働を可能にします。
  • 分散実行:コーディネーターとワーカーが異なるプロセスやマシンで実行できるWebSocketベースのプロトコル。
  • メモリ最適化:自然言語に対する「バックプロパゲーション」システムで、結果に対するフィードバックをもとに、メモリバックエンドに保存されたプロンプト、事実、コードを更新し、将来の実行を改善します。

対象ユーザー

出力の形状を保証したい、状態保持された相互作用が必要な、複雑なAIワークフローを構築するPython開発者。また、分散システム上でエージェントチームをオーケストレーションできる能力が必要なユーザー。

特徴

  • 自己修正ループ:カスタムPythonまたはAI駆動のポストコンディションに基づく自動リトライ。
  • ネイティブPython統合:ローカルコード実行により、複雑なオブジェクト(例:DataFrames)を返す能力。
  • マルチエージェントオーケストレーション:自律的なエージェント間通信を可能にする組み込みの list_threadssend_message ツール。
  • 実行時相互運用性:Claude Code、Kiro、Codexなどの外部ランタイムを標準スレッドとして扱うラッパー。
  • 分散ランタイム:CLIとWebSocketサーバーを備え、コーディネーターをマシン全体で利用可能なエージェントランタイムに変換。
  • 自然言語最適化:パフォーマンスフィードバックに基づいてプロンプトと論理を更新するフィードバックループ。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト