Agent 模板目录

LibreFang 提供 32 个 Agent 模板,来自 registryassistant 模板已预装,其他模板可从 Dashboard 安装。每个模板都是一个可直接生成的 agent.toml 清单文件,位于 agents/ 目录下。

所有模板均使用 provider = "default"model = "default",即继承你在 config.toml 中配置的默认供应商和模型。你可以在生成时覆盖这些设置。

快速开始

通过 CLI 生成任意模板:

librefang spawn orchestrator
librefang spawn coder
librefang spawn --template agents/writer/agent.toml

通过 REST API 生成:

通过内置模板名称生成:

curl -X POST http://localhost:4545/api/agents \
  -H "Content-Type: application/json" \
  -d '{"template": "coder"}'

生成时覆盖模型:

curl -X POST http://localhost:4545/api/agents \
  -H "Content-Type: application/json" \
  -d '{"template": "writer", "model": "claude-sonnet-4-20250514"}'

向运行中的 Agent 发送消息:

curl -X POST http://localhost:4545/api/agents/{id}/message \
  -H "Content-Type: application/json" \
  -d '{"content": "Write unit tests for the auth module"}'

模板分类

模板按使用场景组织。所有模板都使用默认模型供应商。下表列出每个 Agent 的描述、标签、temperature 和最大输出 token 数。点击 Agent 名称可在 registry 中查看完整的 agent.toml 清单。

软件工程

模板描述标签TempMax Tokens
coder资深软件工程师。读、写、分析代码。python、write code、implement feature0.38192
code-reviewer资深代码评审员。按生产标准审查 PR、识别问题、给出改进建议。best-practices、code review、review this pr0.34096
debugger调试专家。追踪 bug、分析栈、做根因分析。--0.24096
test-engineerQA 工程师。设计测试策略、编写测试、验证正确性。validation、test plan、write tests0.34096
architect系统架构师。设计软件架构、评估权衡、产出技术规范。planning、system design、software architecture0.38192
security-auditor安全专家。审查代码漏洞、检查配置、做威胁建模。vulnerability、security audit、vulnerability review0.24096
opsDevOps Agent。监控系统、跑诊断、管理部署。--0.22048
devops-leadDevOps 负责人。负责 CI/CD、基础设施、部署、监控、事件响应。--0.24096
planner项目规划师。制定项目计划、拆分 epic、估算工作量、识别风险与依赖。--0.38192

研究与分析

模板描述标签TempMax Tokens
researcher调研 Agent。抓取网页内容并综合信息。web、web research、investigate topic0.54096
academic-researcher学术调研 Agent。检索学术论文、总结发现、生成文献综述。science、academic research、paper search0.38192
analyst数据分析师。处理数据、生成洞察、撰写报告。--0.44096
data-scientist数据科学家。分析数据集、构建模型、做可视化和统计分析。--0.34096

写作与文档

模板描述标签TempMax Tokens
writer内容作者。创作文档、文章和技术写作。--0.74096
doc-writer技术作者。编写文档、README、API 文档、教程和架构指南。--0.48192
translator多语言翻译 Agent,用于文档翻译、本地化和跨文化沟通。translation、languages、localization、multilingual、communication0.38192

商业与沟通

模板描述标签TempMax Tokens
customer-support客户支持 Agent,负责工单处理、问题解决与客户沟通。support、customer-service、tickets、helpdesk、communication0.34096
sales-assistant销售助手 Agent,负责 CRM 更新、外联起草、销售漏斗管理与商机跟踪。deals、deal tracking、leads0.54096
recruiter招聘 Agent,负责简历筛选、候选人外联、JD 写作和招聘漏斗管理。hr、candidate screening、recruiting outreach0.44096
email-assistant邮件分流、起草、排期与收件箱管理 Agent。email、communication、triage、drafting、scheduling0.48192
meeting-assistant会议记录、行动项、议程准备与跟进管理 Agent。meetings、notes、action-items、agenda、follow-up0.38192
social-media社交媒体内容创作、排期与互动策略 Agent。social-media、content、marketing、engagement、scheduling0.74096

个人与生活

