refine_threat_model
Refine an existing threat model by applying change instructions. Updates assets, attackers, trust boundaries, and control objectives while preserving entity identities and reporting semantic rejections.
Instructions
Refine an existing threat model based on an instruction.
Updates the model's assets, attackers, trust boundaries, and control objectives based on the instruction. Creates a new version. Progress is reported automatically.
Refine CANNOT silently replace an entity's identity under a stable ID or silently drop an entity. Behavior:
Preserved entities where the LLM proposed an identity- bearing rewrite (name / description / security_properties on assets; capability / archetype / position on attackers) run through a semantic-preservation guard. Rewrites classified as
replaceorambiguous(orunavailableif the gate LLM is down) have their identity fields REVERTED to the pre-refine values. Each rejection shows up as an entry in thesemantic_rejectionsarray in this tool's return value — surface these to the operator.Entities the LLM drops from the refined output are re- appended to the model unchanged. The only sanctioned removal path is
remove_asset/remove_attacker(soft-delete).CO IDs are stable across refinements; pairs (asset, attacker) that disappear come back as tombstones with
removed=True(not renumbered). Controls that only mapped to tombstoned COs become orphaned at read time.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model_id | Yes | ID of the threat model to refine. | |
| instruction | Yes | What to change, e.g. "Add CSRF attack vectors". | |
| server_version | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||