当前位置: 首页 > article >正文

WinClaw CLI 工具开发指南

你可以给 AI 一个工具。但更好的做法是告诉它怎么发现工具、怎么理解工具、怎么组合工具。WinClaw 的 CLI 工具体系就是为此而设计的。一、AI 时代工具开发的逻辑变了过去做 CLI 工具用户是人。帮助文档写给人看参数设计按人的习惯来输出格式怎么好看怎么来。但在 WinClaw 的世界里工具的第一用户是 AI Agent。AI 不看 README不逛 Stack Overflow不读博客教程。它拿到一个工具做三件事读--help知道这个工具能干什么、有哪些参数读--skill理解在什么场景下、按什么流程使用这个工具解析 JSON 输出把结果传给下一个工具或直接呈现给用户如果你的工具不支持这三步AI 就用不好它——不是 AI 笨是你的工具没为它设计过。WinClaw 的 CLI 工具开发体系把这个问题彻底标准化了。二、先搞清楚你要写哪种工具不是所有工具都一样。根据运行方式和状态需求WinClaw 把 CLI 工具分成三种类型类型一句话描述典型场景代表工具普通 CLI跑一下就退出无状态发消息、转格式、导数据agent_feishu, agent_excel, markdown2wordDaemon CLI后台常驻维持连接微信代理、定时调度wechat_agent, agent_cronSession CLI跨调用记住上下文多轮对话、增量操作agent_cursor怎么选一个简单的决策树你的工具需要后台持续运行吗 ├── 是 → Daemon CLI └── 否 → 多次调用之间需要记住上下文吗 ├── 是 → Session CLI └── 否 → 普通 CLI ✓80% 的情况选这个优先选普通 CLI。它最简单、最好测、最容易和别的工具组合。只有当普通 CLI 明确搞不定时才升级到 Daemon 或 Session。三、所有工具的共同基因渐进式披露 统一输出不管你选了哪种类型有两件事是必须做的。这是 WinClaw 工具生态的基石。渐进式披露让 AI 按需获取信息WinClaw 设计了一套三层信息架构AI 可以从浅到深逐层理解你的工具第一层: tool --help → 功能概览、命令列表、快速入门 第二层: tool cmd --help → 某个子命令的参数详情 第三层: tool --skill → 完整最佳实践、工作流、场景指南--help回答「能做什么」--skill回答「该怎么用」。这个区分至关重要。拿agent_feishu举例。AI 第一次碰到这个工具时先看--helpagent_feishu is a command-line tool that provides Feishu (Lark) bot operations through a set of composable commands, designed for AI agent workflows. Quick Start: agent_feishu initapi --app-id cli_xxx --app-secret xxx agent_feishu send-text --receive-id ou_xxx --text Hello! Use agent_feishu --skill for detailed command specifications.够了。AI 知道这是个飞书工具能发消息需要先 initapi。但如果任务更复杂——比如查找张三的飞书 ID 然后给他发条消息——AI 会进一步看--skill里面写着完整的用户查找流程User Management Workflow: 1. Search local cache first (fast): agent_feishu search-users --query name 2. If not found, sync from Feishu: agent_feishu sync-users --force 3. Retry search after sync--skill不是给人看的文档是给 AI 看的操作手册。它告诉 AI 在什么场景下、按什么顺序、调什么命令。统一 JSON 输出工具之间的通用语言所有工具的输出都遵循同一个格式// 成功 { success:true, data:{ message:Text message sent successfully, message_id:om_xxx } } // 失败 { success:false, error:API credentials not configured. Run agent_feishu initapi first }三个字段success、data、error。没了。这意味着 AI 可以把任意两个工具串起来用。查到的飞书用户 ID直接传给发消息命令导出的 Excel 数据直接交给下一个工具处理。工具之间不需要互相 import一个 JSON 管道就串通了。而且注意看失败时的 error 信息Run agent_feishu initapi first——直接告诉 AI 下一步该执行什么命令。AI 不需要查文档就知道怎么修复。四、普通 CLI最常见的 80%大多数工具是普通 CLI——接收参数执行操作返回结果退出。没有后台进程没有状态文件干干净净。开发一个普通 CLI 工具核心就是做好以下几件事根命令--help功能概述 Quick Start 命令列表--skill标志和skill子命令完整的场景操作指南子命令--help每个子命令的参数描述和示例全局--json标志统一 JSON 输出version命令版本信息项目结构清晰明了agent_feishu/ ├── main.go ├── go.mod ├── cmd/ │ ├── root.go # 根命令 │ ├── skill.go # --skill 输出 │ ├── send_text.go # 发送文本 │ ├── send_image.go # 发送图片 │ └── initapi.go # 初始化凭证 └── internal/ └── output/ └── output.go # 统一输出如果你是第一次给 WinClaw 写工具从普通 CLI 开始。一个下午就能搞定。五、Daemon CLI当工具需要一直活着有些事情调用即退出搞不定。微信消息代理需要维持一个长连接才能收发消息——每次都重新登录扫码都来不及。定时调度需要在后台按计划执行任务——终端一关就没了那还定什么时。这些场景需要 Daemon CLI后台常驻一个进程CLI 命令通过本地 HTTP API 和它通信。┌──────────────────┐ HTTP API ┌───────────────────┐ │ CLI 命令 │ ─────────────────────► │ Daemon 进程 │ │ │ │ │ │ tool start │ 启动 daemon │ 常驻后台运行 │ │ tool status │ 查询状态 │ 提供 HTTP API │ │ tool stop │ 停止 daemon │ 管理会话/心跳 │ │ tool send │ 业务操作 ──────────────► │ │ └──────────────────┘ ◄──────────────── └───────────────────┘ JSON 响应用户和 AI 感知到的还是 CLI 命令体验和普通工具一样。区别在于命令不再直接执行业务逻辑而是把请求转发给后台 Daemon。Daemon CLI 有几个关键设计自启动tool start启动自身的一个子进程并分离用户终端不会被阻塞状态文件通过 PID 文件和端口文件让 CLI 找到正在运行的 Daemon仅监听 127.0.0.1HTTP API 只在本地可访问不暴露到网络心跳保活连接断了自动重连异常不终止进程优雅停止清理资源、删除状态文件什么时候用 Daemon记住四个条件满足任一即可需要维持长连接微信、WebSocket初始化成本高需要复用大型 SDK、连接池需要后台持续执行定时任务多次调用共享状态登录会话、联系人缓存六、Session CLI记住上一次聊到哪了Session CLI 解决的问题很直观多轮操作之间保持上下文。agent_cursor是典型例子。你让 AI 分析代码架构然后基于分析结果重构某个模块——这是两次调用但第二次必须知道第一次的结果。# 第一轮分析 agent_cursor run 分析这个项目的架构 --session main # 第二轮基于分析继续 agent_cursor run 基于刚才的分析重构 auth 模块 --session main # AI 自动恢复上下文知道刚才的分析是什么Session 和 Daemon 的区别是Session 不需要后台常驻进程。工具还是调用即退出的只是在调用之间通过文件保存上下文标识比如一个 session_id。实现上也很简单全局--session标志指定会话别名自动恢复执行前检查是否有同名 Session有就自动 resume自动保存执行后把新的 session_id 写入文件管理子命令session ls/session show/session rmSession 数据存在~/.agent_cursor/sessions/main.json这样的文件里结构很轻量{ name:main, sessionId:abc123, cwd:/Users/me/project, createdAt:2026-03-14T10:00:00Z, updatedAt:2026-03-14T10:30:00Z }七、三种类型的对比维度普通 CLIDaemon CLISession CLI运行模式执行即退出后台常驻执行即退出状态管理无Daemon 进程内文件持久化进程数0用完即走1常驻0用完即走复杂度★★★★★★适用比例~80%~10%~10%核心要求--help, --skill, --json start/stop/status, HTTP API --session, 自动 resume八、写在最后给 AI 写工具和给人写工具是两件完全不同的事。人可以看文档、搜社区、试错纠正。AI 需要的是结构化的自描述——--help让它快速了解能力边界--skill让它掌握操作流程统一 JSON 让它无缝串联多个工具。WinClaw 的 CLI 工具体系本质上做了一件事定义了 AI 和工具之间的沟通协议。你不需要写一个聪明的工具——你需要写一个说得清楚的工具。AI 自己够聪明它只需要你把话说明白。三种类型、三层披露、一套 JSON 格式。掌握这些你就能给 WinClaw 的工具商店贡献工具让全世界的 AI Agent 用上你写的能力。WinClaw CLI 工具开发文档已上线。 完整文档https://docs.winclaw.cc/docs/cli-tool-development好的工具不需要解释自己——但它必须能解释给 AI 听。

