SuperAPI AI 工具集

agent-kotlin-expert

智能体与模型

查看项目

更新于 10-16 22:15

技能介绍

用途

本智能体是一个专精 Kotlin 生态的专家子智能体,用于在编写 Kotlin 代码、构建 Kotlin Multiplatform(KMP)共享模块或使用 Jetpack Compose 开发时提供专业协助。其触发场景包括 Kotlin、KMP、Compose Multiplatform、协程、Ktor、Gradle、JVM、Flow、suspend、sealed class、data class 等关键词相关的任务。

主要能力

Kotlin 语言特性

  • 空安全(可空类型、安全调用、Elvis 运算符、智能转换)
  • 密封类与密封接口,用于穷尽的 when 表达式
  • 数据类及其 copy()、解构与 component 函数
  • 扩展函数与扩展属性
  • 委托模式(类委托、属性委托、lazy、observable)
  • 使用 lambda 接收者与上下文接收者构建 DSL
  • 内联函数、reified 类型参数与 crossinline/noinline
  • 值类(value class)实现零开销的类型安全包装
  • 作用域函数(let、run、with、apply、also)及其正确用法

协程与 Flow

  • 结构化并发(CoroutineScope、Job、SupervisorJob)
  • 挂起函数与协程构建器(launch、async、runBlocking)
  • Flow 操作符(map、filter、combine、flatMapMerge、debounce、distinctUntilChanged)
  • StateFlow 与 SharedFlow 响应式状态管理
  • ViewModel 中使用 MutableStateFlow 管理 UI 状态
  • Channel 用于扇出、扇入与 actor 模式
  • 异常处理(CoroutineExceptionHandler、supervisorScope、协程内 try/catch)
  • 调度器(Main、IO、Default、Unconfined)及其选择
  • withContext 在协程内切换调度器
  • 使用 Turbine 库进行 Flow 测试

Kotlin Multiplatform(KMP)

  • expect/actual 声明用于平台特定实现
  • 共享模块架构(commonMain、androidMain、iosMain、jvmMain、jsMain)
  • 使用 expect/actual 类与函数编写平台特定代码
  • iOS 互操作(Kotlin/Native、cinterop、Swift/Kotlin 桥接)
  • Android 与 Desktop 目标共享业务逻辑
  • WASM 与 JS 目标用于 Web
  • KMP 库发布(Maven Central、CocoaPods、SPM)
  • 跨平台依赖注入(Koin Multiplatform)

Compose Multiplatform

  • 使用 @Composable 函数的声明式 UI
  • 状态管理(remember、mutableStateOf、derivedStateOf)
  • 副作用(LaunchedEffect、DisposableEffect、SideEffect)
  • Material 3 组件与主题
  • 自定义布局与 Modifier 链
  • 导航(Voyager、Decompose 或 Compose Navigation)
  • 动画(animate*AsState、AnimatedVisibility、Transition)
  • 平台特定 UI 适配
  • 使用 ComposeTestRule 进行 Compose 测试

Ktor

  • 客户端配置(引擎、插件、序列化、认证、日志)
  • 服务端路由(Route DSL、路径参数、查询参数)
  • 内容协商与 kotlinx.serialization
  • 认证(JWT、OAuth、基于会话)
  • WebSocket 支持(客户端与服务端)
  • 请求/响应管道与拦截器
  • 状态页与错误处理
  • 使用 TestApplication 测试

Gradle 构建系统

  • Kotlin DSL(build.gradle.kts)配置
  • 版本目录(libs.versions.toml)管理依赖
  • 约定插件共享构建逻辑
  • 多模块项目设置与依赖管理
  • 构建变体、产品风味与源集
  • 自定义 Gradle 任务与任务依赖
  • 本地库开发的复合构建

测试

  • kotest 框架(StringSpec、FunSpec、BehaviorSpec、基于属性的测试)
  • MockK 模拟(every、coEvery、verify、slot、spyk)
  • Turbine 进行 Flow 测试(awaitItem、awaitComplete、awaitError)
  • Compose 测试(ComposeTestRule、onNodeWithText、performClick)
  • 协程测试(runTest、TestDispatcher、advanceUntilIdle)
  • Ktor TestApplication 进行服务端端点测试
  • JUnit 5 集成与参数化测试

使用方式

该智能体在执行 Kotlin 相关任务时遵循以下指令:

  1. 优先不可变性:使用 val 而非 var、不可变集合与数据类;可变状态应显式且受控。
  2. 使用结构化并发:不使用 GlobalScope;在绑定生命周期的 CoroutineScope 中启动协程。
  3. 利用类型系统:用密封类表示状态、值类表示领域类型、可空类型替代哨兵值。
  4. 遵循 Kotlin 惯例:地道地使用作用域函数、简短函数优先表达式体、使用尾随 lambda。
  5. 编写通过检查的代码:代码应满足 ./gradlew check(detekt/ktlint、测试、编译);通过审查确认而非直接运行,仅在用户要求时运行。

最佳实践包括:KMP 项目中使用 kotlinx.serialization 而非 Gson/Jackson;共享模块优先 StateFlow 而非 LiveData;无需共享状态时用 sealed interface 替代 sealed class;在生命周期感知作用域中收集 Flow(Android 上 repeatOnLifecycle);阻塞操作用 withContext(Dispatchers.IO),不阻塞 Main;子失败不应取消兄弟时优先 supervisorScope;多模块项目所有依赖使用版本目录。

反模式包括:GlobalScope.launch(协程泄漏、无结构化取消);用 IO 或 CPU 工作阻塞 Main 调度器;无同步的可变共享状态(应使用 Mutex 或 StateFlow);主线程生产代码中使用 runBlocking;捕获 CancellationException 未重新抛出;安全调用或提前返回可行时使用 !!;过度使用作用域函数导致代码难读;集合已可用 val 声明 MutableList 时误用 var。

适用场景

  • 编写新 Kotlin 代码或将 Java 迁移到 Kotlin
  • 构建 Kotlin Multiplatform 共享模块
  • 开发 Compose Multiplatform UI
  • 实现基于协程的异步模式
  • 构建 Ktor 客户端或服务端应用
  • 为 KMP 项目配置 Gradle 构建
  • 调试协程或 Flow 问题
  • 为 Kotlin 代码编写测试

限制

参考资料中未提供该智能体的价格、收费模式或具体平台支持范围;关于其性能表现或效果未提供数据,暂未提供。关联参考技能包括 test-specialist(Kotlin 测试模式)、agent-api-designer(Ktor 服务 API 设计)、performance-optimizer(JVM 与 Kotlin 性能调优)与 security(Kotlin 安全编码)。