Skip to main content
Glama

check_action

Kerne-gaten (to-lags evaluering): Lag A (deterministisk hard-rule/outward-match, ingen LLM) + Lag B (Sonnet vurderer mod charterets NL-principper via LiteLLM :4000, citerer principle_id + reasoning — INGEN egen alvorligheds-dom) → most-restrictive-wins aggregeret, auditerbar receipt: {action, deterministic_flags[], values_assessment[], values_assessment_unavailable, unrecognized_principle_citations, principles_evaluated, recommendation, requires_human, charter_name, scope_note}.

recommendation ∈ {allow, flag, gate_to_human} — ALDRIG approved/denied/true/false. ADVISORY: anbefaler, blokerer/eksekverer/autoriserer ALDRIG (never-decide-for-you). FAIL-SAFE: Lag B utilgængelig -> Lag A kører stadig, values_assessment_unavailable=true, recommendation løftet til MINDST 'flag' (aldrig stille 'allow'). Read-only — skriver INTET, ingen side-effekter.

PUBLIC_DEMO-mode: vurderet mod det OFFENTLIGE Art-14-demo-charter (ikke din org — se scope_note). Rate-limitet (default 5/min + 30/time, ÉN global demo-bucket). Over grænsen returneres {error:"rate_limited", retry_after_s, scope_note} — ALDRIG et recommendation-formet svar. Bogholderi-fejl i rate-limiteren -> deny (fail-safe).

RED-TEAM-FIX (minimal-indgreb): tomt/whitespace-only action valideres FØR rate-limiteren forbruger en kvote-token — en ugyldig-input-loop kan ellers stille dræne demoens kvote uden at nogensinde levere en receipt (rå ValueError fra firewall.check_action's fail-loud-guard ville ellers både forbruge kvote OG propagere ubehandlet til transport-laget, hvilket bryder "check_action leverer ALTID en receipt/struktureret fejl"-disciplinen). Uden for PUBLIC_DEMO uændret: fw.check_action's egen ValueError-fail-loud gælder stadig (bindende, testet i test_values_firewall.py).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes
contextNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses key behavioral traits: read-only with no side effects, advisory-only (never blocks/executes), most-restrictive-wins aggregation, fail-safe when Layer B is unavailable (recommendation lifted to at least 'flag'), rate limiting behavior, and error handling (rate_limited response). It also details the red-team-fix for empty action validation, which is highly transparent about edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dense, with multiple sections including a very specific RED-TEAM-FIX that is tangential to general tool usage. While it is structured in paragraphs, it lacks bullet points or clear separation of core vs. edge-case information, making it harder to parse quickly. Every sentence adds some behavioral detail, but the overall size is excessive for a tool selection scenario.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is highly comprehensive for a tool with an output schema: it explains the returned receipt fields, recommendation values, rate-limiting errors, and fail-safe modes. However, it leaves a gap in parameter semantics (especially 'context') and does not fully describe what constitutes a valid 'action' string, which is a notable omission for practical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides minimal parameter meaning: it discusses 'action' only in the context of empty/whitespace validation, and does not explain what 'action' should contain or what 'context' is. Input schema coverage is 0%, and the description does not compensate by describing parameter semantics beyond that single edge case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's core function: a two-layer evaluation gate (deterministic + LLM) that produces a recommendation (allow/flag/gate_to_human) for an action. It distinguishes itself from the sibling check_action_deterministic by explicitly describing the dual-layer architecture and the advisory nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (e.g., when a full two-layer evaluation is needed, or when operating in PUBLIC_DEMO mode) and describes fail-safe behavior, but it does not explicitly state when to prefer this over check_action_deterministic or list_charter. No explicit exclusion guidance is provided beyond mentioning different modes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a distinct role: full values assessment, deterministic assessment without LLM, and charter listing. The overlap between the two assessment tools is clearly bounded by the explicit layer difference (Lag A vs Lag A+B).

Naming Consistency5/5

All tools use verb_noun underscore naming (check_action, check_action_deterministic, list_charter). The deterministic variant logically extends check_action, maintaining a predictable pattern.

Tool Count5/5

Three tools is well-scoped for a read-only advisory firewall. Each tool serves a necessary function without unnecessary bloat.

Completeness5/5

The domain is fully covered: inspect the governing charter, run a full assessment, and run a fast deterministic assessment. No obvious missing operations for the stated purpose.

Resources