模板描述标签TempMax Tokens
personal-finance个人理财 Agent,负责预算追踪、支出分析、储蓄目标与财务规划。money、budget planning、expense analysis0.28192
legal-assistant法律助手 Agent,负责合同审查、法律研究、合规检查与文件起草。documents、legal review、contract review0.28192
health-tracker健康追踪 Agent,负责健康指标、用药提醒、健身目标与生活习惯。tracking、health tracking、fitness tracking0.34096
travel-planner行程规划 Agent,负责行程编排、预订调研、预算估算与旅行物流。vacation、trip itinerary、travel plan0.58192
home-automation智能家居控制 Agent,负责 IoT 设备管理、自动化规则与家居监控。home、smart home、home automation0.24096
recipe-assistant烹饪助手,帮助处理菜谱、餐计划、食材替换和分量调整。food、recipe helper、meal planner0.54096
tutor教学讲解 Agent,用于学习辅导和教育内容创作。education、teaching、tutoring、learning、explanation0.58192

系统

模板描述标签TempMax Tokens
assistant通用助手 Agent。日常任务、问答与对话的默认 Agent。general、assistant、default、multipurpose、conversation0.58192
hello-world友好的问候 Agent,可读取文件、搜索网页、回答日常问题。--0.64096
orchestrator元 Agent,分解复杂任务、委派给专家 Agent 并综合结果。--0.38192

理解 Temperature

temperature 参数控制 Agent 响应的确定性与创造性。模板会根据每个 Agent 的用途设置合适的值:

  • 0.2 -- 精确且确定。用于对准确性要求最高的 Agent:debuggeropssecurity-auditordevops-leadpersonal-financelegal-assistanthome-automation
  • 0.3 -- 分析型,略带灵活性。大部分工程与研究类 Agent:codercode-reviewertest-engineerarchitectplannerdata-scientistacademic-researchercustomer-supporttranslatorhealth-trackermeeting-assistantorchestrator
  • 0.4 -- 均衡的分析型。analystdoc-writeremail-assistantrecruiter
  • 0.5 -- 通用。assistantresearchertutorrecipe-assistantsales-assistanttravel-planner
  • 0.6 -- 对话式。hello-world
  • 0.7 -- 创意型。writersocial-media

自定义模板

agents/custom/ 目录保留给你自己的 Agent 模板。按照以下清单格式创建新的 agent.toml 文件。

清单格式

# 必填字段
name = "my-agent"
version = "0.1.0"
description = "What this agent does in one sentence."
author = "your-name"
module = "builtin:chat"

# 可选元数据
tags = ["tag1", "tag2"]

# 模型配置(必填)
[model]
provider = "default"                 # 继承 config.toml 中的默认供应商
model = "default"                    # 继承 config.toml 中的默认模型
max_tokens = 4096                    # 每次响应的最大输出 token 数
temperature = 0.3                    # 创造性(0.0 = 确定性,1.0 = 创造性)
system_prompt = """Your agent's personality, capabilities, and instructions go here.
Be specific about what the agent should and should not do."""

# To use a specific provider instead of default, set the provider and model explicitly:
# provider = "gemini"
# model = "gemini-2.5-flash"
# api_key_env = "GEMINI_API_KEY"

# Optional fallback model (used when primary is unavailable)
# [[fallback_models]]
# provider = "groq"
# model = "llama-3.3-70b-versatile"
# api_key_env = "GROQ_API_KEY"

# 可选调度(用于自主/后台 Agent)
[schedule]
periodic = { cron = "every 5m" }                                     # 定期执行
# continuous = { check_interval_secs = 120 }                         # 持续循环
# proactive = { conditions = ["event:agent_spawned"] }               # 事件触发

# 资源限制
[resources]
max_llm_tokens_per_hour = 150000    # 每小时 Token 预算

# 能力授权(最小权限原则)
[capabilities]
tools = ["file_read", "file_write", "file_list", "shell_exec",
         "memory_store", "memory_recall", "web_fetch",
         "agent_send", "agent_list", "agent_spawn", "agent_kill"]
network = ["*"]                     # 网络访问模式
memory_read = ["*"]                 # Agent 可读取的记忆命名空间
memory_write = ["self.*"]           # Agent 可写入的记忆命名空间
agent_spawn = true                  # 此 Agent 是否可以生成其他 Agent
agent_message = ["*"]               # 可以向哪些 Agent 发送消息
shell = ["python *", "cargo *"]     # 允许的 Shell 命令模式(白名单)

