mcpField
T
TastePolicy

TastePolicy

远程服务
tastepolicy.vercel.app其他0今天更新

关于 TastePolicy

TastePolicy 为 Agent 的偏好型选择提供权限边界,结合 Qloo 文化证据与所有者制定的规则。它返回 ALLOW、ASK、REJECT 或 UNAVAILABLE,并附理由和受条件约束的权限;不授权购买或其他执行操作。

主要功能

  1. 01确定性的偏好决策
  2. 02所有者制定的版本化策略
  3. 03带询问门槛的操作阶梯
  4. 04针对具体选择的临时许可
  5. 05支持选择性披露的签名证明
  6. 06文化凭证与决策时间线

适用场景

  1. 01检查 Agent 是否可将酒店列入候选
  2. 02在将某选项定为选择前要求批准
  3. 03选择情境变化时暂停许可

MCP 相关

在 `/api/mcp` 提供远程 MCP 服务,供客户端调用偏好敏感决策工具。文档说明支持托管助手使用 OAuth 2.1。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://tastepolicy.vercel.app/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

发布权限依据:M10–M26 执行台账。规范的 M6–M10 候选版本:m10-m26-company-build;树结构/沿袭审计。CI 通过和托管预览验收并不代表已具备生产能力,也不代表已完成真实的 ChatGPT/Claude 调试。

TastePolicy

AI Agent 的主观决策权威层。

Qloo 为 Agent 提供品味。TastePolicy 为这种品味划定权限边界。 你的品味。你的规则。适用于任何 Agent。

Agent 在技术上可以推荐酒店、唱片或品牌。TastePolicy 回答的是接下来的问题:_在此刻、此情境下,针对这个人,这个 Agent 是否应该做出这一主观选择?_答案为 ALLOW、ASK、REJECT 或 UNAVAILABLE,并附上作出决定的规则、文化凭证,以及一项有边界的权限;一旦事实发生变化,该权限即告终止。

**ALLOW 仅代表偏好决策权。**它绝不授予付款、预订、购买、发送消息、账户、法律或任何执行权限。记忆不等于许可,Qloo 亲和度不等于授权,推荐不等于授权,UNAVAILABLE 不等于 REJECT,验证凭证也不等于授权执行操作。

Qloo 和 TastePolicy

QlooTastePolicy
提供文化证据:跨领域实体之间的亲和度对 Agent 可以如何处理基于品味的选择进行授权
回答“这有多符合品味?”“现在,针对这个人,这个 Agent 可以做到哪一步?”
故障模式提供方不可用UNAVAILABLE:无法作出判断。这不是拒绝,也绝不代表负面品味

它们如何协同工作

Qloo cultural evidence
  → subject-owned preference state (immutable versions)
  → context + explicit constraints
  → one deterministic evaluator ─ ALLOW / ASK / REJECT / UNAVAILABLE ─ Cultural Receipt
  → owner policy (rules, action ladder, sensitive choices, temporary permissions)
  → bounded lease bound to commitments of the choice and situation
  → drift suspends it; a fresh evaluation is required to resume (new epoch)
  → signed, selectively disclosed proof another agent can verify
  → doors: REST · TypeScript SDK · remote MCP · A2A · OAuth account linking

策略评估器有且只有一个。M6–M9 对已验收的 M1–M5 评估器进行封装和扩展,而非取代它。

主观行动阶梯

Agent 对符合你品味的选择可以推进到什么程度,从低到高如下:

阶梯含义
SUGGEST将其作为一个想法提及
RANK为多个选项排序
SHORTLIST筛选出少数几个
ADD_TO_DRAFT将其加入仍可修改的计划
PRESENT_AS_SELECTED将其展示为已为你选定的选项

所有者可按全局、选择类型和 Agent 分别设定 Agent 无需询问即可达到的最高阶梯。请求超出该阶梯时,ALLOW 会转为 ASK,所有者可对此作出一次性答复。硬性屏蔽、已保存的限制、UNAVAILABLE 和群组否决都不会因阶梯而改变。旧版客户端保持原有行为:recommend = SHORTLIST,add_to_draft = ADD_TO_DRAFT;在所有者选择启用前,将任何内容展示为已选定都必须先询问。参见 ADR 0024。

决策、Passport、策略、租约、证明

  • 决策。 确定性执行,并记录一份文化收据。ASK 有明确类型:权限确认(你自己的规则要求先询问)可以等待你的回答;澄清(缺少某项事实,例如价格)不能获批,需要重新评估。
  • Passport。 你的私有状态,通过不透明引用访问;作用域授权;哈希凭据;账户会话。
  • 策略。 采用版本管理,发布前进行模拟;按证据类别设定时效要求;制定按 Agent 和类型划分的规则;对敏感类别的选择格外谨慎;支持临时权限和反事实解释。扩大权限需要近期登录。
  • 租约。 针对某个确切选择的短期事件溯源权限。当你的信息、规则、共享内容、临时权限,或选择或情境本身发生变化时,租约会暂停,但仅限 TastePolicy 获知这些变化的情况(Agent 会在验证和检查点上提供当前候选项和情境;没人提供的变化无法被察觉)。请参阅 ADR 0025。
  • 证明。 使用带选择性披露的签名 SD-JWT 证明、持有者密钥绑定、防重放保护、Token Status List 和按受众划分的权限纪元。权限终止时,该纪元的证明将永久失效;恢复权限会开启新纪元,旧证明永不恢复。通过自身选择和情境验证的验证方,可以了解该证明是否与_自身_相关。
  • 时间线。 /account/timeline 按顺序显示每个问题、规则变更、权限和共享证明。

