ARTICLE · 1211695
我用 OpenClaw 搭了套掘金自动化写作流水线:选题到发布全自动
发布时间:2026-10-19 18:51:06 最近访问:2026-10-19 18:51:09
我用 OpenClaw 搭了套掘金自动化写作流水线:选题到发布全自动
我用 OpenClaw 搭了套掘金自动化写作流水线:选题到发布全自动AI Agent 帮你收集选题、分析竞品、写稿自检、标签匹配、自动发布——把重复劳动交给机器,把创作决策留给自己作为一个技术博主,每月在掘金发几篇文章,选题 → 写稿 → 排版 → 发布这一套流程至少花掉大半天;更糟的是热门活动话题经常错过——等想起来,活动都快结束了。作者用一个周末,基于 OpenClaw(AI Agent)把整条链路自动化了:从选题到发布全自动,但关键决策点(选哪个话题、文章核心观点、调性)仍保留人工确认——全自动,但不失控。
一、整体架构:一条流水线,五个环节
系统拆成五个串联模块,像工厂流水线一样首尾相接:
原则很清晰:信息收集、格式排版、定时发布 这类重复劳动交给 AI;选题方向、核心观点、文章调性 这类创造性决策留给自己。
二、第一环:自动获取活动话题
掘金没有官方话题 API,但搜索接口能拿到热门话题列表。每天定时跑,按三条规则筛选——① 优先有抽奖(参与有奖励)、② 匹配技术方向(不写生活八卦)、③ 避开已参与过的。结果推到飞书,人扫一眼就决定写哪个:
"""获取掘金热门话题列表(搜索接口,无官方 API)""" url = "https://api.juejin.cn/tag_api/v1/theme/list_by_hot" response = requests.post(url, headers=headers, json={}) for item in response.json()["data"]: "topic_id": theme["theme_id"], "is_lottery": theme.get("is_lottery", False), "user_cnt": theme["user_cnt"], # 筛选策略:优先有抽奖 + 技术方向 + 未参与过 return filter_and_rank(topics)三、第二环:竞品分析与差异化定位
选定话题后,自动抓该话题下热门文章,算平均点赞、提炼常见角度、找出空白机会。作者举例:别人都在横向对比各家产品功能,他的差异化切入是「让它们一起跑马拉松」——用同一套任务测不同 Agent 的连续工作能力,这个角度一出来,数据明显好于平均:
def analyze_competitors(topic_keyword, limit=10): articles = search_articles(topic_keyword, limit) "avg_digg": sum(a["digg_count"] for a in articles) / len(articles), "hot_titles": [a["title"] for a in articles[:3]], "common_angles": extract_content_angles(articles), "gap_opportunity": find_missing_angle(articles), # 别人没写的角度四、第三环:AI 辅助创作 + 人工校准
分层创作:先生成大纲 → 按章节分段写(第一人称叙述、具体场景+代码示例、有情绪起伏)→ 写完后自动自检。自检重点查 AI 痕迹:过于规整的「首先/其次/最后」、套话「值得注意的是」、长句过多没口语短句。查出来自动标注,人工再调:
"""写完后自动过一遍:查 AI 痕迹、字数、代码块、链接""" "ai_trace": check_ai_patterns(article), # 套话/规整结构检测 "word_count": len(article) >= 2000, # 字数达标 "code_blocks": count_code_blocks(article), "links_valid": validate_links(article), return checks # 命中问题自动标注,人工再调五、第四环:智能标签匹配
标签直接影响推荐流量,必须精准。匹配器加载掘金标签库,提取关键词算相关度,返回 top5。一篇讲 OpenClaw 自动化的文章会推荐:Agent / 程序员 / 微服务 / 自动化 / AI:
def match_tags(title, content, category="人工智能"): """基于内容匹配掘金热门标签,返回 top5""" tag_library = load_juejin_tags() # 加载标签库 keywords = extract_keywords(title + " " + content) score = calculate_relevance(tag, keywords, category) matches.append((tag, score)) return sorted(matches, key=lambda x: x[1], reverse=True)[:5]# 例:一篇 OpenClaw 自动化文章 -> Agent/程序员/微服务/自动化/AI六、第五环:自动发布与数据归档
用 Playwright 模拟浏览器操作,自动完成登录→进发布页→填标题正文摘要→选分类标签→关联话题→点发布;发布后自动验证状态、更新飞书多维表、发通知:
def publish_article(title, content, brief, category, tags, topic_id): """用 Playwright 模拟浏览器自动发布到掘金""" page = browser.new_page() page.goto("https://juejin.cn/editor/drafts/new") page.fill("[placeholder='输入文章标题...']", title) page.fill(".editor-content", content) # 填正文(Markdown) page.click(f"text={category}") # 选分类 page.fill("[placeholder='搜索标签...']", tag) page.click(f"text={tag}") page.click("text=参与话题") # 关联活动话题 page.fill("[placeholder='搜索话题']", topic_id) page.click(f"[data-topic-id='{topic_id}']") page.click("text=发布文章") # 发布 + 自动归档七、踩过的坑与真实效果
三个坑都填了:① Cookie 过期导致发布失败 → 加有效期检查、快过期自动提醒;② AI 痕迹太重被限流 → 加强自检、提高人工调整比例;③ 话题关联接口偶发报错 → 加重试机制。跑了一个多月,效果是实打实的:
最爽的是「不再错过活动话题」。以前活动结束才想起来,现在系统每天自动检查,有合适的就推给你。
💡 小结
1. 本质:把重复劳动交给 AI,把创造性决策留给自己。
2. 五环:话题获取→竞品分析→AI 写稿自检→标签匹配→自动发布,关键决策留人工。
3. 选题:无官方 API 就打搜索接口,按「抽奖+技术方向+未参与」三规则筛选。
4. 抗限流:自检重点查 AI 痕迹(套话/规整结构),人工校准调性不可省。
5. 发布:Playwright 模拟浏览器填表发布;Cookie 过期、接口报错都要加重试与提醒。