Delegation is the super power of agents in Frona. Any agent can hand off work to another agent, splitting complex tasks across specialists that run in parallel. When you ask the Assistant to "research competitor pricing and then build a comparison dashboard," it delegates the research to the Researcher and the coding to the Developer, all automatically.
How delegation works
- You send a request to an agent
- The agent decides it needs help from a specialist
- It creates a task assigned to the target agent, with a title and detailed instructions
- The target agent picks up the task and works on it in a separate session
- The result comes back, either directly to your chat or to the requesting agent
Agents choose who to delegate to based on each agent's description. This is why writing clear descriptions matters when creating custom agents.
Two styles of delegation
Agents delegate using a single create_task tool with two modes:
Fire-and-forget
The calling agent hands off the task and moves on. When the target agent finishes, the result appears directly in your chat.
Best for independent tasks where the calling agent doesn't need the result to continue.
Example: "Research the latest trends in AI and post the findings here." The Assistant delegates to the Researcher and moves on. The research summary appears in your chat when it's ready.
Process result
The calling agent waits for the result. Once the target agent finishes, the calling agent continues with that information.
Best for multi-step workflows where each step depends on the previous one.
Example: "Research competitor pricing and then write a report." The Assistant delegates research to the Researcher, waits for the findings, then writes the report using those findings.
| Fire-and-forget | Process result | |
|---|---|---|
| Calling agent waits? | No | Yes |
| Result goes to | Your chat directly | The calling agent |
| Use when | Handing off independent work | Building on previous results |
Watching tasks in progress
When agents are working on tasks, you can track progress:
- In chat. You see when a task is delegated and when results arrive
- Task list. View all running and completed tasks across agents
Task lifecycle
Every task goes through these states:
| Status | What it means |
|---|---|
| Pending | Task created, waiting for an agent to pick it up |
| In Progress | An agent is actively working on it |
| Completed | Finished successfully. Results are available |
| Failed | Something went wrong. Error details are available |
| Cancelled | Task was stopped before completion |
Example: a multi-agent workflow
You ask the Assistant: "Research the top 5 CRM tools, then create a comparison spreadsheet."
Here's what happens:
- The Assistant receives your request
- It delegates research to the Researcher: "Find the top 5 CRM tools, compare features, pricing, and reviews"
- The Researcher searches the web, reads product pages, and produces a structured comparison
- The findings are returned to the Assistant
- The Assistant delegates to the Developer: "Create a CSV comparison spreadsheet from this data"
- The Developer creates the file and returns it
- The Assistant delivers the final spreadsheet to you with a summary
All of this happens from a single message. You see each step in your chat as it progresses.
Scheduling tasks for later
You can also ask agents to do things on a schedule. See Scheduling Recurring Work for setting up daily briefings, weekly reports, and other automated tasks.
Tips
- Let agents decide. You don't usually need to tell agents who to delegate to. Just describe what you want, and the Assistant routes work to the right specialist.
- Write clear agent descriptions. Agents use descriptions to pick delegation targets. Vague descriptions lead to poor delegation choices.
- Check task status. If a delegated task is taking long, the result will still arrive in your chat when it finishes.
- Break down big requests. "Research X, then do Y, then produce Z" gives agents a clear multi-step plan to delegate.
Concurrency
The server can run up to 10 tasks in parallel by default (FRONA_SERVER_MAX_CONCURRENT_TASKS). Individual agents can also have their own limits via max_concurrent_tasks. This means multiple delegated tasks can run simultaneously.
Next steps
- Scheduling Recurring Work. Automate recurring tasks
- Creating & Configuring Agents. Set up specialist agents for delegation
- Agent Types. Learn what each built-in agent is best at