关于 aminer-daily-paper
aminer-daily-paper 是通过 AMiner rec5 API 提供个性化论文推荐的技能。研究者可按主题或学者请求推荐,也可使用 API 密钥关联的账号获取个性化结果。
主要功能
- 01按主题推荐论文
- 02按学者推荐论文
- 03根据 API 密钥账号个性化推荐
- 04支持分页请求结果
适用场景
- 01查找某研究主题的近期论文
- 02发现与某学者相关的论文
- 03获取针对 AMiner 账号的个性化推荐
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aminerorg/ aminer-open-skill --skill aminer-daily-paper安装后在 Claude Code 中输入/aminer-daily-paper确认已加载。
详细介绍
aminer-daily-paper
通过 AMiner rec5 API 个性化推荐论文。需要 Token:设置 AMINER_API_KEY 环境变量。
激活时机:用户提出任何论文推荐需求时——无论是明确命令(/aminer-dp ...)还是自然语言(推荐一些 RAG 相关论文、帮我推荐最近的多模态论文)。
预检:检查必需的环境变量
始终需要 AMINER_API_KEY。调用脚本前先检查:
[ -z "${AMINER_API_KEY+x}" ] && echo "AMINER_API_KEY missing" || echo "AMINER_API_KEY exists"
如果未设置,请停止并告知用户:
未设置
AMINER_API_KEY。请前往 https://open.aminer.cn 获取 Token,并将其设置为环境变量。
不需要其他环境变量。
API 端点
POST https://datacenter.aminer.cn/gateway/open_platform/api/v3/paper/rec5
必需的请求头:
| 请求头 | 值 |
|---|---|
Authorization | ${AMINER_API_KEY} |
X-Platform | 当前宿主:claude-code / cursor / codex / openclaw;如果无法确定,则为 unknown |
X-Skill-Name | aminer-daily-paper |
X-Skill-Version | 此文件 frontmatter 中的 version 字段 |
Content-Type | application/json;charset=utf-8 |
请求字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
author_name | string | 有条件必需 | 学者姓名(英文)。后端会通过人员搜索将其解析为学者 ID。 |
author_org | string | 可选 | 学者所在机构(英文全名)。姓名存在歧义时,需要此字段消除歧义。 |
topics | string[] | 有条件必需 | 研究主题短语。使用用户的原始表述(中文、英文或混合语言均可)。API 支持多语言主题字符串。 |
size | int | 可选 | 每次调用返回的论文数量(1–20)。省略时由模型决定(见下文)。 |
offset | int | 可选 | 分页偏移量(0–100,默认为 0)。 |
language_sort | string | 可选 | 仅当用户明确要求中文或英文倾向的排序时使用 zh 或 en(例如“优先中文论文”/“prefer English papers”)。否则省略;请求中不会包含此字段。 |
应至少提供 author_name 或 topics 之一。如果两者均未提供,API 将根据与 AMINER_API_KEY 关联的账户返回个性化推荐。
响应结构
{
"code": 200,
"success": true,
"data": [{
"offset": 0,
"size": 5,
"total": 32,
"papers": [{
"paper_id": "...",
"arxiv_id": "",
"title": "...",
"year": 2026,
"authors": ["Author A", "Author B"],
"keywords": ["kw1", "kw2"],
"summary": "...",
"structured_summary": {
"research_problem": "...",
"research_challenge": "...",
"research_method": "...",
"experimental_results": ""
},
"famous_authors": [],
"aminer_author_profiles": [],
"author_entries": [],
"links": {
"aminer": "https://www.aminer.cn/pub/{paper_id}",
"arxiv": "",
"pdf": ""
},
"paper_url": "https://www.aminer.cn/pub/{paper_id}",
"source": "local_rec5"
}]
}]
}
输入格式
结构化命令或普通自然语言均可。
/aminer-dp
/aminer-dp topics: multimodal agents, tool-use
/aminer-dp scholar: Jie Tang org: Tsinghua papers: OAG-Bench | RPC-Bench
recommend me recent papers on RAG
不带参数调用 /aminer-dp 时,只会携带令牌调用 API——API 会使用 AMINER_API_KEY 识别账户,并返回个性化推荐。
自然语言输入——调用脚本前,你(模型)必须先将其解析为字段。topics 尤其重要:
-
topics——不要“曲解”用户的意图- 如果用户已在触发词中写明
topics:(例如具身智能、环境保护),请将这些原始字符串传入handle_trigger.py的--text。不要将其替换成无关的英文词语(例如,不要把任意主题映射为“Knowledge Distillation”、“Smart agriculture”或用户未提及的其他领域)。 - 如果为了检索而补充英文,必须是同一概念的忠实别名(例如,具身智能 →
embodied intelligence,环境保护 →environmental protection)。如有疑问,保留用户的原始用词,不要凭空编造同义词。 - 绝不要把用户的主题改成不同的研究领域。
- 如果用户已在触发词中写明
-
学者和机构(人员搜索仍以英文为主)
- 解析学者信息时,
author_name/author_org使用常见的英文写法(例如Jie Tang、Tsinghua University),将知名机构的简称扩展为完整官方名称;如果姓名存在歧义,则补充author_org。如果无法可靠地确定对应信息,请询问用户。
- 解析学者信息时,
-
language_sort——只有当用户明确希望推荐结果按中文或英文偏好排序时,才在触发词中加入language_sort: zh或language_sort: en。如果用户没有提出此要求,不要添加此字段(API 调用会省略language_sort)。 -
确定
size以及是否需要多次调用(参见调用策略)。 -
重构触发词,然后调用
handle_trigger.py。
示例(中文主题——保持原样):
- 用户:
/aminer-dp topics: 具身智能, 环境保护 - 你调用:
handle_trigger.py --text "/aminer-dp topics: 具身智能, 环境保护"
(不要将topics改写成无关的英文。)
示例:
- 用户:
/aminer-dp 我做多模态智能体和 tool-use,帮我推荐最近论文 - 你提取:
topics: multimodal agents, tool-use - 你调用:
handle_trigger.py --text "/aminer-dp topics: multimodal agents, tool-use size: 5"
示例(学者):
- 用户:
/aminer-dp 我是唐杰,清华大学,做多模态和知识图谱 - 你提取:
scholar: Jie Tang, org: Tsinghua University, topics: multimodal, knowledge graph - 你调用:
handle_trigger.py --text "/aminer-dp scholar: Jie Tang org: Tsinghua University topics: multimodal, knowledge graph"
示例(姓名有歧义时,询问用户):
- 用户:
/aminer-dp 推荐张伟方向的论文 - 你:"张伟是一个常见名字,请提供机构信息以便精确匹配,例如:张伟,北京大学。或者直接提供 aminer_author_id。"
papers 字段:代表性论文标题(例如 papers: OAG-Bench | RPC-Bench)与 scholar / author_name 一同提供,作为消歧上下文。它们不会直接映射到 API 字段。
调用策略
根据输入决定 size 以及是否需要多次调用:
| 情况 | 操作 |
|---|---|
| 单个主题或学者、一般性请求 | 调用 1 次,省略 size(默认值为 10) |
| 用户明确要求数量(例如“给我 5 篇”) | 调用 1 次,按要求返回数量(最多 20) |
| 多个不同主题(例如 RAG + 多模态 Agent) | 每个主题组调用 1 次,每次设 size: 5 |
| 宽泛开放式请求,未指定主题 | 调用 1 次,省略 size(默认值为 10) |
多次调用规则:
- 每个主题组调用一次
handle_trigger.py,每次传入聚焦的topics:子集。 - 每个
topics:列表限制为 1–3 个紧密相关的术语,以提高准确性。 - 按顺序调用;所有调用完成后,再一起呈现全部结果。
- 所有调用返回的论文总数不应超过约 15 篇,除非用户要求更多。
执行
仅支持一个入口:
python3 "{baseDir}/scripts/handle_trigger.py" \
--base-dir "{baseDir}" \
--text "<trigger text with explicit fields>" \
[--config /path/to/config.yaml]
--text:包含明确字段(topics:、scholar:等)的重构触发内容--config:YAML 配置文件的可选路径(如果文件存在,则默认为{baseDir}/config.yaml,通过outputs/下的运行时副本读取)
handle_trigger.py 会解析字段、调用 rec5 API,并返回包含 reply_text(Markdown)的 JSON,供你展示给用户。
约定
- 每次显式调用都是一次新的运行。
- 不要只回复状态信息。
- 不要搜索、安装或修复技能。
- 运行
handle_trigger.py后,检查 JSON 输出中的final_response:TEXT— 正常流程。向用户展示reply_text(Markdown)。可选:你仍可根据当前渠道润色措辞;如果想让文案更丰富,prompts/enrich.md可作为中文扩写的参考。- 任何错误 → 向用户报告
reply_text(或错误详情)。
注意: 此技能仅返回包含 reply_text 的 JSON;它不实现针对特定渠道的发送功能。
错误处理
- 缺少
AMINER_API_KEY→ 停止,并提示用户设置该密钥。 - 未提供个人资料输入 → 提示用户提供主题、学者姓名或
aminer_author_id。 - API 错误 → 报告错误阶段;不要回退使用其他技能。