Sollimann/bonsai

Rust implementation of behavior trees for deterministic AI (now with Python bindings)

何を解決するか

Bonsai は、AI およびロボット工学における複雑な行動をモジュール化・反応型に整理する方法を提供します。硬直的な状態機械の代わりに、ツリー構造を用いることで、プロセスの実行や環境への反応に関する柔軟で階層的なルールを構築できます。

動作方法

Bonsai は行動木(BTs)を実装しており、ツリー内の各ノードは Success、Failure、Running のいずれかのステータスを返すプロセスを表します。親ノードはこれらの信号を使って次のアクションを決定します。このライブラリには以下の制御フロー・ノードが用意されています:

  • Sequence:子ノードを順番に実行し、1つが失敗すると停止します。
  • Select:子ノードを試行し、1つが成功すると停止します。
  • If:条件に基づいて特定の子ノードを実行します。
  • Parallel ノード:WhenAll、WhenAny、Race は複数のタスクを並列実行できます。
  • ループ:While と WhileAll は条件に基づいて繰り返し動作を可能にします。

応答性を維持するために、長時間実行するタスクはバックグラウンドスレッドにディスパッチされ、チャネルで監視され、ツリーの走査をブロッキングしないようにします。

対象ユーザー

ロボット工学、ゲーム開発、AIエージェントの開発において、複雑で反応型の行動を構造的かつ柔軟に管理したい開発者向けです。

特徴

  • 多言語対応:パフォーマンスを重視してRustで書かれており、PyPI経由でPythonバインディングも利用可能。
  • 反応型設計:非同期処理や長時間実行タスクをサポートし、システムの応答性を確保します。
  • 包括的な制御フロー:Invert、Timeout、AlwaysSucceed などの論理ゲートや並列実行パターンを多数提供。

関連

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