Agent Development Kit(ADK)for Go 2.0 がリリースされた。本番向けの分岐・並列・再試行・人間承認を、ノードとエッジのグラフとして記述できるワークフローエンジンが中心である。Python ADK 2.0 と同じグラフ優先の方向性を、Go らしい API で提供する。

go
import "google.golang.org/adk/v2/workflow"

upper  := workflow.NewFunctionNode("upper",  upperFn,  cfg)
suffix := workflow.NewFunctionNode("suffix", suffixFn, cfg)

edges := workflow.Chain(workflow.Start, upper, suffix)

wf, _ := workflowagent.New(workflowagent.Config{
    Name:  "simple_sequence_workflow",
    Edges: edges,
})

生成した wf は通常の agent.Agent であり、既存の runner・launcher・console でそのまま動く。主な変更は次のとおり。

  • ノード種別: Function / Emitting Function / Agent / Tool / Join / Dynamic / Workflow / Parallel workers など。エッジのルートで条件分岐、fan-out / fan-in、ループを表現できる。
  • 動的オーケストレーション: NewDynamicNode の中で通常の Go として RunNode を呼び、実行時に順序や並列を決められる。
  • Human-in-the-loop: ノードが入力要求イベントを yield するとワークフローは待機し、handoff または re-entry で再開する。セッションに状態を残し、プロセス再起動後や Python ADK と共有する割り込み形式でも再開できる。
  • 耐障害性: ノード単位のリトライ(指数バックオフとジッタ)、Timeout、WithMaxConcurrency、並列ブランチの履歴隔離。
  • LLM エージェントのモード: Chat / Task / SingleTurn。単体エージェントとグラフが同一のノード実行モデルで動き、HITL はプレーンな LLM エージェントでも使える。
  • コンテキスト統一: ToolContextCallbackContextagent.Context に統合された。ノード関数の第一引数も agent.InvocationContext から agent.Context へ移す。

ワークフローエンジン自体は新規パッケージへの opt-in だが、ランタイム統合に伴う破壊的変更がある。import パスは google.golang.org/adk/v2 になり、session.NewEventcontext.Context を第一引数に取る。

#参考文献