# 命名共享工作区(可选)。
# 多个 Agent 可以声明同一路径 — 它们共享该目录而不会产生 identity 文件冲突。
# 路径相对于 workspaces_dir。
# [workspaces]
# library = { path = "shared/library", mode = "rw" }
# archive = { path = "shared/archive", mode = "r"  }

可用工具

工具描述
file_read读取文件内容
file_write写入/创建文件
file_list列出目录内容
shell_exec执行 Shell 命令(受 shell 白名单限制)
memory_store将键值数据持久化到记忆中
memory_recall从记忆中检索数据
web_fetch从 URL 获取内容(具有 SSRF 防护)
agent_send向另一个 Agent 发送消息
agent_list列出所有运行中的 Agent
agent_spawn生成一个新 Agent
agent_kill终止一个运行中的 Agent

自定义 Agent 提示

  1. 从最小配置开始。仅授予 Agent 实际需要的工具和能力。之后随时可以添加更多。
  2. 编写清晰的系统提示。系统提示是模板中最重要的部分。明确说明 Agent 的角色、方法论、输出格式和限制。
  3. 设置合适的 temperature。精确/分析类任务使用 0.2,均衡任务使用 0.5,创意类任务使用 0.7 及以上。
  4. 使用 Shell 白名单。永远不要授予 shell = ["*"]。白名单指定具体的命令模式,如 shell = ["python *", "cargo test *"]
  5. 设置 Token 预算。使用 max_llm_tokens_per_hour 防止成本失控。从 100,000 开始,根据使用情况调整。
  6. 使用记忆实现连续性。授予 memory_storememory_recall 以便 Agent 可以跨会话持久化上下文。

Agent 工作区

每个 Agent 在 ~/.librefang/workspaces/agents/<name>/ 下都有一个私有 home 目录。内核在首次生成时写入 identity 文件:

workspaces/agents/librarian/
├── .identity/ identity 文件(由内核管理)
   ├── SOUL.md 人格与使命
   ├── IDENTITY.md 视觉身份(emoji、颜色、风格)
   ├── USER.md 学到的用户偏好
   ├── TOOLS.md 工具与环境说明
   ├── MEMORY.md 长期记忆
   ├── AGENTS.md 行为规范
   └── BOOTSTRAP.md 首次运行协议
├── sessions/ 对话历史
├── memory/ 每日记忆日志
├── data/ Agent 专属数据
├── output/ 生成的输出文件
├── skills/ Agent 专属技能
└── logs/ Agent 日志

你可以自由编辑 .identity/ 下的任何文件 — 内核使用 create_new,永远不会覆盖你的修改。

共享工作区

使用 [workspaces] 让多个 Agent 共享一个目录,且不会发生任何碰撞。每个 Agent 保留自己的私有 home;只有声明的共享路径才被共享。

# librarian/agent.toml
[workspaces]
library = { path = "shared/library", mode = "rw" }

# researcher/agent.toml
[workspaces]
library = { path = "shared/library", mode = "r" }   # 只读

内核在 spawn 时创建目录,并将解析后的绝对路径注入 TOOLS.md

## Shared Workspaces
- @library /home/you/.librefang/workspaces/shared/library (read-write)

访问模式rw(读写,默认)或 r(只读)。路径相对于 workspaces_dir,不能是绝对路径或包含 ..

