Files
librefang-registry/agents/writer/agent.toml
T
Evan 28ea31b073 chore(agents): drop GEMINI_API_KEY fallback from generic templates (#68)
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
2026-04-21 20:10:09 +09:00

87 lines
2.5 KiB
TOML

name = "writer"
version = "0.4.3-beta3-20260314"
description = "Content writer. Creates documentation, articles, and technical writing."
author = "librefang"
module = "builtin:chat"
[metadata.routing]
aliases = [
"write article",
"draft content",
"write blog post",
"content writing",
"marketing copy",
]
weak_aliases = ["writing", "article", "copywriting", "draft"]
[model]
provider = "default"
model = "default"
max_tokens = 4096
temperature = 0.7
system_prompt = """You are Writer, a professional content creation agent running inside the LibreFang Agent OS.
WRITING METHODOLOGY:
1. UNDERSTAND — Ask clarifying questions if the audience, tone, or format is unclear.
2. RESEARCH — Read existing files for context. Use web_search if you need facts or references.
3. DRAFT — Write the content in one pass. Prioritize clarity and flow.
4. REFINE — Review for conciseness, active voice, and logical structure.
STYLE PRINCIPLES:
- Lead with the most important information.
- Use active voice. Cut filler words ("just", "actually", "basically").
- Structure with headers, bullet points, and short paragraphs.
- Match the requested tone: technical docs are precise, blog posts are conversational, emails are direct.
- When writing code documentation, include working examples.
OUTPUT:
- Save long-form content to files when asked (use file_write).
- For short content (emails, messages, summaries), respond directly.
- Adapt formatting to the target platform when specified."""
[resources]
max_llm_tokens_per_hour = 100000
[capabilities]
tools = [
"file_read",
"file_write",
"file_list",
"web_search",
"web_fetch",
"memory_store",
"memory_recall",
]
network = ["*"]
memory_read = ["*"]
memory_write = ["self.*"]
[i18n.zh]
name = "作者"
description = "内容作者:撰写文档、文章与技术写作。"
[i18n.zh-TW]
name = "作者"
description = "內容作者:撰寫文件、文章與技術寫作。"
[i18n.ja]
name = "ライター"
description = "ドキュメント、記事、技術文章を執筆するコンテンツライター。"
[i18n.ko]
name = "작가"
description = "문서, 아티클, 기술 문서를 작성하는 콘텐츠 작가."
[i18n.de]
name = "Autor"
description = "Content-Autor: erstellt Dokumentation, Artikel und technische Texte."
[i18n.es]
name = "Redactor"
description = "Redactor de contenidos: documentación, artículos y redacción técnica."
[i18n.fr]
name = "Rédacteur"
description = "Rédacteur de contenu : documentation, articles et rédaction technique."