メインコンテンツまでスキップ
Agent as Workflow

ワークフローエンジンは
いまやエージェント。

A2Flow は、チャットで進めるワークフローエンジン(Chat-Driven Workflow)です。サービス依頼、変更作業、周知といった ITSM 型のワークフローを AI エージェントを軸に組み直し、仕事をタスクグラフとして計画し、承認が必要な場面では人を待ち、それ以外は自分で実行します。その計画はワークフローとして保存され、次の実行も同じ手順をたどります。

Chat-Driven WorkflowAG-UI protocolA2UIMCP toolsAgent SkillsSelf-hosted

1 つのワークフローに 2 つのチャット。エージェントと設計し、実行は専用のセッションで。フォームも承認もその中に出ます。

コンセプト

ITSM のワークフローを、作り直す

従来のワークフローエンジンは繰り返せますが、固いものです。固定のフォーム、チケットの待ち行列、人から人への引き継ぎ。経過時間の大半は待ち時間です。AI エージェントとのチャットはその逆で、柔軟ですが、立てた計画はセッションが終われば消え、誰の承認も通っていません。A2Flow は、ワークフローエンジンからは手順と承認を、チャットからは会話を残し、あいだの作業はすべてエージェントに渡します。

チケットのパイプライン

ソフトウェアとしての業務。繰り返せますが固く、フォームも状態も固定で、人がのりの役をします。

  • フォームを埋める1 項目間違っただけで差し戻されます。
  • 順番を待つあなたの依頼は 14 番目です。
  • チーム間で引き継ぐ引き継ぐたびに経緯が失われます。
  • 状況を追いかける「私のチケット、どうなりました?」

AI とのチャット

即興としての業務。柔軟ですが、二度と同じにはなりません。

  • チャットで頼むフォームは不要。言い方も自由です。
  • エージェントが計画して動く毎回新しい計画で、毎回少しずつ違います。
  • 承認の関所がない決めるのはチャットしている本人だけ。ほかの誰にも見えません。
  • セッションが終われば計画も消える次はまたゼロからです。
手順そのものは、ワークフローエンジンの中に閉じ込められたコードではありません。エージェントスキル、つまり Git リポジトリの SKILL.md ファイルです。バージョン管理でき、レビューでき、チームの誰でも読めます。
仕組み

計画する。承認する。実行する。

どの実行も同じ 2 つのゲートを通ります。人が設計を公開するまで何も動かず、指名された承認者が同意するまで、何かを変えるツール呼び出しは通りません。

STEP 1 — 計画

エージェントが意図をタスクグラフに変える

デザインセッションでエージェントスキルを読み、プロンプトを依存関係の明示されたタスクテンプレートに分解し、DAG 全体を 1 回の呼び出しで登録します。循環の検出もそこで行います。チャットでも手作業でも直せます。この時点ではまだ何も動きません。

STEP 2 — 承認

要所では人がゲートになる

ワークフローの公開が計画の承認です。実行はそこから始まり、確認すべきものはありません。何かを変えるツール呼び出しは指名された承認者のところで止まります。承認・却下・差し戻しの操作は、許可する呼び出しの一覧つきでチャットの中にそのまま出て、決裁できるのはその人だけです。ほかの人には 403 が返ります。

STEP 3 — 実行

エージェントがグラフをたどる

実行を押すと、エージェントはその実行専用のワークフローセッションですぐに動き始めます。タスクは依存順に pending → in_progress → completed と進み、そのとき動いているタスクに割り当てられた MCP ツールだけを呼びます。聞きたいことは、チャットの中に描いたフォームで尋ねます。

Workflow TasksTable · Graph
Configure instanceCOMPLETEDApprove launchWAITING · SAMNotify #ops channelCOMPLETEDLaunch instanceIN PROGRESSConfirm resultPENDING
completedin progressapproval gatepending
チームのために

3 つの役割が、1 つの会話に

ワークフローセッションは共有のチャットです。申請者も承認者もエージェントも、同じスレッドに書き込みます。裏でのやり取りも、「私のチケット、どうなりました?」もありません。

M

申請者

公開済みのワークフローを実行します。エージェントがチャットに描くフォームで質問に答え、タスクの進み具合を同じスレッドで見守ります。

S

承認者

通知を受け取ってセッションを開き、チャットの中でそのまま判断します。コメントも添えられます。承認を決裁できるのは指名された承認者だけです。

✦

エージェント

タスクグラフを立て、必要な場面で承認を求め、スキルに従って各手順を実行し、進み具合を報告します。

判断の場所まで連れていく通知

承認依頼とセッションの完了は各ユーザーの通知ベルに届き、そのまま該当する会話へ飛べます。

すべての承認に監査証跡

誰が承認し、何を書き、いつだったのか。承認のレコードに残り、管理画面から辿れます。

機能

ワークフローに必要なものすべてを、余計なものは何も

Git に置くエージェントスキル

手順は Git リポジトリの SKILL.md ファイルとして置かれ、初回実行時に clone されます。ほかのコードと同じように、バージョン管理して、レビューして、読めます。

何度でも実行できる計画

エージェントがスキルから起こしたタスクグラフを、ワークフローとして公開します。依存を守り循環は拒む本物の DAG で、どの実行も同じグラフをたどります。並べ替えできるテーブルとしても、自動レイアウトのグラフとしても描画され、エージェントの作業に合わせて更新されます。

実行の途中に入る承認ゲート

破壊的な手順の前に、エージェントは特定のユーザーへ承認を求めて停止します。承認・却下・差し戻しのボタンがチャットに出ますが、見えるのはその人だけです。

タスク単位に絞った MCP ツール

MCP サーバーを登録しておくと、エージェントは計画時に、各タスクが必要とするツールだけを割り当てます。実行時、タスクは自分のツール以外を呼べません。A2Flow が起動するサーバーは、1 つずつ専用の bubblewrap サンドボックスで動きます。

チャットの中のリッチな UI

A2UI プロトコルを通じて、エージェントはボタンやフォームやカードをその場に描画します。クリックはツールの結果として実行へ戻ります。

LLM は自分で選ぶ

既定は Gemini。OpenAI と Anthropic のモデルは LiteLLM 経由で使えます。プロバイダの切り替えは環境変数 1 つです。

内側

オープンプロトコルのスタック

チャット UI は FastAPI のバックエンドから AG-UI のイベントを受け取り、エージェントは A2UI のサーフェスをチャットに描きます。Agent Skills は Git から、ツールは MCP サーバーから来て、1 つのリレーショナルデータベースがすべてを保持します。

Chat UIA2UI renderer
FastAPI + Google ADK + LiteLLMplan-then-execute agent
MCP serversstreamable HTTP
Agent Skills in GitSKILL.md repos
PostgreSQL / SQLitesessions · tasks · approvals
AG-UIA2UIMCPAgent SkillsFastAPILiteLLMPostgreSQL
はじめる

手元のマシンで動かす

PostgreSQL とバックエンドとフロントエンド。スタック一式が Docker Compose で立ち上がります。Google の API キーさえあれば、最初のワークフローまで 2 コマンドです。

$ git clone https://github.com/kaitoy/a2flow.git && cd a2flow$ echo GOOGLE_API_KEY=your_google_api_key_here > .env$ docker compose up --build# open http://localhost:3000