使用方法

REST(凭据作用域:PASSPORT_READ、TASTE_EVALUATE、RECEIPT_READ):

curl -sS https://YOUR_ORIGIN/api/v1/evaluate \
  -H "authorization: Bearer $TASTEPOLICY_KEY" -H "content-type: application/json" \
  -d '{"idempotencyKey":"trip-2026-001","passportRef":"tp_…","requestedAction":"ADD_TO_DRAFT",
       "proposal":{"agentId":"my-agent","expectedStateVersion":1,
         "candidate":{"id":"…","name":"Hotel Lisboa","type":"destination"},
         "context":{"key":"trip","domain":"destination","price":{"amount":120,"currency":"USD"}}}}'

TypeScript SDK(服务端,在此仓库中;未发布到 npm):

const tp = new TastePolicyClient({ baseUrl, credential });
const r = await tp.evaluate({
  passportRef,
  idempotencyKey,
  requestedAction: "SHORTLIST",
  proposal,
});
if (r.decision === "ALLOW") {
  const lease = await tp.lease({
    idempotencyKey,
    evaluationRef: r.evaluationRef,
  });
  // before relying on it, present the choice as it is now:
  await tp.leaseVerify(lease.leaseRef, { context: currentContext });
}
  • 远程 MCP 位于 /api/mcp(Streamable HTTP)。工具描述中说明了调用时机:在为某人继续进行主观、偏好敏感的选择之前,例如选择、排序、推荐、列入候选名单、加入草稿、作为已选内容呈现,或以其他方式继续处理。
  • A2A 1.0 Agent Card 位于 /.well-known/agent-card.json,JSON-RPC 位于 /api/a2a;支持选择加入的权限生命周期扩展,用于租约、证明和交接(ADR 0026)。
  • 面向托管助手的 OAuth 2.1(授权码 + PKCE S256、客户端 ID 元数据或动态注册、轮换刷新令牌、仅限 MCP 的受众)。请参阅 ADR 0022。
  • OpenAPI 位于 /api/v1/openapi。验证器位于 /verify 和 POST /api/attest/verify(无需凭据)。颁发者元数据位于 /.well-known/tastepolicy-issuer;第三方颁发者会经过检查并由用户明确设为可信,绝不会自动信任(ADR 0027)。

安全与隐私

凭据和令牌均以哈希形式存储;OAuth 令牌与受众绑定,有效期为 15 分钟;提供方调用绝不会在数据库事务或锁的作用域内运行;扩大策略权限需要近期登录;必须跨实例生效的速率限制通过 PostgreSQL 共享(ADR 0028)。Agent 会获知答案、简短理由以及允许继续操作的范围;收据会显示选择、匹配所依据的文化证据以及起决定作用的规则;默认情况下,证明不会披露品味、姓名或账户引用。威胁模型和审查记录:docs/security/threat-model.md、供应链。

本地开发

Node.js 24 和 npm。运行 npm ci && cp .env.example .env.local && npm run dev。没有凭据时,应用仍可运行并报告不可用状态;它绝不会编造 Qloo 结果。设置 QLOO_API_KEY(仅限服务器端)、QLOO_API_BASE_URL 和 QLOO_AFFINITY_SCALE 以使用 Qloo(设置)。持久化需要 DATABASE_URL;账户功能需要 BETTER_AUTH_SECRET 和 BETTER_AUTH_URL;证明需要 TASTEPOLICY_PUBLIC_ORIGIN 和 TASTEPOLICY_ATTESTATION_KEY。使用 npm run db:migrate:all 应用架构(带迁移账本,幂等;ADR 0030)。参见 .env.example。

测试、一致性验证、负载

npm run verify               # format, lint, typecheck, unit tests, build
npm run test:e2e             # Playwright incl. axe accessibility checks
npm run conformance:compatible   # tastepolicy-compatible-v1 (110 checks)
npm run tastebench:validate      # evaluation methodology fixtures
TASTEPOLICY_TEST_DATABASE_URL=postgres://… npm test   # adds real-PostgreSQL suites
npm run load:local           # controlled contention probe (not a capacity claim)

线上部署

docs/evaluation/r6-hosted-acceptance.md 按类型标注证据:LIVE、HOSTED、CONTROLLED、SYNTHETIC、LOCAL、CI、NOT EXECUTED、BLOCKED。本 README 中没有任何内容声称某个厂商助手(ChatGPT、Claude、Gemini)可与 TastePolicy 配合使用;产品页面列出了当前可用、已列入路线图以及尚未实现的功能。

当前限制

  • 基于承诺的漂移检测涵盖 Agent 告知 TastePolicy 的内容;它无法观察外部世界。
  • 每次部署仅能设置一个组织上限,由运营者设定;没有多组织模型、SSO/SCIM 或管理控制台。
  • 敏感选择由所有者按选择类型声明;内容不会被分类。
  • 经过身份验证的 MCP/A2A 请求预算按实例计算。
  • 联邦仅支持显式信任:没有注册表,也不会在颁发方之间传播撤销信息。
  • 使用真实 Qloo 和厂商连接器的托管验收记录在 R6 文档中;请查看其状态。
  • TasteBench 阈值仍处于实验阶段,未经人群校准。

早期里程碑和验收记录的历史:docs/history、docs/evaluation。许可证:Apache-2.0。贡献方式:CONTRIBUTING.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。