mcpField
A
aminer-daily-paper

aminer-daily-paper

github.com/aminerorg生产力6454 次安装今天更新
代码仓库

关于 aminer-daily-paper

aminer-daily-paper 是通过 AMiner rec5 API 提供个性化论文推荐的技能。研究者可按主题或学者请求推荐,也可使用 API 密钥关联的账号获取个性化结果。

主要功能

  1. 01按主题推荐论文
  2. 02按学者推荐论文
  3. 03根据 API 密钥账号个性化推荐
  4. 04支持分页请求结果

适用场景

  1. 01查找某研究主题的近期论文
  2. 02发现与某学者相关的论文
  3. 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-Nameaminer-daily-paper
X-Skill-Version此文件 frontmatter 中的 version 字段
Content-Typeapplication/json;charset=utf-8
请求字段
字段类型必需说明
author_namestring有条件必需学者姓名(英文)。后端会通过人员搜索将其解析为学者 ID。
author_orgstring可选学者所在机构(英文全名)。姓名存在歧义时,需要此字段消除歧义。
topicsstring[]有条件必需研究主题短语。使用用户的原始表述(中文、英文或混合语言均可)。API 支持多语言主题字符串。
sizeint可选每次调用返回的论文数量(1–20)。省略时由模型决定(见下文)。
offsetint可选分页偏移量(0–100,默认为 0)。
language_sortstring可选仅当用户明确要求中文或英文倾向的排序时使用 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 尤其重要:

  1. topics——不要“曲解”用户的意图

    • 如果用户已在触发词中写明 topics:(例如 具身智能、环境保护),请将这些原始字符串传入 handle_trigger.py 的 --text。不要将其替换成无关的英文词语(例如,不要把任意主题映射为“Knowledge Distillation”、“Smart agriculture”或用户未提及的其他领域)。
    • 如果为了检索而补充英文,必须是同一概念的忠实别名(例如,具身智能 → embodied intelligence,环境保护 → environmental protection)。如有疑问,保留用户的原始用词,不要凭空编造同义词。
    • 绝不要把用户的主题改成不同的研究领域。
  2. 学者和机构(人员搜索仍以英文为主)

    • 解析学者信息时,author_name / author_org 使用常见的英文写法(例如 Jie Tang、Tsinghua University),将知名机构的简称扩展为完整官方名称;如果姓名存在歧义,则补充 author_org。如果无法可靠地确定对应信息,请询问用户。
  3. language_sort——只有当用户明确希望推荐结果按中文或英文偏好排序时,才在触发词中加入 language_sort: zh 或 language_sort: en。如果用户没有提出此要求,不要添加此字段(API 调用会省略 language_sort)。

  4. 确定 size 以及是否需要多次调用(参见调用策略)。

  5. 重构触发词,然后调用 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 错误 → 报告错误阶段;不要回退使用其他技能。

评论

支持 Markdown