ai·rete·rag

com.ai-rete-rag由 ai-rete-rag.com 发布官方发布者v0.11.0更新于 Oct 24, 2026

Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.

已验证Streamable HTTP可网页运行效率与工作流知识与记忆

概览

AI 生成的概览

ai·rete·rag 的远程或本地 MCP 服务器,让助手在某个领域内依据规则引擎做出决策,并用已导入的政策文档解释理由。

可以做什么
在领域内依据结构化事实或自由文本做出决策,结论来自规则引擎,解释基于政策文档,并可按较早日期读取当时生效的政策。查看规则与参数:列出规则的条件与结论,以 YAML 获取规则集,查看某领域规则所依据的输入事实。编写规则:把政策文档转换为带引用的草稿规则,再校验或从 YAML 保存规则集。管理知识库:导入政策文本(可标注生效日期或替代旧版本),并列出已导入的文档。查看套餐与每月剩余决策额度。
适用场景
适用于决策必须依据书面政策、可复现且可审计的场景,例如贷款、欺诈或临床类判定,并希望助手先收集正确事实、执行决策并引用依据的政策。
运行要求
可使用托管端点,或用 uvx 或 pip 从 PyPI 包 ai-rete-rag-mcp 在本地运行。使用自己的账户与额度需要 API 密钥,通过 AI_RETE_RAG_API_KEY 或 Authorization bearer 头提供;没有密钥时只能使用共享演示领域。AI_RETE_RAG_API_URL 可覆盖 API 基础地址。需要能访问该服务的网络。
安装前请注意
API 密钥是仅显示一次的机密,并与套餐额度绑定,请勿放入共享配置。写入类工具会在你的账户中创建或替换规则集、导入文档,创建新领域会将其归属到你的账户并受套餐限制。导入的草稿规则由 LLM 辅助生成,保存前应人工审核。每次决策会消耗每月额度。

安装

在 SourceWeft 中

  1. 打开 控制台中的 ai·rete·rag,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.ai-rete-rag%2Fai-rete-rag-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "ai-rete-rag": {
      "type": "http",
      "url": "https://ai-rete-rag.com/mcp"
    }
  }
}

README

ai·rete·rag MCP Server

Use ai·rete·rag — deterministic rule-based decisions with RAG-powered explanations — from Claude Code, Claude Desktop, or any MCP client.

The verdict always comes from the Rete rule engine (auditable, reproducible); the LLM only explains why, grounded in your ingested policy documents.

Tools

ToolWhat it does
decideMake a decision in a domain — structured facts and/or free text, with optional Pattern 01 (rules scope retrieval) and Pattern 02 (retrieval into working memory). as_of reads the policy documents in force on an earlier day
get_parametersThe facts a domain's rules decide on (from your account's own rules), most decisive first — what to collect before decide
list_rulesInspect a domain's rules — conditions, verdicts, salience, overlaps
get_rule_sourceFetch a domain's rule set as editable YAML
import_policy_rulesTurn a written policy document into draft rules, each citing the sentence it encodes (nothing is saved — review, then put_rules)
put_rulesCreate or replace a domain's rule set from YAML (dry_run to validate)
ingest_textAdd policy text to a domain's knowledge base, optionally dated (effective_from, effective_until) or replacing an earlier version (supersedes)
list_documentsBrowse a domain's ingested documents
get_usageCheck your plan and remaining monthly decision quota

Prompt: decide_case

