以下の内容はhttps://blog.generative-agents.co.jp/entry/2025/03/19/190030より取得しました。


「AIエージェントキャッチアップ #25 - ControlFlow」を開催しました

ジェネラティブエージェンツの大嶋です。

「AIエージェントキャッチアップ #25 - ControlFlow」という勉強会を開催しました。

generative-agents.connpass.com

アーカイブ動画はこちらです。

youtube.com

ControlFlow

今回は、Agentic AI WorkflowのPythonフレームワーク「ControlFlow」について、公式ドキュメントを読んだり動かしたりしてみました。

ControlFlowのGitHubリポジトリはこちらです。

github.com

公式ドキュメントはこちらです。

controlflow.ai

今回のポイント

ControlFlowの概要

ControlFlowは、Agentic AI Workflowを構築するためのPythonフレームワークです。

Pythonのワークフローオーケストレーションツール「Prefect」の開発元がOSSとして公開しています。

ControlFlowでは、「タスク」「エージェント」「フロー」の3つで処理を構成します。

フローの実装例

ControlFlowでのフローの実装例は以下のようになります。

import controlflow as cf

@cf.flow
def my_flow(x: int) -> int:
    y = cf.run("5を足してください", result_type=int, context=dict(x=x))
    z = cf.run("結果を2倍してください", result_type=int)
    return z

print(my_flow(10))

y = cf.run("5を足してください", result_type=int, context=dict(x=x))の箇所では、context=dict(x=x)としてxの値をcontextとして与えています。

その後、z = cf.run("結果を2倍してください", result_type=int)が実行される際は、yの値が自動でcontextとして与えられる挙動になります。

@cf.flowをつけた関数では、contextの値が自動でプロンプトに注入されるという挙動のようです。

プロンプト

ControlFlowのプロンプトは、ソースコードのsrc/controlflow/orchestration/prompt_templatesディレクトリにあります。

たとえばtask.jinjaを参照すると、contextがあれば文字列として入れられることが分かります。

{% if task.context %}- context: {{ task.context }}{% endif %}

引用元:https://github.com/PrefectHQ/ControlFlow/blob/739b1656cf37fd2c4c23c7e8202229cc28a53649/src/controlflow/orchestration/prompt_templates/task.jinja

このあたりのプロンプトの構成はControlFlowが標準で提供するものを使うのがベースであり、細かいカスタマイズまでは想定していないようです。

個人的にはもっと細かいカスタマイズができるワークフロー型LLMフレームワークを想像していたのですが、そこは少し違ったようです。

今回そこまで試していませんが、ControlFlowはもしかするとPrefectとの連携に強みがあるのかもしれません。

次回のご案内

以上、今回は「ControlFlow」をキャッチアップしました。

次回は「AIエージェントキャッチアップ #26 - Agno」ということで、メモリ・知識・ツールを備えたマルチモーダル エージェントを構築するための軽量ライブラリ「Agno」がテーマです!

generative-agents.connpass.com

ご興味・お時間ある方はぜひご参加ください!

また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!




以上の内容はhttps://blog.generative-agents.co.jp/entry/2025/03/19/190030より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14