These 11 templates are the general-purpose ones that don't depend on any particular model at the primary level (`[model] provider = "default"`). They also ship a secondary `[[fallback_models]]` block pointing at `gemini-2.0-flash` with `api_key_env = "GEMINI_API_KEY"`. That default hurts everyone who doesn't happen to have `$GEMINI_API_KEY` set — every agent boot logs `WARN Fallback driver 'gemini' failed to init: Missing API key`, once per turn per agent. The templates that actually intend to use Gemini as their primary model (analyst, coder, researcher, code-reviewer, debugger, legal-assistant, data-scientist, academic-researcher, test-engineer) are left untouched — those declare Gemini in `[model]`, which is an intentional design choice, not a hidden fallback. Users who want a Gemini fallback chain for generic agents can add `[[fallback_models]]` themselves in `~/.librefang/workspaces/agents/...` once they've set `$GEMINI_API_KEY`. Removed from: assistant, customer-support, devops-lead, doc-writer, email-assistant, meeting-assistant, planner, recruiter, sales-assistant, social-media, writer
Agents
Autonomous agent definitions for LibreFang. Each agent is a directory containing an agent.toml manifest.
Structure
agents/
├── hello-world/agent.toml
├── researcher/agent.toml
├── coder/agent.toml
└── ...
agent.toml Format
name = "agent-name" # Must match directory name
version = "0.1.0"
description = "What this agent does"
author = "author-name"
module = "builtin:chat" # Runtime module
[model]
provider = "default"
model = "default"
max_tokens = 4096
temperature = 0.7
system_prompt = """Behavioral instructions for the agent."""
[metadata.routing]
aliases = ["exact match phrases"]
weak_aliases = ["keyword hints"]
[resources]
max_llm_tokens_per_hour = 100000
[capabilities]
tools = ["web_search", "file_read"]
network = ["*"]
memory_read = ["*"]
memory_write = ["self.*"]
agent_spawn = false
Current Agents (33)
| Agent | Description |
|---|---|
| assistant | Default conversational assistant |
| researcher | Deep research with web search |
| coder | Code generation and editing |
| hello-world | Friendly greeting agent for new users |
| ... | See each directory for details |
Adding a New Agent
- Create
agents/<name>/agent.toml - Ensure
namematches the directory name - Run
python scripts/validate.py - Submit a PR
See CONTRIBUTING.md for the full guide.