# Info Alchemist

> 用于机会调研、值不值得做、要不要做、参考竞品/产品体验/商业模式/SEO 结构、AI 新闻/趋势/动态等开放集合查询的 VOI 决策门。它先确认查询意图，再生成搜索计划，使用 Tavily 联网取证，输出行动判断、证据缺口和下一步行动。

- Skill: `moxuan9x/info-alchemist` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add moxuan9x/info-alchemist`
- Raw SKILL.md: https://api.skillmd.com/api/skills/moxuan9x/info-alchemist/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- License: MIT
- Author: MoXuan9X (https://skillmd.com/u/moxuan9x)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/moxuan9x/info-alchemist

---


# Info-Alchemist / 信息炼金术士

## Goal / 目标

把“我要查 xxx”转成“这些信息会不会改变我的行动”。不要堆搜索结果；要说明证据支持什么行动、不能回答什么、下一步最小动作是什么。

## When to Use / 何时使用

- “有没有机会 / 值不值得做 / 要不要做 / 能不能做 / 有没有 SEO 机会”。
- “最新新闻 / 趋势 / 动态 / 参考哪些站点”这类开放集合查询。
- “最近/热门/比较火/头部 + 工具站/网站/站点/产品/工具”，除非用户已说明行动目的，否则先确认行动目的。
- “AI 工具 / 市面上有哪些 AI 工具 / 想看看现在有哪些 AI 工具”这类泛集合查询，必须先引导用户选择能力口径、具体领域、竞品流程参考或市场速览；用户选定方向后再进候选池。
- “看竞品 / 商业模式 / 产品体验 / 关键词结构 / 头部产品变化”。
- 用户给出很多信息，问哪些重要、哪些该做。

不要用于天气、汇率、单个官方页面、翻译、润色、明确事实核验等低决策查询。医疗、法律、金融、投资等高风险场景只整理证据和缺口，不替用户做最终决定。

## Dependencies / 依赖

| 名称 | 类型 | 是否付费 | 成本控制 |
|---|---|---:|---|
| Python 3 | runtime | 否 | 本地脚本执行 |
| Tavily API | public search API | 可能 | 搜索计划控制 query 数；失败不改用手工搜索补报告 |
| TikHub API | vertical social API | 可能 | 可选；补充小红书、X、Reddit 结果，默认关闭 |
| 本地文件系统 | memory / run log / HTML report | 否 | 默认只写当前 OpenClaw workspace 下的 `info-alchemist/` |

## Workflow / 工作流程

正式入口：

```bash
python3 scripts/formal_run.py --query "<用户原始问题>"
python3 scripts/formal_run.py --previous-query "<上一轮原始问题>" --reply "<用户本轮回复>"
```

`formal_run.py` 负责激活标记、行动目的确认或续跑解析、搜索计划、联网搜索、证据整理和 run log。分步脚本只用于调试；运行策略见 `references/runtime_strategy.md`，证据评分规则见 `references/evidence_scoring.md`。

硬规则：

1. 用户可见第一行只写 `INFO_ALCHEMIST=TRUE`。
2. 开放集合查询先确认行动目的；研究维度明确不等于决策明确，用户确认前不联网、不报告。
3. 用户确认后，明确真实决策、候选行动、默认行动和决策边界；如果仍不清楚，最多追问 3 轮。
4. 如果返回 `route=setup_required`，直接发送 `user_visible_text`，让用户在本地配置页面填写 Tavily API key；不要普通搜索，也不要生成报告。
5. 搜索计划必须由 `build_search_plan.py` 生成或校验；宿主 AI 可以先提供 `ai_search_plan` 草案，但不能绕过脚本直接搜索。
6. 公开搜索只能走内部默认搜索脚本；不用 Brave、web_search、web_fetch 或手工网页替代。
7. 宿主模型根据本轮证据写完整中文报告；内容保持高信号，保留固定章节、关键证据和判断，不为凑篇幅扩写。
8. 用户看完报告后明确表达决策时，才运行 `record_decision.py` 写轻量记忆。

## Search / 搜索

搜索计划每条 query 只要求 `query`、`search_intent`、`reason`，围绕用户确认后的真实意图生成。

宿主模型可以先按语义拆一版 `ai_search_plan`，尤其是“流程借鉴 / 专家信号 / 产品拆解 / 冷启动渠道”这类脚本模板容易过硬的任务。正式搜索仍必须把草案交给 `formal_run.py` / `build_search_plan.py` 校验，脚本会丢弃泛词 query、补齐 `evidence_axis`、回填缺失证据轴，并保持 `search_plan_source: build_search_plan.py`。不要把未校验的 AI query 直接传给搜索脚本。

搜索计划默认按证据轴覆盖，而不是按关键词堆叠。产品机会、方案选择、竞品参考、SEO 机会等问题，优先覆盖：市场/趋势、官方能力/限制、成本/单位经济、竞品/替代方案、用户痛点/抱怨、获客/SEO/页面机会、平台/政策/合规风险、专家/实践者信号。详细来源优先级见 `references/evidence_sources.md`。

开放候选池问题会先走 `candidate_discovery` 搜索策略，例如“现在有哪些 AI 产品可以做”“有哪些工具站值得参考”“帮我找一些值得做的 AI 工具站”。但泛问“AI 工具 / 市面上有哪些 AI 工具”时，不能直接默认成产品机会，必须先问用途和方向：`1` 按能力筛可做方向，`2 + 领域` 按具体领域看工具，`3 + 维度` 做竞品/流程参考，`4` 做市场速览。用户选定后仍使用候选池，但候选池类型随选择变化：产品机会候选池、领域工具候选池、参考对象候选池或市场类型图。这类问题先搜索候选池/产品清单、细分赛道、竞品池、用户反馈、SEO 入口、定价和专家信号，再在报告的 `## 候选行动` 开头先给 3-5 个可执行方案卡片，下面再放 10-15 个候选对象的候选产品拆解表；每个候选必须写清入选依据，并按推荐顺序排序；不再单独输出 Top 5，也不在候选表里单独输出“优先级”列。已有明确目标的问题继续走 `normal_evidence` 单轮证据链；最新新闻、SEO 增长、已有产品转化、选择决策和复盘问题不额外加候选池发现轮。

内部搜索使用 `scripts/tavily_search.py`，从环境变量或 `.env` 读取 `TAVILY_API_KEY`。深度搜索默认设置 `INFO_ALCHEMIST_ENABLE_TIKHUB=1`，搜索层会追加调用 `scripts/tikhub_search.py`，每轮为小红书、X 和 Reddit 各选择 1 条短 query 做垂直社媒补充，避免按 search plan 全量扩散造成高成本；小红书按 App V2 -> App -> Web V3 自动降级。公众号链路不再启用，因为当前 TikHub 不再支持。TikHub 单渠道报错、超时或空结果只记录在 run log 内部统计，不进入用户报告；报告只呈现搜到的社媒信号。普通用户报告不要出现底层搜索提供方名称、API key 名称或脚本名；统一写“联网搜索/公开搜索”或“公开搜索和垂直社媒搜索”。

单条 query 失败时继续处理其他 query；全部失败时立即输出：`本轮联网搜索全部失败，不能生成证据报告。` 不要用其他来源补报告。

## Output / 输出

最终回复必须中文，第一行固定：

```text
INFO_ALCHEMIST=TRUE
```

除行动目的确认和失败诊断外，完整报告必须使用下面骨架；标题不要改名、合并或删减：

```md
# 信息炼金报告

## 核心判断

本节内容。

---

## 决策问题

本节内容。

---

## 专家判断

本节内容。

---

## 候选行动

本节内容。

---

## 高价值证据

本节内容。

---

## 缺失的证据

本节内容。

---

## 下一步行动

本节内容。
```

展示要求：

