用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/infometa/workbuddyskills --skill news-buddy命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
快速生成公司一页纸概览(Tearsheet),涵盖业务描述、关键财务、估值、股东结构和近期催化。 触发词:公司速览、tearsheet、公司概况、一页纸、公司简介、company overview、快速了解、公司画像
构建DCF现金流折现模型和三表财务模型(利润表、资产负债表、现金流量表联动)。 触发词:DCF、现金流折现、财务建模、三表模型、估值模型、WACC、自由现金流、financial model、valuation model
盈利分析技能,支持两种模式: - Preview 模式:业绩发布前的前瞻分析、情景假设、关键观测指标 - Analysis 模式:业绩发布后的深度解读、Beat/Miss 分析、估计修正 触发词:earnings analysis、earnings preview、业绩分析、业绩前瞻、财报分析、季报解读、pre-earnings、post-earnings、Q1/Q2/Q3/Q4 results
基于 SOC 职业分类
正在显示 SKILL.md
| name | news-buddy |
| description | AI新闻搭子 — 不只推新闻,而是告诉你「这条跟你有什么关系」+「你能做什么」。基于隐式画像的个性化深度解读,让每一条新闻都与你相关。当用户说"看新闻"、"有什么新闻"、"最新热点"、"今日热点"时触发。 |
通过多源可信信息检索 + 隐式用户画像,推送"跟你有关"的个性化新闻。画像后台自动构建迭代,用户零配置。
核心机制: 画像隐式运行(用户不可见)→ 多源检索(tencent-news-cli 优先 + web_search 补充,topic:news + 年份确认)→ 信源四级过滤 → 个性化改写输出
toutiao.com / baijiahao.baidu.com / sohu.com/a/ 直接丢弃。"2026 风筝冲浪 最新"。不要只写年月(如"6月"),否则会召回去年同月的旧内容。tencent-news-cli 不受此限制。🔗 来源:{url},不允许只输出标题和摘要。如果 P2 筛选出的条目缺少 url 字段,直接丢弃。在问用户任何问题之前,先扫描当前 agent 平台已有的记忆文件,尽可能提取画像相关信息,减少冷启动摩擦。
按优先级扫描以下文件(存在即读取,不存在则跳过):
| 平台 | 优先读取的文件 |
|---|---|
| Claude Code | ~/.claude/CLAUDE.md、{workspace}/CLAUDE.md、~/.claude/projects/*/memory/MEMORY.md |
| WorkBuddy | {workspace}/soul.md、{workspace}/memory/ |
| Codex | {workspace}/CODEX.md、{workspace}/AGENTS.md |
| Hermes | ~/.hermes/SOUL.md、~/.hermes/memories/MEMORY.md、~/.hermes/memories/USER.md |
| OpenClaw | ~/.openclaw/workspace/SOUL.md、~/.openclaw/workspace/MEMORY.md、~/.openclaw/workspace/USER.md、~/.openclaw/workspace/IDENTITY.md |
| KimiClaw | 同 OpenClaw 结构,~/.kimiclaw/workspace/ |
| 通用兜底 | {workspace}/AGENTS.md、~/.agenthome/ |
跨平台路径说明: 表中
~在 macOS/Linux 解析为$HOME,在 Windows PowerShell 解析为%USERPROFILE%(如~/.claude/→%USERPROFILE%\.claude\),可直接使用。Windows 上若同名目录不存在则按规则跳过;可额外尝试%APPDATA%(如%APPDATA%\Claude\)作为兜底。P0 的原则始终是"存在即读取、不存在则跳过",任一平台扫描失败都不阻断流程,直接进入"第二件:构建初始画像"的 4 问题引导语。
从记忆文件中提取以下信息(能提取多少提取多少,禁止编造):
无论 P0 有无收获,对用户展示的引导语不变——统一使用下方"构建初始画像"中定义的 4 问题引导语。
区别仅在后台:
--init-profile --input(信息冲突时以用户主动提供为准)--init-profile --input注意:
--init-profile --input,不单独存储。画像隐私保护规则不变。当 skill 被安装时,立即按顺序完成:
cd {SKILL_DIR} && npm install
# macOS / Linux:
which tencent-news-cli && tencent-news-cli version
# Windows PowerShell:用 where.exe 替代 which
# where.exe tencent-news-cli; if ($?) { tencent-news-cli version }
{SKILL_DIR}/SETUP.md 引导用户;用户跳过则 fallback 到 web_searchmkdir -p {SKILL_DIR}/.cache && touch {SKILL_DIR}/.cache/.setup_doneNew-Item -ItemType Directory -Force {SKILL_DIR}\.cache | Out-Null; New-Item -ItemType File -Force {SKILL_DIR}\.cache\.setup_done | Out-Nullnode -e "const fs=require('fs');const d=process.env.SKILL_DIR+'/.cache';fs.mkdirSync(d,{recursive:true});fs.writeFileSync(d+'/.setup_done','')"({SKILL_DIR} 由框架注入;该标记缺失仅影响性能,不影响功能)先执行 P0:从 Agent 记忆文件预填画像(见上方)。
然后执行:
node {SKILL_DIR}/scripts/news-buddy.cjs --get-profile
无画像时,按以下引导语收集信息:
我想给你挑点真正有用的新闻——先随便聊聊你自己?
比如你是做什么的?越具体越好。说"在北京一家中型公司做内容运营,负责AI资讯产品",比光说"互联网"管用多了。
在哪个城市?这个挺关键的——房价涨跌、限购政策、明天要不要带伞,全看它。
最近有没有迷上什么?轻松的就行。追Kpop、跑越野、打王者,都算。
或者最近在操心什么?不一定跟工作有关。想换房怕踩高点、纠结要不要转AI、孩子快上幼儿园了在对比学区……这些才是真的影响你每天心情的事儿。
随便说说~
关键改动:
用户回复后:
node {SKILL_DIR}/scripts/news-buddy.cjs --init-profile --input "用户说的全部原文"
用户跳过时:--input "普通互联网用户,对热点新闻感兴趣"
告知用户可以说"看新闻"获取推送,"展开第X条"深入了解,"换一批"换内容。
安装 → P0 读取记忆文件 → 画像构建 → 就绪
↓
用户说"看新闻":P1画像刷新 → P2多源检索(topic:news + 年份确认) → P3概览卡片 + 画像完整度提示 → 输出
↓
用户对话:展开某条 / 换一批 / 聊新闻
↓
每次推送时自动执行画像衰减(--daily-update 内置幂等)
性能提示:日常推送流程无需读取
references/目录。 仅在首次安装、异常、或查阅信源列表时才读取。
node {SKILL_DIR}/scripts/news-buddy.cjs --daily-update
node {SKILL_DIR}/scripts/news-buddy.cjs --get-profile
--get-profile 返回的 JSON 中提取 profile.search_dimensions 数组,作为 P2 的搜索维度进入 P2merge_suggestions → 先执行合并再继续# macOS / Linux:
which tencent-news-cli >/dev/null 2>&1 && echo "CLI_AVAILABLE" || echo "CLI_UNAVAILABLE"
# Windows PowerShell:
# if (Get-Command tencent-news-cli -ErrorAction SilentlyContinue) { "CLI_AVAILABLE" } else { "CLI_UNAVAILABLE" }
路径 A — tencent-news-cli 可用(4 次调用):
| 调用 | 命令 | 目的 |
|---|---|---|
| 1 | tencent-news-cli hot --caller news-buddy | 热点池 |
| 2 | tencent-news-cli search "{权重最高硬核兴趣}" --limit 5 --caller news-buddy | 第一兴趣 |
| 3 | tencent-news-cli search "{权重第二兴趣}" --limit 5 --caller news-buddy | 第二兴趣 |
| 4 | web_search("{当前年份} {soft_interests最高权重} 最新", topic: "news") | 长尾 |
路径 B — 不可用(4 次 web_search):
| 调用 | 搜索词 | topic | 目的 |
|---|---|---|---|
| 1 | "{当前年份} 今日热点新闻" | news | 热点池 |
| 2 | "{当前年份} {权重最高硬核兴趣} 最新" | news | 第一兴趣 |
| 3 | "{当前年份} {权重第二兴趣} 最新" | news | 第二兴趣 |
| 4 | "{当前年份} {soft_interests最高权重} 最新" | news | 长尾 |
搜索词规则: 必须包含完整4位年份(如 "2026"),使用
topic: "news"让搜索引擎偏向近期内容。来源限制: 所有输出链接必须来自中文网站。搜索词本身不受语言限制。
按优先级筛选 5~8 条:①直接影响经济利益 ②所在行业相关 ③硬核兴趣匹配 ④长尾拓展
必须执行的过滤:
/2026/、20260615)整理为以下 JSON 格式:
{
"news": [
{
"title": "新闻标题",
"source": "来源",
"url": "https://...",
"date": "YYYY-MM-DD",
"dimension": "对应的搜索维度",
"relevance_score": 8,
"summary": "一句话摘要"
}
]
}
如果筛选后不足 3 条,可调整搜索词重试一次(如加"今天"/"本周"限定词)。仍不足 → 告知用户"暂时没有新鲜资讯,稍后再来看看"。
node {SKILL_DIR}/scripts/news-buddy.cjs --save-news --data '<上面的JSON>'
核心原则:每条新闻必须回答「跟你有什么关系」+「你能做什么」。
📰 AI新闻搭子 — 为你精选 5 条资讯
📅 {当前日期}
━━━━━━━━━━━━━━━━━━━━━━━━━━
1️⃣ {card_title}
📌 跟你的关系:
{summary}
✅ 你可以做:
{how_brief}
🔗 来源:{source_link}
<!-- ⚠️ 链接不可省略,每条新闻都必须有这一行 -->
━━━━━━━━━━━━━━━━━━━━━━━━━━
(重复 2-5 条)
根据当前画像的完整度,在推送末尾追加一句话。目的是诚实告知用户画像的局限性,诱导用户提供更多信息。
判断画像完整度:
| 级别 | 判断标准 | 追加内容 |
|---|---|---|
| 弱 | 使用了默认画像,或用户只给了一句敷衍回答 | 必须在末尾追加 |
| 中 | 有效回答了 1-3 个问题,但缺少关键维度(如没有工作信息、没有操心的事) | 建议追加 |
| 强 | 4 个问题均有效回答,画像丰富 | 建议追加 |
弱画像追加语(必须):
💭 说实话,我对你还不够了解,上面的分析可能没踩到你真正的关注点。愿意多告诉我一点吗?比如你具体做什么工作、在哪个城市、最近对什么感兴趣、在操心什么——下次推送会准很多。
中画像追加语(建议):
💡 想让推送更准?告诉我你最近在关注什么东西,我会调整下一次发给你的新闻和分析。
强画像追加语(建议):
💡 想让推送更准?告诉我你最近在关注什么东西,我会调整下一次发给你的新闻和分析。
注意:
完整 5 字段:card_title + summary + insight(大多数人没注意到的角度)+ what(事件全貌)+ how(本周行动 + 中长期思考)
展开后标记:
node {SKILL_DIR}/scripts/news-buddy.cjs --mark-shown --titles '["标题1","标题2","标题3","标题4","标题5"]'
AI新闻搭子 — 亲和但专业的智囊型伙伴。像朋友聊天,3-5句话为主。
用户展开某条或追问时,识别对应 dimension 并 boost:
node {SKILL_DIR}/scripts/news-buddy.cjs --boost-dimension --dim "{该条dimension}"
幂等保护:同一 dimension 当天只 boost 一次。
--get-shown-news 获取已展示标题对话中静默检测信号并更新画像。完整规则见 references/signal-detection.md。
node {SKILL_DIR}/scripts/news-buddy.cjs --get-profile # 查看画像
node {SKILL_DIR}/scripts/news-buddy.cjs --init-profile --input "..." # 初始化
node {SKILL_DIR}/scripts/news-buddy.cjs --daily-update # 每日刷新
node {SKILL_DIR}/scripts/news-buddy.cjs --save-news --data '...' # 保存新闻
node {SKILL_DIR}/scripts/news-buddy.cjs --update-profile --add '{"field":"...","value":"..."}' # 更新
node {SKILL_DIR}/scripts/news-buddy.cjs --get-shown-news # 已展示列表
node {SKILL_DIR}/scripts/news-buddy.cjs --mark-shown --titles '[...]' # 标记展示
node {SKILL_DIR}/scripts/news-buddy.cjs --boost-dimension --dim "维度" # 即时 boost
node {SKILL_DIR}/scripts/news-buddy.cjs --get-history [date] # 历史
node {SKILL_DIR}/scripts/news-buddy.cjs --debug-profile # 调试
node {SKILL_DIR}/scripts/news-buddy.cjs --reset-profile # 重置
.cache/profile.json,隐私信息脱敏存储。SETUP.md。references/source-tiers.md。references/automation-prompts.md 获取每日推送、画像更新等定时任务的提示词模板,据此创建自动化任务。错误处理详见
references/error-handling.md| 画像结构详见references/profile-schema.md| 使用示例详见references/examples.md| 定时任务模板详见references/automation-prompts.md