agentjido/jido

🤖 Autonomous agent framework for Elixir. Built for distributed, autonomous behavior and dynamic workflows.

何を解決するか

Jido は、Elixir で自律型エージェントシステムを構築するための構造化されたフレームワークを提供し、特に複雑なワークフローとマルチエージェントの調整に特化しています。Raw OTP/GenServer プリミティブを使用する際、標準化されたメッセージング、状態管理、フェイルセーフ性といった共通のエージェントパターンを再発明する必要がなくなる問題を解決します。

動作方法

Jido は、エージェントをデータ構造として定義し、コアのコマンド関数(cmd/2)を持つ、関数型で不変のエージェントアーキテクチャを実装しています。システムは4つの主要コンポーネントで構成されます:

  • エージェント:状態を保持し、コマンドを処理します。
  • アクション:実際の作業を実行し、エージェントの状態を変換します。
  • シグナル:標準化された(CloudEvents準拠の)メッセージで、イベントをシステムにルーティングします。
  • ディレクティブ:外部効果(新しいエージェントの起動やタスクのスケジューリングなど)の型指定された記述であり、ランタイムが実行します。これにより、エージェントの意思決定ロジックは純粋でテスト可能になります。

対象ユーザー

Elixir開発者で、コンテキストを検査し、複数のエージェントを調整し、長期的に高い信頼性を維持する必要があるソフトウェアを開発している人向けです。jido_ai などの補助パッケージを介してAI/LLMと統合可能ですが、AIはオプションであり、決定論的システムとAI駆動システムの両方に適しています。

特徴

  • OTPネイティブ:GenServer上で構築され、組み込みの監視ツリーとフェイルセーフ性を備えています。
  • 不変状態:Redux/Elmを参考にした関数型状態モデルで、予測可能な遷移を実現します。
  • マルチエージェントオーケストレーション:親子階層、永続的エージェントグループ(Pods)、マルチテナントデプロイメントをサポートします。
  • 拡張可能なアーキテクチャ:再利用可能な機能用のプラグインシステムと、有限状態機械(FSM)を含む複数の実行戦略を提供します。
  • ディレクティブベースの効果:ランタイム所有のディレクティブシステムにより、意思決定ロジックと副作用の実行を分離します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト