
简介面向 A 股投资与盯盘场景的 OpenClaw 智能股票插件合集基于 TickFlow API 提供实时监控、收盘后复盘、多维综合分析与关键价位告警能力同时集成东财秒想 Skills 与金十数据 MCP适合需要自动化盯盘、快速获取消息面信号的个人投资者与量化研究爱好者。压缩包体积极小仅 15KB共 6 个文件3 份 Markdown 文档分别阐述技能逻辑与使用说明1 份 txt 配置清单便于修改参数1 个 Python 脚本承担认证与数据交互另有 .gitignore 规范版本管理整体结构精简导入 OpenClaw 环境后即可阅读改造。目前已有 33 人学习属于轻量但实用的投研工具示例。借助该合集可直接复用 TickFlow 行情对接、东财秒想与金十数据源的整合思路并参考其中的配置项和认证脚本来定制自己的 A 股监控规则从而快速搭建起关键的价位提醒、盯盘复盘工作流减少从想法到落地的开发成本。1. 拿到 OpenClaw Skill 合集.zip先想清楚它解决什么问题如果你已经接触过 OpenClaw大概会有这种感觉框架本身装起来不难真正让人卡住的是“装完之后让它按你的方式干活”。OpenClaw Skill 合集.zip 就是这类需求下的产物——把一批写好的技能包打成一个压缩包解压后按约定位置放好agent 就能获得处理网页转写、文档整理、代码审查、PPT 生成等具体任务的能力。对新手来说它省去了从零写 SKILL.md 的起步成本对熟手来说它的价值在于提供了一套可对照的模板看别人怎么拆分任务、怎么写描述、怎么组织脚本。我拿到这类合集的第一反应不是全部装上而是先拆开看它的目录命名和描述写法再挑三到五个和手上场景匹配的 skill 接入验证。2. Skill 不是插件OpenClaw 的技能触发机制与一个最小 SKILL.md2.1 Skill 与 Agent 的边界先分清谁是司机、谁是工具箱很多刚接触 OpenClaw 的人会把 Skill 理解成“插件”类似 IDE 里的扩展包装上就自动生效。实际不是这样。OpenClaw 里 Agent 是执行主体Skill 是被 Agent 按需调用的一组能力定义。用大白话说Agent 是司机Skill 是放在后备箱里的工具——司机看到路况才会决定拿哪把扳手而不是把所有工具都摊在仪表盘上。这个区别决定了两个落地原则。第一Skill 本身不主动运行它靠描述和触发词被 Agent“想起来”。第二同一个 Skill 可以在不同 Agent 间共享也可以让一个 Agent 挂多个 Skill但每个 Skill 的描述写得越清晰Agent 的命中率越高。所以判断一个 Skill 写得好不好第一眼看它的 description 字段是否具体是否写清楚了“什么时候用、什么时候别用”。那些把描述写成“一个有用的工具”的 Skill基本等于没有。2.2 一个 SKILL.md 的骨架描述、触发符号与正文结构OpenClaw 生态里的 Skill 通常以一个目录为单位目录名是技能名内部有一个 SKILL.md 作为入口。这个文件不是给人看的说明文档而是给 Agent 看的调用契约。我一般会把最小可运行的 SKILL.md 写成这样--- name: web-to-markdown description: 抓取一个网页链接并转成干净的 markdown 文本。适用于把文章、文档页整理成可编辑的 md 源文件不适用于登录后才能访问的页面。 triggers: - 转markdown - 网页转md - web2md symbols: - $URL version: 1.0.0 --- # web-to-markdown 当用户提供一个链接并要求转 markdown 时执行 scripts/fetch_md.py 输入参数 - $URL用户提供的网页地址 输出 - 标准 markdown 文本图片引用保留原图地址这段 frontmatter 里name 是技能标识description 是 Agent 判断是否唤起技能的主要依据triggers 是显式触发词symbols 声明了运行时需要填充的变量。重点在 description这里写“适用于整理文章页”“不适用于登录页”相当于给 Agent 划了边界。常见的一个坑是描述写得太宏观比如“处理网页”结果 Agent 在用户问“今天几号”时也想试试这个技能造成不必要的调用。2.3 符号与命令Skill 正文里怎么让 Agent 听话SKILL.md 的正文部分不是给人逐步阅读的操作手册而是给 Agent 的指令集。常见做法是用符号占位符把用户对话里的关键信息抽取出来。比如上面例子里的 $URLAgent 在对话里收到一个链接时会把链接填充到这个位置然后执行脚本。这种设计是为了减少大模型自由发挥的空间——与其让 Agent 自己猜要处理哪个链接不如在技能契约里明确定义输入槽位。另一个常见机制是命令绑定。你可以在 Skill 目录里放 scripts/、references/、fixtures/ 等子目录然后让 SKILL.md 引用其中脚本。OpenClaw 在本地执行脚本时会把会话中的临时上下文传给脚本脚本从 stdin 或参数里拿输入。我的习惯是凡是超过五步的固定操作全部写进脚本SKILL.md 只保留“何时调用 传什么参数”这两件事。这样 Agent 的决策负担小误操作的概率也低。3. 把合集装进 OpenClaw目录放置、agent.md 注册与本地最小跑通3.1 解压后先看目录结构OpenClaw 的 skills 目录约定拿到 OpenClaw Skill 合集.zip第一步不是双击解压而是先打开压缩包看目录层级。常见的合集包有两种组织方式一种是顶层就直接是各个 skill 目录另一种是外层套了一层作者名字的文件夹再往里才是 skill 目录。后者更常见所以解压后大概率会得到一个类似vincent-openclaw-skills/skills/xxx/的嵌套结构而 OpenClaw 期望的路径是skills/xxx/SKILL.md。我一般在 Linux 或 macOS 上这样处理mkdir -p ~/.openclaw/skills cd ~/downloads unzip Vincent 的 OpenClaw Skill 合集.zip -d openclaw-skills-tmp find openclaw-skills-tmp -maxdepth 3 -name SKILL.md | head -20先用find列出所有 SKILL.md 的位置确认每个技能目录里是否都有这个入口文件。然后逐个复制到 OpenClaw 的全局技能目录for d in openclaw-skills-tmp/*/skills/*/; do if [ -f $d/SKILL.md ]; then cp -r $d ~/.openclaw/skills/ fi done ls ~/.openclaw/skills/这段脚本的逻辑是遍历合集中所有疑似 skill 目录只要里面有 SKILL.md就整体复制到 OpenClaw 的全局 skills 目录。复制比移动好的一点是如果某个技能写得不规范你可以随时从全局目录删掉原始文件还在。目录放置这一步看似简单但很多人在 Windows 上会踩路径坑——OpenClaw 对路径中的中文和空格处理并不总是友好所以合集中的技能名如果是中文目录我会先把目录改成拼音或英文再放入 skills 目录。3.2 agent.md 注册让 Agent 在正确时机想到这些技能把 SKILL.md 放进目录只是第一步OpenClaw 还需要通过 agent.md 知道这些技能的存在和调用策略。agent.md 是 OpenClaw 项目或用户目录下的一个 Markdown 配置文件相当于 Agent 的“行为守则”。我看过不少失败的部署技能文件都在但 Agent 死活不调用原因就是 agent.md 里没有写清楚技能的使用场景。一份能跑通的 agent.md 至少要有这样的内容# Agent 行为说明 ## 技能调用策略 - 用户提供网页链接并要求整理时优先调用 web-to-markdown。 - 用户要求把一本书或长文拆成大纲时检查是否存在 book-to-outline 技能。 - 禁止在用户没有明确要求前主动调用 ppt 生成类技能。 ## 会话规则 - 同一会话内尽量复用已加载的上下文不重复读取同一文件。 - 遇到 session 锁冲突时不强行重试改用新会话或等待自动释放。这里的每一条都对应一个具体场景。注册时不用把合集中所有技能都写进去只写当前项目确实会用到的。写得太多反而会让 Agent 在决策时犹豫。还有一个细节值得注意agent.md 里提到的技能名要和 SKILL.md 里的 name 字段完全一致。大小写、连字符都不能差否则 Agent 会对不上号。3.3 模型接入与最小跑通以配置千问为例OpenClaw 本身不绑定某一家模型常见做法是通过 OpenAI 兼容接口接各种服务。我在实际部署中常给 OpenClaw 配置千问因为它的兼容端点可以复用很多现成工具链。配置项的常见位置是 OpenClaw 的配置文件里的 model 段model: provider: openai-compatible base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 api_key: ${DASHSCOPE_API_KEY} model: qwen-max这里四个参数缺一不可。provider 声明使用 OpenAI 兼容协议base_url 指向千问的兼容端点api_key 从环境变量读取避免把密钥写死在配置文件里model 指定具体型号qwen-max 适合复杂指令理解qwen-plus 性价比更高。配置完先跑一个与技能无关的简单对话确认模型通了再加载技能。最小跑通用一条命令验证openclaw run --project ./demo --skill web-to-markdown --input https://example.com/docs这条命令的含义是在 demo 项目环境下显式唤起 web-to-markdown 技能处理 example.com 的文档页。用--skill显式指定是为了绕开触发词匹配的不确定性直接验证脚本链路是否通畅。跑通之后再回到交互式会话里用自然语言测试一次触发看 Agent 能否自己想到调用这个技能。如果自然语言触发失败优先检查 SKILL.md 的 description 和 triggers 是否与你的说法匹配。4. 按场景拆包选型代码、文档与接入类 Skill 的取舍4.1 开发类 Skillcodex skill、claude code skill 与代码审查技能怎么选合集中最常见的类别是针对代码开发场景的 Skill。这类技能解决的是同一个问题让 Agent 在拿到代码任务时按照预设的规范去读代码、改代码、写提交说明而不是每次都自由发挥。我看到的热门搜索里有 codex skill、claude code skill、vue-best-practices skill、codex 破甲 skill 之类名称五花八门但核心套路一致把最佳实践写进技能描述里让 Agent 在代码审查或生成时按清单逐项核对。选型时主要看两个维度。第一技能依赖的模型是否和你当前用的模型匹配有的技能描述里假设模型具备很强的长上下文理解能力小模型跑起来会把规范清单背错。第二技能是偏向“审查”还是偏向“生成”前者适合接在 CI 或提交前检查环节后者适合在交互式会话里用。我自己的习惯是优先选带 fixtures 或 tests 目录的技能说明作者至少跑过验证只放一个 SKILL.md 加一段描述、没有可执行脚本的技能效果通常打折。4.2 文档与知识管理类obsidian、book to skill、ppt skill 的真实场景文档类是另一个重头戏。相关热词里有 openclaw obsidian、book to skill、ppt skill、倪海厦 skill、数学建模 skill——这类技能的共同特点是输入是混乱的原始材料输出是结构化成果。拿 book to skill 来说它的价值不是把一本书“变成 skill”而是把一本书的内容拆成可检索的章节摘要、术语表和练习题供 Agent 后续回答问题时引用。obsidian 类技能则是把 OpenClaw 接进你的笔记库让 Agent 能按标签和双向链接检索笔记。这类技能选型时我最关心的是输入格式的兼容性。比如某个技能默认只处理 PDF而你的资料是 epub 或网页就得看它 scripts/ 里有没有转换脚本。还有一个容易忽视的问题文档类技能往往涉及文件写入技能运行时会往你的笔记目录或输出目录写文件部署前要检查技能描述里写的输出路径是否和你实际目录一致。不一致的后果是 Agent 以为保存成功了但你在 Obsidian 里根本看不到新文件。4.3 接入与多端输出千问、飞书、Teams 与 channel 选择还有一类技能专门解决“OpenClaw 的结果往哪里送”的问题。热词里 openclaw 如何接入 microsoft teams、openclaw在飞书输出容易被截断、openclaw agent 怎么选择 channel都和这个相关。OpenClaw 的 channel 概念指的就是与外部工具的通道CLI、飞书机器人、Teams、Obsidian 都算 channel。技能的输出结果通过 channel 转发而不同 channel 对消息长度、格式的支持不一样。我在部署飞书机器人时遇到的最典型问题是长输出被截断。这不是 OpenClaw 本身的问题而是飞书机器人接口对单条消息长度有限制。处理办法通常是改 channel 配置让长内容分段发送或者把完整结果写入文件然后在飞书里回传文件链接。如果你在合集中看到 channel 相关的技能先确认它支持你实际使用的 IM 工具避免装完发现只适配了某一个平台。多端输出的优先级建议是先 CLI 跑通再接最常用的一个 IM最后才考虑多平台同时推送。5. OpenClaw Skill 使用与部署避坑锁冲突、截断与触发错位5.1 session file locked (timeout 60000ms)并发锁与超时的真实原因这是 OpenClaw 报错里最常见也最劝退的一条。现象是 Agent 在运行中突然失败控制台提示agent failed before reply: session file locked (timeout 60000ms)。第一次遇到时我也以为是 bug后来排查发现是多个进程或多次请求在争用同一个 session 文件。OpenClaw 的会话状态会写入磁盘上的 session 文件写入期间会加锁如果另一个进程也试图读写同一个 session就会等待锁释放超过 60 秒就报超时。原因通常有三类一是你同时开了多个终端窗口在跑同一个项目二是前一个进程异常退出锁文件没被清理三是有定时任务和手动会话撞在一起。解决思路按顺序排查# 查看当前有哪些 openclaw 进程 ps aux | grep openclaw # 查看会话目录下的锁文件带 .lock 后缀的 ls -la ~/.openclaw/sessions/ | grep lock # 确认没有活动进程后清理残留锁文件 find ~/.openclaw/sessions/ -name *.lock -delete进程检查前置删锁是最后手段。如果还有进程在运行强行删锁会导致状态文件损坏。更根本的解决方法是每次跑任务时显式指定不同会话比如用--session $(date %s)按时间戳生成独立会话文件避免并发争用。我在自动化脚本里一律用这种方式跑批处理任务时再也没遇到过这个报错。5.2 飞书输出容易被截断长度限制与分段策略热词里“openclaw在飞书输出容易被截断”是一个非常具体的部署痛点。现象是技能跑完在 CLI 里看结果是完整的但飞书机器人收到的消息戛然而止有时还带着不完整的 Markdown 标记。原因是飞书机器人接口对单条消息有长度上限OpenClaw 默认按单条消息转发长文本直接超限。解决方法是分层处理。代码层面在技能脚本里先对输出做长度判断超过阈值就按标题或段落拆分成多条。消息层面如果 OpenClaw 的 channel 配置支持分段参数调整分片大小。还有一个偏工程的做法长输出不直接发全文先写入文件再发送一个包含文件链接的短消息。这个模式适合日报汇总、长文本分析这类场景用户点击链接看全文IM 里只留提示。CLI 下跑通的技能接到飞书 channel 上时一定要重新做一次完整链路测试别以为输出端不影响结果格式。5.3 技能不生效或反复触发错位描述词污染与优先级另一种高频问题技能已经装好了但 Agent 要么完全不调用要么在错误时机反复调用。现象举例——你装了 ppt 生成技能结果用户只是问“今天开会有什么要点”Agent 也去触发 ppt 技能。原因是 description 和 triggers 写得太宽泛导致 Agent 对语义产生了错误联想。我称之为描述词污染。解决分两步。第一步收敛 triggers只保留不容易和其他意图混淆的精确词。第二步在 description 里加否定项明确写清楚“不适用于什么场景”。修改后的描述示例description: 生成 PPT 大纲与分页内容仅在用户明确要求制作课件或演示文稿时使用。不适用于普通问答、会议纪要、邮件起草。改完描述后重启会话让 Agent 重新加载技能配置再用几个边界问题测试问一个完全无关的问题确认不触发再说“帮我做个汇报 PPT”确认正确触发。这个双向验证比只看正向触发可靠得多。5.4 目录权限与中文路径导致的加载失败最后一类踩坑在 Windows 和 Linux 上都可能出现。现象是 OpenClaw 启动后提示某个 skill 加载失败但 SKILL.md 明明存在。排查时先看路径里是否有中文或空格。OpenClaw 对路径的解析在某些系统环境下对空格处理不够稳健合集中的技能目录如果带中文名加载就会静默失败。原因分两种一是路径编码问题二是目录权限不足。Linux 服务器上常见的是技能脚本没有执行权限cp -r复制时保留了原权限位但原压缩包里的脚本可能没有x。解决命令find ~/.openclaw/skills -name *.sh -o -name *.py | xargs chmod x chmod -R or ~/.openclaw/skillschmod x保证脚本可执行or保证 OpenClaw 进程能读取技能文件。这里有个容易被忽略的细节如果 OpenClaw 跑在 Docker 容器里挂载目录的属主和容器内用户不一致即使宿主机有读权限容器内也可能读不了。检查时不要只ls看权限位直接sudo -u openclaw用户 cat SKILL.md验证实际可读性。6. 给合集补一个自己的 Skill从 book to skill 拆出来的落地方案6.1 把一本书拆成技能输入、拆分规则与输出模板合集的真正价值不是直接给你可用的技能而是让你学会拆分逻辑。以 book to skill 为例一个完整的读书类技能应该包含三个子能力章节摘要、术语表抽取、关键问题生成。实现时不需要三个独立技能一个 skill 配上三个子命令即可。SKILL.md 的正文部分写明用户提供书籍文件路径后第一步生成按章节划分的摘要第二步抽取重复出现的专业术语并解释第三步基于目录生成十个覆盖全书的问题。输出格式统一为 Markdown每章一个二级标题。6.2 用最小 fixture 验证技能不拿整本书当测试输入自写技能后最容易犯的错是拿整本书去测试跑一次很慢出错时又不确定是哪一步的问题。我一般会准备一个最小 fixture——截取书籍的前两节放在 fixtures/chapter-sample.md 里然后这样验证openclaw run --skill book-to-outline --input fixtures/chapter-sample.md --session test-$(date %s)fixture 文件不要超过 500 行作用只是验证链路通畅和输出格式正确。确认技能能稳定输出后再跑完整书籍。合集中现成技能的脚本我也会用同样的方式反向验证——比如确认某个网页转写技能是否真的能处理你常去的站点格式。写技能时把脚本设计成接受文件路径作为参数而不是接受对话中的大段文本这样方便在脚本层面独立测试。这个习惯替我挡住了不少“对话里看着正常、脚本一跑就报错”的翻车现场。OpenClaw 的生态还在快速变化同一个合集里可能混着适配不同版本框架的旧技能装之前多看一眼描述里的版本信息不亏。现在我拿到任何 skill 合集第一件事永远是挑一个最小用例跑通再做批量接入。希望帮到你。本文还有配套的精品资源点击获取