Workflows 1.0 スタイルの完全な Python ワークフローでは、ワークフローのすべてのステップを単一の実行可能関数で置き換えます。
実行フローに対して完全な制御を与える一方で、依然としてストレージ、ストリーミングとセッション管理のようなワークフロー機能から恩恵を受けます。
Agno 2.x 例題 : Concepts : ワークフロー – 基本ワークフロー : ステップではなく関数による Python ワークフロー
作成 : クラスキャット・セールスインフォメーション
作成日時 : 11/13/2025
バージョン : Agno 2.2.11
* 本記事は docs.agno.com の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています。スニペットはできる限り日本語を使用しています :
- Learn : Workflows – Workflow Patterns : Fully Python Workflow
- [Examples] Concepts : Workflows – Basic Workflows : Function instead of steps
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

Agno 2.x : Learn : ワークフロー – パターン : 完全な Python ワークフロー
v1 ワークフロースタイルで、Pure Python で単純に実装
Pure Python で単純に保持: ユーザが Workflows 1.0 アプローチを好むか、最大限の柔軟性を必要とする場合、依然として、単一の Python 関数を使用してすべてを処理できます。このアプローチは実行フローに対して完全な制御を与える一方で、依然としてストレージ、ストリーミングとセッション管理のようなワークフロー機能から恩恵を受けます。
ワークフローのすべてのステップを (そこではすべてを制御できる) 単一の実行可能関数で置き換えます。
fully_python_workflow.py
from agno.workflow import Workflow, WorkflowExecutionInput
def custom_workflow_function(workflow: Workflow, execution_input: WorkflowExecutionInput):
# Custom orchestration logic
research_result = research_team.run(execution_input.message)
analysis_result = analysis_agent.run(research_result.content)
return f"Final: {analysis_result.content}"
workflow = Workflow(
name="Function-Based Workflow",
steps=custom_workflow_function # Single function replaces all steps
)
workflow.print_response("Evaluate the market potential for quantum computing applications", markdown=True)
See Example:
- Function-Based Workflow – Complete function-based workflow
For migration from 1.0 style workflows, refer to the page for Migrating to Workflows 2.0
Agno 2.x 例題: ワークフロー – 基本ワークフロー : ステップではなく関数による Python ワークフロー
この例は、ワークフローでステップの代わりに単一の関数だけを使用する方法を実演します。
この例は、離散的なステップの代わりに単一のカスタム実行関数を使用するワークフローを実演します。このパターンはオーケストレーション・ロジックに対して完全な制御を与える一方で、ストレージ、ストリーミングとセッション管理のようなワークフロー機能からの恩恵を依然として受けることができます。
When to use: 実行フローに対して最大限の柔軟性と制御が必要な場合。ワークフロー 1.0 のアプローチに似ていますがより構造化されたアプローチです。
function_instead_of_steps.py
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIChat
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.hackernews import HackerNewsTools
from agno.workflow.types import WorkflowExecutionInput
from agno.workflow.workflow import Workflow
# Define agents
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-5-mini"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-5-mini"),
tools=[DuckDuckGoTools()],
role="Search the web for the latest news and trends",
)
# Define research team for complex analysis
research_team = Team(
name="Research Team",
members=[hackernews_agent, web_agent],
instructions="Research tech topics from Hackernews and the web",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-5-mini"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
],
)
def custom_execution_function(
workflow: Workflow, execution_input: WorkflowExecutionInput
):
print(f"Executing workflow: {workflow.name}")
# Run the research team
run_response = research_team.run(execution_input.input)
research_content = run_response.content
# Create intelligent planning prompt
planning_prompt = f"""
STRATEGIC CONTENT PLANNING REQUEST:
Core Topic: {execution_input.input}
Research Results: {research_content[:500]}
Planning Requirements:
1. Create a comprehensive content strategy based on the research
2. Leverage the research findings effectively
3. Identify content formats and channels
4. Provide timeline and priority recommendations
5. Include engagement and distribution strategies
Please create a detailed, actionable content plan.
"""
content_plan = content_planner.run(planning_prompt)
# Return the content plan
return content_plan.content
# Create and use workflow
if __name__ == "__main__":
content_creation_workflow = Workflow(
name="Content Creation Workflow",
description="Automated content creation from blog posts to social media",
db=SqliteDb(
session_table="workflow_session",
db_file="tmp/workflow.db",
),
steps=custom_execution_function,
)
content_creation_workflow.print_response(
input="AI trends in 2024",
)
出力例
┏━ Custom Function (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ 以下は「2025年のAIトレンド」をテーマに、4週間×週3回(計12回)の投稿スケジュールとコンテンツ戦略です。各週ごとにテーマを設定し、多様なフォーマッ ┃ ┃ ト・チャネルで展開します。 ┃ ┃ ┃ ┃ ―――――――――――――――――― ┃ ┃ ■ 全体戦略ポイント ┃ ┃ ┃ ┃ 1 早期認知:Week 1で全体俯瞰+注目の“マルチモーダル・ワールドモデル”を強調 ┃ ┃ 2 深掘りフェーズ:Week 2~3で主要トピック(医療AI/規制・倫理など)を掘り下げ ┃ ┃ 3 未来展望:Week 4でエッジAI/量子AIなど先端領域を提示 ┃ ┃ 4 フォーマット多様化:ブログ記事、インフォグラフィック、動画・ポッドキャスト、ウェビナー、SNSスレッド・投票など ┃ ┃ 5 配信チャネル:自社ブログ、LinkedIn、Twitter、YouTube、Podcast、メールニュースレター ┃ ┃ 6 エンゲージメント施策:ハッシュタグ活用(#AI2025 #MultimodalAI)、アンケート/ライブQ&A、インフルエンサー起用 ┃ ┃ 7 再利用・拡散:各コンテンツをスニペット化しSNSで告知、月末にまとめ記事+ニュースレターでリキャップ ┃ ┃ ┃ ┃ ―――――――――――――――――― ┃ ┃ ■ Week 1:2025年AIトレンド総覧&マルチモーダル・ワールドモデル ┃ ┃ 投稿1(月曜) ┃ ┃ ┃ ┃ • フォーマット:ブログ記事 ┃ ┃ • タイトル:「【完全ガイド】2025年に注目すべきAIトレンド10選」 ┃ ┃ • チャネル:自社ブログ → メールニュースレター告知 ┃ ┃ • 目的:全体像提示/SEO集客 ┃ ┃ ┃ ┃ 投稿2(水曜) ┃ ┃ ┃ ┃ • フォーマット:インフォグラフィック ┃ ┃ • タイトル:「マルチモーダル“ワールド”モデルとは?」 ┃ ┃ • チャネル:Twitter、LinkedIn ┃ ┃ • 目的:視覚的理解促進/シェア拡散 ┃ ┃ ┃ ┃ 投稿3(金曜) ┃ ┃ ┃ ┃ • フォーマット:LinkedIn記事 ┃ ┃ • タイトル:「WorldLabsのMarbleに見る、オープンリサーチAIの未来」 ┃ ┃ • チャネル:LinkedIn ┃ ┃ • 目的:ビジネスリーダー層へのリーチ/議論喚起 ┃ ┃ ┃ ┃ ―――――――――――――――――― ┃ ┃ ■ Week 2:ヘルスケアAIとパーソナライズドメディスン ┃ ┃ 投稿4(月曜) ┃ ┃ ┃ ┃ • フォーマット:YouTube動画インタビュー(5~8分) ┃ ┃ • 内容:「AI×医療 最前線」専門家対談 ┃ ┃ • チャネル:YouTube → Twitterでクリップシェア ┃ ┃ • 目的:ブランド信頼性向上/視聴回数 ┃ ┃ ┃ ┃ 投稿5(水曜) ┃ ┃ ┃ ┃ • フォーマット:ブログ記事 ┃ ┃ • タイトル:「2025年に実用化が加速するヘルスケアAIユースケース5選」 ┃ ┃ • チャネル:自社ブログ ┃ ┃ • 目的:詳細知見提供/リード獲得 ┃ ┃ ┃ ┃ 投稿6(金曜) ┃ ┃ ┃ ┃ • フォーマット:Twitterスレッド ┃ ┃ • 内容:「AI医療が変える5つの未来シナリオ」 ┃ ┃ • チャネル:Twitter ┃ ┃ • 目的:拡散/リアルタイム反応収集 ┃ ┃ ┃ ┃ ―――――――――――――――――― ┃ ┃ ■ Week 3:AI倫理・規制とデータプライバシー ┃ ┃ 投稿7(月曜) ┃ ┃ ┃ ┃ • フォーマット:オンラインウェビナー告知&事前登録フォーム ┃ ┃ • テーマ:「2025年AI規制最前線」 ┃ ┃ • チャネル:LinkedIn、Twitter、メール ┃ ┃ • 目的:リード育成/参加者確保 ┃ ┃ ┃ ┃ 投稿8(水曜) ┃ ┃ ┃ ┃ • フォーマット:ブログ記事 ┃ ┃ • タイトル:「EU・米国・日本における最新AI規制動向まとめ」 ┃ ┃ • チャネル:自社ブログ ┃ ┃ • 目的:専門性アピール/資料ダウンロード誘導 ┃ ┃ ┃ ┃ 投稿9(金曜) ┃ ┃ ┃ ┃ • フォーマット:LinkedIn投票機能 ┃ ┃ • 内容:「AI規制で最も懸念するポイントは?」 ┃ ┃ • チャネル:LinkedIn ┃ ┃ • 目的:双方向性強化/ディスカッション活性化 ┃ ┃ ┃ ┃ ―――――――――――――――――― ┃ ┃ ■ Week 4:エッジAI・量子AI・未来へのロードマップ ┃ ┃ 投稿10(月曜) ┃ ┃ ┃ ┃ • フォーマット:Podcast(30分) ┃ ┃ • タイトル:「量子AIは本当に実用化できるか?最新展望」 ┃ ┃ • チャネル:Apple Podcasts、Spotify → SNSで告知 ┃ ┃ • 目的:オーディエンス層拡大/長尺コンテンツ ┃ ┃ ┃ ┃ 投稿11(水曜) ┃ ┃ ┃ ┃ • フォーマット:インフォグラフィック ┃ ┃ • タイトル:「エッジAI vs クラウドAI──使い分けガイド」 ┃ ┃ • チャネル:Twitter、LinkedIn ┃ ┃ • 目的:比較理解/SNS拡散 ┃ ┃ ┃ ┃ 投稿12(金曜) ┃ ┃ ┃ ┃ • フォーマット:ブログ記事+メールニュースレター ┃ ┃ • タイトル:「2025年AIトレンド総まとめ&次の一手」 ┃ ┃ • チャネル:自社ブログ → メルマガ一斉配信 ┃ ┃ • 目的:シリーズ完結/ホットリードへの最終アプローチ ┃ ┃ ┃ ┃ ―――――――――――――――――― ┃ ┃ ■ 配信・拡散/エンゲージメント施策まとめ ┃ ┃ ┃ ┃ 1 ハッシュタグ運用:#AI2025 #MultimodalAI #EdgeAI ┃ ┃ 2 インフルエンサー連携:Week 1・2の主要コンテンツで専門家コメント取得 ┃ ┃ 3 メールセグメント:過去DLユーザー向けにテーマ別フォローアップ送付 ┃ ┃ 4 有料広告:重要記事(総覧・ウェビナー告知)をSNS広告でブースト ┃ ┃ 5 リターゲティング:サイト訪問者に2回目以降の関連コンテンツを自動配信 ┃ ┃ 6 ライブQ&A:Week 3ウェビナー後、Twitterスペースでフォローセッション実施 ┃ ┃ ┃ ┃ このプランを軸に、週次で効果測定(PV/視聴数/登録数/エンゲージメント率)を行い、PDCAを回してください。 ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
以上