Skip to main content
Glama
tetracoralla

decision-table

by tetracoralla

Decision Table

Decision Table — это детерминированный примитив принятия решений и ограничений для ИИ-агентов. Он выносит ограниченные бизнес-суждения из рассуждений модели в строгий, версионируемый, исполняемый IR.

Название продукта и стабильные идентификаторы пакета, CLI, плагина, Skill и MCP зафиксированы в docs/PRODUCT_IDENTITY.md.

Первый релиз предоставляет:

  • decision.evaluate: оценка фактов с политикой попаданий first, unique, collect или priority;

  • decision.validate: проверка модели и консервативное доказательство дублирующих, перекрывающихся или затенённых правил, где это поддерживается;

  • constraint.check: проверка предлагаемого кандидата с возвратом нарушений, отсутствующих входных данных и настроенных подсказок по исправлению;

  • constraint.check_approved: если настроено хостом, выполняет read-only проверку по точному утверждённому набору правил, который вызывающий код не может заменить или датировать задним числом;

  • одно общее ядро на TypeScript, JSON CLI, а также MCP-сервер и плагин Codex.

Установка в Codex

codex plugin marketplace add tetracoralla/decision-table --ref main
codex plugin add decision-table@decision-table

После установки начните новую задачу Codex, чтобы Skill и MCP-инструменты загрузились из установленного плагина. Учётная запись npm, npm-пакет или сборка из исходников не требуются; плагин содержит предварительно собранный MCP-сервер, и ему нужен только Node.js 20.19 или новее в PATH.

Корень репозитория — это маркетплейс, а plugins/decision-table — устанавливаемый плагин. Сведения об обновлении, удалении и проверке см. в docs/INSTALLATION.md.

Используйте обычные запросы, например:

  • «Проверь этот набор правил принятия решений, прежде чем я начну его использовать».

  • «Оцени этот набор правил на основе этих фактов».

  • «Проверь, удовлетворяет ли это предлагаемое действие этим ограничениям».

Decision Table распространяется с GitHub как плагин Codex. Node-пакет в этом репозитории является приватным и существует только для сборки, тестирования и локальной разработки библиотеки; он не публикуется в npm.

Разработка из исходного кода

npm install
npm run check

Для локальной разработки плагина добавьте сам каталог этого репозитория как маркетплейс и проверьте исходный плагин с помощью npm run check:plugin.

CLI

npm run cli -- validate examples/payment-approval.decision.json
npm run cli -- evaluate examples/payment-approval.decision.json \
  --facts examples/payment-approval.facts.json \
  --expected-version 1.0.0
npm run cli -- check examples/email-marketing.constraint.json \
  --candidate examples/email-marketing.candidate.json \
  --facts examples/email-marketing.facts.json

Все выходные данные — в формате JSON. Используйте - вместо пути к входному файлу, чтобы прочитать соответствующий документ из stdin. Опции, не определённые для выбранной команды, отклоняются. Набор правил, факты и документ кандидата используют один общий совокупный лимит 256 KiB.

Для точной привязки содержимого передавайте и --expected-version, и --expected-fingerprint <sha256>.

Утверждённые проверки и контроль на стороне хоста

Вызов constraint.check в коде носит рекомендательный характер, поскольку набор правил предоставляет вызывающий код. Для read-only анализа с политикой, одобренной хостом, привяжите набор правил перед запуском MCP-сервера:

import {
  createApprovedConstraintChecker,
  createConstraintExecutionGuard,
  fingerprintRuleset,
} from "@openadam/decision-table";

const expected = {
  id: approvedRuleset.id,
  version: approvedRuleset.version,
  fingerprint: fingerprintRuleset(approvedRuleset),
};
const checker = createApprovedConstraintChecker({ ruleset: approvedRuleset, expected });

Входящий в комплект stdio-сервер предоставляет constraint.check_approved, когда его хост задаёт DECISION_TABLE_APPROVED_CONSTRAINT_JSON как тот же строгий объект привязки. Агент не может заменить политику или датировать проверку задним числом, но он по-прежнему предоставляет кандидата и факты, поэтому этот read-only MCP-инструмент не является границей выполнения.

Для управляемого побочного эффекта держите конструирование кандидата, загрузку доверенных фактов, проверку и выполнение внутри контекста, принадлежащего хосту:

const guard = createConstraintExecutionGuard(checker, async (action, run) =>
  database.transaction(async (transaction) =>
    run({
      candidate: candidateFromActualAction(action),
      facts: await loadTrustedFacts(transaction, action),
      execute: (sameActionSnapshot) =>
        executeActualAction(transaction, sameActionSnapshot),
    }),
  ),
);

const outcome = await guard.execute(actualToolArguments);

Ограничитель делает снимок фактического действия, блокирует исполнителя, если ограничения не возвращают valid, и передаёт этот же замороженный снимок на выполнение. Контекст, принадлежащий хосту, — это место, где транзакция или блокировка должна сохранять изменчивые факты действительными на протяжении побочного эффекта. Ограничитель — это граница библиотеки и намеренно не является MCP-инструментом, вызываемым Агентом.

Структура набора правил

Условия — это тегированные данные, а не исполняемые строки:

{
  "op": "compare",
  "left": { "kind": "fact", "path": "amount" },
  "comparator": "gte",
  "right": { "kind": "literal", "value": "10000" }
}

Десятичные входные значения — это строки. Отсутствующие пути порождают UNKNOWN; они не приводятся к false. Значения даты и времени требуют реального календарного значения ISO, явного смещения, секунд и точности не более миллисекунды. Полную границу продукта см. в examples/ и docs/PRODUCT_MODEL.md.

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.

  • Hosted MCP for creating, checking, deploying, and hosting static sites for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tetracoralla/decision-table'

If you have feedback or need assistance with the MCP directory API, please join our Discord server