Skip to main content
Glama
Mipiti
by Mipiti

Answer Behavioural Questions

answer_behavioural_questions

Answer open behavioural questions, many in one call. Mutating; creates a model version.

Instructions

Answer open behavioural questions, many in one call. Mutating; creates a model version.

get_behavioural_model (or get_review_queue, as behavioural_question rows) lists the open questions. Answer only from what the code or the owner shows, and say unknown where it does not: a guess becomes a stated fact. Answer what each question asks and no more, in a sentence or two: whatever else an answer describes is modelled, and each new part is asked about in turn, so a detailed answer opens more questions than it closes. Each answer is kept as a clarification. The model is extracted once every open owner question has an answer, or when extract_now=True asks for it (with no answers, it extracts with those already collected). That extraction is billed to the caller; a balance that cannot cover it is refused (402).

An answer is a fact (text) unless it names a disposition the question's dispositions lists: not_needed (the gap does not matter to what the system does), not_behaviour (the sentence describes no behaviour), unknown (nobody can say; it stays visible as an accepted unknown) or as_stated (the model's reading of the structure the question names is what the system does). Its text is then an optional note. Use unknown rather than a guess. A question with no dispositions takes a fact only: one about the model's own structure has no worst case to fall back on, so any disposition is refused (422).

A program's answer is a judgment. Unless the workspace's delegation policy admits it, it is refused with 403 and an escalation_id and parked for a person. Do not retry: report the escalation_id and poll list_proposals.

Returns at once with the answers stored. When an extraction was asked for, queued is true and it runs in the background (up to an hour on a long description): poll get_behavioural_model until extraction.job is null, then read the new questions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
answersNoJSON array of ``{"question_id": "...", "text": "...", "disposition"?: "..."}``. Example: '[{"question_id": "q1", "text": "Only the owner can delete a record."}, {"question_id": "q2", "disposition": "unknown"}]'. Empty to extract with answers collected.[]
model_idYesID of the threat model.
extract_nowNoExtract now, with the answers given and those already collected.
server_versionYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.87.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so thoroughly: mutating/version-creating, answers persisted as clarifications, billed extraction with a 402 refusal on insufficient balance, 403 escalation_id parking for program judgments, 422 for dispositions on questions with no dispositions list, and asynchronous background extraction requiring polling.

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?

Well structured in paragraphs with the purpose front-loaded and each section (dispositions, billing, escalation, returns) addressing a distinct concern. It is long, but nearly every sentence carries operational content; the density is justified by the tool's complexity.

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

Completeness5/5

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

For a mutating, billed, escalation-prone tool with a 4-parameter schema and output schema, the description covers the answer format, disposition fallbacks, error codes, billing, escalation flow, and async polling. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 75%, and the description substantially deepens the answers parameter by explaining the fact-vs-disposition distinction and defining not_needed, not_behaviour, unknown, and as_stated with their semantics. It also clarifies extract_now's empty-answers behavior. This meaning goes well beyond the schema's format example.

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?

States a specific verb (answer), resource (open behavioural questions), and scope (many in one call), plus the key side effect (mutating; creates a model version). It distinguishes itself from siblings by naming get_behavioural_model and get_review_queue as the way to list questions rather than answer them.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use get_behavioural_model/get_review_queue to list open questions, answer only from what the code or owner shows, prefer unknown over a guess, and answer only what each question asks. It also states the extraction trigger (all owner questions answered or extract_now=True) and warns not to retry on a 403 but to poll list_proposals.

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

Deploy Server

Other Tools