Finic 开源风控与反欺诈决策平台 Kairos
Show HN: Kairos – Open-source risk and fraud decisioning platform
Finic 开源风控与反欺诈决策平台 Kairos,对注册、登录、订单、支付和提现实时返回 approve、step up、review 或 block 决策,并保留决策依据的信号。
Kairos 会在每次注册、登录、下单、支付和打款发生时做出决策,并保留每个决策及其背后的信号。它是 Sardine、Sift、Riskified 和 SEON 的开源替代方案,具备它们没有的两点:你的编码代理会调优它,以及决策模型能在你拥有可用于训练的标签之前捕获欺诈。
决策
- 实时决策:一次调用返回批准、升级验证、人工审核或拦截,并附带风险评分和原因,依据来自主体的历史记录、其与他人共用的设备、卡和地址,以及会话信息。
- 工作流:询问决策模型、用模型打分、分支、调用 webhook、开立案件,并在之后再次决策。
- 队列和案件:供人工审核的工作,其处理结果会成为标签。
代理优先
- MCP 服务器:Claude Code、Cursor 或 Codex 读取你的决策并构建工作流,每个操作都记录在其密钥下。
- 实验:你的代理提出模型变体,Kairos 在你的数据上训练和测试它们,代理发布胜出者。
决策模型与传统机器学习
- Grayson:Finic 的决策模型用自然语言回答关于每个请求的问题。它只需少量标签,并能读取非结构化数据。
- 模型:逻辑回归和梯度提升树(兼容 XGBoost),基于你的数值和 Grayson 的回答,可在 Kairos 中训练或上传。
面向开发者
一位始终在你的数据上调优的 AI 欺诈 ML 工程师
你把产品中发生的事件发送给 Kairos:注册、登录、订单、打款、拒付。它为每个请求做出决策(批准、升级验证、人工审核或拦截),并保留每个决策及其背后的信号。
Kairos 的不同之处在于由谁来调优它。通过 MCP 连接 Claude Code、Cursor、Codex 或任何代理,代理就能完成欺诈 ML 工程师的工作:
- 构建工作流。它定义要决策什么、向决策模型询问哪些问题,以及要对哪些字段打分。
- 设计实验。它提出变体:仅用决策模型、基于你的数值的逻辑回归、梯度提升树、它们的堆叠,或将决策模型的回答与你的数值结合在一个模型中。
- 让 Kairos 运行它们。服务器在最旧的已标注数据上训练每个变体,在次新的数据上选择,在最新的数据上测试,然后报告 ROC-AUC、PR-AUC、相对基线的提升及其 95% 区间,以及在你设定阈值下的精确率和召回率。
- 选出胜出者并发布。代理解释其选择,将该变体应用为工作流的下一个版本,并在新标签到达时再次回来。
You: "Our chargebacks went up. Find a better model for shopify_order and publish it if it wins."
Agent: designs six variants → create_workflow_experiment → reads the results →
"Logistic regression on the order's numbers plus Grayson's answers wins: ROC-AUC 0.949 on validation,
0.930 on test. Publishing it as v6."
决策模型与传统机器学习,相辅相成
Kairos 围绕 Finic 的决策模型 Grayson 构建。你用自然语言向它提问(“收货地址看起来像转运商吗?”“这个邮箱是临时邮箱吗?”),它用校准后的概率回答。决策模型在传统 ML 薄弱的方面很强:
- 标签稀少。Grayson 在第一天就能工作,无需等到你拥有模型学习所需的数千条拒付记录。
- 非结构化数据。它能读取描述、电子邮件、姓名、地址、备注和商品标题,而梯度提升树无法做到。
- 解释。每个答案都是你写下的问题,因此每个决策都会说明原因。
传统模型在决策模型薄弱之处表现强劲:它们从你自己的数据中精确学习你自己的结果,而且每次决策零成本。Kairos 让你将两者结合:Grayson 的答案会成为特征,与你的字段一起进入 逻辑回归 或 梯度提升树(兼容 XGBoost,在 Kairos 内部训练),实验会告诉你哪种组合在你的数据上胜出。
开始使用
Kairos Cloud
在 kairos.finic.ai 注册。创建一个沙盒环境、一个密钥,就可以发送事件了。
连接你的智能体
在控制台中,打开 Settings › MCP,开启你的智能体所需的工具组,并创建一个密钥。然后,在 Claude Code 中:
claude mcp add --transport http kairos https://kairos.finic.ai/mcp --header "Authorization: Bearer ksk_…"Cursor、Codex 和 VS Code 的用法相同:参见 MCP for agents。然后让你的智能体查看你的决策、构建工作流或运行实验。
发送事件并做出决策
npm install @finic-ai/kairos # or: pip install finic-kairosimport { Kairos } from "@finic-ai/kairos"; const kairos = new Kairos({ apiKey: process.env.KAIROS_API_KEY!, baseUrl: "https://kairos.finic.ai" }); await kairos.defineAction("withdrawal", { subject: "user", hold: "Should this withdrawal be held because the account shows signs of fraud or takeover?", }); 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 以及来自 portal.finic.ai 的 Grayson API 密钥。无需设置数据库:服务器会自行启动 Postgres。
pnpm install cp .env.example .env # set GRAYSON_API_KEY pnpm kairos dev # the API on http://localhost:8787 and the console on http://localhost:5273
为你的团队,docker compose up --build。参见 Self-hosting 和 Local setup。
CLI
pnpm kairos signup # the local server, a new account pnpm kairos login --profile prod --url https://kairos.finic.ai --email you@example.com pnpm kairos keys create "My server" # a secret key for your code 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 # every command
要将 kairos 加入你的路径,请在 apps/cli 中运行 pnpm link --global。
集成
- Shopify:对每个订单做出决策,将有风险的订单暂留待审,并从拒付中学习。要为你的商店获取 Kairos 应用,请通过 Discord 或 support@finic.ai 联系 Finic 团队。
- 入站 webhook:接收来自 Stripe 等提供商的事件。参见 Inbound webhooks。
文档
文档位于 kairos.finic.ai/docs,以及 docs/ 中。
| 概览 | Kairos 做什么、决策如何做出,以及它不做什么 |
| 快速开始 | 几分钟内完成第一个决策 |
| MCP for agents | 连接 Claude Code、Cursor、Codex 或 VS Code |
| 模型与实验 | 评分模型,以及比较它们的实验 |
| 工作流 | 触发器、步骤、表达式和运行 |
| 概念 | 实体、事件、标签、链接、动作、策略、决策 |
| 导入你的历史 | 从文件加载现有事件、客户和结果 |
| TypeScript SDK · Python SDK | 两个客户端 |
| API 参考 | 每个 HTTP 端点 |
| 队列与案例 | 供人审核的工作 |
| 自托管 | Docker、Postgres、迁移、配置、安全 |
| 参与 Kairos 开发 | 仓库、服务器、测试和评估套件 |
仓库
| 路径 | 内容 |
|---|---|
apps/server |
HTTP API 和 MCP 服务器。基于 Node.js 的 Hono,通过 Drizzle 使用 Postgres。 |
apps/console |
Web 控制台。React 和 Vite。 |
apps/cli |
kairos,CLI:启动 Kairos、连接服务器并调用其 API。 |
packages/core |
决策路径、模型评分器和树训练器。 |
packages/sdk |
@finic-ai/kairos,TypeScript 客户端。 |
packages/sdk-python |
finic-kairos,Python 客户端。 |
packages/eval |
评估套件和实验。 |
templates/ |
可复制的动作定义和事件结构。 |
examples/ |
可运行的端到端场景。 |
docs/ |
文档。 |
pnpm test # all tests; no network pnpm test:python # the tests of the Python SDK pnpm typecheck
社区
- Discord:问题、想法和展示分享,地址为 discord.gg/4zRwRCK6Mx
- 电子邮件:support@finic.ai
- 贡献:欢迎提交 issue 和 pull request。请先阅读 参与 Kairos 开发。
许可证
Kairos 采用 Apache License 2.0 许可。
来源:Hacker News · github.com
