Going beyond agents
| Pattern | Use it when | Reference |
|---|---|---|
| Agent | A single LLM with tools and instructions can handle the request. | Agents overview |
| Team | The right specialist isn’t known up front. A leader routes or coordinates. | Teams overview |
| Workflow | The process needs to run the same way every time. Determinism matters. | Workflows overview |
| Mode | Behavior |
|---|---|
| Coordinate | A leader plans the work, calls the right specialists, synthesizes. |
| Route | A router picks one specialist to handle the request. |
| Broadcast | Every specialist runs in parallel; you aggregate. |
Scheduled tasks
The scheduler is on by default inapp/main.py. Schedule any agent or workflow on a cron:
| Use case | Example |
|---|---|
| Maintenance | Purge sessions older than 90 days. Vacuum Postgres tables. |
| Proactive runs | Every weekday morning, summarize overnight news and post to Slack. |
| Catch regressions | Run python -m evals weekly against production agents. |
Connect to interfaces
Your agents should be available where your users are. Slack threads. Discord channels. Telegram for the field team. Or a custom UI inside your product. Expose the agent via an interface inapp/main.py:
| Interface | Reference |
|---|---|
| Slack | Slack interface |
| Telegram | Telegram interface |
| WhatsApp interface | |
| Custom UI / AG-UI | AG-UI interface |
| All interfaces | Interfaces overview |
Keep the repo coherent
As you ship more agents, configuration drifts, env vars rot, and new agents miss imports. The template ships a fifth Claude Code prompt for the recurring sweep:example.env entries, agents on disk not registered in app/main.py) and surfaces the rest as a punch list. Best run before public releases and periodically during active development.
You’re done
You now have an agent platform that:- Runs locally and on Railway, with JWT auth built-in.
- Stores sessions, memory, knowledge, and traces in a Postgres database.
- Manages and improves itself through five Claude Code prompts.