An agent is the core building block of Frona. It combines an LLM model, a prompt, skills, tools, and memory into a single entity that can carry out work on your behalf. Each agent has its own workspace for file storage and runs inside a sandbox that controls what it can access.
What makes up an agent
| Component | What it does |
|---|---|
| Model | The LLM that powers the agent's reasoning (e.g., Claude, GPT-4) |
| Prompt | Instructions that define the agent's personality, role, and behavior |
| Tools | Capabilities the agent can use: web search, code execution, file operations, voice calls, and more |
| Skills | Instruction packages that teach the agent how to handle specific domains |
| Memory | Facts the agent remembers about you and about itself, persisted across conversations |
| Workspace | A directory where the agent reads and writes files, persistent across conversations |
| Sandbox | Security boundary that restricts network access, filesystem access, and execution time |
Why use multiple agents
Agents are cheap to create. You can have as many as you need. Instead of one overloaded agent trying to do everything, you create focused agents with only the tools, skills, and context they need. This has three major benefits:
- Token efficiency. A focused agent has a smaller prompt and fewer tools, so more of the LLM's context window is available for your actual task. Each agent can also use a different model. Use a cheaper model for simple tasks and a more capable one only where it matters.
- Parallel work. Multiple agents can work on different parts of a problem at the same time through delegation.
- Security. Every agent runs in its own sandbox, so you can lock down each agent to only what it needs. For example, an agent that reads your emails can be sandboxed to only access Gmail servers. A coding agent can be restricted to specific package registries. If one agent is compromised, the others are unaffected.
For example, instead of asking one agent to "research competitors, then write code, then create a report," the Assistant automatically delegates research to the Researcher and coding to the Developer, all running in parallel. You don't need to manage this yourself. If your agents have clear descriptions, the Assistant knows who to delegate to.
What agents can do
- Use tools. Search the web, browse websites, run shell commands, execute Python and Node.js code, read and create files, make phone calls.
- Delegate tasks. Hand off work to other agents and combine the results. See Delegation & Tasks.
- Build and deploy apps. Write code, propose a deployment manifest, and run it on the platform with your approval. See Building & Deploying Apps.
- Run on a schedule. Execute recurring tasks or stay awake with heartbeats. See below.
- Remember things. Store facts about you and their own context that persist across conversations. See How Agents Remember Things.
- Request credentials. Ask for access to API keys and secrets from your vault when they need them. See Managing Secrets & API Keys.
Agent tool loop
When an agent receives a message, it doesn't just generate a text response. It enters a loop where it can call tools, read the results, and decide what to do next. This loop repeats until the agent has enough information to respond, allowing it to complete multi-step tasks in a single turn.
- The platform loads the agent's prompt, identity, memory, and any shared context from the current space
- Your message is sent to the agent's LLM along with the conversation history
- The LLM produces a response. If the response includes a tool call, the platform executes it inside the agent's sandbox
- The tool result is fed back to the LLM, which decides whether to call another tool or produce a final text response
- Steps 3 and 4 repeat until the agent responds with text or hits the maximum tool turn limit (default: 200)
You see every tool call and its result in real time in the chat. The loop is what allows an agent to search the web, read multiple pages, process the data, and write a summary, all from a single message.
The tool loop state is persisted to disk. If the service restarts mid-task, the agent resumes where it left off.
Scheduled tasks and heartbeats
Agents don't just respond to messages. They can also work autonomously or on a schedule.
Scheduled tasks run a specific job at specific times. "Every weekday at 9 AM, summarize overnight news." The instructions are fixed when you create the schedule.
Heartbeats are different. The agent writes its own checklist to a HEARTBEAT.md file, sets its own wake-up interval, and periodically wakes up to review and act on the checklist. All heartbeat runs share a persistent chat, so the agent has continuity across runs and can evolve its behavior over time.
See Scheduling Recurring Work for details on both.
Built-in agents
Frona comes with four built-in agents, each configured with the right model, prompt, and tools for its specialty:
| Agent | Best for |
|---|---|
| Assistant | General conversation, everyday tasks, coordinating work |
| Researcher | Web research, fact-checking, gathering information |
| Developer | Writing code, debugging, running commands |
| Receptionist | Making phone calls |
You can also create your own custom agents. See Agent Types for details on each built-in agent, and Creating & Configuring Agents for custom agents.
Tips
- Create agents freely. Don't hesitate to spin up new agents for specific tasks. They're lightweight and improve efficiency.
- Be specific. "Research competitor pricing for project management tools and format it as a comparison table" works better than "look into competitors."
- Use the right agent. The Assistant is great for general tasks, but the Researcher and Developer are better at their specialties.
- Let agents delegate. If you ask the Assistant a complex question, it may hand off parts of the work to specialist agents automatically.
- Build on memory. Agents remember things about you across conversations, so you don't need to re-explain your preferences every time.
Next steps
- Agent Types to learn about each built-in agent
- Creating & Configuring Agents to build your own custom agents
- Chatting with Agents to get the most out of the chat interface