Journalism Agent — 多阶段新闻写作代理
v1.0.1OpenClaw 的多阶段新闻写作代理。负责研究、起草和编辑出版级文章,还能组装结合原创文章与精选活动/市场列表及图片的混合新闻简报。适用于撰写文章、研究出版物主题、制作新闻简报或组装内容摘要。
0· 9·0 当前·0 累计
安全扫描
OpenClaw
安全
high confidence技能的需求、指令和包含的脚本与新闻/简报组装代理一致;所请求的内容与其声明的目的相符,没有超出范围。
评估建议
该技能似乎能实现其所述功能:组装基于研究的文章和新闻简报,并从外部图片API获取图片。安装前请考虑:1)代理会获取任意网页和图片,并将读取/写入 /tmp/newsletter_parts 和 /tmp/newsletter_assembled.html —— 避免将敏感文件放在这些路径中。2)NK Images API(nkimages.com)是用于图片的外部依赖;在允许自动下载之前,请确认您信任其许可和隐私声明。3)组装器直接将提供的HTML片段嵌入输出;如果在浏览器中渲染,请将组装后的输出视为不可信内容(存在注入HTML/JS的风险)。4)Python脚本引用了一个design-agent令牌文件路径(另一个技能的workspace),但并未使用它——这可能无害,但请关注未来可能读取跨技能文件的版本。如果需要更强的保证,请在沙盒环境中运行技能,并在组装前检查放入 /tmp/newsletter_parts 的任何数据。...详细分析 ▾
✓ 用途与能力
名称/描述、SKILL.md、assets和newsletter_assemble.py脚本是一致的:技能研究、起草、策划列表,从外部图片API(nkimages.com)获取图片,并组装HTML新闻简报。所需资源(网页获取、图片下载、组装HTML)与其声明的功能相匹配。
ℹ 指令范围
SKILL.md指示代理执行网页搜索、获取和总结URL、验证链接,并调用外部图片API(nkimages.com)。这些操作对于此用例是预期的。注意:技能将在 /tmp/newsletter_parts 中读取/写入新闻简报部件文件,并获取远程图片/URL;组装的HTML可能包含用户提供的HTML内容(脚本执行相对宽松的HTML插入),因此如果向最终用户显示,渲染/输出应被视为不可信内容。
✓ 安装机制
未提供安装规范(仅包含指令和一个小型辅助脚本)。未指定下载或软件包安装,最大限度地降低了供应链风险。
ℹ 凭证需求
技能声明不需要环境变量或凭证,这与其描述的操作相符。SKILL.md使用一个声称不需要API密钥的外部公共图片API。捆绑的Python脚本定义了一个TOKEN_FILE路径,指向 /root/.openclaw/workspace/skills/design-agent/references/design-tokens.md,但实际上并未打开或使用它;值得注意的是,因为它引用了另一个技能的workspace路径(可能以后会被重新利用)。
✓ 持久化与权限
always:false 且未请求特殊权限。脚本将输出写入 /tmp/newsletter_assembled.html 并读取 /tmp/newsletter_parts;它不会修改其他技能的配置或请求持久的常驻存在。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.12026/4/15
将"NK Images Search"整合为文章和列表的主要图片管道,包含详细的API使用说明和AI备选流程。添加了关于图片署名格式和alt文本风格的明确指导。更新关键文件列表以包含外部依赖(nk-images-search、design-agent),并用 assets/newsletter-template.html 替换 assets/newsletter-template.md。明确不允许伪造图片URL,并指示永不编造URL。核心新闻工作流程或输出格式无变更。
● 无害
安装命令
点击复制官方npx clawhub@latest install journalism-agent
镜像加速npx clawhub@latest install journalism-agent --registry https://cn.longxiaskill.com 镜像可用
技能文档
一个三阶段新闻写作管道:搜索器 → 写作者 → 编辑器,产出:
- 单篇长篇文章(经研究、有署名、多段落)
- 混合新闻简报,结合原创文章 + 精选列表/活动及图片
架构
用户主题
│
▼
┌─────────────────────────────────────────────┐
│ SEARCHER (web-search-pro) │
│ • 为每个主题生成3个搜索角度 │
│ • 返回每个角度的顶部URL │
│ • 质量门:仅限NYT级别来源 │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ WRITER (article-writing + design-agent) │
│ • 读取每个URL (web_fetch / summarize) │
│ • 起草文章或组装列表 │
│ • 应用设计令牌 + 获取图片 │
│ • 输出:草稿HTML/文章 │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ EDITOR │
│ • 事实核查声明 against sources │
│ • 强制执行语音 + 结构规则 │
│ • 验证图片署名 + alt文本 │
│ • VLM审查循环 (canvas snapshot) │
│ • 最终批准 │
└─────────────────────────────────────────────┘
│
▼
最终输出
工作流程
文章模式
用户: "写一篇关于社区图书馆未来的1000字文章"- 搜索器
- 生成3个搜索词: ["future of community libraries UK 2026", "public library digital services research", "community library social impact case studies"]
- 搜索每个词 → 收集顶部URL
- 去重 → 返回8-12个高质量URL- 写作者
- 用web_fetch读取顶部4个URL(优先gov.uk、学术、成熟媒体)
- 从提纲起草文章:
钩子 (1段)
背景/正在发生什么 (2-3段)
证据 (2-3段,有引用)
对立观点或 nuance (1段)
前瞻/意义 (1段)
- 目标: 800-1200字
- 用[VERIFY]标记任何未验证的声明- 编辑器
- 检查每个[VERIFY]标记的声明 against sources
- 删除任何无法溯源的内容
- 精简开头和结尾
- 运行VLM审查: canvas snapshot → 令牌一致性检查
- 批准或退回写作者
新闻简报模式(混合文章 + 列表)
适用于如 Time Out Kannan Dorwe — 布里斯托尔社区活动 + 列表:bash curl "https://nkimages.com/api/public/images?source=clawhub&q={query}&per_page=6"1. 搜索器 - 为3种内容类型生成搜索词:文章: ["Bristol arts scene 2026", "Bath community events May 2026"] 列表: ["Bristol markets events May 2026", "Bristol theatre comedy live music May"] 专题: ["Bristol restaurant openings 2026", "Bristol wellness fitness"] - 返回每个分类的URL- 选择2-3个有强角度的主题(不只是列表) - 撰写每篇200-400字的原创文章 - 引用来源内联
- 写作者 — 文章槽位
- 从以下来源策划8-12个活动: Skiddle, VisitBristol/Bath, Watershed, Arnolfini, Eventbrite, Bath BID, Fairfield House, Little Theatre Bath - 每个列表格式: [活动名称] — [场地] — [日期/时间] — [简要描述 + 值得去的理由] - 无填充描述 —— 具体且有观点
- 写作者 — 列表/活动槽位
- 对于每篇文章:通过网页搜索获取相关的公共领域或CC图片 - 对于列表:使用场地logo或通用适当图片(如果无法获取特定图片) - 所有图片必须有署名行 + alt文本 - 署名格式:
- 图片获取
Photo: NK Images (nkimages.com) | NK Images License- Alt文本:描述性、具体,无"image of"或"photo of" - NK Images Search — 文章和列表的主要图片管道:
覆盖235+个细分领域(艺术、文化、音乐、美食、建筑、健身、商业等)。无需API密钥。免费商业使用。精确使用API返回的 viewUrl 和 downloadUrl。如果没有匹配:提供AI生成作为备选
- AI图片生成(当NK图库无匹配时):
bash
# 检查配额
curl "https://nkimages.com/api/public/generate/quota"
# 生成(等待30-120秒,每15秒轮询)
curl -X POST "https://nkimages.com/api/public/generate/anonymous" \
-H "Content-Type: application/json" \
-d '{"prompt": "{description}", "niche": "{niche}"}'
内联显示前4张图片;其余作为链接列出。永不伪造URL。- 编辑器
- 确保混合均衡(不全是列表,不全是长篇)
- 检查每个列表链接是有效的(未过期)
- VLM审查:新闻简报布局的视觉快照
- 批准或退回
输出格式
文章
- 带YAML frontmatter的Markdown(title, date, source_urls, word_count)
- 内联引用用括号 [Source: URL]
draft字段在frontmatter中直到编辑器批准
新闻简报
- HTML邮件就绪文档
- 章节清晰标注:
## Feature,## What's On,## Listings - 带说明和署名的图片
- 应用设计令牌(输出前调用design-agent)
质量标准
| 标准 | 文章 | 新闻简报 |
|---|---|---|
| 最少段落数 | 8 | 2-3个专题 + 8个列表 |
| 事实声明 | 全部有来源 | 仅列表(活动详情) |
| 图片 | 每篇1张 | 1张头图 + 每专题1张 |
| 字数 | 800-1200 | 可变,最多1200总计 |
| VLM审查 | 强制 | 强制 |
禁止的模式
- 通用开头("In today's fast-paced world")
- 无来源的统计数据
- 董事会级别的搜索URL作为来源
- 模糊的列表描述("a great event for all the family")
- 列表之间AI风格的填充内容
关键文件
| 文件 | 用途 |
|---|---|
references/design-tokens.md | 基础令牌(通过design-agent) |
references/source-quality.md | 什么算高质量来源 |
assets/newsletter-template.html | HTML新闻简报模板(应用设计令牌) |
scripts/newsletter_assemble.py | 从部件组装混合新闻简报 |
外部: nk-images-search 技能 | 主要图片管道 — 搜索100万+图库 + AI生成 |
外部: design-agent 技能 | 设计令牌 + VLM审查循环 |