TastePolicy

io.github.VictorCyberDev由 GitHub 帳號 VictorCyberDev 發布v0.2.0更新於 Nov 6, 2026

Qloo cultural evidence with ALLOW, ASK and REJECT boundaries for agent preference decisions.

已驗證Streamable HTTP可網頁執行位置與生活安全與監控AI 與機器學習

概覽

AI 產生的概覽

遠端 MCP 伺服器,為代理的偏好推薦加上 Qloo 文化證據與 ALLOW、ASK、REJECT 權限邊界。

可以做什麼
  • 評估代理能否對文化相符的推薦採取行動,回傳 ALLOW、ASK、REJECT 或 UNAVAILABLE。
  • 透過 Qloo 的搜尋、實體與洞察證據,解析文化身分並找出跨領域候選。
  • 把文化契合度與事實要求、使用者規則和行動上限分開處理。
  • 依 SUGGEST 到 PRESENT_AS_SELECTED 的行動階梯判斷,超出使用者設定上限時改為詢問。
  • 以同一套評估器支援版本化規則、憑證、租約、撤銷與簽章證明。
適用情境
當助理為特定使用者推薦場所、影音或其他依品味而定的選項,且不能把高度相符當成行動許可時使用。適合需要對代理能走多遠訂出明確、可稽核邊界,並希望缺漏事實變成提問而非猜測的代理。
執行需求
透過 streamable HTTP 連線到 tastepolicy.vercel.app 的遠端端點,需要 OAuth 登入。自行部署需 Node.js 24 與 npm、PostgreSQL 資料庫、Qloo API 金鑰及相關 Qloo 設定,以及 BETTER_AUTH_SECRET、TASTEPOLICY_ATTESTATION_KEY 等驗證與證明金鑰。
安裝前請注意
必須使用 OAuth,伺服器會接觸登入帳號儲存的品味、要求與規則。它會呼叫 Qloo 與開放地點資料提供者,把文化與位置查詢送給第三方。ALLOW 僅代表偏好選擇權限,不含付款、訂位、傳訊、帳號變更或揭露私人資料。事實缺漏或過期時回傳 ASK 或 UNAVAILABLE,漂移偵測只涵蓋代理或提供者回報的內容。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 TastePolicy,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.VictorCyberDev%2Ftastepolicy/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "tastepolicy": {
      "type": "http",
      "url": "https://tastepolicy.vercel.app/api/mcp"
    }
  }
}

README

TastePolicy

AI that helps without replacing you.

TastePolicy is personal agency infrastructure for culturally intelligent AI.

Qloo tells an agent what culturally fits a person. TastePolicy answers the next question: may the agent actually go this far with that choice, for this person, in this context, right now?

Margaret's mobility changed. Her taste didn't.

A recommender asks, “Will this person like it?”
Qloo gives grounded cultural evidence for that question.
TastePolicy adds real-world requirements, explicit user rules and an authority ceiling so a strong taste match does not silently become permission.

Start here

  • Judge walkthrough: /judge — three short acts, no login.
  • Your own experience: sign up, then /onboarding saves your taste, what matters and how far AI may go; /experience and /dashboard use only your saved data.
  • Assisted Choice example: /demo/margaret — the labelled live Margaret scenario with real Qloo data.
  • Product: /
  • Developer platform: /developers
  • Trust boundary: /trust
  • Live readiness: /status

Production: https://tastepolicy.vercel.app

The core thesis

Taste intelligence is not permission.

The same candidate passes through three distinct layers:

  1. Generic AI can produce a plausible suggestion, but it does not have grounded cultural evidence.
  2. Qloo resolves cultural identities, discovers cross-domain candidates and provides candidate-specific affinity/explainability.
  3. TastePolicy keeps that cultural evidence separate from factual context, the person's requirements, their rules and the action the agent is requesting.

A candidate can be a strong cultural match and still produce ASK or REJECT. Affinity never overrides an explicit boundary.

Four explicit outcomes

SituationOutcome
Requirements satisfied and requested action is within the authority ceilingALLOW
A critical fact is unknown, stale/conflicting, or the requested action exceeds the ceilingASK
A known hard requirement or explicit rule is violatedREJECT
Required evidence cannot be obtainedUNAVAILABLE

Missing evidence is never silently converted into permission. Provider failure is never reported as dislike.

How Qloo is used

TastePolicy does not recreate Qloo's taste graph and does not substitute generic LLM guesses for Qloo evidence.

The current Qloo integration uses:

  • GET /search to resolve cultural anchors;
  • GET /entities to verify the identities being used;
  • GET /v2/insights for cross-domain discovery;
  • GET /v2/insights again for candidate-specific affinity/explainability.

The division of responsibility is deliberate:

QlooTastePolicy
Cultural identities and relationshipsRequirements and factual context
Cross-domain candidate discoveryExplicit user rules
Candidate affinity/explainabilityAuthority ceiling
“What fits?”“May the agent go this far with it?”

Without Qloo, TastePolicy intentionally does not pretend a generic model guess is equivalent cultural evidence.

Assisted Choice

The flagship judge story follows Margaret, 72, who still loves intimate live jazz, classic cinema and Italian dining but now needs a step-free entrance, a short walk and a quieter setting.

