name: learn description: 研究一个主题并扩展你的知识图谱。使用Exa深度研究、网络搜索或基础搜索来调查主题,记录完整来源的文件,并链接到处理流程。触发指令:“/learn”, “/learn [主题]”, “research this”, “find out about”。 user-invocable: true allowed-tools: Read, Write, Edit, Grep, Glob, Bash, mcp__exa__web_search_exa, mcp__exa__deep_researcher_start, mcp__exa__deep_researcher_check, WebSearch context: fork
立即执行
主题: $ARGUMENTS
立即解析:
- 如果提供了主题:研究该主题
- 如果主题为空:读取
self/goals.md获取最高优先级的未探索方向并建议 - 如果主题包含
--deep/--light/--moderate:强制该深度,从主题中移除标志 - 如果没有主题且没有 goals.md:询问“您想研究什么?”
步骤:
- 读取配置 — 工具偏好、深度、领域词汇
- 确定深度 — 根据标志、配置默认值或回退到中等深度
- 研究 — 工具级联:主要 → 备用 → 最后手段
- 归档到收件箱 — 包含完整来源元数据
- 链接到处理 — 基于流程链接模式的下一步
- 更新 goals.md — 追加发现的新研究方向
立即开始。 下面的参考解释了方法论。
步骤 1: 读取配置
ops/config.yaml — 研究工具、深度、流程链接
ops/derivation-manifest.md — 领域词汇(收件箱文件夹、缩减技能名称)
来自 config.yaml(如果缺失则使用默认值):
research:
primary: exa-deep-research # exa-deep-research | exa-web-search | web-search
fallback: exa-web-search
last_resort: web-search
default_depth: moderate # light | moderate | deep
pipeline:
chaining: suggested # manual | suggested | automatic
来自 derivation-manifest.md(如果缺失则使用通用默认值):
- 收件箱文件夹:
inbox/(可能是journal/,encounters/等) - 缩减技能名称:
/reduce(可能是/surface,/break-down等) - 领域名称和中心 MOC 名称
步骤 2: 确定深度
优先级:显式标志 > 配置默认值 > moderate
| 深度 | 工具 | 来源 | 持续时间 | 使用场景 |
|---|---|---|---|---|
| light | WebSearch | 2-3 | ~5秒 | 检查特定事实 |
| moderate | mcp__exa__web_search_exa | 5-8 | ~10-30秒 | 探索子主题 |
| deep | mcp__exa__deep_researcher_start | 全面 | 15秒-3分钟 | 主要研究方向 |
步骤 3: 研究 — 工具级联
输出标题:
研究:[主题]
深度:[深度]
使用:[工具名称]
按配置优先级顺序尝试工具。如果工具失败(MCP不可用、错误、结果为空),则降级到下一层。如果所有层都失败:
失败:研究失败 — 无可用研究工具
已尝试:
1. [主要] — [错误]
2. [备用] — [错误]
3. WebSearch — [错误]
稍后重试或手动添加研究到 [收件箱文件夹]/
工具调用模式
exa-deep-research:
mcp__exa__deep_researcher_start
instructions: "全面研究:[主题]。关注实际发现、关键模式、最新发展和可操作见解。"
model: "exa-research-fast" (moderate) | "exa-research" (deep)
使用 mcp__exa__deep_researcher_check 轮询直到 completed。等待期间输出:
研究 ID:[id]
等待结果...
exa-web-search:
mcp__exa__web_search_exa query: "[主题]" numResults: 8
web-search(最后手段,也用于浅度深度):
WebSearch query: "[主题]"
完成时:研究完成 — 分析了 [来源数量] 个来源
步骤 4: 归档结果到收件箱
文件名: YYYY-MM-DD-[slugified-topic].md — 小写,空格替换为连字符,无特殊字符。
写入领域收件箱文件夹(来自 derivation-manifest,默认 inbox/)。如果文件夹缺失则创建。
来源元数据
每个字段都服务于来源链。exa_prompt 字段最关键 — 它捕获了塑造研究的智力背景。
---
description: [1-2句关键发现摘要]
source_type: exa-deep-research | exa-web-search | web-search
exa_prompt: "[发送给研究工具的完整查询/指令字符串]"
exa_research_id: "[深度研究 ID,网络搜索省略]"
exa_model: "[exa-research-fast | exa-research,网络搜索省略]"
exa_tool: "[mcp 工具名称,深度研究省略]"
generated: [ISO 8601 时间戳 — 运行:date -u +"%Y-%m-%dT%H:%M:%SZ"]
domain: "[来自 derivation-manifest 的领域名称]"
topics: ["[[domain-hub-moc]]"]
---
仅包含与所用工具相关的字段:
- 深度研究:
source_type,exa_prompt,exa_research_id,exa_model,generated,domain,topics - Exa 网络搜索:
source_type,exa_prompt,exa_tool,generated,domain,topics - WebSearch:
source_type,exa_prompt,exa_tool,generated,domain,topics
正文结构
为下游缩减提取格式化 — 发现作为清晰命题,而非原始转储:
# [主题标题]
## 关键发现
[按主题组织的综合发现,而非按来源。每个发现应是一个清晰的命题,缩减阶段可以将其提取为原子见解。]
## 来源
[带标题和 URL 的来源列表]
## 研究方向
[新问题、未探索角度、后续主题。这些将反馈到 goals.md。]
步骤 5: 链接到处理
从配置中读取链接模式(默认:suggested)。
研究完成
归档到:[收件箱文件夹]/[文件名]
下一步:/[缩减技能名称] [收件箱文件夹]/[文件名]
根据模式追加:
- manual: (无额外内容)
- suggested:
准备就绪,随时处理。 - automatic: 将“下一步”行替换为
已排队 /[缩减技能名称] — 处理将自动开始。
步骤 6: 更新 goals.md
如果 self/goals.md 存在且研究发现了有意义的新方向:
- 读取 goals.md,匹配现有格式
- 在适当部分下追加:
- [新方向](通过 /learn 发现:[原始主题])
如果 goals.md 缺失或未发现有意义的方向,则静默跳过。不要添加填充内容。
输出摘要
包装完整流程的简洁输出:
ars contexta
研究:[主题]
深度:[深度]
使用:[工具名称]
[研究 ID: abc-123]
研究完成 — 分析了 [N] 个来源
归档到:[收件箱文件夹]/[文件名]
下一步:/[缩减技能名称] [收件箱文件夹]/[文件名]
[链接上下文]
[goals.md 更新了 N 个新研究方向]
错误处理
| 错误 | 行为 |
|---|---|
| 无主题,无 goals.md | 询问:“您想研究什么?” |
| Exa MCP 不可用 | 通过级联回退到 WebSearch |
| 所有工具失败 | 报告失败并显示 FAIL 状态,建议手动归档到收件箱 |
| 深度研究超时 (>5 分钟) | 报告超时,建议 --moderate |
| 结果为空 | 报告“未找到结果”,建议优化主题 |
| 配置文件缺失 | 静默使用默认值 |
| 收件箱文件夹缺失 | 写入前创建 |
技能选择路由
在 /learn 之后,自构建循环继续:
| 阶段 | 技能 | 目的 |
|---|---|---|
| 提取见解 | /[reduce-name] | 从研究中挖掘原子命题 |
| 寻找连接 | /[reflect-name] | 将新见解链接到现有图谱 |
| 更新旧笔记 | /[reweave-name] | 对触及的笔记进行向后传递 |
| 质量检查 | /[verify-name] | 描述质量、模式、链接 |
/learn 是入口点。每次运行都向图谱提供信息,而图谱通过 goals.md 反馈下一个方向。