A2Flow は、チャットで進めるワークフローエンジン(Chat-Driven Workflow)です。サービス依頼、変更作業、周知といった ITSM 型のワークフローを AI エージェントを軸に組み直し、仕事をタスクグラフとして計画し、承認が必要な場面では人を待ち、それ以外は自分で実行します。その計画はワークフローとして保存され、次の実行も同じ手順をたどります。
1 つのワークフローに 2 つのチャット。エージェントと設計し、実行は専用のセッションで。フォームも承認もその中に出ます。
従来のワークフローエンジンは繰り返せますが、固いものです。固定のフォーム、チケットの待ち行列、人から人への引き継ぎ。経過時間の大半は待ち時間です。AI エージェントとのチャットはその逆で、柔軟ですが、立てた計画はセッションが終われば消え、誰の承認も通っていません。A2Flow は、ワークフローエンジンからは手順と承認を、チャットからは会話を残し、あいだの作業はすべてエージェントに渡します。
ソフトウェアとしての業務。繰り返せますが固く、フォームも状態も固定で、人がのりの役をします。
即興としての業務。柔軟ですが、二度と同じにはなりません。
AI と一緒に回す SOP。チャットの柔軟さと、手順書の再現性を両方持ちます。
SKILL.md ファイルです。バージョン管理でき、レビューでき、チームの誰でも読めます。どの実行も同じ 2 つのゲートを通ります。人が設計を公開するまで何も動かず、指名された承認者が同意するまで、何かを変えるツール呼び出しは通りません。
デザインセッションでエージェントスキルを読み、プロンプトを依存関係の明示されたタスクテンプレートに分解し、DAG 全体を 1 回の呼び出しで登録します。循環の検出もそこで行います。チャットでも手作業でも直せます。この時点ではまだ何も動きません。
ワークフローの公開が計画の承認です。実行はそこから始まり、確認すべきものはありません。何かを変えるツール呼び出しは指名された承認者のところで止まります。承認・却下・差し戻しの操作は、許可する呼び出しの一覧つきでチャットの中にそのまま出て、決裁できるのはその人だけです。ほかの人には 403 が返ります。
実行を押すと、エージェントはその実行専用のワークフローセッションですぐに動き始めます。タスクは依存順に pending → in_progress → completed と進み、そのとき動いているタスクに割り当てられた MCP ツールだけを呼びます。聞きたいことは、チャットの中に描いたフォームで尋ねます。
ワークフローセッションは共有のチャットです。申請者も承認者もエージェントも、同じスレッドに書き込みます。裏でのやり取りも、「私のチケット、どうなりました?」もありません。
公開済みのワークフローを実行します。エージェントがチャットに描くフォームで質問に答え、タスクの進み具合を同じスレッドで見守ります。
通知を受け取ってセッションを開き、チャットの中でそのまま判断します。コメントも添えられます。承認を決裁できるのは指名された承認者だけです。
タスクグラフを立て、必要な場面で承認を求め、スキルに従って各手順を実行し、進み具合を報告します。
承認依頼とセッションの完了は各ユーザーの通知ベルに届き、そのまま該当する会話へ飛べます。
誰が承認し、何を書き、いつだったのか。承認のレコードに残り、管理画面から辿れます。
手順は Git リポジトリの SKILL.md ファイルとして置かれ、初回実行時に clone されます。ほかのコードと同じように、バージョン管理して、レビューして、読めます。
エージェントがスキルから起こしたタスクグラフを、ワークフローとして公開します。依存を守り循環は拒む本物の DAG で、どの実行も同じグラフをたどります。並べ替えできるテーブルとしても、自動レイアウトのグラフとしても描画され、エージェントの作業に合わせて更新されます。
破壊的な手順の前に、エージェントは特定のユーザーへ承認を求めて停止します。承認・却下・差し戻しのボタンがチャットに出ますが、見えるのはその人だけです。
MCP サーバーを登録しておくと、エージェントは計画時に、各タスクが必要とするツールだけを割り当てます。実行時、タスクは自分のツール以外を呼べません。A2Flow が起動するサーバーは、1 つずつ専用の bubblewrap サンドボックスで動きます。
A2UI プロトコルを通じて、エージェントはボタンやフォームやカードをその場に描画します。クリックはツールの結果として実行へ戻ります。
既定は Gemini。OpenAI と Anthropic のモデルは LiteLLM 経由で使えます。プロバイダの切り替えは環境変数 1 つです。
チャット UI は FastAPI のバックエンドから AG-UI のイベントを受け取り、エージェントは A2UI のサーフェスをチャットに描きます。Agent Skills は Git から、ツールは MCP サーバーから来て、1 つのリレーショナルデータベースがすべてを保持します。
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