用户给一个 选题 → 小龙虾 爬取信息、整理成深度有创新的文章 → 展示给用户 → 用户说\\「确定」「发布」\\ → 小龙虾用脚本在知乎写文章页 自动填入标题和正文并点击发布。你只需登录知乎并点一次确定。
严禁在同一轮内既「爬取+成文」又「写文件+exec 发布」。单轮耗时过长会导致 request timed out。
必须拆成两轮:
/tmp/zhihu_body.md + exec 发布脚本(带 timeout 90000)」,不再重复爬取或成文。即使用户一次说「爬取最新 AI 动态并发布到知乎」,你也 先只完成爬取和成文并展示,等用户说「发布」后再执行发布。
飞书 / 易超时环境下的「轻量第一轮」:当用户说「爬取最新动态」并写知乎时,第一轮 不要 做大量爬取+整篇长文(容易单轮超时)。改为: 至多 1~2 次 web_fetch,然后产出 短稿(约 500~800 字)或「大纲 + 首段」,先快速回复;并说明:「这是首稿/大纲,需要全文请回复『展开成全文』,要发布请回复『发布』。」用户回复后再补全或发布,可显著降低 request timed out。
开放平台: https://dev.zhihu.com/ — 注册应用、OAuth 2.0 获取 access_token。 注意:知乎发布 API 目前仅对内侧用户开放,多数用户无法使用。
发布文章接口(内侧):一般为 POST https://api.zhihu.com/v4/articles。未开放前请用下方「网页端直接发布」。
本 skill 发布方式:
ZHIHU_ACCESS_TOKEN,使用 scripts/publish_via_api.sh。scripts/publish_article.sh,在 已打开的知乎写文章页 上填表并点击发布;配合 Browser Relay 可大幅缩短耗时、降低 request timed out(见下)。与 ClawHub 上的知乎发帖 skill 思路一致: 在网页端直接发布,由 Agent 控制已打开的浏览器标签页完成填表与点击,无需知乎开放 API。
推荐流程(耗时短、不易超时):
openclaw browser extension install,在 Chrome 加载该扩展;详见 Chrome extension (browser relay)。ZHIHU_ALREADY_ON_EDITOR=1,脚本 不再 打开知乎、不再点击「写文章」,只做:snapshot → 填标题 → 填正文 → 点发布。整体耗时可从 30~90 秒降到约 10~20 秒,显著降低飞书等环境的 request timed out。exec 示例(已打开写文章页时):
json
{"tool": "exec", "args": {"command": "ZHIHU_ALREADY_ON_EDITOR=1 bash ~/.openclaw/workspace/skills/zeelin-zhihu-autopost/scripts/publish_article.sh \"文章标题\" /tmp/zhihu_body.md", "timeout": 60000}}
可选:用 browser 工具分步发布(不用 exec 脚本):若当前已 attach 知乎写文章页,可依次调用: browser snapshot → 从 snapshot 中找标题输入框与正文编辑区的 ref → browser type/fill 填入标题和正文 → browser snapshot 找发布按钮 ref → browser click 发布。每一步为单独工具调用,适合希望完全用 browser 控制的场景。
exec 或 browser 打开 https://www.zhihu.com ,让用户完成登录。若使用 网页端直接发布 + Browser Relay,用户在自己 Chrome 打开知乎写文章页并挂上扩展即可。ZHIHU_ALREADY_ON_EDITOR=1 可跳过导航,减少超时。用户给出选题(一句话或一个方向)。若未给,询问:「请给一个知乎文章选题或方向。」
优先用 web_fetch 抓取与选题相关的网页(如科技媒体、知乎话题页等 URL),获取最新内容。若 web_search 不可用(如缺少 Brave API 密钥), 不要 因此放弃任务:用 web_fetch 抓取你已知的新闻/资讯链接,或基于已有知识成文。
整理成一篇 深度、有创新、结构清晰 的文章(建议 1500~4000 字):
不要 在未获得用户确认前就发布。
把 标题 和 正文全文 发给用户,并说明:
「这是根据选题整理的文章。请先登录知乎(若尚未登录)。确认无误后回复 『确定』或『发布』,我会帮你在知乎上自动填入并发布。」
4.1 必须先写入正文文件(否则会报「正文文件不存在」)
在调用发布脚本 之前,必须把确认后的 正文全文 写入一个文件,例如 /tmp/zhihu_body.md 或 workspace 内路径(如 ~/.openclaw/workspace/zhihu_draft_body.md)。用 write 工具或 exec 写入均可,确保文件存在且内容为 Markdown 正文。
4.2 再执行发布脚本
先写正文到 /tmp/zhihu_body.md,再 exec 发布脚本。
json
{"tool": "exec", "args": {"command": "bash ~/.openclaw/workspace/skills/zeelin-zhihu-autopost/scripts/publish_via_api.sh \"文章标题\" /tmp/zhihu_body.md", "timeout": 30000}}
ZHIHU_ALREADY_ON_EDITOR=1,timeout 可设 60000;否则完整流程需 timeout 90000 或 120000:json
{"tool": "exec", "args": {"command": "ZHIHU_ALREADY_ON_EDITOR=1 bash ~/.openclaw/workspace/skills/zeelin-zhihu-autopost/scripts/publish_article.sh \"文章标题\" /tmp/zhihu_body.md", "timeout": 60000}}
或(未预先打开写文章页时):
json
{"tool": "exec", "args": {"command": "bash ~/.openclaw/workspace/skills/zeelin-zhihu-autopost/scripts/publish_article.sh \"文章标题\" /tmp/zhihu_body.md", "timeout": 90000}}
❌ 错误:未先写入文件就直接执行(会报「正文文件不存在」);或浏览器方式未传 timeout 导致 request timed out。
✅ 正确:先写正文到 /tmp/zhihu_body.md,再 exec;已打开写文章页时加 ZHIHU_ALREADY_ON_EDITOR=1 可缩短耗时。
根据 exec 输出告诉用户:发布成功 / 失败;若失败,提示用户检查是否已登录、是否在写文章页,或重试。
操作命令与 timeoutAPI 发布(需 ZHIHU_ACCESS_TOKEN,仅内侧可用)bash .../publish_via_api.sh "标题" /tmp/zhihu_body.md,args 加 "timeout": 30000网页端发布(已打开写文章页 + Relay)ZHIHU_ALREADY_ON_EDITOR=1 bash .../publish_article.sh "标题" /tmp/zhihu_body.md,args 加 "timeout": 60000浏览器发布(从零打开页)bash .../publish_article.sh "标题" /tmp/zhihu_body.md,args 加 "timeout": 90000浏览器发布(标题 + stdin)cat body.md | bash .../publish_article.sh "标题" -,args 加 "timeout": 90000
ZHIHU_ALREADY_ON_EDITOR=1,只做填表+点击,约 10~20 秒,不易超时。/tmp/zhihu_body.md),再传该路径给脚本,否则会报「正文文件不存在」。openclaw browser:打开页面、snapshot 找元素、type/fill、click 发布。