Laravel 13 template for Odin AI agents. Clone this to build a new agent in minutes.
- Laravel 13 — full web app (not Laravel Zero)
- Laravel AI — agent framework with tool calling
- Prism — multi-provider AI (OpenRouter default)
- Horizon — queue visibility and workers
- Verbs — event sourcing for agent actions
- FrankenPHP — HTTP server (Octane mode)
External World
↓ (direct Slack webhooks)
SlackController (sync, <3s response)
↓ (dispatch to queue)
Horizon Workers
↓
YourAgent (Laravel AI + tools)
↓
Slack / GitHub / APIs
Bifrost (optional, async events)
↓ Redis pub/sub
ListenCommand → dispatch jobs
gh repo create the-shit/your-agent --template the-shit/agent-skeleton
cd your-agent
cp .env.example .env
# Fill in your keys
php artisan key:generate
php artisan migrateapp/Agent/YourAgent.php— extendBaseAgent, define persona + toolsapp/Commands/ListenCommand.php— overridechannels()androute()app/Http/Controllers/SlackController.php— wire up slash commandsbootstrap/app.php— add scheduled tasksdeploy/agent.container— update for your agent name
cp deploy/agent.container ~/.config/containers/systemd/your-agent.container
# Edit the container file with correct image and env paths
systemctl --user daemon-reload
systemctl --user enable --now your-agent- Conversation memory:
ConversationMemory::push/history— Redis-backed, survives restarts - Event sourcing: Verbs events for every significant agent action
- Own database: each agent has isolated storage (SQLite default, MySQL optional)
- Direct Slack: slash commands hit the agent directly — no Bifrost dependency for sync responses