Agents Guide
Agents are the core building blocks of CrewForm. Each agent is an AI worker configured with a specific model, system prompt, and capabilities.Creating an Agent
Navigate to Agents → New Agent or use the+ button.
Required Fields
| Field | Description |
|---|---|
| Name | Human-readable identifier (e.g., “Code Reviewer”) |
| Model | LLM model to use (see Supported Models) |
| System Prompt | Instructions that define the agent’s behavior |
Optional Fields
| Field | Description |
|---|---|
| Description | What the agent does (shown in marketplace) |
| Temperature | Creativity level (0.0 = deterministic, 1.0 = creative) |
| Max Tokens | Maximum response length |
| Tags | Categorization for search and marketplace |
Supported Models
CrewForm supports three LLM providers. You must add your API key in Settings → API Keys before using a provider.Anthropic (Claude)
| Model | Best For |
|---|---|
claude-sonnet-4-20250514 | General-purpose, balanced cost/quality |
claude-3-5-haiku-20241022 | Fast, cost-effective tasks |
claude-3-opus-20240229 | Complex reasoning, analysis |
Google (Gemini)
| Model | Best For |
|---|---|
gemini-2.0-flash | Fast, multimodal tasks |
gemini-1.5-pro | Long-context, complex tasks |
OpenAI (GPT)
| Model | Best For |
|---|---|
gpt-4o | General-purpose, fast |
gpt-4-turbo | Complex reasoning |
gpt-3.5-turbo | Simple, high-volume tasks |
Writing System Prompts
The system prompt defines your agent’s personality, expertise, and output format. Tips:Be Specific
Define Output Format
Set Boundaries
Agent Lifecycle
- Idle: Ready to accept tasks
- Running: Actively processing a task
- Failed: Task errored — check the task detail for the error message
Output Routes
By default, when an agent completes a task, the result is broadcast to all active output routes (HTTP webhooks, Slack, Discord, Telegram, Teams, Asana, Trello) in your workspace. See the Output Routes guide for how to configure destinations. You can restrict an agent to deliver results to specific channels only:- Open the agent in Agents → [Agent Name] → Settings
- Scroll to Output Routes
- Select one or more channels from the dropdown — or leave blank to send to all
Leave blank (default) = broadcast to all active routes. Select specific channels to narrow delivery.This is useful when you have multiple output routes (e.g., a
#dev-alerts Slack channel and a Telegram group) and only want certain agents to send to specific ones.
How it works
Under the hood, the agent stores a list of route UUIDs inoutput_route_ids:
| Value | Behaviour |
|---|---|
null (default) | Dispatch to all active output routes |
[] (empty array) | Dispatch to no routes |
[uuid, ...] | Dispatch to only those specific routes |
Voice Profiles
Voice profiles let you control how an agent communicates — its tone, style, and formatting preferences. When a voice profile is configured, it’s injected into the system prompt as a## Voice & Tone section before each execution.
Configuring a Voice Profile
- Open an agent → click the Voice Profile tab
- Select a Tone Preset — Formal, Casual, Technical, Creative, Empathetic, or Custom
- Add Custom Voice Instructions — e.g. “Always refer to customers as ‘members’. Use active voice. Avoid jargon.”
- Add Output Format Hints (optional) — e.g. “Use numbered lists for steps. Keep responses under 200 words.”
- Click Save Voice Profile
Tone Presets
| Preset | Style |
|---|---|
| Formal | Professional, structured, precise |
| Casual | Friendly, conversational, approachable |
| Technical | Detailed, accurate, documentation-style |
| Creative | Expressive, engaging, vivid language |
| Empathetic | Warm, supportive, understanding |
| Custom | Define your own tone |
Brand Voice Templates
You can save a voice profile as a reusable Brand Voice Template that other agents can share:- Configure the tone, instructions, and format hints
- Click Save as Template → give it a name (e.g. “Acme Brand Voice”)
- On any other agent, select the template from the Brand Voice Template dropdown
How It Works at Runtime
When the agent runs a task, the system prompt is constructed as:Output Templates
Output templates let you format agent output consistently using{{variable}} placeholders. Instead of raw LLM text, results are wrapped in a structured template.
Configuring an Output Template
- Open an agent → click the Output Template tab
- Select a Template Type — Markdown, JSON, HTML, CSV, or Custom
- Write the Template Body using
{{variable}}syntax:
- Click Preview to see it rendered with sample data
- Click Save Template
Available Variables
| Variable | Description |
|---|---|
{{task_title}} | Title of the task |
{{task_result}} | Full output from the agent |
{{agent_name}} | Name of the agent that ran the task |
{{timestamp}} | ISO 8601 timestamp of completion |
{{tokens_used}} | Total tokens used during execution |
{{model}} | Model ID used for execution |
How It Works at Runtime
After the LLM generates its response, the output template is applied:{{variable_name}} in the output, so templates degrade gracefully.
Using Agents in Teams
Agents become more powerful when combined into teams. See the Pipeline Teams Guide for multi-agent workflows.API Key Security
All API keys are encrypted with AES-256-GCM before storage. Keys are:- Encrypted client-side before being sent to the database
- Never stored in plaintext
- Only decrypted by the task runner at execution time
- Scoped to your workspace via Row-Level Security

