ハクソク

世界を動かす技術を、日本語で。

Show HN: Jido 2.0、Elixirエージェントフレームワーク

概要

  • Jido 2.0が18ヶ月の開発を経てリリース
  • BEAM上で動作するエージェントシステムに最適化
  • シンプルなAPIと堅牢なコアアーキテクチャ
  • AI統合層や多様な推論戦略を標準搭載
  • 拡大するエコシステムとコミュニティ

Jido 2.0リリースの背景と進化

  • Jidoは元々2024年にBotHiveというボットプラットフォームとしてスタート
    • AIブームの到来により方向転換
  • 開発言語にElixirを採用し、BEAMの並行処理性能に賭ける
  • TypeScriptPythonのエージェントフレームワークは耐久性や並行性で課題
  • BEAMはエージェントシステムに最適なランタイムとして機能
  • 18ヶ月のBEAM上でのエージェント運用でその選択が正しかったことを実感

Jido 1.0から2.0への進化

  • Jido 1.0(2023年3月リリース)は過剰設計で使いづらさがあった
    • OTPの深い理解不足が影響
    • 実用性の低い抽象化や複雑な操作性
    • フィードバックで「エージェント構築に集中したい」という声が多かった
  • Jido 2.0では以下を徹底
    • APIの簡素化儀式的要素の削減
    • BEAMファーストな設計

Jido 2.0の主要機能

  • 純粋関数型エージェントアーキテクチャ
    • エージェントは状態・アクション・ツールを持つ構造体
    • すべての処理はcmd/2関数を通じて行う
    • エージェントは常に「データ」として扱われ、テストやデバッグが容易
  • 副作用はディレクティブとして記述
    • ランタイムが実行する型付きデータ構造で副作用を管理
  • Jido.AgentServerでエージェントをGenServerにラップ
    • シグナルルーティングや親子階層管理もサポート
  • **戦略(Strategy)**による拡張性
    • Direct(逐次実行)とFSM(状態遷移型)の2種を標準搭載
    • ReActChain-of-ThoughtなどAI推論戦略もプラグインとして追加可能
    • jido_behaviortreeでビヘイビアツリー実行も対応

アクションとシグナルの独立パッケージ化

  • jido_action
    • エージェントの機能はすべてJido.Actionとして定義
    • スキーマバリデーションやライフサイクルフック、25種類以上のツールを標準搭載
    • DAGベースのワークフロープランナー
  • jido_signal
    • CloudEvents v1.0.2準拠のシグナルシステム
    • 高速なトライベースルーター、pub/subバス、9種類のディスパッチアダプタ
    • 標準規格で外部連携が容易

Jido AI統合層

  • Jido AIはLLMコールを構造化されたエージェント知能に変換
  • 6種類の推論戦略を標準搭載
    • ReActChain-of-ThoughtTree-of-ThoughtsGraph-of-ThoughtsTRMAdaptive
  • ツール呼び出しはJido.Actionモジュールで実現
  • ReqLLM(Elixir製LLMクライアント)を基盤に、11プロバイダ・665モデル対応
    • ストリーミングファースト設計
    • 成長するコミュニティと実運用事例

エコシステムの拡大

  • Jidoはフレームワークからエコシステムへ進化
    • コーディングアシスタント、ワークフローオーケストレーター、リサーチエージェント、プロダクション支援システムなどの構築事例
    • ブラウザ自動化、メモリシステム、評価ハーネス、MCP連携など周辺パッケージも拡充

Ash Frameworkとの統合

  • ash_jidoが2.0でリリース
    • Ashリソースにjido DSLブロックを追加するだけでAIツール化
    • 認可・データレイヤ・型安全性も維持
  • ash_aiReqLLMへ移行中で、両エコシステムの連携が進行

参考情報・導入方法

コミュニティと感謝

  • Elixirコミュニティへの感謝
    • PhoenixLiveViewAshReqTelemetryNimbleOptionsなどのエコシステムがJidoを支える
  • 率直なフィードバックをくれたテスター・コントリビューターへの謝意
  • 今後もJidoエコシステムを共に築いていくことへの期待

HN向けメッセージ

  • Jido 2.0BEAM上で動作するエージェントフレームワークの新たなメジャーリリース
  • エージェント機能:ツールコール、スキル、分散BEAMプロセス、監督、複数推論戦略、ワークフロー、耐久性、メモリ、MCP/センサー連携、観測性
  • BEAMアーキテクチャがエージェントワークロードに最適との認識が高まる
  • エンタープライズエンジニアリング分散システムOSSバックグラウンド
  • 成長中のコミュニティと共に、Jido上での新たなエージェント構築を歓迎

