본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

agents

Windmill에서 지침, AI 제공자와 모델, 대화 기억, 도구를 갖춘 재사용 가능한 AI 에이전트를 정의합니다. 저장한 에이전트를 자체 페이지에서 실행하고, 흐름 단계에서 호출하거나 Slack 채널에 공유할 수 있습니다.

원문원문 설명 보기

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

windmill-labs/windmill스타 18,314(GitHub 18,314 + cccskills 0)
연동 도구Slack

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • 재사용 가능한 지원 에이전트 만들기
  • 흐름에서 저장된 에이전트 호출
  • Slack 채널에 에이전트 공유
  • 대화 기록 유지 여부 설정

한국어 소개

할 수 있는 일

이 스킬은 Windmill에서 전용 지침, AI 제공자와 모델, 대화 기억, 도구를 갖춘 AI 에이전트를 정의하는 방법을 안내합니다. 에이전트는 ai_agent 리소스로 저장합니다. 에이전트 페이지에서 채팅하거나 실행 양식으로 사용할 수 있고, 흐름의 AI 에이전트 단계에서 호출하거나 페이지를 통해 Slack 채널에 공유할 수도 있습니다. 에이전트 자체 설정과 흐름별 입력 및 재정의 설정을 분리하므로, 저장된 에이전트를 수정하면 이를 참조하는 여러 흐름에 변경 사항을 반영할 수 있습니다.

이럴 때 유용합니다

같은 지침이나 도구 구성을 여러 곳에서 사용하려는 경우에 적합합니다. 사용자가 직접 대화하는 독립형 도우미를 만들거나, 더 큰 처리 과정의 한 단계로 흐름에서 에이전트를 이용할 수 있습니다. 실행할 때마다 대화 기록을 이어 갈지, 매번 독립적으로 시작할지도 선택할 수 있습니다.

사용 예시

  • “제품 문서를 검색해 답하는 지원 에이전트를 만들어 줘.”
  • “저장된 에이전트를 이 흐름의 단계에서 호출해 줘.”
  • “이 에이전트를 Slack 채널에서 사용할 수 있게 해 줘.”

주의 사항

이미지 출력을 설정하면 도구를 사용할 수 없으며, 워크스페이스에 S3 저장소가 필요합니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
B일부 부족도구 실행과 에이전트 공유가 가능하며, 일부 설정은 실행 권한이나 대상 범위를 넓힙니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족AI 제공자 리소스가 필요하지만 구성 절차는 설명하지 않습니다.

점수에는 넣지 않았습니다. 2026년 10월 28일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(1)

  • SKILL.md5.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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