- 默认参考 `assets/examples/output_case_01_ai_model_opportunity.md` 的视觉结构。
- 文字版每个 `##` 模块之间必须用独立一行 `---` 分割，并在分割线上下各保留一个空行；不要只靠空行分隔模块。
- 顶层 7 个 `##` 标题固定不改名，但必须按 `formal_run.py` 返回的 `report_mode_guide` 调整章节内部写法。常见模式包括：机会判断、放弃判断、用户痛点、竞品判断、流程借鉴、MVP 切口、商业模式/定价、分发判断、趋势与时机、运营与交付、复盘与转向、方案选择。
- 为兼容 HTML 可视化，`## 决策问题` 第一行必须写 `报告模式：<模式名>`，第二行必须写 `决策对象：<topic>`；各章节内部优先使用稳定的 `###` 小标题和 Markdown 表格，不要写裸 HTML。报告模式只用于内部结构选择，HTML 首屏不展示模式标签。
- OpenClaw 用户可见层必须在报告标题处提供 HTML 可视化报告入口：发送前运行 `python3 scripts/record_final_output.py --run-id "<run_id>" --file "<final_report.md>"`，脚本会把完整 Markdown 文字版归档到当前 OpenClaw workspace 下的 `info-alchemist/reports/信息炼金报告-<决策对象>-YYYYMMDD.md`，生成短文件名 HTML：`info-alchemist/reports/html/<run_id>.html` 并返回带 HTML 入口的完整 `user_visible_text`。默认链接从 `http://127.0.0.1:8765/<run_id>.html` 起自动寻找可用端口，脚本会启动本地只读静态服务；不要把 `file://` 链接直接发到飞书，因为飞书会显示蓝色但无法打开。飞书用户可见回复直接发送完整 `user_visible_text`；token 估算只保留在 Markdown 归档和 HTML 页面里。
- 用空行、分割线、加粗、列表和编号提升可读性；每节第一句优先给结论。
- 普通群聊里一旦触发 `INFO_ALCHEMIST=TRUE` 并进入报告输出，也发送完整报告；短报告只用于行动目的确认、失败诊断或明确的非炼金轻量答复。
- `## 专家判断` 必须放在 `## 候选行动` 上方，优先使用 `evidence_pack.expert_judgment` 和 `search_intent=expert_signal` 的结果，展示领域专家/高影响力实践者是谁、他们关注的问题、以及他们现在采用的解法。推荐表头：`| 领域专家 | 专家/实践者信号 | 来自渠道 | 为什么选 | 他们关注的问题 | 当前解法 | 对我们的启发 | 可信度 |`。`领域专家` 必须写出可称呼的专家主体：优先写可验证的人名；没有明确人名时，写可识别的机构、社区或实践者群体，例如“AI 工具站独立开发者”“Reddit 的目标用户群体”“小红书 AI 副业博主”；只有连群体主体也无法识别时，才写“未识别到明确专家主体”。可信度应按主体具体程度、来源强度和证据相关性调整；`为什么选` 必须说明该专家主体与本领域、问题、解法或实践经验的关系。表格必须按可信度从高到低排序，顺序为：高、中高、中、低、待验证。
- `## 高价值证据` 必须基于本轮搜索结果，用表格展示，表头固定为：`| 行动影响 | 证据方向 | 发现了什么 | 怎么改变决策 | 来源 | 证据质量 | VOI |`。表格必须按行动影响从高到低排序，顺序为：高、中高、中、低；同等级内优先放最能改变当前决策的证据。后 2 列是单条证据评分，统一写 0-100 整数，推荐格式 `N/100`，评分标准按 `references/evidence_scoring.md` 执行。
- 产品机会、候选池筛选、商业模式/定价、已有转化、方案选择或用户明确问收益/成本/ROI/回本时，不再输出独立 `成本结构测评`、`7 天验证闸门`、成本补齐清单、ROI 可计算性表、单次任务成本表或 90 天 ROI 表。商业/成本只作为轻量信号进入现有模块：`## 核心判断` 最多一句成本/回本判断；`## 候选行动` 在 `付费信号`、`MVP/成本`、`建议`列里简短写价格锚点、主导成本或成本风险；`## 高价值证据` 只展示本轮搜索命中的真实定价、商业基准或转化/留存证据；`## 缺失的证据` 只用一句“当前暂不能计算 ROI，主要缺：X、Y、Z”；`## 下一步行动` 写具体动作、要记录的指标和停止条件，不要命名为 `7 天验证闸门`。
- ROI、LTV、CAC、转化率、留存、毛利、行业平均收益、初始投入、月成本、单次任务成本等数字必须在对应依据列里标注来源状态：公开证据、用户提供、系统假设或缺失。不要单独输出 `数字/假设` 来源状态表。公开资料拿不到时不要生成该数字，不得用低/中/高、系统假设区间或常识补成事实；官方价格只能证明工具标价，不等于项目真实月成本；缺少成本和转化输入时，不输出 90 天 ROI 区间。
- 判断页只显示结论强度，不显示整份报告总分；证据页每条高价值证据只显示证据质量和 VOI；缺口页不展示证据覆盖度分数；下一步页不展示 VOI × 可验证性矩阵。
- 如果 `evidence_pack.evidence_coverage` 存在，核心判断语气可受 `conclusion_strength_ceiling` 约束：强覆盖可以给明确建议，中等覆盖只能给倾向性建议，弱覆盖只能建议观察或小范围验证；缺失证据轴必须进入 `## 缺失的证据`，但不要写覆盖度评分表。
- 如果 `evidence_pack.social_platform_signals` 非空，`## 高价值证据` 内必须新增 `### 社交平台` 小节，用表格按小红书、X、Reddit 展示平台、主要看什么、这轮发现、对行动的影响、可信度和来源；推荐表头：`| 社交平台 | 主要看什么 | 这轮发现 | 对行动的影响 | 可信度 | 来源 |`；不要命名为“四渠道信号矩阵”。
- 垂直社媒搜索的报错、超时、空结果和未命中不得进入 `## 缺失的证据` 或报告正文；只呈现已搜到的有效社媒结果。
- `来源` 列必须是可点击 Markdown 链接；多个来源用 `<br>` 分隔。
- `## 候选行动`中若出现竞品/工具站清单表格或名称，那么工具站名称必须使用搜索结果中已返回的真实 URL 写成可点击 Markdown 链接，格式为 `[工具站名称](https://官网地址)`；未获取到 URL 的对象不得编造官网地址，必须标为“未核验来源”或移到缺失证据。
- JSON brief 仍用 JSON schema `assets/schemas/voi_search_brief.schema.json` 和 `validate_voi_brief.py` 校验。
- 用户可见报告不要用 `final_status`、`evidence_gaps`、`next_minimum_action`、`stop_search_rule` 等 snake_case 字段名。
- `info-alchemist/runs/*.json` 是审计副本，不是缩减最终报告的理由。

## Run Log / 运行留痕

完整搜索流程由 `formal_run.py` 写入 `info-alchemist/runs/<run_id>.json`，包含 `intent -> search_plan -> tavily_result -> synthesis`。最终中文输出必须用 `record_final_output.py` 追加记录；该脚本同时生成 HTML 报告和标题链接。除非明确设置 `DISABLE_RUN_LOG=1`，不要跳过 run log。

## Lightweight Local Memory / 轻量记忆

只存派生洞察，不存原始文章、完整聊天、隐私文件、敏感数据。`DISABLE_MEMORY=1` 时不写。

只有用户在报告后明确表达决策或明确要求记忆时才写入；追问、补充、重新搜索和行动目的确认轮不写。具体命令和字段见 `references/memory_rules.md`。

写入后会刷新 `personal_voi_profile.md`，用户可见标题为：最近更新、已记录决策、画像成熟度、画像说明、近期决策记录、惯性决策模式、有效证据类型、最近决策洞察、下次询证提醒。

## Safety / 安全

除搜索提供方和当前 workspace 的 `info-alchemist/` 数据目录外，不读写无关本地路径。公开搜索无法回答转化、留资、GSC、Clarity、访谈和付费意愿时，必须写成证据缺口。

