koishi-plugin-am-i-alt
v2.2.1
Published
[](https://www.npmjs.com/package/koishi-plugin-am-i-alt)
Readme
koishi-plugin-am-i-alt
一个给 Koishi 用的小号检测插件,支持 discord、onebot、telegram。
本项目部分由AI完成
它会根据平台可拿到的信息做判断:
- Discord:账号注册时间是否过新
- OneBot (QQ):QQ 等级是否低于阈值
- Telegram:基于 userId 的粗略年龄估算(低置信度)
另外如果项目里有 binding 表,插件会尽量把同一人的跨平台账号一起看,再给一个综合结果。
使用
启用插件后有两个命令:
我是小号吗他是小号吗 [target](支持 @某人,或直接传平台userId)
配置项
enableDiscordCheck:是否启用 Discord 检测enableOneBotCheck:是否启用 OneBot 检测enableTelegramCheck:是否启用 Telegram 检测minDiscordAccountAgeDays:Discord 小于该账号年龄判定为疑似小号minQqLevel:QQ 等级低于该值判定为疑似小号minTelegramEstimatedAccountAgeDays:Telegram 估算年龄小于该值判定为疑似小号onError:检测失败时策略unknown(推荐):返回未知pass:按非小号处理block:按小号处理
对外服务 (Service)
本插件注入了 ctx.amIAlt 服务,可供其他插件调用以实现小号检测功能。
API 说明
1. ctx.amIAlt.check()
执行深度检测,返回详细的判定结果与原始数据。
- 调用:
ctx.amIAlt.check(session, overrides?, options?) - 返回:
Promise<AltCheckResult>
结果类型定义:
interface AltCheckResult {
decision: AltCheckDecision // 判定决策 (例如: 'pass' | 'reject')
reason: AltCheckReason // 判定原因编码
platform?: Session['platform'] // 用户所属平台
userId?: string // 用户标识 ID
details?: {
accountAgeDays?: number // 账号已存在天数
qqLevel?: number // QQ 等级(仅限 QQ 平台)
estimatedAccountAgeDays?: number // 估算的账号年龄
threshold?: number // 插件配置的判定阈值
estimationConfidence?: 'low' // 估算置信度
}
}2. ctx.amIAlt.isAlt()
简易判定接口,直接返回布尔值结果。
- 调用:ctx.amIAlt.isAlt(session, overrides?, options?)
- 返回:Promise<boolean | null>
说明
- Telegram 检测是启发式规则,不建议单独作为封禁依据。
- 如果你做的是风控场景,建议把这个插件作为前置筛选信号之一,再叠加行为数据或人工复核。