The public flow:

  1. Qloo resolves her five cultural anchors to real entities.
  2. Qloo discovers real places from those cross-domain signals.
  3. TastePolicy presents the cultural match separately from real-world facts.
  4. If a critical requirement such as the entrance is unknown, the answer is ASK, not a guess.
  5. After the missing fact is answered, the same deterministic evaluator runs again.
  6. A qualifying choice can become ALLOW, but only up to Margaret's saved limit: SHORTLIST.
  7. If the agent tries to present that option as the final choice, the authority ceiling forces ASK again.
  8. Why this happened keeps Qloo evidence, place facts, requirements, rules and the final decision separately attributable.

A known hard violation becomes REJECT. If the required evidence cannot be obtained, the result is UNAVAILABLE.

Two concise variants demonstrate the same contract beyond Margaret:

  • /experience/sensory-aware
  • /experience/low-energy

Needs are represented as functional rules such as walking_minutes <= 10 or noise-level constraints, never as diagnoses inferred from cultural taste.

Real place experience

TastePolicy's current open place layer uses:

  • MapLibre + OpenFreeMap for the branded journey map;
  • OpenStreetMap for explicit place facts where available;
  • KartaView and Panoramax for real street imagery, sequences and 360° coverage where available;
  • optional openrouteservice/HeiGIT routing;
  • licensed Wikimedia or authored Taste imagery as fallback.

Media is presentation, not authority evidence. A nearby street image is labelled as nearby rather than falsely presented as the exact venue. Missing accessibility or route facts remain unknown.

A Google Places adapter also exists as an optional factual provider path, but the public open-place experience does not depend on Google being configured.

One deterministic authority contract

A requirement is represented separately from a candidate fact.

ts
Requirement = {  key,  operator,  expected,  importance,  sourceRequirement,};
CandidateFact = {  key,  value,  state: "known" | "unknown" | "unavailable",  evidence,  source,  sourceType,  observedAt,};

Qloo is never accepted as the source of a place-accessibility fact. Cultural evidence, factual evidence and authority remain separate.

Subjective-action ladder

TastePolicy distinguishes a good recommendation from how far the agent may act on it:

RungMeaning
SUGGESTmention it as an idea
RANKorder options
SHORTLISTnarrow to a few
ADD_TO_DRAFTplace it into a draft plan
PRESENT_AS_SELECTEDpresent it as the chosen option

The person sets the furthest rung the AI may reach without asking. A request above that ceiling converts an otherwise valid recommendation into ASK.

Deeper authority infrastructure

The simple human experience sits on one shared authority model with:

  • versioned Passport/state;
  • versioned rules and action ceilings;
  • Cultural Receipts;
  • bounded leases tied to candidate/context commitments;
  • drift checks and revocation;
  • signed, selectively disclosed proofs;
  • timeline/history;
  • REST;
  • TypeScript SDK;
  • remote MCP;
  • A2A;
  • OAuth 2.1 / PKCE.

These surfaces extend the same evaluator rather than introducing separate policy engines.

Safety boundary

ALLOW is preference-choice authority only.

It never grants:

  • payment or purchase authority;
  • booking authority;
  • messaging authority;
  • account changes;
  • private-data disclosure;
  • legal authority.

Memory is not permission. Affinity is not authorization. A recommendation is not authorization. Verifying a proof is not authorization.

Local development

Requirements: Node.js 24 and npm.

bash
npm cicp .env.example .env.localnpm run dev

Core environment variables:

  • QLOO_API_KEY
  • QLOO_API_BASE_URL
  • QLOO_AFFINITY_SCALE
  • DATABASE_URL
  • BETTER_AUTH_SECRET
  • BETTER_AUTH_URL
  • TASTEPOLICY_PUBLIC_ORIGIN
  • TASTEPOLICY_ATTESTATION_KEY

Optional place providers/routing are documented in docs/architecture/open-place-providers.md and .env.example.

Apply database migrations with:

bash
npm run db:migrate:all

Verification

bash
npm run verifynpm run test:e2enpm run conformance:compatiblenpm run tastebench:validate

Real-PostgreSQL suites can also run with TASTEPOLICY_TEST_DATABASE_URL configured.

Evidence is labelled by kind — LIVE, HOSTED, CONTROLLED, SYNTHETIC, LOCAL, CI, NOT EXECUTED or BLOCKED — so tests and planned integrations are not presented as production facts.

See:

  • docs/evaluation/
  • docs/evaluation/m24-execution-ledger.md
  • docs/evaluation/m25-execution-ledger.md
  • docs/architecture/qloo-contract-review.md
  • docs/architecture/open-place-providers.md

Current limitations

  • TastePolicy can only detect external drift that an agent or provider presents back to it.
  • Open place/accessibility coverage varies by location; missing facts remain unknown.
  • Vendor-assistant commissioning status is tracked separately and is not implied by protocol support.
  • TasteBench results are engineering/evaluation evidence, not population-level preference or safety claims.

License

Apache-2.0. See LICENSE.

來源:README.md,提交 21cc2c4

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.2.0最新Oct 29, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分