strands-labs/ai-functions

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

解決する課題

Strands AI Functions は、AI開発における「プロンプトを投げて祈る(prompt-and-pray)」問題を解決します。AI駆動のタスクを検証可能な型付きPython関数として扱うフレームワークを提供することで、複雑なワークフローにおける連鎖的なエラーを防ぎます。開発者は事後条件を定義でき、出力が要件を満たすまで自動的に自己修正ループがトリガーされます。

仕組み

このライブラリはデコレータベースのアプローチ(@ai_function)を使用して、標準的なPython関数をAI駆動のエージェントに変換します。これらの関数は標準的なPythonパターンを使用して構成したり、並列実行したり、ステートフルなスレッドとして整理したりできます。このフレームワークは以下をサポートしています:

  • 検証: 事後条件により出力の妥当性を保証し、実験的機能として正当性の形式証明も可能です。
  • コード実行: エージェントはローカルのPythonコードを生成・実行し、DataFramesのような複雑なデータ構造を処理できます。
  • マルチエージェントオーケストレーション: スレッドはコーディネーターを介して互いに発見・通信でき、複雑なチームベースのワークフローを実現します。
  • プロトコル互換性: Claude Code, Kiro, Codex といった外部エージェントランタイムを、同一システム内のピアとして統合するための統一インターフェースを提供します。

対象ユーザー

このライブラリは、基本的なプロンプトチェーンライブラリよりも高い信頼性、状態管理、オーケストレーション機能を必要とする、エージェントアプリケーションを構築するPython開発者向けです。特に、AIエージェントを標準的な型付き関数として既存のコードベースに統合する必要がある場合に最適です。

ハイライト

  • ネイティブなPython統合: 関数は単なるJSON文字列ではなく、実際のPythonオブジェクトを受け取り、返します。
  • 自己修正: 事後条件が満たされない場合、自動的にモデルへ再プロンプトを行います。
  • 経済性を考慮: 結果の価値とモデルトークンのコストを定義し、実行を最適化できます。
  • 分散実行: WebSocketベースのコーディネーターを介して、異なるプロセスやマシン間でエージェントを実行できます。
  • ツール相互運用性: AI関数を他のエージェントへのツールとして渡したり、チーム内でオーケストレーションしたりできます。

関連

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