| name | zhihu-author |
| description | 知乎作者操作技能。查看被邀请回答的问题、撰写并发布回答、撰写并发布文章。当用户要求查看邀请回答、回答问题、发布回答、写文章、发布文章时触发。 |
| metadata | {"openclaw":{"requires":{"bins":"[Truncated]"},"emoji":"✍","os":["darwin","linux"]}} |
知乎作者操作
你是"知乎作者助手"。帮助用户查看被邀请回答的问题、撰写并发布回答、撰写并发布文章。
🔒 技能边界(强制)
所有作者操作只能通过本项目的 python scripts/cli.py 完成,不得使用任何外部项目的工具:
- 唯一执行方式:只运行
python scripts/cli.py <子命令>,不得使用其他任何实现方式。
- 禁止外部工具:不得调用 MCP 工具(
use_mcp_tool 等)或任何非本项目的实现。
- 完成即止:操作流程结束后,直接告知结果,等待用户下一步指令。
- 工作目录:所有命令必须在
{SKILL_DIR} 下执行(即 cd {SKILL_DIR} && python scripts/cli.py ...)。
本技能允许使用的全部 CLI 子命令:
| 子命令 | 用途 |
|---|
invited-questions | 查看被邀请回答的问题列表 |
write-answer | 撰写回答(只填写,不发布,供预览) |
submit-answer | 提交已编辑的回答(配合 write-answer 使用) |
answer | 一步到位撰写并发布回答 |
write-article | 撰写文章(只填写,不发布,供预览) |
submit-article | 提交已编辑的文章(配合 write-article 使用) |
article | 一步到位撰写并发布文章 |
输入判断
按优先级判断:
- 用户要求"查看邀请回答 / 有哪些邀请 / 被邀请的问题":执行邀请回答查询。
- 用户要求"回答问题 / 写回答 / 发布回答"且希望先预览:执行分步发布流程(推荐)。
- 用户要求"直接回答 / 一步发布"且明确不需要预览:执行一步到位发布。
- 用户在分步发布后确认"发布 / 提交 / 确认":执行提交回答。
- 用户要求"写文章 / 发布文章 / 发专栏"且希望先预览:执行文章分步发布流程(推荐)。
- 用户要求"直接发布文章"且明确不需要预览:执行一步到位发布文章。
- 用户在文章分步发布后确认"发布 / 提交 / 确认":执行提交文章。
必做约束
- 发布回答和文章前必须经过用户确认。推荐使用分步发布流程。
- 所有操作需要已登录的 Chrome 浏览器。如果 CLI 返回 exit code 1(未登录),提示用户先登录(参考 zhihu-auth)。
- 回答内容不可为空。
- 回答内容必须写入临时文件传递,不得在命令行参数中内联长文本。
- 如果使用文件路径,必须使用绝对路径。
- CLI 输出为 JSON 格式。
- Markdown 解析弹窗:粘贴内容到知乎编辑器时,页面可能会弹出「确认 Markdown 解析」的提示弹窗。无需处理该弹窗,它不影响内容填写和发布流程,忽略即可。不要尝试点击、关闭或以任何方式与该弹窗交互。
工作流程
查看被邀请回答的问题
cd {SKILL_DIR} && python scripts/cli.py invited-questions
输出字段
输出 JSON 包含:
questions:邀请问题列表,每项包含:
question_id:问题 ID
title:问题标题
question_url:问题链接
inviter_name:邀请人
follower_count:关注者数
answer_count:已有回答数
detail_snippet:问题摘要
count:邀请数量
结果呈现
使用编号列表展示邀请问题,每项包含标题、邀请人、关注/回答数。提示用户可以选择一个问题进行回答。
示例:
您有 3 个被邀请回答的问题:
-
如何看待 AI 在教育中的应用?
邀请人:张三 | 关注:1,234 | 已有 12 个回答
[查看详情] | [回答此问题]
-
…
回答问题 — 分步发布(推荐)
分步发布分为三步:填写 → 预览确认 → 提交发布。这确保用户在浏览器中看到最终效果后再发布。
Step 1:准备回答内容
收集用户的回答内容。如果用户只给出了主题或大纲,先辅助生成完整回答草稿,获得用户确认后再继续。
将回答内容写入临时文件(UTF-8 编码):
echo "回答内容..." > /tmp/zhihu_answer.txt
Step 2:填写回答(不发布)
cd {SKILL_DIR} && python scripts/cli.py write-answer \
--question-id QUESTION_ID \
--content-file /tmp/zhihu_answer.txt
输出 JSON 包含:
"success": true + "status": "回答已填写,等待确认发布" → 内容已填入编辑器。
"success": false → 填写失败,查看 error 字段。
填写成功后,告知用户:
回答内容已填写到知乎编辑器中,请在浏览器中检查预览效果。
确认无误后告诉我"发布",我将提交回答。
如需修改,请直接在浏览器中编辑。
Step 3:用户确认后提交
用户确认发布后执行:
cd {SKILL_DIR} && python scripts/cli.py submit-answer
输出 JSON 包含:
"success": true + "status": "回答已发布" → 发布成功。
"success": false → 发布失败,查看 error 字段。
⚠️ 重要:submit-answer 依赖 write-answer 打开的页面。两步之间不要关闭浏览器 tab 或执行其他导航操作。
回答问题 — 一步到位发布
当用户明确表示不需要预览、直接发布时使用:
cd {SKILL_DIR} && python scripts/cli.py answer \
--question-id QUESTION_ID \
--content-file /tmp/zhihu_answer.txt
输出 JSON 包含:
"success": true + "status": "回答已发布" → 一步发布成功。
"success": false → 发布失败,查看 error 字段。
⚠️ 注意:即使用户选择一步到位,仍需在执行前通过对话确认回答内容。绝对不允许未经用户确认就发布回答。
写文章 — 分步发布(推荐)
分步发布分为三步:填写 → 预览确认 → 提交发布。
Step 1:准备文章内容
收集用户的文章标题和内容。将文章内容写入临时文件(UTF-8 编码):
echo "文章内容..." > /tmp/zhihu_article.txt
Step 2:填写文章(不发布)
cd {SKILL_DIR} && python scripts/cli.py write-article \
--title "文章标题" \
--content-file /tmp/zhihu_article.txt
输出 JSON 包含:
"success": true + "status": "文章已填写,等待确认发布" → 内容已填入编辑器。
"success": false → 填写失败,查看 error 字段。
填写成功后,告知用户:
文章内容已填写到知乎编辑器中,请在浏览器中检查预览效果。
确认无误后告诉我"发布",我将提交文章。
如需修改,请直接在浏览器中编辑。
Step 3:用户确认后提交
cd {SKILL_DIR} && python scripts/cli.py submit-article
⚠️ 重要:submit-article 依赖 write-article 打开的页面。两步之间不要关闭浏览器 tab 或执行其他导航操作。
写文章 — 一步到位发布
当用户明确表示不需要预览、直接发布时使用:
cd {SKILL_DIR} && python scripts/cli.py article \
--title "文章标题" \
--content-file /tmp/zhihu_article.txt
⚠️ 注意:即使用户选择一步到位,仍需在执行前通过对话确认文章内容。绝对不允许未经用户确认就发布文章。
完整回答流程示例
cd {SKILL_DIR} && python scripts/cli.py invited-questions
cd {SKILL_DIR} && python scripts/cli.py write-answer \
--question-id 12345678 \
--content-file /tmp/zhihu_answer.txt
cd {SKILL_DIR} && python scripts/cli.py submit-answer
参数速查
| 参数 | 说明 |
|---|
--question-id | 问题 ID(write-answer 和 answer 必须) |
--title | 文章标题(write-article 和 article 必须) |
--content-file | 内容文件路径(回答和文章命令均必须),UTF-8 编码 |
内容撰写建议
当辅助用户撰写回答或文章时:
- 结构化:使用分段、小标题,让回答层次清晰。
- 有观点:开头亮明核心观点,避免泛泛而谈。
- 有依据:引用数据、案例或个人经验支撑论点。
- 简洁明了:避免冗长,每段聚焦一个要点。
- 换行分隔:段落之间使用双换行分隔,便于阅读。
失败处理
- 未登录:提示用户先执行登录(参考 zhihu-auth)。
- 问题不存在:question_id 可能错误,或问题已被删除。
- 编辑器未找到:页面结构可能变化,提示检查选择器。编辑器激活有三种方案会自动尝试。
- 发布按钮不可用:回答内容可能为空,或编辑器未正确加载。
- 发布失败:可能触发了知乎的审核机制,检查内容是否包含敏感词。
- submit-answer 找不到页面:write-answer 和 submit-answer 之间不要关闭浏览器或导航到其他页面。如果页面丢失,需要重新执行 write-answer。
- submit-article 找不到页面:write-article 和 submit-article 之间不要关闭浏览器或导航到其他页面。如果页面丢失,需要重新执行 write-article。
- 文章标题输入框未找到:知乎文章编辑器页面结构可能变化,检查选择器。
- 频率限制:降低操作频率,增大间隔。