Skip to main content
Glama
Mipiti
by Mipiti

Extract Behavioural Model

extract_behavioural_model

Give a model that has no behavioural model one. Mutating only with confirm_estimate=True; a paid action then.

Instructions

Give a model that has no behavioural model one. Mutating only with confirm_estimate=True; a paid action then.

The extraction is paid for by whoever requests it, so it is estimated first and the estimate is RELAYED TO THE PERSON before it is confirmed. Never confirm on your own.

  1. Call with confirm_estimate=False (the default): nothing is charged or written. The answer carries the estimate (the extraction, the existing controls' deltas and checks, the link-matching call and the re-judgement, by part), the model_version and set_revision the model stands at, and notices on what the extraction changes: judgements of the groups the threats reach are asked again, and posture can move down as well as up. Show all of it to the person.

  2. Once they agree, call with confirm_estimate=True and those two values. The extraction is queued and the call returns at once (queued, extraction.job): it can take an hour on a long description. Poll get_behavioural_model until extraction.job is null; a new model version then holds the result (its status may be needs_answers). Read the proposals with get_behavioural_links.

Refusals come back as data, {confirmed: false, http_status, code, message}: 409 has_behavioural_model (read it with get_behavioural_model), 409 extraction_running (one is queued or running: poll it), 409 review_stale (the model or its controls changed since the estimate: confirm again with the values returned), 402 (the balance cannot cover the estimate). A 404 means the caller may not start paid actions on the model.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
model_idYesID of the threat model.
set_revisionNoWith ``confirm_estimate=True``: the estimate's value.
model_versionNoWith ``confirm_estimate=True``: the estimate's value.
server_versionYes
confirm_estimateNoFalse (default) estimates; True extracts.

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, the description carries the full burden and does so well: it discloses this is a paid, mutating action only when confirm_estimate=True, that the requester is charged, that the estimate must be relayed to a human before confirmation, that the operation is queued and may take an hour, that polling is required, and that op... refusals return as {confirmed, http_status, code, message} with specific 409/402/404 semantics. These are exactly the behavioral traits an agent needs and that structured fields do not supply.

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?

The description is long but front-loaded and organized into a purpose statement plus two numbered steps followed by refusal handling. Given the multi-step, asynchronous and paid nature of the tool, most sentences earn their place; the heavy use of double-backtick code formatting and the dense refusal enumeration add some reading overhead.

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 complex, paid, asynchronous mutation with an output schema present, this is complete: it covers preconditions, both call modes, the queued job and its polling loop, the returned estimate fields and notices, downstream siblings to use, and every relevant error code including a permission-implication note for 404.

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 80%, so the baseline is 3, but the description adds real meaning: confirm_estimate=False estimates while True extracts, and set_revision/model_version are the values that must be carried forward from the estimate payload returned in step 1. The only parameter left unexplained is server_version, which the description also ignores.

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 opening sentence 'Give a model that has no behavioural model one' states a specific verb (extract/give) and resource (behavioural model) with a clear scope restriction (only models that lack one). It distinguishes itself from the read-only sibling get_behavioural_model, which the description explicitly points to when the 409 has_behavioural_model refusal fires. An agent can separate this from edit_behavioural_element/confirm_behavioural_model without opening schemas.

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?

It lays out an explicit two-step protocol: first call with confirm_estimate=False, relay the estimate to the person, then call with confirm_estimate=True and the returned values, and it explicitly forbids confirming on your own. It also names alternatives via the refusal codes (poll with get_behavioural_model, read proposals with get_behavioural_links) and the condition under which each applies.

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