An agent workflow for deciding a case in any domain on your account, including your own: it calls get_parameters to learn which facts the rules decide on, reads the case — text, photos, document scans, voice notes or video (the agent reads the media itself; the API only receives the facts) — maps it onto those exact fields, calls decide with fact_sources recording which file each fact came from (kept in the decision's audit trail), and — while the result's missing_parameters is non-empty (facts that could still change the verdict) — asks you for them, most decisive first, and decides again. The verdict always comes from the rules.

Connect by URL (no install)

The server is also hosted, which is the only route for clients that connect to a URL and have no field for a static header — claude.ai and Claude Desktop custom connectors, in particular.

URLAuthReaches
https://ai-rete-rag.com/mcp/authSign in with Google, once, in the browserYour account — your domains, your plan quota
https://ai-rete-rag.com/mcpNone, or Authorization: Bearer ik_...Shared demo domains anonymously; your account with a key

Add https://ai-rete-rag.com/mcp/auth as a custom connector and approve the prompt. Connections are listed under Settings → Connected apps, and disconnecting one takes effect immediately.

Install

No install needed with uv — uvx ai-rete-rag-mcp fetches and runs the server on demand (see the config snippets below).

Alternatively, install it as a package:

bash
pip install ai-rete-rag-mcp         # from PyPIpip install .                       # or from source, in this repo

Configure

First create an API key: sign in at ai-rete-rag.com, open Settings → API Keys, and create a key (ik_... — shown once).

Claude Code

bash
claude mcp add ai-rete-rag -e AI_RETE_RAG_API_KEY=ik_your-key-here -- uvx ai-rete-rag-mcp

(If you installed via pip, use -- ai-rete-rag-mcp instead of -- uvx ai-rete-rag-mcp.)

Or skip the install entirely and point it at the hosted endpoint with your key:

bash
claude mcp add --transport http ai-rete-rag https://ai-rete-rag.com/mcp \  --header "Authorization: Bearer ik_your-key-here"

Claude Desktop / other clients (JSON)

json
{  "mcpServers": {    "ai-rete-rag": {      "command": "uvx",      "args": ["ai-rete-rag-mcp"],      "env": {        "AI_RETE_RAG_API_KEY": "ik_your-key-here"      }    }  }}

(With a pip install, set "command": "ai-rete-rag-mcp" and drop "args".)

Environment variables:

VariableDefaultPurpose
AI_RETE_RAG_API_KEY(none)Your API key — authenticates calls and ties them to your plan quota
AI_RETE_RAG_API_URLhttps://ai-rete-rag.comAPI base URL — point at http://localhost:8000 for local dev

Without a key you can still explore the shared demo domains (loan, fraud, clinical, …) subject to free-tier limits.

Example

"Use ai·rete·rag to decide whether this loan application should be approved: credit score 645, annual income $52k, requested amount $30k."

Claude calls decide(domain="loan", facts={...}) and returns the rule-derived verdict plus a plain-English explanation citing the underwriting policy.

来源:README.md,提交 76d3d08

工具

9

decide

Make a decision

Make a deterministic, auditable decision in a domain. The verdict comes from the domain's rule set (Rete engine, never the LLM), so it is reproducible and compliant. The explanation is generated from the domain's ingested policy documents. Without an API key only the shared demo domains are available, and the response carries `next_step`: how to get a free key for your own rules. Pass that on to the user rather than dropping it. Args: domain: Rule-set domain, e.g. "loan", "fraud", "clinical". query: Natural-language question or decision request. facts: Structured facts for working memory, e.g. {"credit_score": 710, "annual_income": 85000}. Use `get_parameters` to see which fields a domain's rules test. Facts you read yourself from photos, document scans, voice notes or video go here, under those field names; explicit facts always win over anything extracted server-side. fact_sources: Where each fact in `facts` came from, e.g. {"monthly_income": "payslip.jpg", "claim_usd": "voice note 1"}. Always set this for facts you read from a file, photo, recording or video: it is stored in the decision's audit record so a reviewer can tell typed facts from ones read off evidence. Facts without a source are recorded as "request". as_of: Read the domain's policy documents as of this day, as YYYY-MM-DD (default: today). Use the date a case was filed to decide it under the policy in force then; the rules themselves are always the current ones. unstructured_text: Optional free text (an application, a case note, a voice-note transcript, what a photo or video shows); facts are extracted from it automatically and merged. response_mode: "verdict_only" (fastest), "verdict_with_explanation", or "full_audit" (every rule evaluation + retrieved chunks, available on every plan including the free tier). rule_firings come

输入参数as_offactsquery必填domain必填fact_sourcesresponse_modeunstructured_textextract_from_retrievalfilter_retrieval_with_rules

list_rules

List rules

List the decision rules for one domain (or all domains). Returns each rule's conditions — either a flat AND list (field / operator / value) or a `when` condition tree (nested all/any/not) — plus its verdict, salience, and any asserted facts (`action.assert`, the facts a rule produces for other rules to consume). `edges` lists the derived rule→rule dependencies: src asserts a fact type that dst's conditions test (forward chaining). Each rule may also carry `citation` — the policy sentence it encodes — which is what lets a decision be traced back to the source clause. Also includes overlap warnings. Use this to learn which fact fields a domain expects before calling `decide`.

输入参数domain

get_parameters

Get decision parameters

List the input parameters a domain's rules decide on — the facts to collect before calling `decide`. Derived from your account's own copy of the rules, so it covers your custom domains too. Each parameter has its `field` name (the key to use in `facts`), `kind` (number / boolean / string), the `tests` rules make on it (e.g. >= 720 — match these units and scales), the `rules` and `verdicts` it can lead to, and `max_salience`. Parameters come most decisive first: those feeding the highest-salience rules, which win when several rules fire. Also returns every verdict the domain can reach.

输入参数domain必填

ingest_text

Ingest policy text

Add policy/reference text to a domain's knowledge base. The text is chunked and embedded; explanations for future decisions in this domain will cite it. Creating a new domain claims it for your account (plan limits apply). Ingesting into a built-in demo domain gives your account its own copy of that demo (it counts as one of your domains); the shared demo others see is unchanged. On team plans, only the domain admin (the member who created the domain, or the subscription owner) can add documents. Documents can be dated. A decision only cites documents in force on its date, so a replaced policy is never quoted for a new decision. To publish a new version, ingest it under a new `source` with `supersedes` naming the old one: the old document stops applying on the new one's `effective_from` (today if not given), and the new one starts that day. A document can be superseded only once; to replace a successor, supersede the successor. Args: domain: Domain to ingest into (existing or new). text: The policy or reference text. source: Optional source name shown in the document list. effective_from: First day this document applies, as YYYY-MM-DD (default: always). effective_until: First day it no longer applies, as YYYY-MM-DD (default: no end). supersedes: Source name of the document this one replaces.

输入参数text必填domain必填sourcesupersedeseffective_fromeffective_until

list_documents

List documents

List the documents ingested into a domain's knowledge base.

输入参数domain必填

get_rule_source

Get rule source (YAML)

Fetch a domain's rule set as editable YAML (plus the parsed rules and whether you may edit it). Use this before `put_rules` to see the current rules. For a built-in demo domain you get your own copy's rules once you have edited it, otherwise the shared demo's.

输入参数domain必填

put_rules

Save rules

Create or replace a domain's rule set from YAML (self-serve rule authoring). The first save to a new domain claims it for your account (plan limits apply). Saving to a built-in demo domain saves your own copy of it, seeded from the demo; the shared demo others see is unchanged. Rules are validated before saving — set dry_run=true to validate without persisting. The response reports ok/errors, the parsed rules, and any overlap warnings. YAML format — a list of rules. Flat form (conditions are AND-ed): - name: "Approve" salience: 10 conditions: - type: loan field: credit_score op: ">=" value: 700 action: verdict: "APPROVED" reason: "Credit score meets threshold" Tree form — `when:` holds nested all/any/not condition groups, and an action may assert derived facts that other rules consume (forward chaining; the rule graph derives from these automatically): - name: "Sepsis Screen" salience: 30 when: all: - {type: clinical, field: temperature_f, op: ">=", value: 101.5} - any: - {type: clinical, field: wbc_count, op: ">", value: 12.0} - {type: clinical, field: bands_pct, op: ">", value: 10} action: verdict: "URGENT_ALERT" assert: - {type: sepsis_flag, fields: {severity: high}} - name: "Escalate" salience: 40 when: all: - {type: sepsis_flag, field: severity, op: "==", value: high} - {type: clinical, field: age, op: ">=", value: 65} action: verdict: "ADMIT_ICU" Use either `conditions:` or `when:` per rule, never both. `not` passes when the inner condition does not hold (including when the field is absent). Produce/consume cycles between rules are rejected at validation. An action may also carry `retrieval_scope: { <key>: <value> }` to narrow which documents retrieval searches (Pattern 01). A rule may also carry `citation:` — the policy

输入参数domain必填dry_runrules_yaml必填

import_policy_rules

Draft rules from a policy

Convert a written policy document into DRAFT decision rules (LLM-assisted). Returns validated draft rules (when/action, including chained asserts where the policy stages its determinations), derived rule→rule edges, and overlap warnings. Each returned rule carries a `citation` field holding the policy sentence it encodes (also summarized in the top-level `citations` map). Coverage runs the other way too: `uncovered_sentences` lists policy sentences no rule's citation points back to (out of `policy_sentence_count`), and `unverified_citations` names rules whose quote is missing or not found verbatim in the policy. Show both to the user: an uncovered sentence may need a rule; an unverified one may be a paraphrase that misstates the policy. `background_sentences` is the subset of uncovered sentences with no obligation language (definitions, preamble); lead with the others, but mention these too, since the split is a keyword heuristic. NOTHING IS SAVED: review the drafts (and show them to the user), then persist explicitly with `put_rules` — validate first with dry_run=true, and keep each rule's `citation` in the YAML you save so the audit trail back to the policy survives. Args: domain: Domain the rules are drafted for (an owned domain or a new name). policy_text: The policy document text (max ~50k characters).

输入参数domain必填policy_text必填

get_usage

Check usage and quota

Show this account's decision usage, plan, and remaining monthly quota.

无需输入参数。

版本历史

5
  1. v0.11.0最新Oct 17, 2026
  2. v0.10.0Oct 10, 2026
  3. v0.9.0Oct 3, 2026
  4. v0.8.0Sep 29, 2026
  5. v0.7.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Ai-Rete-Rag 集成