相关文章:

WinClaw CLI 工具开发指南

你可以给 AI 一个工具。但更好的做法是:告诉它怎么发现工具、怎么理解工具、怎么组合工具。 WinClaw 的 CLI 工具体系,就是为此而设计的。一、AI 时代,工具开发的逻辑变了过去做 CLI 工具,用户是人。帮助文档写给人看,…...

Debian/Ubuntu 18.04 上安装 GLIBC 2.28 (2026)

Ubuntu 18.04 上安装 GLIBC 2.28 (2026) 引言 某些现代软件(例如 Visual Studio Code Server 1.88 及更新版本)要求系统 GLIBC 版本不低于 2.28,而 Ubuntu 18.04 默认提供的是 GLIBC 2.27。直接升级系统级 GLIBC 可能导…...

在Linux x86_64系统中编译mission

以下在ubuntu18.10 gcc8.3编译通过。安装编译工具:sudo apt install build-essential sudo apt install cmake重命名以下目录中的wsf_module为wsf_module-(子目录的不用管)以屏蔽图形界面相关的模块:swdev/src/engage swdev/src/…...

黑客与画家的品牌时代主动式Agent时代的品牌#The Brand Age

主动式 Agent 时代的品牌Paul Graham 在《品牌时代》(The Brand Age)中复盘了瑞士钟表业如何从“精准计时”的黄金时代,转型为“身份象征”的品牌时代。他提出了一个冷峻的定义:当产品之间的实质性差异消失时,品牌就是…...

