Next Steps
Add teams, workflows, scheduled tasks, and interfaces to your agent platform.
You now have a deployed agent platform with evals, JWT auth, and a set of coding-agent skills that cover the full lifecycle: create → improve → evaluate → maintain.
The sections below cover the next level: teams and workflows for multi-step logic, scheduled tasks for proactive runs, and interfaces that put your agents where your users are.
Going beyond agents
| Pattern | Use it when | Reference |
|---|---|---|
| Agent | A single LLM with tools and instructions can handle the request. | Agents overview |
| Team | Multiple specialists should route, coordinate, or collaborate. | Teams overview |
| Workflow | The process needs explicit steps, branches, loops, or parallel execution. | Workflows overview |
Teams come in four modes:
| 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; the leader synthesizes. |
| Tasks | A leader breaks the goal into a task list, delegates tasks to members, and loops until every task is complete. |
Scheduled tasks
The scheduler is on by default in app/main.py, and the template prepares two workflows for scheduled runs:
| Workflow | What it does when enabled | Default |
|---|---|---|
| Deployment check | Checks daily that AgentOS is wired correctly. | On. Set ENABLE_DEPLOY_CHECK=False to disable. |
| Run evals | Runs the smoke-tagged eval cases daily. | Off. Enable it from the AgentOS UI. |
Schedule your own agents and workflows the same way:
| 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. |
See Scheduler for the cron API.
Connect to interfaces
Connect agents to Slack, Telegram, WhatsApp, or a custom UI inside your product.
The template already wires its Agno team to Slack in app/main.py when both Slack credentials are set. Its interface block uses the imported agno_team; keep the other AgentOS arguments when editing it:
interfaces: list = []
if SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET:
from agno.os.interfaces.slack import Slack
interfaces.append(
Slack(
team=agno_team,
streaming=True,
token=SLACK_BOT_TOKEN,
signing_secret=SLACK_SIGNING_SECRET,
resolve_user_identity=True,
)
)
agent_os = AgentOS(
...,
interfaces=interfaces,
)| 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. Run the repository review skill for a recurring sweep:
/review-and-improveIt auto-fixes mechanical drift (stale paths, missing example.env entries, agents on disk not registered in app/main.py) and surfaces the rest as a punch list. Run it before public releases and periodically during active development.
You're done
You now have a platform that runs locally and on Railway with JWT auth, persists sessions, memory, and traces in Postgres, supports Postgres-backed knowledge, and includes eight coding-agent skills for setup, development, evals, review, and deployment.