Skip to main content
Glama

decision_log

Write down a real choice right after you make it, so this agent's later runs follow it instead of working it out again: who someone is on an account, which of several matches you picked, which account, channel or approach you used when more than one would do, a default the user set. Not narration of steps, and not a choice the request already made for you. decision: one line, the conclusion ("Anupama on Slack is anupamadpverma@gmail.com"), 200 characters at most. why: what settled it, 300 at most. about: 1 to 4 short names of the people, accounts or topics ("Anupama Verma", "Slack"). evidence: "seen" (you saw it in the data), "inferred" (your best reading of it) or "said" (the user told you). rejected: the options you turned down. replaces: the id of an entry (decisions_read) this one overrides. A decision the user marked wrong or deleted is refused (the same text, or the same email, handle or number about the same people). from: your own "agent:task:key" (required inside Caddie); from outside Caddie, agent instead, and it's logged as the user's, via this client. Up to 20 an hour from one task, and 20 an hour from outside Caddie into one agent's log; 60 an hour into one agent's log in all.

Input Schema

NameRequiredDescriptionDefault
whyYes
fromNoyour own "agent:task:key" from your instructions
aboutYes
agentNooutside Caddie: the agent's name or id
decisionYes
evidenceYes
rejectedNo
replacesNoan entry's id from decisions_read

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full load and does so: it discloses refusal behavior (entries the user marked wrong or deleted are refused, including near-duplicates by text/email/handle/number), rate limits (20/hour per task, 20/hour externally, 60/hour per log overall), and attribution (external writes are logged as the user's via this client). These are non-obvious behavioral traits an agent cannot get from the schema.

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

Conciseness4/5

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

Front-loaded with the purpose and every clause carries real information, but the parameter rules, refusal policy, and rate limits are crammed into one undifferentiated paragraph, making the constraints harder to scan than they need to be.

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?

For an 8-parameter, annotation-free mutation tool with no output schema, the description covers qualification rules, field limits, refusal policy, attribution, and throttling. The only real gap is that it never says what a successful write returns (e.g., the new entry's id), which matters because replaces depends on ids.

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

Parameters5/5

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

Schema coverage is only 38%, but the description compensates for essentially every parameter: character ceilings for decision (200) and why (300), cardinality and format for about (1–4 short names), the meaning of each evidence enum value, the purpose of rejected, and how from vs agent split inside/outside Caddie. This is meaning well beyond the bare schema types.

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

Purpose4/5

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

Specific verb and resource ("write down a real choice right after you make it") plus a concrete enumeration of qualifying decisions (identity on an account, which match was picked, which channel, a user default) and explicit exclusions ("not narration of steps"). An agent can tell this apart from note-taking siblings, though the boundary against memory_update/skill_save is never drawn.

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

Usage Guidelines4/5

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

Explicit timing ("right after you make it") and an explicit negative rule ("not a choice the request already made for you"), which is stronger than most definitions offer. It does not name an alternative tool for the cases it rejects, so the agent must infer where narration or facts belong.

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.

Resources