| name | zhiforge |
| description | 知炼 - 将知识库(Markdown博客)智能转化为知乎回答并自动发布。支持搜索热点问题、匹配知识库、撰写文章、自动发布、质量审核、回存知识库的完整闭环。 |
| user-invocable | true |
| metadata | {"openclaw":{"emoji":"🔥"}} |
知炼 (ZhiForge) — 知识库 → 知乎回答 完整闭环
配置
配置文件:{baseDir}/.claude/settings.json
{
"knowledge_base": "/path/to/markdown/files",
"blog_url": "https://your-blog.github.io",
"blog_repo": "/path/to/blog/git/repo",
"author": {
"zhihu_name": "你的知乎昵称",
"wechat_official": "你的公众号",
"bio": "你的简介"
},
"expertise": ["AI 编程", "Claude Code"],
"high_match_topics": ["vibe-coding", "AI 辅助开发"]
}
完整流程(全自动,不问用户)
当用户说"知乎文章"、"zhiforge"、"自动发知乎"等触发词时,执行以下完整流程:
⚠️ 核心策略(2026-03-03 更新)
- 发专栏深度文章 + 关联热门问题(文章关联问题能涨粉,纯专栏曝光不够)
- 不单独写回答,只写文章,但文章要关联匹配的问题
- 知乎定位:专业信誉背书 + 间接引流(不是赚致知盐粒)
- 致知计划排除 AI 创作和导流内容,不作为收益目标
- anti-AI 检查是为了防降权,不是为了过致知审核
Step 1: 读取配置
- 读取
{baseDir}/.claude/settings.json 获取知识库路径、作者信息
- 读取
{baseDir}/CLAUDE.md 获取博客文章索引
Step 2: 获取已发布列表(去重)
- 用 browser 打开
https://www.zhihu.com/creator/manage/creation/article
- 获取已发布文章标题列表
Step 3: 选题
来源(优先级从高到低):
- 知乎热点搜索:用专业领域关键词搜索当天热门话题
https://www.zhihu.com/search?type=content&q=...
- 知识库驱动:基于博客文章找有深度可写的主题
- 手动指定:用户直接给出主题
选题标准:
- 聚焦 OpenClaw Agent / Vibe Coding / AI编程实战
- 有深度、有实操、有踩坑细节
- 排除已发布过的(标题相似度 > 80%)
Step 4: 匹配知识库
- 搜索 knowledge_base 目录中的 .md 文件
- 根据选题关键词匹配相关文章
- 读取匹配的博客内容作为素材
- 匹配度低的跳过,找下一个问题
Step 5: 撰写文章
商业目标:知识分享 → 引流加V → 付费咨询(366元/次已验证)→ 粉丝圈层
内容聚焦:OpenClaw Agent 和 Vibe Coding 为核心方向
写作风格(保持老拐风格):
- 开门见山,先给结论
- 用实际案例说话(引用博客中的项目经验)
- 技术内容要落地可执行
- 代码块标注语言
- 重点用 加粗
- 结尾引导:
有问题可以私信我 / 评论区聊
- 绝对禁止:文中/评论区提博客链接、公众号名称、微信号(知乎会限流/删回答)
- 引流暗语:只说"私信我",不提任何站外平台
去 AI 味(核心,必须严格执行)
写完文章后,必须读 references/anti-ai.md 逐条过检查。 该文件是技术文章专用的去 AI 味手册(区别于小说版),包含:
- 第一层:句式级 — 通用禁用句式 + 技术文章特有 AI 句式("X 是一种强大的工具"等)
- 第二层:段落/结构级 — 结构太工整、观点太平衡、代码太教科书
- 第三层:内容级 — 缺具体踩坑细节、没有时间线和情绪、数据太精确
- 第四层:语气级 — 人味制造技法 + 避免讲师腔/官方腔/鸡汤腔
- 终极检测流程(4 步扫描 + V2EX/掘金测试)
速查禁用句式(完整列表见 anti-ai.md):
# 通用 AI 八股
❌ "不是A,而是B" / "与其说A,不如说B" / "这不仅仅是A,更是B"
❌ "某种意义上来说" / "在这个A的时代" / "值得一提的是"
❌ "不得不说" / "毫无疑问" / "A,而非B" / "某种程度上"
❌ "事实上"作为段落开头 / "然而"作为段落开头(全文最多2次)
❌ "总的来说" / "综上所述" / "希望这篇文章对你有所帮助"
❌ "首先……其次……最后……"(三段论八股)
# 技术文章特有
❌ "X 是一种强大的工具/框架" / "X 为开发者提供了……"
❌ "在实际开发中,我们通常会……"(伪经验)
❌ "选择 X 还是 Y 取决于具体需求"(万能废话)
❌ "随着 X 的不断发展……" / "X 的核心理念是……"
❌ "总结出一个核心实践/方法论/最佳实践"(培训PPT腔)
# 排版指纹(不是句式,但一样暴露 AI)
❌ 括号注释排比:连续 3 个 "XX(解释),YY(解释),ZZ(解释)"
❌ 加粗金句段过多:全文超过 3 个加粗独句段 = PPT感
❌ "第一步→第二步→第三步" 编号标题:去掉编号,用自然过渡
技术类回答的人味制造技法:
- 偶尔口语化:"就……怎么说呢""反正就那么个意思""说白了就是"
- 偶尔自嘲/吐槽:"我当时也觉得离谱""踩了这个坑之后我悟了"
- 偶尔跑题再绕回来:"扯远了,说回正题""对了这里插一句"
- 不完美的表达:用"差不多"但不精确的词,句子偶尔写拧了但意思到了
- 偏执和执念:对某个技术点有不成比例的关注,反复强调
- 留白:不解释"为什么这样做",直接给结论。读者自己品。
终极检测: 随机抽3段,想象匿名发在V2EX/掘金。会不会有人说"AI写的"?如果有1%的可能,那段必须改。
将文章写入 workspace/stories/zhihu/YYYY-MM-DD-<slug>.md(持久化存储,不用 /tmp/)
Step 5b: 博客直发模式(从已有博客文章发布)
当用户指定一篇已有的博客文章(而非自动匹配生成)时:
- 读取博客原文
- 适当改写为知乎风格(去掉 Jekyll frontmatter、调整格式、加知乎引导语)
- 不需要大幅重写——博客本身就是知识库内容
- 保存到
workspace/stories/zhihu/YYYY-MM-DD-<slug>.md
- 跳到 Step 6 发布
Step 6: 发布文章
必须使用专栏页面发布(避免反爬):
6a. 准备文件
- 将 markdown 文件复制到浏览器上传目录:
/var/folders/zp/8m3zqqgj2fb0_njgh6scd8qm0000gn/T/openclaw-501/uploads/
必须! browser upload 工具只能读取这个目录下的文件。
6b. 导入 Markdown
- 打开
https://zhuanlan.zhihu.com/write(每次新页面,导入是追加不是替换)
- snapshot 获取页面结构
- 找到并点击 "导入" 按钮(通常在工具栏区域,文字为"导入")
- 在弹出的下拉/菜单中,点击 "导入文档"
- 此时会触发文件选择对话框 → 使用
browser action=upload paths=["/path/to/uploads/xxx.md"]
- 等待 2-3 秒,正文区域出现导入内容
- snapshot 确认正文已有内容
6c. 填写标题
- 找到标题输入框(placeholder 通常为"请输入标题")
- click 聚焦标题框
- type 输入标题文字
6d. 投稿至问题(可选但强烈推荐)
- 在页面右侧或底部找到"投稿至问题"区域
- 如果是折叠的,先 click 展开
- 在搜索框中 type 输入问题关键词(2-4 个字即可,太长搜不到)
- 等待 1-2 秒出现搜索结果
- 在结果列表中找到目标问题,点击 "选择" 按钮
- 确认问题已选中(显示问题标题)
6e. 发布
- 点击 "发布" 按钮
- 如果弹出确认对话框(如话题选择),按需处理后确认
- 等待页面跳转,URL 变为
zhuanlan.zhihu.com/p/xxxxx 表示成功
- 记录发布链接
关键坑点:
- 文件必须在 uploads 目录:browser upload 无法读取其他路径
- 不能直接 fill 正文,markdown 语法会变纯文本 → 必须用导入
- 导入是追加不是替换 → 每次打开新的 write 页面
- 投稿至问题的搜索框是 combobox → 先 click 聚焦再输入
- 搜索关键词不宜太长,2-4 个核心词效果最好
- 对话框用 Escape 关闭
- 发布按钮可能 disabled → 要等标题和正文都有内容
- 发布后默认开启赞赏(送礼物设置 → 开启)
Step 7: 质量审核(交叉验证)
发布后,用另一个模型(如 qwen)审核文章质量:
- 标题吸引力、开头力度、论据充实度
- 逻辑结构、知乎风格匹配、结尾引导
- 总分和改进建议
使用 sessions_spawn + 不同 model 参数来实现交叉验证。
Step 8: 回存知识库(闭环)
如果质量审核通过:
- 在文章开头加上 Jekyll frontmatter(layout: post、title、date、tags)
- 保存到
blog_repo/_posts/YYYY-MM-DD-标题.md
git add + git commit + git push origin master
- 注意:blog repo 的默认分支是
master(不是 main)
这样知乎文章反向充实了博客知识库,形成正向循环。
博客直发模式下跳过此步(文章本来就来自博客)。
Step 9: 输出报告
✅ 发布成功
问题:[问题标题]
文章:[文章标题]
链接:https://zhuanlan.zhihu.com/p/xxxxx
参考博客:[博客文件名]
质量评分:[总分]/10
知识库:已回存 ✅
Browser 工具映射
所有页面操作使用 OpenClaw 的 browser 工具(profile="openclaw"):
| 操作 | 命令 |
|---|
| 启动浏览器 | browser action=start profile="openclaw" |
| 打开页面 | browser action=navigate targetUrl="..." |
| 获取内容 | browser action=snapshot compact=true |
| 点击 | browser action=act request={kind:"click", ref:"..."} |
| 输入 | browser action=act request={kind:"type", ref:"...", text:"..."} |
| 按键 | browser action=act request={kind:"press", key:"Escape"} |
| 上传文件 | browser action=upload paths=["/path/to/uploads/file"] |
| 截图 | browser action=screenshot |
| 等待 | browser action=act request={kind:"wait", timeMs:3000} |
| 关闭浏览器 | browser action=stop |
重要规则:
- 文件上传路径必须是 uploads 目录:
/var/folders/zp/8m3zqqgj2fb0_njgh6scd8qm0000gn/T/openclaw-501/uploads/
- 先
cp 文件到 uploads 目录,再用 browser action=upload
- 用完浏览器后必须
browser action=stop,不要让 Chrome 一直开着
其他命令
- "检查知乎邀请":只执行 Step 2-3,列出可回答问题
- "草拟知乎回答 [问题]":只执行 Step 4-5,不发布
- "知乎热点":搜索热点 + 全流程
- "发博客到知乎 [文件名/路径]":博客直发模式(Step 5b → 6 → 7),跳过知识库匹配
- "发到知乎 [问题URL]":指定问题投稿,跳过 Step 3 搜索
详细命令模板见 {baseDir}/.claude/commands/*.md
注意事项
- 全程自动执行,遇到问题自行决策或跳过
- 知识库匹配度低的问题要跳过,不要强行回答
- 保持作者风格:务实、不油腻、有干货
- 发布失败重试一次,仍失败则输出错误信息
- 连续 3 个问题都不合适则结束