statelyai/agent

Create state-machine-powered LLM agents using XState

What it solves

AI エージェントの予測不可能性を、エージェントの制御フローとモデルの意思決定を分離するロジック層を提供することで解決します。モデルに完全な制御を任せるのではなく、このツールは開発者がエージェントが従うべき明確なルール、境界、および有効な遷移を定義できるようにします。

How it works

モデルのリクエストと意思決定を XState に統合し、エージェントをステートマシンとして扱います。ステートマシンは、許可されたアクション(events)とルール(guards)を定義します。エージェントが選択を行う必要がある場合、agent.decide を使用して、現在許可されている events のうちどれか一つをモデルに選ばせます。次に、ステートマシンは、その選択が許可されているか検証します。もし guard がモデルの提案を拒否した場合、意思決定は再試行されます。このアーキテクチャにより、エージェントの停止、状態(snapshot)の保存、および後で再開することが可能になります。

Who it’s for

ワークフローに対して厳格な制御が必要な AI エージェントの開発者、API を呼び出さずにエージェントのロジックを可視化・テストしたい開発者、および "human-in-the-loop" インタラクションをサポートしたい開発者向けです。

Highlights

  • Explicit Control Flow: ステートマシンを使用して、エージェントができることとできないことを正確に定義します。
  • Bounded Decisions: モデルは、現在の状態に対して有効な events のみ提案できます。
  • State Persistence: XState snapshots を保存することで、エージェントを異なるプロセス間で停止および再開することが可能です。
  • Provider Agnostic: Vercel AI SDK 用のアダプターを提供していますが、コア・ロジックは特定のモデルプロバイダーに依存しません。
  • Verifiable Logic: API キーを必要とせずに、ステートマシンを linting、シミュレーション、探索することが可能です。