Skip to main content
Agents are what do the actual work in your Friday jobs. There are three types you can declare in workspace.yml: atlas (built-in), llm (inline), and user (custom Python).

atlas — built-in agents

Built-in agents are the fastest path. Friday ships with a growing library of them for common integrations. Reference them by ID in your space:
workspace.yml
agents:
  gh:
    type: atlas
    agent: gh
    description: "Runs GitHub CLI operations — clone, review, post comments."
    prompt: "Execute GitHub CLI operation."
    env:
      GH_TOKEN: from_environment
The prompt field is per-invocation task context layered on the agent’s built-in behavior — describe what you want, not how to do it. The env block passes credentials; use from_environment to pull from the daemon’s environment. Built-in agents are black-box. They have their own internal tool surface and ignore the tools array. If you need to call specific MCP tools, use type: llm instead. Some available built-in agents: Agents that call an LLM use ANTHROPIC_API_KEY by default — OPENAI_API_KEY, GEMINI_API_KEY, and GROQ_API_KEY are also supported experimentally. The table lists only the additional credentials each agent needs beyond the LLM key.
Agent IDWhat it doesAdditional credentials
webWeb research, browser automation, JS-rendered pagesOptional PARALLEL_API_KEY for search
slackPost messages to Slack channels and DMsSLACK_MCP_XOXP_TOKEN
get-summaryCondense long-form content into formatted summariesNone
claude-codeCode generation, debugging, and codebase analysis in a sandboxed environmentOptional GH_TOKEN
ghGitHub CLI operations — clone repos, view PRs, fetch diffs, post reviewsGH_TOKEN
bbBitbucket Cloud — clone repos, review PRs, post commentsBITBUCKET_EMAIL + BITBUCKET_TOKEN
jiraJira Cloud — read, create, update issues and transitionsJIRA_EMAIL + JIRA_API_TOKEN + JIRA_SITE
transcribeTranscribe audio files to text using WhisperGROQ_API_KEY
hubspotHubSpot CRM — search, read, create, update contacts/deals/companiesHUBSPOT_ACCESS_TOKEN
image-generationGenerate new images and edit existing image artifactsGEMINI_API_KEY
knowledge-hybridHybrid RAG knowledge base search (BM25 + vector + reranker)KNOWLEDGE_CORPUS_PATH + FIREWORKS_API_KEY, optional GROQ_API_KEY for reranking
This is a selection of available built-in agents — more are being added all the time. To browse the full list, open the Agent Tester in the Studio.

llm — inline LLM agents

Define an LLM agent directly in workspace.yml when no built-in agent covers your domain. Specify provider, model, system prompt, and the MCP tools it can call:
workspace.yml
agents:
  email-triage:
    type: llm
    description: "Classifies inbound email as urgent, tracking, or ignore."
    config:
      provider: anthropic
      model: claude-sonnet-4-6
      prompt: |
        You triage inbound email. Classify each message as one of:
        urgent, tracking, ignore. Return JSON: { category, reason }.
      tools:
        - google-gmail/search_gmail_messages
        - google-gmail/get_gmail_message_content
      max_steps: 6
Tool names use serverId/toolName format — the server ID comes from tools.mcp.servers in your space. Built-in platform tools (memory_save, memory_read) need no prefix. Use the Agent Tester to browse available tools. Supported providers: anthropic, openai, google, groq. Additional llm config fields: temperature (default 0.3), max_tokens, max_retries, timeout, tool_choice, and provider_options for pass-through provider configuration.

user — custom agents

Build your own agent with the Agent SDK when you need to wrap internal APIs or business logic. Python is supported today; more languages are coming soon. Register the agent with the daemon, then reference it by ID:
workspace.yml
agents:
  my-agent:
    type: user
    description: "Wraps our internal data API."
    env:
      API_KEY: from_environment
Register with the daemon (no restart required):
friday agent register /abs/path/to/my-agent
See the Agent SDK documentation for how to write agents. Use the Agent Tester to test any agent in isolation before wiring it into a workflow.

MCP tools

Agents can call external tool servers via . Declare servers at the space level — they’re available to any llm or user agent in the space. See MCP Tools.

Declaration order

Declare agents before jobs in workspace.yml. Jobs reference agents by ID in FSM entry actions — the validator raises unknown_agent_id if the agent isn’t declared first.
Let Friday write your agent. Describe what you need in the Studio chat — Friday will scaffold a working agent, register it with the daemon, and wire it into your space. You can also install the writing-friday-python-agents skill in Claude Code to author agents locally.