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
워크플로우에 대한 엄격한 제어, API를 호출하지 않고도 에이전트 로직을 시각화하고 테스트할 수 있는 기능, 그리고 "human-in-the-loop" 상호작용 지원이 필요 있는 AI 에이전트 개발자입니다.
Highlights
- Explicit Control Flow: 상태 머신을 사용하여 에이전트가 할 수 있는 일과 할 수 없는 일을 정확히 정의합니다.
- Bounded Decisions: 모델은 현재 상태에서 유효한 events를 제안할 수만 있습니다.
- State Persistence: XState snapshots를 저장하여 서로 다른 프로세스에서 에이전트를 중지하고 재다시 시작할 수 있는 능력을 제공합니다.
- Provider Agnostic: Vercel AI SDK용 어댑터를 제공하지만, 핵심 로직은 특정 모델 제공업체에에 의존하지 않습니다.
- Verifiable Logic: API 키 없이도 상태 머신을 linting, 시뮬레이션, 탐색할 수 있습니다.