メインコンテンツへスキップ

9.6.1 Frameworks ロードマップ:必要なときだけ選ぶ

Framework は Agent を自動的に賢くしません。task が十分に複雑になったとき、state、tools、workflows、memory、logs、collaboration を整理するための abstraction です。

まず selection map を見る

Agent framework position map

Agent framework selection map

Agent framework selection decision map

task が 3 つの固定 steps だけなら、plain Python functions のほうが良いことがあります。state、branching、recovery、data connection、role collaboration が管理しづらくなったら framework を入れます。

Framework route check を動かす

人気だからという理由で framework を選ぶ前に、このチェックを使います。

task = {
"needs_state": True,
"needs_rag": False,
"needs_roles": False,
"needs_resume": True,
}

if task["needs_state"] or task["needs_resume"]:
route = "LangGraph-style state graph"
elif task["needs_rag"]:
route = "LlamaIndex-style data app"
elif task["needs_roles"]:
route = "CrewAI or AutoGen-style collaboration"
else:
route = "plain functions first"

print("route:", route)
print("reason:", "choose the smallest abstraction that exposes state")

出力:

route: LangGraph-style state graph
reason: choose the smallest abstraction that exposes state

Framework choice は README に trade-off として書きます。dependencies の中に隠さないでください。

この順番で学ぶ

手順読む内容実践アウトプット
1Framework overviewframework が何を抽象化するか説明する
2LangChain / LangGraphstate、nodes、edges、branches、recovery を model 化する
3LlamaIndexdocuments、indexes、retrieval、evaluation を接続する
4CrewAI / AutoGenrole collaboration と multi-Agent conversation を比較する
5Framework selectiondecision table と no-framework baseline を書く

合格ライン

同じ小さな task を plain functions と 1 つの framework で実装し、どちらが debug しやすいか、なぜかを説明できれば、この章は合格です。