fx:わずか6MBのオープンソースコーディングエージェント、Zigで構築
fx :Tiny, open, native coding agent.

fxはZigで書かれたコーディングエージェントのハーネス兼CLIで、研究用途と大規模システムへの組み込みに最適化されています。バイナリサイズはわずか6.39MiBで、コールドスタートは10µs、メモリ使用量は数MBと、リソース制約のある環境やエージェントサンドボックスに適しています。Wasmビルドもサポートし、ネットワークスタックをプラガブルにします。シェルに似たUIと最小限のシステムプロンプトでトークンコストを抑え、スキル、プラグイン、MCPによる拡張が可能です。Apache-2.0ライセンスで、モデル非依存、ローカル・クラウド推論の両方に対応します。
fxは、システムプロンプトの設計からツール、機能セット、6.39MiBのバイナリに至るまで、ミニマリズムとパフォーマンスに重点を置いています。
HNでの議論
83- rsyring
「なぜ?」と尋ねるすべての人にとって、TFAにはそれを際立たせる機能・属性のリストがかなりあるように思えます:
- fxはZigで書かれたコーディングエージェントハーネス兼CLIで、より大きなシステムの一部としての研究と埋め込み可能性に最適化されています。
- システムプロンプトの設計からツール、機能セット、6.39MiBのバイナリに至るまで、全体にわたってミニマリズムとパフォーマンスに焦点を当てています。
- エンドユーザーにとって、そのCLI出力スタイルとフォームファクターは、「ターミナル内の重いIDE」TUIというよりは、Unixシェルに近いことを目指しています。
- オープンソース(Apache-2.0)で、モデルに依存せず、ローカル推論とクラウド推論の両方に適しています。
- リソースが制約された環境やエージェントサンドボックスへの即時インストールと埋め込み用に設計されています。
- fxは10µsでコールドスタートし、ユーザー入力を受け付ける前に不要な作業やI/Oを行わないため、プログラムでの使用に理想的です。
- Zigツールチェーンによって生成された最適なfx.wasmビルドは、fxのサイズをさらに縮小し、ネットワークスタックをプラガブルにします。
- fxはメモリベースラインを一桁メガバイトに抑え、1台のマシンに多くのインスタンスを詰め込むことができます。
- fxはデフォルトでスクロール履歴を保持し、最小限の出力を生成し、複雑なTUIやペイントを控えめに使用します。
- トークンコストを節約し、最適な最初のトークンまでの時間(TTFT)を得るために、システムプロンプトとツールを最小限に抑えます。
- 小さなコアを、スキル、プラグイン、MCPで拡張し、Unix風の拡張性の哲学を持ちます。
- ローカルモデル、ゲートウェイ、プロバイダー直接APIアクセス、またはサブスクリプションと連携するように設計されています。
- _pdp_
厳しい言い方になるかもしれませんが、私の意見では、このプロジェクトの唯一の興味深い点はZigで書かれていることだけです。それだけです。
ハーネスの他のすべては、ほとんど同じで、ただVercel風味です。
移植性の利点も、私の意見では少し過大評価されています。私はGoでハーネスを書きましたが、これと同じくらい移植性があります...実際、問題なくオンデマンドでVercel自身のサンドボックス環境に直接デプロイできます。
とはいえ、GLM 5.2が無料と言いましたか?それは調べてみる必要がありますね。GLMは非常に有能なモデルで、それだけでこのハーネスを使う価値があります。
- ryuuseijin
他のエージェントツールが提案されているのを見たので、私もMakiを候補として挙げさせてください:https://maki.sh/
- Rustで書かれており、起動とレンダリングが超高速
- トークン節約テクニックを実装
- プラグインはLuaで書かれる
提携はありませんが、本当によくできたソフトウェアだと思います。
- kgeist
>約6MBの小さなバイナリ
Zigで書かれたプログラムにしてはなぜこんなに大きいのか不思議です。基本的には、ユーザー入力を受け取り、コンテキストを準備し、LLMに送信し、出力を解析し、ツールを呼び出し、それをすべてターミナルに表示するループに過ぎません。組み込みのプロンプトと、ここかしこにいくつかのチェック(ファイルが最初に読まれる前に書き込みツールの呼び出しをブロックするなど)を追加しても、真に小さなネイティブエージェントは最大200〜300KB程度になるはずです。
- bodge5000
本当に面白そうで、ぜひチェックしてみたいと思いますが、(純粋な質問ですが)「エージェント」と「エージェントハーネス」は、ここで使われているように同じ意味で使われるべきなのでしょうか?それは自分自身をエージェントハーネスと説明していますが、キャッチフレーズは「小さく、オープンで、ネイティブなコーディングエージェント」です。
ハーネスという言葉が正しいかどうかも確信が持てませんが、それが業界で定着した用語のようなので、それに譲ります。しかし、エージェントは作業を行うもの(おそらくモデル、またはモデルのインスタンスであり、それがエージェントが異なる理由でしょう?)であり、ハーネスはユーザーがエージェントと対話する方法であるはずです。その関係を説明する方法は以前からありました:クライアントとサーバー、フロントエンドとバックエンド。しかし、また、輝く新しいものは退屈な古い用語を使いたがらないことに譲歩しますが、輝く新しい用語には一貫性と論理があることがかなり重要だと思います。
これは特にfxについてではなく、より一般的な業界の不満です。
- SmashDan
私はテック業界にいません。なぜこんなに多くの新しいコーディングエージェントがあり、なぜそれらがHackerNewsでよくアップヴォートされるのか、誰か説明してもらえませんか?2日に1回はトップ10に新しいものが入っているように見えます。
- vhantz
「任意のスクリプトをcurlしてbashにパイプする」という配信方法が、いつまで続くのか気になります。
- abhikul0
ローカル推論?Vercelアカウントにサインアップする以外の方法は見当たりません。なのでパスです。