关于 Decide Policy Notaries
Decide Policy Notaries 为订阅服务商提供退款、取消、退货和试用政策判定。其 MCP 端点采用失败关闭策略;政策范围或经审核的证据不足时返回 UNKNOWN。
主要功能
- 01退款资格检查
- 02取消费用检查
- 03退货资格检查
- 04试用条款检查
- 05失败关闭并返回 UNKNOWN
适用场景
- 01检查订阅退款申请
- 02在处理前评估取消条款
- 03核验退货或试用资格
MCP 相关
稳定的远程 MCP 服务通过统一端点或专用端点提供四种政策检查工具。它们返回针对具体政策的判定;范围或证据不足时会失败关闭。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://policy.decide.fyi/api/mcpclaude mcp add --transport http decidefyi-policy-notaries https://policy.decide.fyi/api/mcp{"mcpServers":{"decidefyi-policy-notaries":{"type":"http","url":"https://policy.decide.fyi/api/mcp"}}}在 Cursor 中打开{"servers":{"decidefyi-policy-notaries":{"type":"http","url":"https://policy.decide.fyi/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"decidefyi-policy-notaries":{"type":"http","url":"https://policy.decide.fyi/api/mcp"}}}{"mcpServers":{"decidefyi-policy-notaries":{"serverUrl":"https://policy.decide.fyi/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
4| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| plan | enum | 是 | 套餐类型。目前仅支持 'individual' 套餐。individual |
| region | enum | 是 | 地区代码。目前仅支持 'US'。US |
| vendor | enum | 是 | 供应商标识符(小写,单词之间以下划线分隔)。1password | adobe | amazon_music_unlimited | amazon_prime | amc_plus | apple_app_store | apple_arcade | apple_music | apple_tv_plus | audible | bitwarden | britbox | bumble | calm | canva | chatgpt_plus | claude_pro | coursera_plus | crunchyroll | dashlane | deezer | discord_nitro | discovery_plus | disney_plus | doordash_dashpass | dropbox_us | duolingo | ea_play | espn_plus | evernote | expressvpn | figma | fitbit_premium | fubo_tv | github_pro | google_one | google_play | grammarly | headspace | hellofresh | hinge | hulu | icloud_plus | instacart_plus | keeper | kindle_unlimited | lastpass | linkedin_premium | masterclass | max | microsoft_365 | midjourney | mlb_tv | myfitnesspal_premium | netflix | new_york_times | nfl_plus | nintendo_switch_online | noom | nordvpn | notion | paramount_plus | patreon | peacock | peloton | playstation_plus | proton | reddit_premium | ring_protect | roblox_premium | scribd | shutterstock | siriusxm | slack | sling_tv | snapchat_plus | soundcloud_go | spotify | squarespace | starz | strava | substack | surfshark | telegram_premium | tidal | tinder | todoist | twitch | uber_one | ubisoft_plus | wall_street_journal | walmart_plus | washington_post | weightwatchers | wix | x_premium | xbox_game_pass | youtube_premium | youtube_tv | zoom |
| days_since_purchase | number | 是 | 订阅购买后的天数。 |
| qualifying_conditions_met | boolean | 否 | 当供应商政策包含特定来源的条件(例如首次购买、未使用权益或符合条件的年度套餐)时必填。 |
详细介绍
decide.fyi Decision API
为工作流应用、稳定的 MCP 公证远程服务、决策备忘录材料包和执行门禁提供支持的确定性 Decision API 引擎
定位: Decide Runtime 是通用的确定性决策引擎。Decide Services 是基于它构建的独立专用检查服务;Policy Notaries 是现有的服务系列。Krafthaus 拥有基于 Decide 构建的工作流应用,包括接收、审核和执行交接。MCP、REST 和 SDK 接口属于其所提供的产品,不会自动归属 Krafthaus。
请参阅生态系统归属契约。直接集成服务和运行时不需要 Krafthaus 应用。策略检查只是其中一个服务系列,并非通用 Decision API 的定义。
在执行前拦截 Agent 工具调用
使用 Decide 根据确定性规则手册评估 Agent 提议的操作,然后再授予工具更改状态的权限。调用方会获得可重放的 Decision Record,并可在保留凭证和执行控制权的同时,根据 yes、no 或 review 进行路由。
生产环境确定性边界
具有约束力的生产判定应使用带版本的声明式规则手册:
运行时架构:请参阅 docs/RULEBOOK_RUNTIME_ARCHITECTURE.md。
机器可读的架构:https://api.decide.fyi/schemas/rulebook-v1.schema.json。
当前运行时清单:https://api.decide.fyi/manifests/rulebook-runtime-v1.json。
下游应用绑定:decide_application_binding_v1。
生产核心为 hybrid_declarative_rulebook_with_trusted_adapters:
支持直接使用声明式规则手册;已注册的第一方可信适配器可提供有界事实;拒绝客户可执行的规则手册。在两种受支持的绑定模式中,Rulebook v1 始终是唯一的绑定判定选择器。
{
"mode": "rulebook",
"rulebook": {
"schema_version": "rulebook_v1",
"rulebook_id": "pricing_exception",
"version": "2026-06-11",
"input_schema": {
"required": ["discount_percent"],
"properties": {
"discount_percent": { "type": "number" }
}
},
"rules": [
{
"rule_id": "approve_standard_discount",
"priority": 50,
"condition": {
"field": "discount_percent",
"operator": "lte",
"value": 15
},
"outcome": {
"decision": "yes",
"verdict": "APPROVE",
"action": "approve_discount",
"reason_code": "WITHIN_STANDARD_LIMIT"
}
}
],
"default_outcome": {
"decision": "review",
"verdict": "REVIEW",
"action": "route_to_owner",
"reason_code": "NO_RULE_MATCHED"
}
},
"context": {
"inputs": {
"discount_percent": 10
}
}
}
mode: "rulebook" 不会调用大模型。它会根据已发布的 JSON Schema 验证请求中的规则手册,对规则手册进行哈希处理,评估有界条件,并返回 yes、no 或 review,以及应用判定、操作、原因代码、匹配的规则和 evaluator_version。
响应还会包含 rulebook_contract,其中包含强制执行的架构 URL/哈希;runtime_binding,其中包含直接或可信适配器绑定模式;input_hash,即声明式求值器所使用的规范化输入或适配器事实的 SHA-256 哈希;以及 rulebook_attestation_v1,即针对确定性执行元组生成的捆绑哈希。
生产部署可使用 rulebook_attestation_signature_v1 Ed25519 信封为该捆绑哈希签名;验证密钥发布在 /.well-known/rulebook-attestation-keys.json。在生产环境中将 DECIDE_RULEBOOK_ATTESTATION_SIGNATURE_REQUIRED=true 设为必需,以便在未签名时直接失败,而不是返回未签名的 Rulebook 判定。使用 DECIDE_RULEBOOK_ATTESTATION_KEY_HISTORY_JSON 发布已退役的公钥,以便轮换后仍可验证较早的 Decision Record。
规则手册请求不能预先填入由 Decide 生成的 Decision Record 材料。在请求正文、context.inputs 和适配器事实边界中,runtime_binding、trusted_adapter、adapter_facts、rulebook_attestation、application_verdict 和 action 等字段仅用于响应;尝试提供这些字段会返回 RULEBOOK_OUTPUT_MATERIAL_FORBIDDEN。
旧版 single、multi 和 runtime 请求仍可用于 AI 辅助探索,但不能作为具有约束力的生产判定。这些响应包含 decision_contract,其中 authority: "advisory_only" 和 production_verdict: false,以及 production_binding_required: true 和受支持的生产绑定模式;需要确定性执行的调用方必须使用 mode: "rulebook",并记录 rulebook_contract、runtime_binding 和 Rulebook 证明材料。
在公开的 Decision Record 边界,成功的评估会注册为不可变的租户范围快照。历史重放会还原原始规范输入和存储的 rulebook 快照,而不是信任调用方覆盖值或当前应用部署。
Rulebook v1 还支持已注册的一方可信适配器,用于有限范围的事实规范化。适配器请求会固定到精确的语义版本和清单哈希;响应会证明随附实现的源哈希、规范输入/输出哈希以及已强制执行的运行契约。每次调用都会在空环境工作进程中运行一次,并受到严格的时间/资源限制,同时禁用常见的环境隐式能力。声明式 rulebook 仍是唯一具有约束力的判定选择器。请参阅 docs/TRUSTED_ADAPTERS_V1.md。
当前的参考应用证明了这两种生产模式:Solana Execution Gate、Decision Memo Readiness Gate 和 Krafthaus Workflow Readiness Binding 在 Rulebook v1 之前使用可信适配器;Refund、Trial、Cancel 和 Return Policy MCP 公证服务则直接向 Rulebook v1 提供规范化事实,并通过稳定的 REST 和 MCP 接口公开已签名的 rulebook 结果。
在评估器、适配器或 rulebook 变更发布前,请运行本地历史重放门禁:
npm run rulebook:migration-dry-run -- --json
使用 --candidate-rulebook、--candidate-adapter 和
--candidate-evaluator-version,在生产路由变更前,将拟议迁移与黄金重放语料进行比较。
对于发布门禁,优先使用 rulebook_migration_v1 清单,以便一并审查候选制品、预期偏差和审批状态:
npm run rulebook:migration-dry-run -- --migration path/to/migration.json --json
清单架构发布于
https://api.decide.fyi/schemas/rulebook-migration-v1.schema.json,dry
run 会在重放前根据该封闭架构验证清单。
生产路由或运行时契约变更发布后,请运行生产运行时冒烟测试:
npm run smoke:rulebook-runtime
此测试从运行时之外访问 https://api.decide.fyi,并始终验证已发布的 hybrid_declarative_rulebook_with_trusted_adapters 清单、封闭的 Rulebook v1 架构、证明密钥端点以及受保护的 Decision API 边缘。提供 DECIDE_RULEBOOK_RUNTIME_SMOKE_API_KEY,还会测试实时声明式评估、拒绝行为以及仅供参考的旧版元数据。GitHub Actions 会通过定时/手动运行的 Rulebook Runtime Production Smoke 工作流执行公开边界检查;配置可选的冒烟测试凭据后,还会运行需要身份验证的检查。
旧版 single、multi 和 runtime 模式是 AI 辅助接口。它们并非用于定义不明确的业务判断的生产确定性边界。
架构:
JavaScript SDK 和命令行工具
公开的 @decide-fyi/sdk
客户端涵盖 Decision API 调用、Decision Record 和 Decision Packet
验证、Rulebook 合规性、重放、执行回执和结果报告。
npm install @decide-fyi/sdk
规范的软件包源代码位于 sdk/,采用 Apache-2.0 许可证。
软件包发布要求和源代码映射记录在
sdk/SOURCE_PROVENANCE.md 中。
一键安装
按钮会安装规范的四工具 Decide Policy Notaries 服务。现有专用端点仍受支持,以保持兼容性。
稳定的 MCP 远程服务
| 服务 | 域名 | 工具 | 判定结果 |
|---|---|---|---|
| Policy Notaries | policy.decide.fyi | 以下全部 4 个工具 | 特定于政策的判定结果 |
| Refund Notary | refund.decide.fyi | refund_eligibility | ALLOWED / DENIED / UNKNOWN |
| Cancel Notary | cancel.decide.fyi | cancellation_penalty | FREE_CANCEL / CANCEL_AT_PERIOD_END / PENALTY / LOCKED / UNKNOWN |
| Return Notary | return.decide.fyi | return_eligibility | RETURNABLE / EXPIRED / NON_RETURNABLE / UNKNOWN |
| Trial Notary | trial.decide.fyi | trial_terms | TRIAL_AVAILABLE / NO_TRIAL / UNKNOWN |
无状态、无需身份验证,每分钟 100 次请求。覆盖范围特定于政策:涵盖 100 家现有的美国个人套餐供应商,另包括范围有限的 Typeform Basic 取消政策。当缺少适用范围或当前已审核的证据时,结果会安全地回退为 UNKNOWN。请参阅 Typeform 集成。
快速入门
通过 MCP 连接(Claude Desktop / Windsurf / 其他客户端)
{
"mcpServers": {
"decide-policy-notaries": { "url": "https://policy.decide.fyi/api/mcp" }
}
}
专用服务兼容性配置
现有安装可以继续使用专用远程服务。它们提供的工具名称和响应契约与规范套件相同:
{
"mcpServers": {
"refund-decide": { "url": "https://refund.decide.fyi/api/mcp" },
"cancel-decide": { "url": "https://cancel.decide.fyi/api/mcp" },
"return-decide": { "url": "https://return.decide.fyi/api/mcp" },
"trial-decide": { "url": "https://trial.decide.fyi/api/mcp" }
}
}
REST API
# Refund eligibility
curl -X POST https://refund.decide.fyi/api/v1/refund/eligibility \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","days_since_purchase":12,"region":"US","plan":"individual","qualifying_conditions_met":true}'
# Cancellation penalty
curl -X POST https://cancel.decide.fyi/api/v1/cancel/penalty \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","region":"US","plan":"individual","billing_cadence":"annual"}'
# Return eligibility
curl -X POST https://return.decide.fyi/api/v1/return/eligibility \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","days_since_purchase":12,"region":"US","plan":"individual","qualifying_conditions_met":true}'
# Trial terms
curl -X POST https://trial.decide.fyi/api/v1/trial/terms \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","region":"US","plan":"individual","offer_confirmed":true,"observed_trial_days":7,"observed_card_required":true,"observed_auto_converts":true}'
只根据你实际核实过的事实设置证据字段。仅有时间范围并不能证明已满足特定来源的条件。即使调用方设置了 qualifying_conditions_met,依赖审批的政策仍会返回 UNKNOWN;试用结果则需要实时观察到优惠。
本地开发检查
启动本地开发服务器:
npx vercel dev
在另一个终端中:
# Handler-level smoke checks (no running server required)
npm run smoke
# MCP endpoint checks (requires a running server)
npm run mcp:check
# Self-contained local MCP check; starts/stops vercel dev on localhost:3000
npm run mcp:check:local
# End-to-end workflow fixture (example -> result)
npm run workflow:test
# Production customer-key verification after provisioning a key
DECIDE_SMOKE_API_KEY='<customer-key>' npm run smoke:customer-key
受保护的 Zendesk 参考工作流
Zendesk 路由是受保护的参考适配器。它们会返回建议性分类、策略结果和推荐的 Zendesk 操作形式,但不会写入 Zendesk、授权执行,也不会创建具有约束力的生产 Decision Record。每个响应都会将
workflow_contract.execution_allowed: false 设为 false。
生产架构(包括 Rulebook v1 操作边界,以及必须在下游副作用发生前创建的 Decision Record)请参阅
docs/POLICY_MCP_SUPPORT_WORKFLOW.md。
端点
POST https://refund.decide.fyi/api/v1/workflows/zendesk/refundPOST https://cancel.decide.fyi/api/v1/workflows/zendesk/cancelPOST https://return.decide.fyi/api/v1/workflows/zendesk/returnPOST https://trial.decide.fyi/api/v1/workflows/zendesk/trial
请求
{
"ticket_id": "ZD-9001",
"workflow_type": "refund",
"question": "Should this Adobe annual plan refund request proceed under policy?",
"vendor": "adobe",
"region": "US",
"plan": "individual",
"days_since_purchase": 5,
"qualifying_conditions_met": true
}
生产工作流请求需要服务器到服务器的 Bearer token:
curl -sS -X POST https://refund.decide.fyi/api/v1/workflows/zendesk/refund \
-H "Authorization: Bearer $WORKFLOW_API_TOKEN" \
-H "Content-Type: application/json" \
-d @workflow-request.json
对于 refund 和 return,请提供 days_since_purchase,并在要求时提供特定来源的状况证据。取消操作可能需要 billing_cadence。试用自动化需要 offer_confirmed,以及观测到的时长、是否需要信用卡和自动转换状态。如果缺少必要上下文,工作流会升级处理,而不是批准。
仅用于测试的 fixture 模式
decision_override 仅用于在同时设置 NODE_ENV=test 和
WORKFLOW_TEST_MODE=1 时进行明确的本地测试和 CI 测试。部署的路由会拒绝此项,且绝不能将其用作集成机制。
{
"decision_override": "yes"
}
响应(示例)
{
"ok": true,
"flow": "zendesk_refund_v1",
"ticket_id": "ZD-9001",
"decision": { "c": "yes", "request_id": "req_123" },
"policy": { "verdict": "ALLOWED", "code": "WITHIN_WINDOW" },
"workflow_contract": { "production_verdict": false, "execution_allowed": false },
"action": {
"type": "approve_refund",
"execution_allowed": false,
"zendesk_tags": ["decide", "decide_yes", "refund_allowed"]
}
}
退款 Notary
端点: POST https://refund.decide.fyi/api/v1/refund/eligibility
MCP 工具: refund_eligibility
仅当有版本化规则和所提供的特定来源事实支持自动化时,才会评估退款。
输入: vendor、days_since_purchase、region、plan,以及视情况提供的 qualifying_conditions_met
{"refundable":true,"verdict":"ALLOWED","code":"WITHIN_WINDOW","message":"Refund is allowed. Purchase is 12 day(s) old, within 14 day window.","vendor":"adobe","window_days":14,"qualifying_conditions_met":true,"automation_safe":true}
代码: WITHIN_WINDOW、OUTSIDE_WINDOW、NO_REFUNDS、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
取消 Notary
端点: POST https://cancel.decide.fyi/api/v1/cancel/penalty
MCP 工具: cancellation_penalty
检查取消罚则——提前终止费、合同锁定期或免费取消。
Adobe 取消仅供审核:账单周期无法确定其合同、时间、州特定分支或续订分支。此示例是安全的审核响应,而非费用报价。已弃用或非当前的策略证据也需要审核。
输入: vendor、region、plan,以及视情况提供的 billing_cadence
{"verdict":"UNKNOWN","code":"MISSING_REQUIRED_CONTEXT","vendor":"adobe","billing_cadence":"annual","policy_decision_mode":"review_only","required_context":["manual_policy_review"],"automation_safe":false}
代码: NO_PENALTY、EARLY_TERMINATION_FEE、CONTRACT_LOCKED、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
已知的供应商 ID 不代表所有范围都可自动化。请检查每个响应中的
automation_safe、policy_decision_mode 和 policy_evidence。WeightWatchers 的退款、取消和退货来源已弃用;其历史记录仍然可用,但不会再主动获取,也不能用于新的自动化决策。请参阅范围可靠性与准入。
退货 Notary
端点: POST https://return.decide.fyi/api/v1/return/eligibility
MCP 工具: return_eligibility
仅当有版本化规则和所提供的特定来源事实支持自动化时,才会评估是否可以撤销订阅购买。
输入: vendor、days_since_purchase、region、plan,以及视情况提供的 qualifying_conditions_met
{"returnable":true,"verdict":"RETURNABLE","code":"FULL_RETURN","message":"Return is available. Purchase is 5 day(s) old, within 14-day window.","vendor":"adobe","return_type":"full_refund","method":"self_service","qualifying_conditions_met":true,"automation_safe":true}
代码: FULL_RETURN、PRORATED_RETURN、CREDIT_RETURN、OUTSIDE_WINDOW、NO_RETURNS、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
试用公证
端点: POST https://trial.decide.fyi/api/v1/trial/terms
MCP 工具: trial_terms
根据实时优惠的观测结果评估可用性和条款。它不会发布静态试用可用性信息。
输入: vendor、region、plan、offer_confirmed;确认优惠时,还需要提供 observed_trial_days、observed_card_required、observed_auto_converts
{"verdict":"TRIAL_AVAILABLE","code":"AUTO_CONVERTS","message":"A live 7-day adobe trial offer was confirmed. Credit card required. Auto-converts to paid plan.","vendor":"adobe","trial_days":7,"card_required":true,"auto_converts":true,"offer_confirmed":true,"automation_safe":true}
代码: AUTO_CONVERTS、NO_AUTO_CONVERT、TRIAL_NOT_AVAILABLE、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
支持的供应商注册表(101 个不同的供应商)
版本化的 JSON 注册表是规范的供应商目录。这里有意不重复提供精简的 Markdown 表格,因为政策时限、渠道和审批分支可能各自独立变化。合约测试要求每项政策的 规则、来源和发现结果保持一致。Typeform 仅适用于取消,不适用于退款、退货或试用。
| 类别 | 规则 | 官方来源注册表 | 自动化分类 |
|---|---|---|---|
| 退款 | v1_us_individual.json | policy-sources.json | deterministic、conditional、review_only |
| 取消 | v1_us_individual_cancel.json | cancel-policy-sources.json | deterministic、conditional、review_only |
| 退货/撤销 | v1_us_individual_return.json | return-policy-sources.json | deterministic、conditional、review_only |
| 试用 | v1_us_individual_trial.json | trial-policy-sources.json | observed 实时优惠模式 |
deterministic:对于受支持的美国个人计划范围,标准政策有明确的定论。conditional:自动化要求调用方明确声明已核实特定来源的条件。review_only:政策取决于审批、渠道、承诺、例外情况或措辞不够明确、无法自动化的来源内容。observed:必须能从当前账户或促销活动中看到实时优惠,才能返回试用条款。
范围: 默认适用于美国个人计划。Typeform 取消政策另有明确覆盖范围:Basic 方案、直接订阅、通过自助平台订阅。
数据时效性
每个政策类别都有版本化规则和来源元数据。取消类别有 101 个供应商标识符;其他三个类别各有 100 个。 来源跟踪器会监控供应商的官方文档和服务条款; 但不会自动将页面文本转化为判定结果。
- 每日来源检查 —
Daily Policy Check工作流每天运行一次,检查退款、取消、退货和试用来源。重要信号会进入人工审核队列;获取来源内容并不会更新适用性核验。 - 人工核验时效性:
npm run audit:policy-freshness会独立报告来源审核时间和跟踪器运行时间。新的政策评估还要求提供当前且与请求绑定的证据;缺失或过时的证据会转交审核。 - 跟踪的政策来源 URL — 每个政策类别在
rules/中都有自己的来源文件,其中包含指向官方政策页面的链接。 - 合规性导出 —
GET /api/compliance-export会返回包含跟踪来源、哈希值和待处理候选变更的 CSV 快照(使用?format=json可获取机器可读的输出)。 - 版本化规则 — 每个规则文件都包含用于检测过时情况的
rules_version字段。
架构
- 无状态判定运行时 — 策略调用不会创建会话或修改策略规则
- 确定性 — 相同输入始终产生相同输出
- 版本化规则 — 规则文件包含版本号,用于跟踪更改
- 定时监控 — GitHub Action 每六小时检查所有供应商的策略页面
- 无服务器 — 在 Vercel 无服务器函数上运行
- 零依赖 — 核心计算逻辑没有外部依赖
- 主机名路由 — Vercel 中间件将子域名路由到正确的 MCP 端点
限制
- 仅限美国 — 目前仅支持美国地区
- 仅限个人套餐 — 暂不支持商业版/企业版套餐
- 日历日 — 时间窗口按日历日计算,而非工作日
- 失败时默认拒绝的分支 — 依赖审批、依赖渠道、存在歧义或信息不完整的情况会返回
UNKNOWN以供审核 - 实时试用证据 — 必须针对正在评估的账户或促销活动核实试用资格和条款
更新日志
v1.3.1 (2026-07-16)
变更:
- Policy Notaries 现在使用明确的
deterministic、conditional、review_only和实时优惠模式;信息不完整或依赖审批的请求会在失败时默认拒绝。 - 监控时间戳不再修改策略沿袭哈希,且黄金回放生成会拒绝不完整的判定。
- 规范 MCP 元数据现在描述失败时默认拒绝的约定和已观察到的试用证据字段。
v1.3.0 (2026-07-15)
新增:
- 规范的
policy.decide.fyi/api/mcp服务,通过一个连接提供全部四种 Policy Notary 工具。 - 从实时工具定义生成的 Official Registry 元数据和 Smithery 服务卡元数据。
变更:
- 一键安装链接现在会安装包含四种工具的 Policy Notaries 服务。
- 专用的 Refund、Cancel、Return 和 Trial MCP URL 保持稳定,继续作为兼容接口。
尚未发布
新增:
GET /api/compliance-export端点,用于导出策略监控证据(默认 CSV,通过?format=json导出 JSON)。- 增加合规导出 JSON 和 CSV 路径的冒烟测试覆盖。
- 私有的
report:mcp-adoption运营报告,区分远程服务发现、探测和已完成的 Policy Notaries 评估。 - 令牌门控的 Console 使用情况快照,包含声明的 MCP 客户端归属、保守的后续行为推断,并且仅输出汇总数据。
- 仅面向服务的 Policy Notaries 指南转化漏斗,分别统计连接意向、公共 REST 证明、MCP 评估和 Krafthaus 工作流交接指标。
变更:
- 现在的落地页将 Decide 定位为 Decision API 引擎,并将 Policy MCP Notaries 描述为一个参考应用。
- Zendesk 参考路由在生产环境中要求服务间身份验证;未配置时会失败并默认拒绝,并将所有返回的操作形式标记为不执行。
v1.2.1 (2026-02-08)
变更:
- 子域名主页现在会显示相关的公证卡片(退款/取消/退货/试用)。
server.json、MCPinitialize和/.well-known/*中的版本元数据现在保持一致。
v1.2.0 (2026-02-02)
新增:
- Cancel Notary MCP (cancel.decide.fyi) — 取消罚金检查器
- Return Notary MCP (return.decide.fyi) — 退货资格检查器
- Trial Notary MCP (trial.decide.fyi) — 免费试用条款检查器
- 为所有子域名增加基于主机名的中间件路由
- 增加取消、退货和试用策略的来源文件与每日检查
- 在落地页上加入 Systems/Agents 模式定位
- MCP 目录新增涵盖全部 4 个服务的卡片
修复:
- 每日策略检查器:增加
contents:write权限并修复 shell 逻辑 - 移除导致 404 的无用 Cloudflare 邮件解码脚本
v1.1.0 (2026-02-01)
新增:
- 支持的供应商从 64 家扩展到 100 家
- 每日策略检查 GitHub Action(于 08:00 UTC 按 cron 运行)
- 在
rules/policy-sources.json中跟踪策略来源 URL - 在 inputSchema 中为 MCP 供应商添加
enum,便于 Agent 发现
修复:
- 修复 Vercel 上因 Node 22 导入属性导致的
ERR_IMPORT_ATTRIBUTE_MISSING崩溃
v1.0.0 (2026-01-15)
新增:
- 首次发布,包含 REST API 和 MCP 服务
- 支持 9 家供应商
公开策略 API 和受保护的决策 API
所有 4 个策略服务均可免费使用。无需身份验证,也无需 API 密钥。
只读的策略支持目录
按策略列出美国个人用户适用范围的状态,分为受支持、仅供审核、已观察到报价、
已退役或已降级。可使用 ?policy=cancel&vendor=adobe 进行筛选。已知供应商
标识符并不代表承诺提供支持:请检查当前范围状态,以及实际决策中的 automation_safe、证据和所需上下文。读取目录既不会评估工具,也不会执行操作。缺少监控会明确标示,不会报告为正常。请参阅目录规范。
在生产环境中,/api/decide 需要受信任的代理或 API 凭据。本地和预览部署可通过设置 DECIDE_API_AUTH_REQUIRED=1 启用相同的安全边界;配置 DECIDE_API_KEY 或 DECIDE_PROXY_SHARED_TOKEN 也会启用该边界。
如果你通过 decidesite 代理运行 decide,并使用动态客户密钥,还需设置:
DECIDE_PROXY_SHARED_TOKEN:受信任代理调用所需的共享密钥,须置于x-decide-proxy-token标头中。DECIDE_API_KEY:可选的直接后端凭据,供受信任的服务端调用方使用。DECIDE_GEMINI_MODE:默认为disabled。在此硬性零成本状态下,旧版建议模式single、multi和runtime的请求会返回DECIDE_AI_DISABLED_ZERO_COST,不会读取 API 密钥,也不会向提供商发起请求。Rulebook v1 仍可用,且绝不使用 Gemini。DECIDE_GEMINI_MODE=paid:明确选择启用非零成本的建议模式。此模式还需要受限的服务端GEMINI_API_KEY。DECIDE_GEMINI_MODEL只能设为gemini-3.1-flash-lite;更改模型必须通过经过审核的代码发布,而不能只切换环境变量。DECIDE_GEMINI_BUDGET_KV_REST_API_URL和DECIDE_GEMINI_BUDGET_KV_REST_API_TOKEN:用于原子化提供商尝试保护机制的专用 Redis 兼容 REST 存储。如果该存储缺失或不可用,付费建议模式会在调用 Gemini 前安全失败。旧版DECIDE_KV_REST_API_*/KV_REST_API_*名称可作为兼容回退;优先使用专用凭据。- 编译时设定的提供商尝试上限为每日 10 次、每月 100 次、终身 500 次,且最多同时处理 1 个请求。
DECIDE_GEMINI_DAILY_CALL_CAP、DECIDE_GEMINI_MONTHLY_CALL_CAP和DECIDE_GEMINI_LIFETIME_CALL_CAP只能降低这些上限。 DECIDE_GEMINI_TIMEOUT_MS:付费模式下唯一的提供商请求期限,默认为 8 秒,且不能超过 8 秒。DECIDE_GEMINI_MAX_PROMPT_CHARS:获取数据前的建议提示词长度上限,默认为 4,096 个字符,且不能超过该值;可降至 256。
付费模式只发起一次提供商尝试,绝不会回退到其他模型。Gemini 3.1 Flash-Lite 使用提供商默认的单候选项、最低的受支持 minimal 思考等级和默认温度;single 的输出上限为 8 个 token,multi 为 128 个 token,runtime 为 512 个 token。为确保提供商侧零费用,请勿将 Gemini Google Cloud 项目关联到结算账号;应用计数器只限制调用次数,无法证明具体费用金额。
/api/decide 的通用速率限制为每个无服务器实例的每个 IP 每分钟 20 个请求。这是滥用防护措施,并非 Gemini 成本边界;即使受信任代理绕过通用速率限制,持久化的提供商尝试保护机制仍会生效。
首次客户交接和生产环境密钥验证,请参阅 docs/FIRST_CUSTOMER_RUNBOOK.md。
策略抓取钩子(用于策略检查器的浏览器钩子通道)
当直接抓取受阻时,将 POST /api/policy-fetch-hook 用作每日检查器的抓取适配器。
请求正文:
{
"url": "https://example.com/policy",
"vendor": "example_vendor",
"policy_type": "refund",
"timeout_ms": 18000
}
身份验证:
Authorization: Bearer <POLICY_CHECK_BROWSER_HOOK_TOKEN>或x-hook-token: <token>
服务端环境变量:
POLICY_CHECK_BROWSER_HOOK_TOKEN(端点身份验证必需)POLICY_FETCH_CLOUDFLARE_ACCOUNT_ID和POLICY_FETCH_CLOUDFLARE_API_TOKEN(可选;启用 Cloudflare Browser Run 优先抓取,使用权限仅限于 Browser Rendering Write 的令牌)POLICY_FETCH_CLOUDFLARE_CACHE_TTL_SECONDS(可选;默认为 21600 秒,以便不同策略类型共用渲染结果)POLICY_FETCH_BROWSERLESS_TOKEN(可选的备用浏览器服务提供商)POLICY_FETCH_BROWSERLESS_CONTENT_URL(可选的自定义项;默认值为https://production-sfo.browserless.io/content)POLICY_FETCH_ALLOWED_HOSTS(可选的逗号分隔主机名允许列表)
检查器(GitHub Actions,仓库 decide):
- 密钥
POLICY_CHECK_BROWSER_HOOK_URL= 已部署的端点 URL(规范地址:https://api.decide.fyi/api/policy-fetch-hook) - 密钥
POLICY_CHECK_BROWSER_HOOK_TOKEN= 与运行时环境变量相同的令牌 - 变量
POLICY_CHECK_FETCH_LANES_DEFAULT=direct,zendesk_api,mirror,browser_hook - 可选变量
POLICY_CHECK_BROWSER_HOOK_MIN_INTERVAL_MS用于控制浏览器钩子请求之间的间隔(默认值为10500,适用于 Cloudflare Browser Rendering Free 限制)。
有疑问?请联系 [email protected],或在 X 上联系 @decidefyi。
链接
- 网站: https://decide.fyi
- 策略提醒: https://www.decide.fyi/resources/policy-alerts
- 退款: https://refund.decide.fyi
- 取消: https://cancel.decide.fyi
- 退货: https://return.decide.fyi
- 试用: https://trial.decide.fyi
- X/Twitter: @decidefyi
- MCP 规范: https://modelcontextprotocol.io
Decide 是 API 引擎。应用负责证明这一基础能力。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
