SuperAPI AI 工具集

rust-learner

编程与开发

查看项目

更新于 10-15 10:31

技能介绍

用途

rust-learner 是一个用于获取 Rust 与 crate 信息的技能(Skill),版本 2.1.0,最后更新于 2025-01-27。它被定位为获取 Rust/crate 信息的主要技能,帮助用户完成以下任务:

  • 版本查询:获取最新的 Rust/crate 版本
  • API 文档:从 docs.rs 获取文档
  • 更新日志:从 releases.rs 获取 Rust 版本特性

主要能力

该技能覆盖以下查询类型,并对应不同的 agent 文件与数据来源:

  • Rust 版本特性:../../agents/rust-changelog.md,来源 releases.rs
  • Crate 信息/版本:../../agents/crate-researcher.md,来源 lib.rs、crates.io
  • 标准库文档(Send、Sync、Arc 等):../../agents/std-docs-researcher.md,来源 doc.rust-lang.org
  • 第三方 crate 文档(tokio、serde 等):../../agents/docs-researcher.md,来源 docs.rs
  • Clippy lints:../../agents/clippy-researcher.md,来源 rust-clippy 文档

使用方式

执行模式检测

技能首先检查 agent 文件是否可用,以确定执行模式。根据查询类型读取对应的 agent 文件路径(见上表)。

Agent 模式(插件安装)

当 ../../agents/ 下存在 agent 文件时:

  1. 读取对应的 agent 文件(相对于本技能)
  2. 以 run_in_background: true 启动 Task
  3. 继续其他工作或等待完成
  4. 向用户汇总结果

Task 调用形式:

Task(
  subagent_type: "general-purpose",
  run_in_background: true,
  prompt: <read from ../../agents/*.md file>
)

示例:用户询问 "tokio latest version" 时,读取 ../../agents/crate-researcher.md,启动 Task,等待 agent,然后汇总结果。用户询问 "What's new in Rust 1.85?" 时,读取 ../../agents/rust-changelog.md,启动 Task,等待 agent,然后汇总特性。

Inline 模式(仅安装 Skills)

当 agent 文件不可用时,直接执行以下步骤。

Crate 信息查询:

  1. actionbook: mcp__actionbook__search_actions("lib.rs crate info")
  2. 获取 action 详情:mcp__actionbook__get_action_by_id(<action_id>)
  3. agent-browser CLI(或 WebFetch 回退):open "https://lib.rs/crates/{crate_name}",使用 actionbook 中的选择器 get text,close
  4. 解析并格式化输出

输出格式:

## {Crate Name}

**Version:** {latest}
**Description:** {description}

**Features:**
- `feature1`: description

**Links:**
- [docs.rs](https://docs.rs/{crate}) | [crates.io](https://crates.io/crates/{crate}) | [repo]({repo_url})

Rust 版本查询:

  1. actionbook: mcp__actionbook__search_actions("releases.rs rust changelog")
  2. 获取选择器的 action 详情
  3. agent-browser CLI(或 WebFetch 回退):open "https://releases.rs/docs/1.{version}.0/",使用 actionbook 中的选择器 get text,close
  4. 解析并格式化输出

输出格式:

## Rust 1.{version}

**Release Date:** {date}

### Language Features
- Feature 1: description
- Feature 2: description

### Library Changes
- std::module: new API

### Stabilized APIs
- `api_name`: description

标准库文档(std::*、Send、Sync、Arc 等):

  1. 构造 URL:"https://doc.rust-lang.org/std/{path}/"
    • Traits: std/{module}/trait.{Name}.html
    • Structs: std/{module}/struct.{Name}.html
    • Modules: std/{module}/index.html
  2. agent-browser CLI(或 WebFetch 回退):open <url>,get text "main .docblock",close
  3. 解析并格式化输出

常见标准库路径:

  • Send、Sync、Copy、Clone:std/marker/trait.{Name}.html
  • Arc、Mutex、RwLock:std/sync/struct.{Name}.html
  • Rc、Weak:std/rc/struct.{Name}.html
  • RefCell、Cell:std/cell/struct.{Name}.html
  • Box:std/boxed/struct.Box.html
  • Vec:std/vec/struct.Vec.html
  • String:std/string/struct.String.html

输出格式:

## std::{path}::{Name}

**Signature:**
```rust
{signature}

Description: {description}

Examples:

{example_code}

第三方 crate 文档(tokio、serde 等):

1. 构造 URL:"https://docs.rs/{crate}/latest/{crate}/{path}"
2. agent-browser CLI(或 WebFetch 回退):open <url>,get text ".docblock",close
3. 解析并格式化输出

输出格式:

```markdown
## {crate}::{path}

**Signature:**
```rust
{signature}

Description: {description}

Examples:

{example_code}

Clippy Lints:

1. agent-browser CLI(或 WebFetch 回退):open "https://rust-lang.github.io/rust-clippy/stable/",在页面中搜索 lint 名称,对匹配的 lint get text ".lint-doc",close
2. 解析并格式化输出

输出格式:

```markdown
## Clippy Lint: {lint_name}

**Level:** {warn|deny|allow}
**Category:** {category}

**Description:**
{what_it_checks}

**Example (Bad):**
```rust
{bad_code}

Example (Good):

{good_code}

## 工具链优先级

两种模式使用相同的工具链顺序:

1. actionbook MCP —— 首先获取预计算的选择器
   - mcp__actionbook__search_actions("site_name") → 获取 action ID
   - mcp__actionbook__get_action_by_id(id) → 获取 URL + 选择器
2. agent-browser CLI —— 主要执行工具
   ```bash
   agent-browser open <url>
   agent-browser get text <selector_from_actionbook>
   agent-browser close
  1. WebFetch —— 仅在 agent-browser 不可用时作为最后手段

回退原则(关键):actionbook → agent-browser → WebFetch(仅当 agent-browser 不可用时)。

不要:因为 agent-browser 较慢而跳过它;在 agent-browser 可用时把 WebFetch 作为主要工具;未先尝试 agent-browser 就阻塞在 WebFetch 上。

已弃用模式

  • 用 WebSearch 查询 crate 信息 → 改用 Task + agent 或 inline 模式(原因:结构化数据)
  • 直接使用 WebFetch → 改用 actionbook + agent-browser(原因:预计算选择器)
  • 猜测版本号 → 始终从来源获取(原因:防止错误信息)

错误处理

  • Agent 文件未找到:仅安装 Skills,使用 inline 模式
  • actionbook 不可用:MCP 未配置,回退到 WebFetch
  • agent-browser 未找到:CLI 未安装,回退到 WebFetch
  • Agent 超时:站点缓慢/宕机,重试或告知用户
  • 结果为空:选择器不匹配,报告并使用 WebFetch 回退

主动触发

该技能在以下情况自动触发:

  • 提及任何 Rust crate 名称(tokio、serde、axum、sqlx 等)
  • 关于 "latest"、"new"、"version"、"changelog" 的问题
  • API 文档请求
  • 依赖/特性问题

不要使用 WebSearch 查询 Rust crate 信息,改用 agents 或 inline 模式。

适用场景与限制

适用场景:需要查询 Rust 或 crate 版本、更新日志、标准库与第三方 crate API 文档、Clippy lint 信息的场景。

限制:该技能依赖 agent 文件、actionbook MCP、agent-browser CLI 或 WebFetch 等外部工具与来源站点;当这些工具不可用时需按回退原则处理。关于收费、价格、平台支持范围等信息,资料中暂未提供。