跳到正文
cccskills
免费在 GitHub 公开中文介绍

agents

在 Windmill 中定义可复用的 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 存储。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
B部分不足可运行工具并分享智能体;部分设置会扩大执行身份或使用范围。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足需要 AI 提供方资源,但资料未说明其配置步骤。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月28日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(1)

  • SKILL.md5.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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 / 1000 字

此表单受 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 格式创建 Git 提交,最后确认仓库状态。

  • 提交新功能
  • 记录错误修复
  • 为修改撰写合适的提交说明
windmill-labs/windmill1.8万2026年10月29日 更新

查看 windmill-labs 的全部技能

报告此技能的问题