告别OSPF!EVE-NG专业版+BGP Unnumbered打通Underlay的完整实战

吃一堑,长一智。有了前面的经验教训(ECN配置折戟记:vEOS模拟器局限性深度剖析),我们这次在换镜像的时候,提前把后面实验用到的命令先验证一下(从屡战屡败到一气呵成:EVE-NG专业版 C…...

威拉里发布多款金属3D打印新材料!三期项目与国外工厂全力推进!

当前,3D打印正迈入规模化生产新阶段,金属粉末的品质一致性与供应稳定性,直接决定了规模化生产的可行性与经济性。近日,国内3D打印金属粉末领域的龙头企业威拉里,接连发布多款针对不同高端制造领域的新型金属粉末材料&a…...

深入理解 Dify 插件守护进程:从加载到执行的完整链路

❝本文深入剖析 Dify 插件系统的核心机制,揭秘插件守护进程如何加载、启动和执行插件代码,以及参数传递的完整链路。❞一、前言Dify 作为一款开源的 LLM 应用开发平台,其插件系统是扩展平台能力的核心机制。很多开发者在阅读源码时会产生疑问…...

探索大数据领域Flink的CEP复杂事件处理

探索大数据领域Flink的CEP复杂事件处理 Keywords: Apache Flink, Complex Event Processing (CEP), 大数据实时分析, 事件流, 模式检测, 状态机, 实时报警系统 Summary: 本文将带您深入探索Apache Flink中的复杂事件处理(CEP)技术,一种在大数…...

当SSD退役时必做的5件事:基于NVMe Sanitize的完整数据销毁流程

NVMe SSD退役数据销毁全指南:从Sanitize操作到二手处置 当企业级NVMe SSD面临退役时,数据安全销毁是技术团队必须严肃对待的环节。一块未经妥善处理的存储设备,即使被标记为"已删除",仍可能通过专业工具恢复敏感数据。本…...

4步突破:Cursor无限制使用完全指南

4步突破:Cursor无限制使用完全指南 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We have this limit in…...

问题解决方法:keil软件用st-link烧录代码报错

问题:今天用st-link烧录代码报错说芯片和识别的芯片不一样?难道是盗版?解决方法:把这个使能引脚取消就可以成功烧录了...

SQL Server查看数据库中每张表的数据量和总数据量

查询将返回每个表的名称和表中的数据行数(RowCounts),并按数据量从大到小排序 -- 查询数据库中每张表的行数(数据量) SELECT t.name AS TableName, -- 表的名称SUM(p.rows) AS RowCounts -- 表中所有分区的行数之和…...

GME-Qwen2-VL-2B辅助AE视频制作:智能生成视频片段描述与标签

GME-Qwen2-VL-2B辅助AE视频制作:智能生成视频片段描述与标签 1. 引言 如果你经常用After Effects做视频,肯定遇到过这样的场景:项目文件夹里塞满了各种素材片段,时间线拉得老长,想找一个特定镜头或者回忆某个片段的用…...

MATLAB麦克风实时采集与波形显示:两种方法对比与性能优化

MATLAB麦克风实时采集与波形显示:两种方法对比与性能优化 在音频信号处理领域,实时采集与可视化是许多应用的基础环节。无论是语音识别系统开发、环境噪声监测,还是音乐分析工具构建,快速准确地获取声音波形并实时显示都是关键的第…...

Phi-3-mini-4k-instruct Ollama镜像免配置教程:零基础快速上手文本生成

Phi-3-mini-4k-instruct Ollama镜像免配置教程:零基础快速上手文本生成 你是不是也想体验最新的人工智能文本生成,但被复杂的安装配置劝退了?今天我要介绍的Phi-3-mini-4k-instruct镜像,让你完全跳过所有技术门槛,直接…...

VideoAgentTrek Screen Filter 与数据库联动:构建可查询的屏幕内容审计系统

VideoAgentTrek Screen Filter 与数据库联动:构建可查询的屏幕内容审计系统 你有没有遇到过这样的场景?在金融交易、远程运维或者政务审批这类关键操作中,需要对电脑屏幕上的所有活动进行记录和审计。传统的录屏方式虽然能记录画面&#xff…...

提升JMeter测试效率:WebSocket插件与5个必备插件的安装指南

提升JMeter测试效率:WebSocket插件与5个必备插件的安装指南 在性能测试领域,JMeter因其开源、可扩展的特性成为工程师的首选工具。但原生功能往往难以满足复杂场景需求,这正是插件生态大显身手的地方。本文将带您深入WebSocket测试的核心配置…...

Qwen3.5-35B-A3B-AWQ-4bit Web界面使用教程:上传控件+输入框+响应流式输出详解

Qwen3.5-35B-A3B-AWQ-4bit Web界面使用教程:上传控件输入框响应流式输出详解 你是不是也遇到过这样的场景:手里有一张图片,想快速知道里面有什么,或者想针对图片内容问几个问题,但不知道用什么工具?今天&a…...

Chord视觉定位模型实战:一句话让AI在图片里找到目标,新手3步搞定

Chord视觉定位模型实战:一句话让AI在图片里找到目标,新手3步搞定 1. 什么是Chord视觉定位模型? Chord是基于Qwen2.5-VL多模态大模型的视觉定位服务,它能理解自然语言描述并在图像中精确定位目标对象。想象一下,你只需…...

探索LD2410:实现精准人体存在检测的创新方法

探索LD2410:实现精准人体存在检测的创新方法 【免费下载链接】ld2410 An Arduino library for the Hi-Link LD2410 24Ghz FMCW radar sensor. 项目地址: https://gitcode.com/gh_mirrors/ld/ld2410 副标题:掌握24GHz雷达传感器的技术原理与实践应…...

Python结合Cartopy实现地形晕染图的进阶技巧与实战应用

1. 为什么需要地形晕染图? 地形晕染图(Shaded Relief Map)是地理信息可视化中常用的技术手段。我第一次接触这个概念是在做一个气象数据分析项目时,当时需要展示台风路径与海底地形的关系。普通的等高线图虽然能显示海拔变化&…...

开源工具突破Cursor设备限制:跨平台解决方案全解析

开源工具突破Cursor设备限制:跨平台解决方案全解析 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We hav…...

Transformer在医学图像分割中的进化史:从UNet到CSWin-UNet

Transformer在医学图像分割中的进化史:从UNet到CSWin-UNet 医学图像分割技术正经历一场由Transformer架构引领的范式转移。当放射科医生需要从CT扫描中精确勾勒肿瘤边界,或是研究人员试图量化心脏MRI中的心室容积时,他们依赖的算法核心已从传…...

SUNFLOWER MATCH LAB 模型压缩实战:使用PyTorch进行知识蒸馏

SUNFLOWER MATCH LAB 模型压缩实战:使用PyTorch进行知识蒸馏 最近在做一个移动端的图像匹配项目,用上了SUNFLOWER MATCH LAB这个模型,效果确实不错,匹配精度很高。但问题也来了,这模型有点“胖”,部署到手…...

春联生成模型-中文-base实战:输入‘幸福‘、‘平安‘,AI自动创作完整春联

春联生成模型-中文-base实战:输入幸福、平安,AI自动创作完整春联 1. 项目介绍与核心功能 春节贴春联是中国传统文化的重要组成部分,但创作一副对仗工整、寓意吉祥的春联并不容易。春联生成模型-中文-base正是为解决这个问题而开发的AI应用。…...

万象熔炉 | Anything XL效果展示:同一提示词在不同分辨率下的构图变化

万象熔炉 | Anything XL效果展示:同一提示词在不同分辨率下的构图变化 1. 工具简介与核心特点 万象熔炉 | Anything XL 是一款基于Stable Diffusion XL框架开发的本地图像生成工具,专门针对二次元和通用风格图像生成进行了深度优化。这个工具最大的特点…...

keepalived vs 手动配置:多虚拟IP方案选型及性能对比实测

多虚拟IP部署方案深度评测:Keepalived与手动配置的实战抉择 在分布式系统架构中,虚拟IP(VIP)作为服务入口的统一抽象层,其稳定性和性能直接影响整个系统的可用性表现。当业务需要部署多个虚拟IP时,技术团队…...

构建法律文书系统:bge-m3精准语义比对部署案例

构建法律文书系统:bge-m3精准语义比对部署案例 1. 项目背景与核心价值 在法律文书处理领域,快速准确地比对文档相似度具有重要意义。无论是案例检索、合同审查还是法律条文匹配,传统的关键词匹配方法往往无法捕捉深层的语义关联。 BAAI/bg…...

避开这3个坑!DPABI+SPM脑科学工具链配置避雷指南

DPABISPM脑科学工具链配置避雷指南:临床医生必知的3个关键陷阱 在功能磁共振成像(fMRI)研究领域,DPABI和SPM的组合已经成为许多临床医生和跨学科研究者的首选工具链。这套开源工具包以其强大的数据处理能力和相对友好的用户界面赢…...

从数据到农田:基于YOLOv8的番茄叶片病害实时检测系统全流程实战

1. 番茄病害检测的农业痛点与技术选型 在传统农业生产中,番茄种植户通常需要每天巡视大棚或田间,用肉眼观察叶片状态来判断病害情况。这种方法存在三个致命缺陷:一是人工检查效率低下,一个标准大棚需要30-40分钟才能完成全面检查&…...