つれづれなる Agent OPS
つれづれなる Agent OPS
Flue

Flue 1.0 Betaとは何か ローカル検証で分かった新機能とQuickstartの注意点

AstroチームのエージェントフレームワークFlue 1.0 Betaを手元で動かし、init・build・runまでの挙動とハマりどころを記録した実装検証メモ。

Xでシェア
Markdown を表示

AIエージェントフレームワーク、Flueの1.0 Betaが出ていたので、正直リリースノートを読むだけでは温度感がつかめず、手元で触ってみました。 Agent / Workflow / Channels がひとつのストーリーに揃った、というアナウンスだったので、まずはWorkflowのサンプルコードをそのまま動かすところから始めています。

Flue 1.0 Betaとは

Flue 1.0 Betaは、Astroの開発者が手がけるTypeScript製のAIエージェントフレームワークです。今回のBetaでは、単発のLLM呼び出しではなく、エージェントと決定的なワークフローを同じ基盤で扱い、外部サービスとの接続やUI、観測までを一つの構成にまとめる方向が明確になりました。

追加・拡張された主な要素は次のとおりです。

  • 自律的な処理を担うAgentと、処理手順をコードで制御するWorkflow
  • SlackやGitHubなどのイベントをAgentへ渡すChannels
  • AgentやWorkflowの状態をUIへストリーミングする@flue/react
  • OpenTelemetry、Braintrust、Sentryなどへ接続するObservability
  • オフラインドキュメントや連携機能を追加するCLI
機能役割今回の確認範囲
Agentツールやスキルを持ち、自律的に課題を解く概要確認のみ
Workflow開発者が定義した手順で有限の処理を実行するサンプルをビルドし、実行入口まで確認
ChannelsSlack、GitHub、LinearなどのイベントをAgentへ接続する未検証
React@flue/reactからAgentやWorkflowの状態を扱う未検証
ObservabilityOpenTelemetryなどへ実行情報を接続する未検証

触る前に、Flueが何を中心に置いたフレームワークなのかも整理しています。

Flueを触る前に、まず何のフレームワークなのかを整理した https://llm-lab.dev/posts/flue-framework-overview/

環境とインストール

Node 22系で、npm install @flue/runtimenpm install -D @flue/cli を素直に叩くだけで詰まりはありませんでした。CLIのバージョンも 1.0.0-beta.1 で固定されており、ここまでは想定どおりです。

インストールから実行までの再現手順

検証では、空のディレクトリでruntimeとCLIを導入し、Node向けの設定を生成してからWorkflowをビルドしました。流れは次のとおりです。

npm install @flue/runtime
npm install -D @flue/cli
npx flue init --target node
npx flue build --target node
npx flue run summarize --target node --payload '{"text":"FlueのWorkflowを短く要約してください"}'

initflue.config.tsを生成します。次にsrc/workflows/summarize.tsへWorkflowを置くと、buildがファイルを自動検出します。最後のrunはモデルproviderのAPIキーを必要とするため、キーを設定していない環境ではモデル呼び出しの直前で停止します。

いきなりQuickstartと挙動がズレた

公式のスタートプロンプトは「npx flue init を実行してプロジェクトを作る」という体験を前提にした書き方になっています。ところが実際に打つと、こうなりました。

Missing required --target flag for init command.

--target node--target cloudflare を明示しないと先に進めない仕様です。エラーメッセージ自体は親切で、使い方一覧もそのまま表示されるので詰まりとしては軽いのですが、「コピペしたプロンプトをコーディングエージェントに渡すだけで動く」という訴求とは、初手で少しズレている印象を受けました。--target node を付けて通したところ、生成されたのは次のだけの薄い flue.config.ts でした。

コマンド結果判断
npx flue initMissing required --target flag for init command.で停止Quickstartの記述だけではtargetが不足する
npx flue init --target nodeflue.config.tsを生成Nodeで試す場合の実行可能な形
npx flue init --target cloudflareCloudflare向けtargetを指定Cloudflareで試す場合はこちらを選ぶ
import { defineConfig } from '@flue/cli/config';

export default defineConfig({
	target: 'node',
});

エージェントやワークフローのひな型自体は生成されないので、init はあくまで設定ファイルの土台作りに役割が絞られている、という理解で進めました。

Workflowサンプルはビルドまで素直に通る

ブログ記事内の summarize ワークフローのサンプルコードを src/workflows/summarize.ts にそのまま置いて flue build --target node を叩くと、ワークフローが自動検出され、ビルド自体は問題なく完了しました。CLIが src/workflows 配下を規約として読みにいく作りになっている点は、Astroのファイルベースルーティングに近い感覚で、違和感なく馴染みました。

ただしビルド時に MODULE_TYPELESS_PACKAGE_JSON の警告が出ています。package.json"type": "module" を足していないとesm判定の再解析が走る、というNode側の一般的な注意ですが、betaのテンプレート自体がこの一手間を埋めていない点は、初回体験としては惜しいと感じました。

実行はAPIキー未設定で意図どおり止まる

flue run summarize --target node --payload '{"text": "..."}' を実行すると、ローカルでrun IDが発行され、SQLiteを使った実行管理が動いていることが分かるログが出ます。その後、想定どおり次のエラーで止まりました。

Error: Workflow failed: [internal_error] prompt failed: No API key for provider: anthropic

ここはAPIキーを渡していない自分の検証環境の都合なので不具合ではありません。注目したのは、エラーに至るまでの過程でrunごとのIDが見えたことです。記事中で説明されている「Durable Streamsによる追記専用ログを正とする」という設計が、ローカル実行の時点から実際に機能している様子がうかがえました。ただし、このログが具体的にどこにどう永続化されるのかまでは、今回の短い検証では追い切れておらず未検証です。

docsコマンドはオフラインで実際に効く

地味に良かったのが flue docs です。npx flue docs を打つだけで、APIリファレンスやチャンネル別ドキュメントなど110ページ分の一覧がオフラインで返ってきました。コーディングエージェントに作業させる前提のフレームワークなら、ネット越しに毎回ドキュメントを取りに行かせるより、こうしてローカルに検索可能な形で持たせておくほうが、エージェントの調査コストを下げる設計として筋が良いと感じます。

まとめ

短い時間での検証なので踏み込めた範囲は限定的ですが、initbuildの間にQuickstartの体験とCLIの実仕様で小さなギャップがあること、ビルド自体はサンプルコードそのままで問題なく通ること、実行管理の土台にDurable Streamsらしき仕組みが見えることまでは確認できました。Agent側のサンプル(tools / skills / sandbox を絡めたフルセット)はAPIキーを用意したうえで別途試したいので、続きはまた別の記事にします。

概要だけでなくFlueのAgent、Skill、Sandboxの責務を整理した記事と、実際にGitHub IssueトリアージAgentを動かした記事も公開しています。

Flueを触る前に、まず何のフレームワークなのかを整理した https://llm-lab.dev/posts/flue-framework-overview/ Flue 1.0 BetaでGitHub Issueトリアージエージェントを動かしてみた https://llm-lab.dev/posts/flue-1-0-beta-issue-triage-agent/
DUOps

Author

DUOps(デュオプス)

LLMOps、Agent、MCP、Langfuse、Cloudflare 周辺の実装と運用を、個人で試しながら記録しています。

Xを見る

コメント

Related