{
  "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.

  • provider (required): { "kind", "resource": "$res:<path>", "model" }, plus an optional reasoning_effort. resource names the workspace's AI provider resource of that kind
  • system_prompt: how the agent behaves. Write it for the agent's job: who it serves, what it may do with its tools, and what it should refuse or hand back
  • memory: what lets the agent see earlier turns. { "kind": "compaction" } keeps the whole conversation, summarizing its older part as it nears the model's context window; it is what a new agent starts with on its page. { "kind": "off" } makes every run start from nothing, right for an agent that handles one request per run
  • output_type: text (default) or image. Image output ignores tools and needs S3 storage on the workspace
  • output_schema: a JSON schema the answer must follow, for an agent whose output a program reads
  • max_iterations: how many model and tool rounds a run may take, 1 to 1000 (default 10)
  • streaming (default on), temperature, max_completion_tokens: as their names say
  • run_on_behalf_of: runs from the agent's page take the identity the agent was deployed with rather than the caller's, so people can use it without access to what its tools touch. slack_anyone lets anyone in the Slack channels it is shared in ask it, and is kept only with run_on_behalf_of. Set either only when the user asks: both widen who acts with the deployer's rights
  • on_behalf_of is the identity itself. Deploying sets it, so never write it

Tools

tools takes the same entries as a flow's AI agent step. value.tool_type is flowmodule for a script or inline script the agent calls (or a nested agent or AI decision), mcp for an MCP server ({ "tool_type": "mcp", "resource_path": "$res:<path>", "include_tools": [], "exclude_tools": [] }), or websearch for web search ({ "tool_type": "websearch" }, summary Web Search).

  • Write logic made for this agent as an inline rawscript tool, as a flow writes its steps. Point a script tool at a deployed script (path) only when one already does the job: a run calls the deployed version, so a script that exists only as a draft fails the run. An inline tool's value is a flow's rawscript step: { "tool_type": "flowmodule", "type": "rawscript", "language": "bun", "content": "export async function main(query: string) { ... }", "input_transforms": { "query": { "type": "ai" } } }
  • A flow cannot be a tool: a run offered one fails with Unsupported tool. Wrap it in a script that runs the flow
  • A flowmodule tool's summary is the name the agent calls it by: letters, numbers and underscores only, unique among the agent's tools, and neither a reserved step id (a JavaScript keyword, ctx, state, bg) nor __wm_web_search. Put the explanation in description, which tells the agent when to call it
  • Each argument of a tool is either the model's or fixed. { "type": "ai" } (or no value) lets the model fill it; a static value fixes it and hides it from the model. Fix what the model must not choose, such as a resource, a table name or a limit

Using It From a Flow

An AI agent step links to a saved agent with value.agent instead of carrying its own provider, system prompt and tools:

{
  "id": "support",
  "value": {
    "type": "aiagent",
    "agent": "f/support/support_agent",
    "input_transforms": {
      "user_message": { "type": "javascript", "expr": "flow_input.question" }
    },
    "tools": []
  }
}

The step holds only what belongs to one use of the agent: user_message, user_attachments, enabled_tools, memory_id, previous_messages, and the model and reasoning_effort overrides. Its value.tool_inputs ({ "<tool id>": { "<argument>": <input transform> } }) wires a saved tool's arguments to this flow, e.g. flow_input.customer_id, over the transforms the agent saved, without changing the agent. Everything else comes from the agent, so a change to the agent reaches every flow linking it.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Plan the code changes needed to add a TriggerCrud-based trigger to Windmill. The checklist covers backend, database, API, CLI, frontend, capture, and validation work so the new trigger can be managed across the product.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add a Kafka, GCP, or Azure style trigger to Windmill
  • Find all product areas affected by a new trigger kind
  • Review implementation and validation steps before a trigger PR
windmill-labs/windmill1.8만2026년 10월 29일 업데이트

ai-chat

무료요약 있음

Windmill AI 채팅의 도구, 프롬프트, 결과 형식, 컨텍스트 사용량을 검토하는 지침입니다. 공유 지침의 배치와 반복 토큰 비용 절감, 변경 전후 동작을 A/B 평가로 비교하는 방법을 다룹니다.

  • 채팅 도구와 결과 형식 수정
  • 프롬프트 배치 위치 검토
  • 컨텍스트 창 사용량 줄이기
windmill-labs/windmill1.8만2026년 10월 29일 업데이트

ai-evals

무료요약 있음

Windmill의 AI 생성 모드에서 블랙박스 벤치마크 사례를 만들고 실행합니다. 플로, 앱, 스크립트, CLI, 전역 요청을 실제 생성 경로로 시험하고, 필수 조건을 검사한 뒤 대규모 언어 모델 평가로 변경 전후의 사용자 관점 결과를 비교합니다.

  • AI 생성 모드 평가 사례 추가
  • AI 채팅 변경 전후 비교
  • copilot 생성 품질 확인
windmill-labs/windmill1.8만2026년 10월 29일 업데이트

cli-commands

무료요약 있음

Windmill CLI로 스크립트, 흐름, 데이터 테이블과 작업 공간 설정을 관리하는 참조 자료입니다. 작업 실행 기록, 세부 정보, 로그와 결과를 확인하고 실패한 작업을 재실행하는 방법도 다룹니다.

  • 작업 실패 원인 조사하기
  • 실행 기록과 작업 로그 확인하기
  • CLI로 스크립트와 흐름 관리하기
windmill-labs/windmill1.8만2026년 10월 29일 업데이트

codebase-design

무료요약 있음

인터페이스는 간결하게 유지하면서 복잡한 동작은 모듈 내부에 모으는 설계를 돕습니다. 호출자가 알아야 할 내용을 줄이고, 동작을 바꿀 위치를 정하며, 코드를 테스트하고 수정하기 쉽게 정리할 수 있습니다.

  • 모듈 인터페이스 설계
  • 기존 모듈의 복잡성 정리
  • 동작을 바꿀 위치 결정
windmill-labs/windmill1.8만2026년 10월 29일 업데이트

commit

무료요약 있음

변경 사항과 최근 커밋 기록을 확인하고 관련 파일만 스테이징해 Conventional Commits 형식으로 커밋합니다. 커밋 메시지는 한 줄로 작성하며 완료 후 저장소 상태를 확인합니다.

  • 새 기능 커밋하기
  • 버그 수정 기록하기
  • 변경에 맞는 커밋 메시지 작성하기
windmill-labs/windmill1.8만2026년 10월 29일 업데이트

windmill-labs의 스킬 모두 보기

이 스킬의 문제 신고