# Windmill AI Agents

Creates and changes Windmill AI agent resources following its agent setup rules.

- Repository: https://github.com/windmill-labs/windmill (18352 stars)
- Category: AI and agents
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add windmill-labs/windmill --skill agents -g -a claude-code -y`
Codex: `npx skills add windmill-labs/windmill --skill agents -g -a codex -y`
Cursor: `npx skills add windmill-labs/windmill --skill agents -g -a cursor -y`
Gemini CLI: `npx skills add windmill-labs/windmill --skill agents -g -a gemini-cli -y`

## Description

MUST use when creating or changing an AI agent, the reusable `ai_agent` resource the Agents page lists.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Windmill AI Agents

An agent, as the Agents page lists it, is a saved LLM with its own system prompt, tools and
memory, stored as a resource of type `ai_agent`. It is built once and used in several places: it is
run from its own page (a chat, or a run form), a flow's AI agent step links to it by path, and it
can be shared in Slack channels from its page. Build a standalone agent when the user wants an
assistant they talk to or reuse. Build a flow when the agent is one step of a larger process.

## File Format

An agent is a resource file like any other, `{path}.resource.yaml` (or `.resource.json`), with
`resource_type: ai_agent`.

## Structure

```json
{
  "resource_type": "ai_agent",
  "description": "Answers support questions from the product docs",
  "value": {
    "provider": { "kind": "openai", "resource": "$res:f/ai_providers/openai", "model": "gpt-4o" },
    "system_prompt": "You are the support assistant for Acme. Answer from the docs; say so when they don't cover a question.",
    "memory": { "kind": "compaction" },
    "output_type": "text",
    "tools": [
      {
        "id": "search_docs",
        "summary": "search_documentation",
        "description": "Search the product documentation. Use it whenever the user asks how a feature works.",
        "value": {
          "tool_type": "flowmodule",
          "type": "script",
          "path": "f/support/search_docs",
          "input_transforms": {
            "query": { "type": "ai" },
            "index": { "type": "static", "value": "product_docs" }
          }
        }
      }
    ]
  }
}
```

The agent's own settings are plain values, not the `input_transforms` an agent step in a flow uses:
each is fixed when the agent is saved. Only a tool's arguments keep `input_transforms` (see Tools). `$res:` and `$var:` references inside it are resolved at run time.

The rest: https://github.com/windmill-labs/windmill/blob/HEAD/system_prompts/auto-generated/skills/agents/SKILL.md