Hackerたちの意見

まだJidoは使ったことないけど、月に一回くらいチェックしてるプロジェクトの一つだよ。BEAMはエージェントフレームワークにぴったりな感じだけど、エコシステムが限られてるせいで、あんまり深く進められないでいる。2.0が楽しみ!ちょっと気をつけてほしいんだけど、いくつかのコードサンプルでエンティティのエスケープに問題があるみたい。name: "my_agent", description: "A simple agent",
ありがとう!修正中...
サイトがアクセス集中してるみたいで、死にそうだね。アーカイブのバックアップはこちらだよ: https://web.archive.org/web/20260305161030/https://jido.run/
関係あるか分からないけど、ページは問題なく読み込まれて、数秒後に404にリフレッシュされるんだ。記事を読むのは諦めたよ。
これからの2週間、私の個人的な恥になっちゃった…いい問題だけど、まじで準備不足だったわ。
これを出してくれてありがとう!エージェントフレームワークで一番難しいのは、モデルの配管じゃなくて、運用の境界だと思う。ツールをどう分離するか、時間や予算の制限をどう設けるか、エージェントの呼び出しチェーンが広がったときに部分的な失敗からどう回復するかが大変なんだよね。BEAMの監視モデルは、特に各ツールの実行を明確な再起動やエスカレーションのセマンティクスを持つ監視ユニットとして扱えるなら、すごく合ってると思う。チームが小さな専門エージェントをたくさん使うのか、厳しいポリシーの一般エージェントを少数使うのか、どっちが多いか気になるな。
ありがとう!運用の境界については同意するよ。2.0リリースまでにここまで来るのに時間がかかった。コメントでは言い切れないことが多いけど、「Concepts: Executor」セクションを見てみて。ここでモデルについて詳しく掘り下げてるから。
シェアしてくれてありがとう!絶対チェックするね。最近、GenServerみたいな抽象化を使ってA2Aパッケージを作ったんだけど、Elixirにはもう別のA2A実装があったのを見逃しちゃった。でも、パッケージのセマンティクスが十分に違ったから、公開することにしたよ。興味がある人はこちらだよ: https://github.com/actioncard/a2a-elixir
すごい!!!星をあげたよ…
これ大好き!タイミングが完璧すぎる。俺はエージェントフレームワークをgenサーバーとObanを混ぜて作らなきゃいけなかったから、正直面倒だったんだ。これがあれば開発の苦労がかなり減りそう。ほんとにありがとう!
<3
このプロジェクトを数ヶ月追いかけてるけど、Elixir/BEAMはエージェントを動かすのに完璧だね。BEAMはめちゃくちゃ軽量だし、知ってる人は知ってるよね。理論的には、1台のサーバーで何千ものエージェントを動かせるかも。これを理解している人たちが何を作るのか楽しみだな。
JidoのコアはRaspberry Piで動く予定だよ。BEAMがベアメタル(組み込み)で展開される中でエージェントを動かすことを考えてる人もいる。未来はすごいことになりそうだね。
これって、https://github.com/openai/symphony に似てるのかな?この分野にはあまり詳しくないけど、AI関連よりもElixirの動向を追ってるんだ。ElixirとBEAMがこういうオーケストレーション系のワークロードに登場するのは興味深いし、新鮮だね。
OpenAIがElixirを取り入れてるのを見るのは嬉しいね。シンフォニーはJidoができることの直接的な実装だし!
メタな好奇心なんだけど… OPはこのライブラリを作る上でエージェントやLLMがどんな役割を果たしたのかコメントしてくれるかな?
最初のバージョンは全体のパターンを手作業でコーディングしたんだ。それが2024年の中頃。Claudeを使ってパターンを学んだり洗練させたりしたけど、その時点ではこのレベルのOTPコードは書けなかったんだ。モデルが良くなるにつれて、バグを見つけたり簡素化したりするのに使ったけど、基本的にはそのオリジナルデザインから大きく変わってないよ。
あなたのコードを読むのがめっちゃ楽しみ!最初のバージョンを読んで、いくつかのアイデアを自分たちの内部のElixirエージェントフレームワークに取り入れたよ。(あなたのReqLLMパッケージを使わせてもらってる、ありがとう!)リリースおめでとう!
ありがとう!!!
この素晴らしいフレームワークを使ってる人たちと話したいな!
Discordに参加してね - リンクはサイトのフッターにあるよ。コミュニティのショーケースも増えてきてるし、目標に応じたプライベートや商業の参考リストも持ってるよ。