Kairos – 开源风险与欺诈决策平台

39

Kairos在每次注册、登录、下单、支付和提现时即时做出决策,并将每项决策及其背后的信号一并保存。

它是一款开源的替代方案,可与 Sardine、Sift、Riskified 和 SEON 竞争,同时具备这两家公司所不具备的两大特点:由您的编码代理进行调优,且决策模型能够在您尚未获得用于训练的标签之前就识别出欺诈行为。

决策

• 实时决策:一次调用即可返回批准、升级、审核或拦截结果,并附带风险评分及理由,这些信息基于主体的历史记录、其使用的设备、与其他用户共享的银行卡和地址,以及当前会话数据。

• 工作流:调用决策模型、使用模型打分、分支处理、触发 Webhook、创建工单,并在稍后再次作出决策。

• 队列与工单:供人工审核的工作任务,其处理结果将作为标签留存。

以代理为先

• MCP 服务器:Claude Code、Cursor 或 Codex 可读取您的决策并构建工作流,每个操作都会在其对应的键下被记录。

• 实验:您的代理提出模型变体,Kairos 在您的数据上对其进行训练与测试,最终由代理部署胜出的版本。

决策模型与传统机器学习

• Grayson:Finic 的决策模型以自然语言回答每个请求的相关问题。

它只需少量标签即可运行,并能解析非结构化数据。• 模型:基于您的数值数据以及 Grayson 的回答,采用逻辑回归与梯度提升树(兼容 XGBoost),可在 Kairos 中训练或直接上传。

面向开发者

• SDK:适用于 TypeScript(@finic-ai/kairos)和 Python(finic-kairos);CLI;HTTP API;以及通过 Docker 自行部署。

一位始终基于您的数据进行调优的 AI 反欺诈机器学习工程师

您将产品中发生的各类事件——注册、登录、订单、提现、拒付等——发送给 Kairos。

它会对每个请求作出决策(批准、升级、审核或拦截),并将每项决策及其背后的信号完整保留。

Kairos 的独特之处在于其调优方式。通过 MCP 连接 Claude Code、Cursor、Codex 或任何其他代理,该代理便可承担反欺诈机器学习工程师的工作:

1. 构建工作流:定义需要决策的内容、向决策模型提出的问题,以及需要打分的字段。2. 设计实验:提出多种变体方案——仅使用决策模型、基于您的数值数据的逻辑回归、梯度提升树、多模型组合,或将决策模型的回答与您的数值数据整合到单一模型中。

3. 让 Kairos 执行实验:服务器利用您最早标注的数据对每种变体进行训练,在后续数据上选择最优方案,并在最新数据上进行测试,随后报告 ROC-AUC、PR-AUC、相对于基准的增益及其 95% 置信区间,以及在您设定的阈值下的精确率与召回率。

4. 选定胜出方案并部署:代理解释其选择,将该变体作为工作流的下一版应用,并在新标签到达时再次介入。

决策模型与传统机器学习的结合

Kairos 以 Finic 的决策模型 Grayson为核心。

您可以以自然语言向其提问(“收货地址是否疑似二次发货?”、“该邮箱是否为一次性邮箱?”),它会给出经过校准的概率答案。决策模型在传统机器学习薄弱的领域表现出色:

• 标签稀少:Grayson 在第一天就能投入使用,无需等待模型所需的数千条拒付记录。• 非结构化数据:它可以解析描述、邮件、姓名、地址、备注和商品标题,而梯度提升树则无法处理此类数据。

• 可解释性:每个答案都源自您编写的提问,因此每项决策都能说明原因。

传统模型则在决策模型的短板上表现优异:它们能够从您的自有数据中精准学习业务结果,且每次决策的成本几乎为零。Kairos 允许您将两者结合:Grayson 的回答可作为特征,与您的原始字段一同输入逻辑回归或梯度提升树(兼容 XGBoost,可在 Kairos 内部训练),并通过实验确定哪种组合在您的数据上效果最佳。

开始使用

Kairos Cloud

前往 注册账号。创建一个沙盒环境和密钥,即可开始发送事件。

连接您的代理

在控制台中,进入“设置 › MCP”,启用您的代理所需的功能组,并创建一个密钥。

然后在 Claude Code 中执行以下命令:

claude mcp add --transport http kairos --header "Authorization: Bearer ksk_…"

Cursor、Codex 和 VS Code 的操作方式相同:请参阅“面向代理的 MCP”。随后,让您的代理查看您的决策、构建工作流或运行实验。

发送事件并作出决策

npm install @finic-ai/kairos # 或:pip install finic-kairos

import { Kairos } from "@finic-ai/kairos";

const kairos = new Kairos({ apiKey: process.env.KAIROS_API_KEY!, baseUrl: "" });

await kairos.defineAction("withdrawal", { subject: "user", hold: "是否应因账户存在欺诈或被盗迹象而暂停此笔提现?",});

kairos.track("login", { userId: "user_42", deviceId: "dev_9", ipCountry: "GB" });

const decision = await kairos.decide({ type: "withdrawal", userId: "user_42", usd: 900 }); // { decision: "approve" | "step_up" | "review" | "block", riskScore, reasons, … }

自托管

您需要 Node.js 22、pnpm 10,以及来自 的 Grayson API 密钥。

无需自行搭建数据库:服务器会启动自带的 Postgres 数据库。

pnpm install cp.env.example.env # 设置 GRAYSON_API_KEY pnpm kairos dev # API 运行于 http://localhost:8787,控制台位于 http://localhost:5273

对于团队,可使用 docker compose up --build 部署。详情请参阅“自托管”和“本地搭建”。

• CLI

pnpm kairos signup # 启动本地服务器并创建新账号 pnpm kairos login --profile prod --url --email you@example.com pnpm kairos keys create "My server" # 为您的代码生成密钥 pnpm kairos actions define withdrawal --data @withdrawal.json pnpm kairos import events transactions.csv --type transaction --ts created_at --entity user=customer pnpm kairos decide withdrawal -e user=user_42 -p usd=900 pnpm kairos workflows run review_payout -i user=user_42 --wait pnpm kairos --help # 查看所有命令

若希望在系统路径中使用 kairos,请在 apps/cli 目录下执行 pnpm link --global。

集成

• Shopify:对每笔订单作出决策,将高风险订单暂挂待审,并从拒付记录中持续学习。

如需为您的商店安装 Kairos 应用,请通过 Discord或发送邮件至 support@finic.ai(mailto:support@finic.ai)联系 Finic 团队。

• 入站 Webhook:接收来自 Stripe 等服务商的事件。详情请参阅“入站 Webhook”。

文档

文档位于,以及 docs/ 目录。

代码仓库

pnpm test # 运行所有测试,无网络依赖 pnpm test:python # Python SDK 的测试 pnpm typecheck

社区

• Discord:问答、创意分享与经验交流,欢迎加入。

• 邮件:support@finic.ai(mailto:support@finic.ai)。• 贡献:欢迎提交问题与拉取请求。请先阅读“参与 Kairos 开发”。

许可证

Kairos 采用 Apache License 2.0 许可证。

参与讨论