通过 tencent-news-cli 获取腾讯新闻内容。
核心原则:基础设施交给脚本处理;智能体只负责选择子命令和参数。除cli-state外,所有 CLI 调用都通过run-cli执行;先读help,不要硬编码。
| 平台 | 脚本运行方式 | 示例 |
|------|------------|------|
| macOS / Linux | sh scripts/ | sh scripts/cli-state.sh |
| Windows | bun scripts/ | bun scripts/cli-state.ts |
Windows 需先确保bun可用。若不可用:powershell -c "irm bun.sh/install.ps1 | iex",安装后重启终端确认bun --version。
以下所有脚本调用均以 macOS / Linux 为例,Windows 将 .sh 替换为 .ts,sh 替换为 bun。
除 cli-state 外,所有 CLI 命令都通过 run-cli 脚本执行:
| 平台 | CLI 调用模板 |
|------|-------------|
| macOS / Linux | sh scripts/run-cli.sh |
| Windows | bun scripts/run-cli.ts |
环境已就绪时直接跳到 Phase 2。
sh scripts/cli-state.sh
解析返回的 JSON,关注以下字段:
| 字段 | 含义 |
|------|------|
| platform.cliPath | 底层实际使用的 CLI 完整路径,供诊断错误或权限问题时参考 |
| platform.cliSource | global(优先命中 PATH 中可用的全局命令,否则命中默认全局安装目录)/ local(旧版 skill 目录内安装,兼容兜底)/ none(以上路径都未找到) |
| cliExists | CLI 是否存在 |
| update.needUpdate | 当前版本是否需要更新 |
| update.error | version 检查失败时的错误信息 |
| apiKey.present | API Key 是否已配置 |
| apiKey.status | configured / missing / error |
| apiKey.error | apikey-get 执行异常或输出异常时的错误信息 |
cliExists 为 false 时)仅当cliSource为none时才需要安装;local表示命中了旧版本地安装,可继续使用但建议后续迁移到全局安装。
按照 references/installation-guide.md 中的安装命令执行安装:
安装成功后重新执行 sh scripts/cli-state.sh(Windows 用 bun scripts/cli-state.ts)刷新状态。
若安装失败,参考 references/installation-guide.md 中的故障排查部分,引导用户手动处理。
update.needUpdate 为 true,或 CLI 提示版本过旧时)sh scripts/run-cli.sh update
Windows 使用 bun scripts/run-cli.ts update。
若 update.error 不为空,先展示错误并让用户处理。
若 update 命令失败,或错误信息表明当前 CLI 不支持 update(如 unknown command、not found、not recognized),按上述步骤 2 重新安装。仍然失败时,引导用户参考 references/update-guide.md 手动处理。
apiKey.status 不为 configured 时)- missing → 引导用户打开 API Key 获取页面 自行获取,不要执行 open / xdg-open / start 等命令自动打开浏览器
error → 展示 apiKey.error,让用户先处理(权限、网络、CLI 异常),处理后重试设置 Key(通过 run-cli 执行,KEY 是裸值不加引号):
sh scripts/run-cli.sh apikey-set KEYWindows 分别使用 bun scripts/run-cli.ts apikey-set KEY、bun scripts/run-cli.ts apikey-get、bun scripts/run-cli.ts apikey-clear。
验证:sh scripts/run-cli.sh apikey-get
清除(仅用户明确要求时):sh scripts/run-cli.sh apikey-clear
详见 references/env-setup-guide.md。
CLI 更新频繁,子命令和参数可能随版本变化。始终以当前 help 输出为准,不要假设或记忆任何子命令。1. 执行 help
通过 run-cli 执行:macOS / Linux 为 sh scripts/run-cli.sh help,Windows 为 bun scripts/run-cli.ts help。
2. 理解意图,映射子命令
- 单一请求(如"看热点")→ 映射到一个子命令
- 复合请求(如"看热点、财经和军事新闻")→ 拆解为多个意图,分别映射,依次调用
- 反馈问题(如"反馈报错,新闻质量不行")→ 使用 feedback 子命令,内容需包含问题现象与上下文
- 若 help 中无匹配子命令,如实告知用户当前不支持
3. 执行时遵守两条约束
- 所有实际 CLI 调用都走 run-cli 脚本,不要直接执行 platform.cliPath
- 业务命令、参数名、参数顺序都以 help 展示为准,必要时照抄帮助中的示例
4. 执行并输出——按下方格式呈现结果
1. 标题文字 来源:媒体名称
时间:发布时间
摘要内容……
2. 标题文字
来源:媒体名称
时间:发布时间
摘要内容……
来源:腾讯新闻
按类型分组,每组用二级标题标明类别:
热点新闻
1. 标题文字
...
2. 标题文字
...
财经新闻
1. 标题文字
...
2. 标题文字
...
来源:腾讯新闻
- 标题:序号. 标题,序号从 1 开始,多类型时每组序号独立
来源: 后跟 CLI 返回的作者或媒体名称;无该字段时省略时间: 后跟 CLI 返回的发布时间;无该字段时省略查看原文,无则不输出来源:腾讯新闻 在所有内容末尾出现一次CLI 命令失败后,立即停止,绝不通过 WebSearch 或其他方式获取新闻替代。
1. CLI 返回非零退出码、超时或输出含权限/安全错误时,不要重试,不要换方式。
cannot be opened、not verified)→ 系统设置 → 隐私与安全性 → 「仍要打开」
- 企业安全软件(connection refused、防火墙拦截)→ 安全提示中点击「信任」/「允许」
- 权限不足(permission denied)→ chmod +x
- 其他 → 展示完整错误,请用户处理
3. 用户确认操作完成后再重试。即使多次失败,也只能告知无法获取并说明原因,绝不回退到其他信息源。- 用户手动安装指南:references/installation-guide.md
references/update-guide.mdreferences/env-setup-guide.md