はじめに
ControlFlowは、PrefectHQによって開発された、AIワークフローの構築と管理に特化したPythonフレームワークです。ControlFlowは、制御性と透明性を犠牲にすることなく、複雑なAIアプリケーションの開発を簡素化するように設計されています。ユーザーは、観察可能な個別のタスクを作成し、各タスクに1つまたは複数の専用AIエージェントを割り当てることができます。これらのタスクをフローに組み合わせることで、より複雑な動作をオーケストレーションすることができます。
機能一覧
- ミッションセンター建築複雑なAIのワークフローを、管理可能で観察可能なステップに分解する。
- 構造化された結果型安全で検証された出力を通じて、AIと従来のソフトウェアとのギャップを埋める。
- 専門エージェントタスクに特化したAIエージェントを配置し、問題解決の効率化を図る。
- 柔軟なコントロールワークフローにおけるコントロールと自律性のバランスを継続的に調整する。
- マルチエージェント・コーディネーション複数のAIエージェントを1つのワークフローやタスクで調整します。
- 局所観測可能性Prefect 3.0をフルサポートし、AIワークフローの監視とデバッグを行います。
- エコシステムの統合既存のコードやツール、より広範なAIエコシステムとシームレスに連携。
ヘルプの使用
設置プロセス
- controlFlowをpipでインストールする:
pip install controlflow
- ControlFlowのデフォルトのプロバイダーはOpenAIです。
OPENAI_API_KEY
環境変数:
export OPENAI_API_KEY=your-api-key
- 他のLLMプロバイダーを使用する場合は、LLM設定ドキュメントを参照してください。
基本的な使い方
ControlFlowの基本的な使用方法は、タスクの作成、エージェントの割り当て、ワークフローの実行です。以下は簡単な例です:
インポートcontrolflow as cf
result = cf.run("人工知能についての短い詩を書いてください")
print(result)
上級者向け
構造化された研究計画書の作成
以下の例は、ユーザーとの対話、複数ステップのワークフロー、構造化された出力を示している:
コントロールフローを cf としてインポート
from pydantic import BaseModel
class ResearchProposal(BaseModel).
タイトル: str
abstract: str
key_points: list[str]
@cf.flow
def research_proposal_flow(): user_input = cf.Task("Collaboration with user to select research topic").
user_input = cf.Task("Collaborate with user to select research topic", interactive=True)
proposal = cf.run("構造化された研究提案書を生成する", result_type=ResearchProposal, depends_on=[user_input])
提案書を返す
result = research_proposal_flow()
print(result.model_dump_json(indent=2))
この例では、ControlFlowは一連のタスクの共有コンテキストであるフローを自動的に管理します。ユーザは、標準的なPython関数とエージェントタスクをいつでも切り替えることができ、複雑なワークフローをステップバイステップで構築することができます。
デバッグとモニタリング
ControlFlowは、AIワークフローの監視とデバッグを可能にするネイティブな観測可能機能を提供します。ユーザーは、Prefect 3.0のフルサポートを使用して、タスクの実行を追跡し、必要に応じて調整を行うことができます。
エコシステムの統合
ControlFlowは、既存のコードやツールとシームレスに統合し、幅広いAI技術とワークフロー管理アプローチをサポートします。ユーザーは、既存のAIエコシステムのリソースを活用して、ワークフローの機能と効率をさらに高めることができます。
上記のステップと例により、ユーザーは、効率的なタスク管理とエージェント調整のためにControlFlowを使用して、AIワークフローの構築と管理をすぐに始めることができます。
ControlFlowのコアコンセプト
エージェント型ワークフローのビルディング・ブロック
ControlFlowは、構造化プログラミングと大規模言語モデル(LLM)の自然言語機能のギャップを埋める、AIワークフロー構築のためのフレームワークです。これは、タスク、エージェント、フローという3つのコアコンセプトによって実現されます。
エージェント型ワークフローを作成するには、明確なゴール(タスク)を定義し、そのゴールを達成するためにインテリジェントなエンティティ(エージェント)を割り当て、時間の経過に伴うそれらのインタラクション(プロセス)を整理します。このアプローチにより、アプリケーションをきめ細かくコントロールしながら、AIのパワーを活用することができます。
📋 タスク
タスクはControlFlowの構造化された部分です。タスクは、ワークフローの核となる具体的で明確に定義された目標です。タスクは、AI駆動操作の「何を」「どのように」をカプセル化し、明確なプログラミング構造を提供します。
ミッションクリティカルな機能:
- AIが達成すべき具体的な目標を明確にする
- 希望する結果の種類と検証基準を指定する
- 実行に必要な命令、コンテキスト、ツールを含むことができる。
- ワークフローのチェックポイントとして
ある マンデート セクションを参照されたい。
🦾 エージェント(代理店)
エージェントは、ControlFlowの非構造化自然言語部分を体現しています。エージェントは、人間のようなテキストを理解し、生成するAIエンティティであり、ワークフローに柔軟性と適応性をもたらします。
エージェントの主な特徴
- 固有のIDと能力を持つ、設定可能なAIエンティティを表す。
- 特定のタスクをこなしたり、さまざまなツールにアクセスするために特化できる
- 与えられた指示に従い、共同作業を行う
- ユーザーとのコミュニケーションを可能にする双方向性
- さまざまなLLMモデルを設定し、その応答を駆動するためのサポート
エージェントは異なるLLMモデルで構成することができ、パフォーマンス、レイテンシー、コストなどの要因に基づいて、ニーズに最も適したモデルを選択することができます。
ある 責任ある立場で代行する セクションを参照されたい。
フロー(流量)
プロセスは、ワークフロー内のすべてのタスクとエージェントに共有コンテキストを提供します。プロセスによってタスクとエージェントのインタラクションが調整され、複雑で適応性の高いAIワークフローを作成できます。
プロセスの主な特徴:
- AI主導のワークフロー全体として機能する高レベルのコンテナ
- すべてのコンポーネントで一貫したステータスと履歴
- タスクとエージェントの共有コンテキスト
- ネストして階層的なワークフローを作成可能
ある ワークフロー セクションを参照されたい。
統合
典型的なControlFlowアプリケーションでは:
- ワークフロー全体を表すフローを定義する。
- プロセスにおける特定の目標を表すタスクを作成する。
- これらのタスクを処理するエージェントを割り当てる。
- プロセスは、タスクの実行とエージェントのインタラクションを調整する責任がある。
この構造により、プロセスの制御を維持し、出力がアプリケーションの要件を満たすようにしながら、強力で柔軟なAIワークフローを作成することができます。