ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw 配 TaoToken:用 stock-analyzer Skill 搭一套飞书炒股 Agent

OpenClaw 配 TaoToken:用 stock-analyzer Skill 搭一套飞书炒股 Agent 1. 从「帮我炒股」到飞书日报OpenClaw Agent 的真实落地场景很多人第一次听到 OpenClaw 配 TaoToken 做炒股 Agent脑子里浮现的是「AI 自动下单、躺着赚钱」。先把预期拉回来这套链路能帮你做的是行情采集、技术面分析、策略汇总、日报推送它不碰你的交易账户也不替你做买卖决策。适合谁适合每天想看一份结构化行情日报、又不想手动翻十几个页面的开发者适合已经在用 OpenClaw 跑 Agent、想接一个真实数据场景练手的人也适合想把「多 Agent 协作」从概念跑成闭环的团队。核心检索词先摆清楚OpenClaw 是一个支持 Skill 扩展的 Agent 运行框架TaoToken 提供统一的 Key/API 通道stock-analyzer 是我们要接入的行情分析 Skill飞书 Webhook 是最终消息落地的出口。整条链路是OpenClaw 加载 stock-analyzer Skill → 通过 TaoToken 统一通道调用模型 → 模型输出分析结果 → Agent 组装成日报 → POST 到飞书机器人 Webhook → 你手机收到消息。我试过把四个角色塞进一个 Skill 里结果那个 Skill 又呆又慢分析质量也差。后来拆成采集、分析、策略、播报四段每段职责单一输出格式固定整条链路才稳。这篇就按这个拆法给你 config.toml 骨架、Skill 配置、飞书 Webhook 参数以及一次可复现的行情查询验证动作。2. TaoToken 前置统一 Key 与 API 通道怎么准备TaoToken 在这套链路里的角色是「统一入口」。你不用为每个模型、每个 Skill 单独维护一套鉴权OpenClaw 里所有 Agent 的模型调用都走同一个 API 通道Key 也只管一份。这对多 Agent 场景特别重要——四个 Agent 如果各自配 Key轮换和排障会让人崩溃。先拿到你的 Key。访问控制台创建https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsole创建后在 API Keys 页面复制注意它只完整显示一次https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keysAPI 基地址统一用https://taotoken.net/api这个地址不加任何 UTM 参数直接写进配置即可。接入文档在这里遇到字段疑问先查它https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc注意Key 不要硬编码进 Skill 的 Markdown 或提交到 Git。用环境变量注入OpenClaw 启动时读取。这是最低限度的安全习惯。如果你后面要跑长期编码或 Agent 常驻任务可以了解 Coding Plan它更适合高频调用的场景https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan3. 可复制配置config.toml 与 stock-analyzer Skill 骨架3.1 config.toml 骨架OpenClaw 的模型通道配置写在 config.toml 里。下面这份是能直接改用的骨架重点看[model]和[skills]两段# ~/.openclaw/config.toml [model] provider taotoken base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} # 从环境变量读取 default_model claude-sonnet-4-20250514 timeout_seconds 120 max_retries 3 [agent] name stock-team workspace ./workspace/stock log_level info [skills] enabled [stock-analyzer] skill_dir ./skills [skills.stock-analyzer] schedule 0 30 9 * * * # 每天 09:30 触发 timezone Asia/Shanghai feishu_webhook ${FEISHU_WEBHOOK_URL} watch_list [300750, 603019, 600036, 600519, 002594]环境变量在启动前导出export TAOTOKEN_API_KEYsk-你的Key export FEISHU_WEBHOOK_URLhttps://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx3.2 stock-analyzer Skill 骨架Skill 目录结构建议这样组织四个角色各一个文件避免单文件膨胀skills/stock-analyzer/ ├── SKILL.md ├── collector.md ├── analyst.md ├── strategist.md └── reporter.mdSKILL.md 负责声明协作流程把四个子角色串起来--- name: stock-analyzer description: A股行情采集、技术分析、策略汇总并推送飞书日报 version: 1.0.0 entry: collector pipeline: - collector - analyst - strategist - reporter --- # stock-analyzer ## 协作规则 1. collector 完成后将结构化行情数据传给 analyst 2. analyst 输出技术面结论传给 strategist 3. strategist 输出选股与风险建议传给 reporter 4. reporter 组装日报POST 到飞书 Webhook ## 安全约束 - 禁止调用任何交易下单接口 - 所有输出必须附带风险提示 - 数据仅用于分析展示不构成投资建议collector.md 定义采集员的输入输出关键是输出必须是结构化 JSON否则下游解析会崩--- role: collector input: watch_list output: market_snapshot.json --- # 数据采集员 ## 职责 抓取 watch_list 中标的的行情数据最新价、涨跌幅、成交量、换手率、均线位置。 ## 输出格式 json { date: 2026-03-22, index: {sh: 0.85%, cyb: 0.67%}, stocks: [ {code: 300750, name: 宁德时代, price: 0, change: 0%, volume: 0} ] }约束数据缺失时字段填 null不要编造采集失败重试 2 次后上报错误analyst.md 和 strategist.md 同理各自声明 input 和 output。reporter.md 里写飞书推送逻辑 markdown --- role: reporter input: strategy_result.json output: feishu_message --- # 日报播报员 ## 职责 将策略结果组装为飞书富文本消息POST 到 config.toml 中配置的 feishu_webhook。 ## 消息模板 标题 {date} 股票日报 正文市场概览 选股列表 技术面 风险提示 ## 约束 - 单条消息不超过 4000 字符 - 必须包含「不构成投资建议」声明3.3 飞书 Webhook 参数飞书自定义机器人的 Webhook 地址形如https://open.feishu.cn/open-apis/bot/v2/hook/你的token推送时用 POSTContent-Type 为application/json最小可用 body{ msg_type: text, content: { text: 2026-03-22 股票日报\n\n上证 0.85%创业板 0.67%\n\n选股宁德时代买入、中科曙光买入\n\n风险提示仓位控制 60% 以内不构成投资建议。 } }如果你想要卡片样式把msg_type换成interactivecontent换成卡片 JSON。先用 text 类型跑通再升级样式排障会简单很多。4. 验证请求一次可复现的行情查询动作配置写完别急着等定时任务先手动触发一次确认整条链路通。用 curl 直接验证 TaoToken 通道是否可用curl -X POST https://taotoken.net/api/v1/messages \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 512, messages: [ {role: user, content: 用一句话分析宁德时代当前技术面输出JSON格式{\trend\:\\,\support\:\\,\resistance\:\\}} ] }返回里能看到模型输出说明 Key 和通道没问题。接着手动跑一次 Skillopenclaw skill run stock-analyzer --once --verbose--once表示立即执行一次不走定时--verbose打印每个 Agent 的输入输出。正常的话你会看到四段日志依次出现collector 输出 JSON、analyst 输出技术面、strategist 输出选股、reporter 推送成功。飞书那边应该收到一条消息内容类似2026-03-22 股票日报 市场概览上证 0.85%创业板 0.67%热点在 AI 算力与新能源。 选股建议 - 宁德时代买入放量突破新能源龙头 - 中科曙光买入AI 算力核心标的 - 招商银行买入估值修复波动较小 - 贵州茅台观望估值偏高等回调 - 比亚迪观望短期涨幅偏大 技术面趋势震荡上行支撑 3200压力 3300量能温和放大。 风险提示仓位控制 60% 以内注意外资流向。本内容不构成投资建议。收到这条消息闭环就算跑通了。想单独验证模型对话效果可以用模型对话页面直接测https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentchat5. 本篇常见错排查5.1 401 UnauthorizedKey 没读到最常见的原因是环境变量没导出或者 config.toml 里写的是字面量${TAOTOKEN_API_KEY}但启动进程没继承环境。检查方式echo $TAOTOKEN_API_KEY如果为空说明当前 shell 没导出。写进~/.bashrc或~/.zshrc后重新 source。另外确认 Key 没有多余空格复制时容易带上换行。5.2 Skill 加载失败目录或 frontmatter 问题报skill not found时先确认skill_dir路径是绝对路径还是相对路径。相对路径是相对于 OpenClaw 启动目录不是 config.toml 所在目录。再检查 SKILL.md 的 frontmatter 是否合法pipeline里的角色名必须和文件名去掉.md后一致大小写敏感。5.3 飞书收不到消息Webhook 或格式问题先单独测 Webhookcurl -X POST $FEISHU_WEBHOOK_URL \ -H Content-Type: application/json \ -d {msg_type:text,content:{text:test}}返回{code:0}说明 Webhook 正常问题在 reporter 的消息组装。常见坑是消息体里带了未转义的换行或引号导致 JSON 解析失败。用jq校验一下再发echo $MESSAGE_JSON | jq .5.4 下游 Agent 解析失败上游输出不是纯 JSONcollector 如果输出了「好的以下是数据{...}」这种带前后缀的内容analyst 解析就会崩。解决办法是在 collector.md 里明确要求「只输出 JSON不要任何解释文字」并在 pipeline 里加一层校验。如果模型偶尔不听话可以在 Skill 里加一个sanitize步骤用正则提取第一个{到最后一个}之间的内容。5.5 定时任务不触发时区或 cron 表达式0 30 9 * * *是六段式秒 分 时 日 月 周表示每天 09:30:00。如果你写的是五段式OpenClaw 可能按不同解析器处理。另外确认timezone字段生效否则可能按 UTC 跑你会在下午才收到日报。6. 把链路固定下来然后持续迭代跑通一次之后建议先把--once手动模式用几天观察输出质量再开定时。日报内容不用追求多专业够用就行——市场概览、选股列表、技术面、风险提示四块齐全你早上扫一眼就知道今天大概什么情况。想继续深挖的话两个方向一是把 collector 的数据源换成更稳定的接口减少字段缺失二是给 strategist 加历史回看让它参考前几天的判断做连续性分析。长期跑 Agent 任务的话Coding Plan 在高频调用下更划算https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan最后再强调一次那条底线不要让 Agent 碰交易接口。分析归分析下单归下单这两件事之间的墙必须砌死。你给它清晰的策略它帮你执行分析你给它模糊的指令它帮你精准地亏钱。市场明天还在先把系统跑稳。
返回列表