外部挂载(mount

mount 替代 path,可以挂载 workspaces_dir 外已经存在的目录——比如 Obsidian vault 或某个项目树:

# agent.toml
[workspaces]
vault = { mount = "/Users/me/Documents/Obsidian", mode = "r" }

约束:

  • mount 必须是已存在的绝对路径。内核不会替 agent 创建外部目录。
  • 路径 canonicalize 后必须是 config.toml 顶层 allowed_mount_roots 中某条目的前缀。白名单为空(默认)时所有 mount 都会被拒绝——安全的默认行为。
  • 同一条声明里 pathmount 互斥。
# config.toml —— 启用上面示例所需
allowed_mount_roots = [
  "/Users/me/Documents",
]

只读模式(mode = "r")对挂载点的执行方式与共享 workspace 一致:写工具调用会被内核拒绝。

实时上下文(context.md

如果 agent workspace 里有 context.md 文件,每个 agent 回合都会重新读取,并以 ## Live Context section 注入 system prompt。这让外部工具(cron 任务、脚本、dashboard)能把新数据 — 行情、项目状态、值班表 — 推给 agent,无需重启。

路径解析:优先 {workspace}/.identity/context.md;为兼容未迁移的 workspace,回退到 {workspace}/context.md

行为:

  • 每回合读一次,prompt 组装前。
  • 读取上限 32 KB;超大文件截断并打 warn。
  • 之前能读到、现在突然失败(比如外部进程在替换文件)时,使用上次缓存的内容,避免对话中途丢失上下文。
  • 文件不存在时不添加 ## Live Context section。

关闭实时重读agent.toml 里设 cache_context = true 恢复 2026 年 4 月前的行为 — context.md 在 session 启动时读一次并缓存到 session 结束。

# agent.toml
cache_context = true   # 默认 false(每回合重读)

懒加载 tool(tool_search / tool_load

默认 agent 回答 "hi" 之前要把每个内置 tool 的 JSON schema 都发出去 —— ~75 个 tool × ~90 token ≈ 6,000 token 每回合白送。懒加载把它砍到大多数回合实际会用的 ~19 个 tool,长尾用两个 meta-tool 按需取:

  • tool_search(query) — 在 catalog(名 + 描述 + 提示)做关键字匹配。返回匹配的 tool 和它们的一行提示。
  • tool_load(name) — 取某个 tool 的完整 schema。该 tool 从下一回合开始可调(schema 被加入到之后的请求里)。

完整 catalog 仍以"每行一个 tool 的提示"列表渲染进 system prompt,模型知道有哪些 tool 而不必为完整 schema 付费。runtime 分类为 "always native" 的 tool(file_read、shell_exec、cron tools 等)每回合都带完整 schema —— 没必要让模型 tool_load 它几乎肯定会用的东西。

如果某个模型对 tool_search 链不擅长,按 agent 关掉:

# agent.toml —— 关闭懒加载;每回合发送所有 tool schema
lazy_tools = false

生成 Agent

CLI

# 按模板名称生成
librefang spawn coder

# 使用自定义名称生成
librefang spawn coder --name "backend-coder"

# 从 TOML 文件路径生成
librefang spawn --template agents/custom/my-agent.toml

# 列出运行中的 Agent
librefang agents

# 发送消息
librefang message <agent-id> "写一个解析 TOML 文件的函数"

# 终止 Agent
librefang kill <agent-id>

REST API

# 从模板生成
POST /api/agents
{"template": "coder"}

# 生成并覆盖配置
POST /api/agents
{"template": "coder", "name": "backend-coder", "model": "deepseek-chat"}

# 发送消息
POST /api/agents/{id}/message
{"content": "实现 auth 模块"}

# WebSocket(流式)
WS /api/agents/{id}/ws

# 列出 Agent
GET /api/agents

# 删除 Agent
DELETE /api/agents/{id}

OpenAI 兼容 API

# 通过 OpenAI 兼容端点使用任意 Agent
POST /v1/chat/completions
{
  "model": "librefang:coder",
  "messages": [{"role": "user", "content": "用 Rust 写一个 HTTP 服务器"}],
  "stream": true
}

# 列出可用模型
GET /v1/models

Orchestrator 委派

orchestrator Agent 可以通过程序方式生成并委派任务给其他 Agent:

用户:"构建一个带测试和文档的 REST API"

Orchestrator:
1. agent_send(coder, "实现 REST API 端点")
2. agent_send(test-engineer, "为这些端点编写集成测试")
3. agent_send(doc-writer, "为 API 端点撰写文档")
4. 将所有结果综合成最终报告

环境变量

所有 Agent 模板都使用 provider = "default"model = "default"。Agent 实际使用的模型取决于你在 ~/.librefang/config.toml 中配置的供应商和模型。

根据要使用的供应商,设置以下一个或多个 API 密钥:

变量供应商
GROQ_API_KEYGroq
GEMINI_API_KEYGoogle Gemini
OPENAI_API_KEYOpenAI
ANTHROPIC_API_KEYAnthropic
DEEPSEEK_API_KEYDeepSeek

~/.librefang/config.toml 中配置默认供应商和模型:

[model]
provider = "groq"                    # 或 "gemini"、"openai"、"anthropic"、"deepseek"
model = "llama-3.3-70b-versatile"    # 对应供应商的模型标识符
api_key_env = "GROQ_API_KEY"         # 保存 API 密钥的环境变量

任何未显式指定 model 的 Agent,生成时都会使用这份默认配置。


Agent Manifest 字段参考

agent.toml 接受不少在标准 quick-start 模板里看不到的顶层字段。把完整集列出来,知道字段名时就能找到。除非标"必填",否则全部可选。

工具 / skill 范围

tool_allowlist = ["web_search", "web_fetch", "file_read", "file_write"]
tool_blocklist = ["shell_exec"]
tools_disabled = false             # 显式总开关 —— 比所有别的设置优先
allowed_plugins = ["truncate", "redact"]   # 插件名;空 = 所有可用插件
mcp_servers    = ["github", "linear"]     # MCP server 名;空 = 所有已连接 server
skills_disabled = false            # skill 的显式总开关
字段类型默认值说明
tool_allowlistVec<string>[](= 所有工具)此 agent 能调的工具白名单。空列表 = 不限制。
tool_blocklistVec<string>[]此 agent 不能调的工具。在 tool_allowlist 之后应用 —— 同时在两个列表里的会被禁。
tools_disabledboolfalse总开关 —— true 时无视 allowlist / profile,agent 没有任何工具。
allowed_pluginsVec<string>[](= 所有插件)此 agent 的插件白名单。
mcp_serversVec<string>[](= 所有 server)MCP server 白名单。某 corp server 有危险工具,只想给少数 agent 用时实用。
skills_disabledboolfalseskill 总开关。

身份 & spawn 行为

generate_identity_files = true     # 首次 spawn 时创建 SOUL.md / IDENTITY.md / TOOLS.md
inherit_parent_context  = true     # 子 agent 默认继承父 agent context
auto_evolve             = true     # 每轮后台跑 skill-evolution review
is_hand                 = false    # 由 Hand spawn 时自动置位
pinned_model            = "anthropic/claude-sonnet-4"   # Stable kernel 模式下锁定模型
字段类型默认值说明
generate_identity_filesbooltrue首次 spawn 时在 .identity/ 创建 SOUL.md / IDENTITY.md / TOOLS.md / USER.md。临时 agent 不需要进化身份时设 false
inherit_parent_contextbooltrue此 agent 作为 workflow 子 agent 跑时,继承父 agent 的会话上下文。false 给一个干净的上下文窗。
auto_evolvebooltrue每轮 agent 之后跑后台 skill-evolution review(找重复模式提议新 skill)。禁掉就让 skill 库冻结。
is_handboolfalseHand spawn 此 agent 时自动填。不要手动设。
pinned_modelOption<string>Nonekernel 在 Stable 模式时,无视全局默认用此模型。Normal 模式无效。

Channel & exec policy 覆盖(per-agent)

[channel_overrides]
dm_policy = "always"
group_policy = "trigger_only"
group_trigger_patterns = ["(?i)\\bmy-bot\\b"]

[exec_policy]
shell_allowlist = ["git", "cargo"]
deny = ["rm -rf"]
字段类型默认值说明
[channel_overrides]Option<ChannelOverrides>None(继承 channel 级)per-agent 的 dm_policy / group_policy / model / system_prompt 等覆盖。解析顺序:agent 级 → channel 级 → 内置默认。完整 schema 见 Channels
[exec_policy]Option<ExecPolicy>None(继承 kernel 默认)per-agent shell / exec policy 覆盖。可以是字符串简写("strict" / "trusted")或带 shell_allowlist / deny / cwd_allowlist 的完整表。

响应整形与增强

show_progress = true
response_format = "json_object"   # 或 { type = "json_schema", schema = "..." }
web_search_augmentation = "auto"  # "off" | "auto" | "always"

[[context_injection]]
name = "rules"
content = "保持简洁。永远不用 emoji。"
position = "system"
字段类型默认值说明
show_progressbooltrue在 channel 回复里显示工具执行进度(如"🔧 running shell_exec…")。生产/面向客户的 agent 关掉。
response_formatOption<ResponseFormat>None约束 LLM 输出。选项:"text""json_object"、或 { type = "json_schema", schema = … }。Provider 必须支持结构化输出(OpenAI / Gemini / Mistral)。
web_search_augmentationenumprovider 默认模型本身没工具支持时,自动把 web 搜索结果注入 prompt。"off" / "auto" / "always"
[[context_injection]]Vec<ContextInjection>[]每次会话开始合并进 prompt 的静态片段。每条有 namecontentposition(system / before_user / after_reset)、可选 condition 表达式。