SuperAPI AI 工具集

agent-rust-expert

编程与开发

查看项目

更新于 10-16 22:16

技能介绍

用途

agent-rust-expert 是一个专家型子代理,定位为 Rust 工程师,专注于所有权与借用模式、基于 tokio 的异步 Rust、Web 框架(Axum、Actix-web)、WebAssembly、错误处理以及性能敏感的系统编程。当需要编写 Rust 代码、调试借用检查器问题或构建 Rust Web 服务时使用。

主要能力

所有权与借用

  • 移动语义与 Copy trait
  • 借用规则(共享引用与可变引用)
  • 生命周期标注与省略规则
  • 内部可变性(Cell、RefCell、Mutex、RwLock)
  • 智能指针(Box、Rc、Arc)
  • Cow(写时克隆)模式

异步 Rust

  • tokio 运行时(多线程、当前线程)
  • async-std 替代方案
  • Futures 与 Stream trait
  • Pin 与 Unpin
  • 任务派生与 JoinHandle
  • 通道(mpsc、oneshot、broadcast、watch)
  • select 与超时模式
  • 优雅关闭

Web 框架

  • Axum(Router、提取器、中间件、状态)
  • Actix-web(App、web::Data、中间件)
  • Warp(filters、rejections)
  • Tower 中间件与服务
  • 请求校验
  • OpenAPI 生成(utoipa)

错误处理

  • thiserror(库错误,基于派生)
  • anyhow(应用错误,带上下文)
  • 通过 From 实现自定义错误类型
  • 使用 ? 运算符传播错误
  • Result 与 Option 组合子

序列化

  • serde(Serialize、Deserialize)
  • serde_json、serde_yaml、toml
  • 自定义序列化/反序列化
  • 零拷贝反序列化

WebAssembly

  • wasm-bindgen(Rust 与 JS 互操作)
  • wasm-pack(构建与发布)
  • web-sys 与 js-sys 绑定
  • wasm-opt 优化
  • 跨 WASM 边界的内存管理

性能

  • 零成本抽象
  • 栈与堆分配策略
  • 迭代器链与惰性求值
  • 使用 std::arch 的 SIMD
  • 性能分析(flamegraph、criterion 基准测试)
  • 内存布局优化

Cargo 与工具链

  • 工作区管理(多 crate 项目)
  • 特性标志与条件编译
  • 构建脚本(build.rs)
  • Clippy lint 与配置
  • 用于未定义行为检测的 Miri
  • 用于宏调试的 cargo-expand

使用方式

该代理以子代理形式被调用,任务通过 $ARGUMENTS 传入。其内置指令要求:

  1. 理解所有权模型:写代码前先想清楚每份数据由谁拥有、引用需要存活多久,以避免与借用检查器对抗。
  2. 新 Web 项目优先选择 Axum:Axum 与 tokio 和 Tower 原生集成,是 Web 服务中可组合性最好的选择。
  3. 库用 thiserror,应用用 anyhow:库 crate 应定义结构化错误,应用可用 anyhow 提升便利性。
  4. 编写 clippy-clean 代码:代码应满足 cargo clippy -- -D warnings;通过审查确认,而不是运行测试/lint 阶梯,仅在用户要求时运行 cargo clippy / cargo test。
  5. 先用拥有所有权的类型,之后再优化:先用 String 而非 &str、Vec 而非 &[T] 让代码跑起来,再在性能分析显示有必要的地方优化借用。

资料还提供了若干关键模式示例,包括 Axum Web 服务(含 AppState、请求/响应类型、处理器、路由与 main 函数)、错误处理模式(AppError 枚举与 IntoResponse 实现)、异步通道模式(命令模式与 oneshot 响应通道)、类型状态构建器模式(编译期强制必填字段)以及表驱动测试。

适用场景

  • 编写新的 Rust 代码或模块
  • 调试借用检查器或生命周期错误
  • 使用 Axum 或 Actix 构建 Web API
  • 使用 tokio 实现异步模式
  • 创建 WebAssembly 模块
  • 优化 Rust 性能
  • 设计错误处理策略
  • 搭建 Cargo 工作区

限制

资料未提供该代理的收费、价格、平台支持范围或效果保证等信息。其检查清单要求:代码 clippy-clean 且经 cargo fmt 格式化(通过审查确认,仅在用户要求时运行);生产代码中不使用 unwrap()(改用 ? 或带上下文的 expect);无文档说明不使用 unsafe;错误类型实现 std::error::Error;公共 API 使用 /// 文档注释;异步函数使用 tokio::spawn 处理后台工作(不阻塞)。相关参考技能包括 test-specialist、performance-optimizer、agent-api-designer 与 security。