Skip to main content
AITE M1.2-Art72 v1.0 Reviewed 2026-04-06 Open Access
M1.2 The COMPEL Six-Stage Lifecycle
AITF · Foundations

Template — Tool-Use Constraint Specification

Template — Tool-Use Constraint Specification — Transformation Design & Program Architecture — Advanced depth — COMPEL Body of Knowledge.

5 min read Article 72 of 53

COMPEL Specialization — AITE-ATS: Agentic AI Systems Architect Expert Artifact Template 2 of 5


How to use this template

Populate one instance per tool. The specification is the authoritative description of what the tool does, who may call it under what conditions, what inputs it accepts, what the runtime does after execution, and what the tool costs to invoke. The policy engine, the tool wrapper, the observability schema, and the security review all read from this specification; the specification is the source of truth.

Store the populated specifications in the repository alongside the agent’s code (e.g., agent/tools/specs/*.yaml). Version them with the agent. A tool without a specification is not callable; the CI check that enforces this is the central discipline.


Tool-Use Constraint Specification

Identity

FieldValue
Tool IDstable identifier, e.g., T_READ_FILE
Tool name (as seen by model)read_file
Specification version1.0
Last updatedYYYY-MM-DD
Tool owner (role)role name
Security reviewer (role)role name

1. Purpose

One to two sentences describing what the tool does and the architectural need it serves. Avoid marketing language. Describe the current capability, not the intended capability.

Example: Reads the contents of a single file under the task’s declared scope and returns the text. Used by the agent to inspect source code, configuration, and documentation within the sandboxed workspace.


2. Reversibility and blast radius

FieldValue
Reversibilityread-only / reversible write / conditionally reversible / irreversible
Blast radiusone-sentence description of the worst-case consequence of a single bad call
Recovery mechanism (if reversible)description

For conditionally reversible tools (e.g., commit to a branch), name the conditions under which reversal is possible and the time window.


3. Authorisation predicate

The authorisation predicate is the condition the policy engine evaluates before the tool executes. Write as a single declarative sentence with its clauses enumerated.

Example: The agent may call read_file when (a) the agent’s identity has the filesystem_read capability; (b) the path is under the session’s declared task scope; (c) the path does not match the protected-paths list; (d) the path does not contain parent-directory traversal sequences.

FieldValue
Policy-engine modulee.g., policies/tools/read_file.rego
Decisions returnedallow / deny / require_human_approval
Refusal reasons (for model feedback)enumerate

4. Input schema

Every parameter has a declared type, constraint, and rationale.

ParameterTypeConstraintsRequiredRationale
pathstringmatches ^[a-zA-Z0-9_/.-]+$, max 1024 bytesyesrestricts to printable ASCII path characters
encodingstringone of utf-8, utf-16no; default utf-8explicit handling of non-UTF-8 content
FieldValue
Schema filee.g., schemas/tools/read_file.json
Schema version1.0
Validation librarye.g., ajv / pydantic / jsonschema

5. Post-execution verification

Checks the runtime performs on the tool’s return value. Verification failures trigger the configured response (rollback, refusal-to-surface, escalation).

CheckPurposeFailure response
result size ≤ 10 MBprevent context explosiontruncate; emit result.truncated
result is valid UTF-8 (for text tools)integrityreplace invalid bytes; emit result.encoding_coerced
result does not match credential regex batterysecret-exposure defenceredact matching spans; emit result.redacted

Add tool-specific checks as needed.


6. Resource caps

ResourceCapScopeOn-exceed behaviour
Invocation counte.g., 200per sessiondeny subsequent calls; emit cap.exceeded
Concurrent invocationse.g., 3per agentqueue; emit cap.queued
Total data returnede.g., 50 MBper sessiondeny; emit cap.data_exceeded
Monetary cost (if applicable)e.g., USD 5.00per sessiondeny; emit cap.cost_exceeded
Latency budgete.g., 30 secondsper callcancel; emit cap.latency_exceeded

7. Observability emissions

Structured events the runtime must emit. Schema is stable across the tool registry; fields below are the minimum.

EventWhenFields
tool_call.startedbefore executiontool_id, call_id, session_id, correlation_id, params_hash, authorisation_decision
tool_call.completedon successtool_id, call_id, duration_ms, result_size, verification_outcome
tool_call.failedon failuretool_id, call_id, duration_ms, error_class, error_message (redacted)
tool_call.deniedon policy denialtool_id, call_id, reason

Redaction rules are inherited from the organisation’s PII policy and applied at emission.


8. Dependencies and side effects

DependencyNatureFailure modeCircuit-breaker ref
external API / database / filesystemdescriptiontimeout / 5xx / rate limitref

For tools with side effects on shared systems, name every system touched and describe how a failure in that system is surfaced to the agent and to the operator.


9. Security review

FieldValue
OWASP Top 10 Agentic mappinge.g., LLM06 Excessive Agency; LLM01 Prompt Injection if tool reads external content
MITRE ATLAS mappinge.g., AML.T0051 if applicable
Threat-model review dateYYYY-MM-DD
Residual risk statementone paragraph

10. Change log

DateVersionChangeReviewed by (role)
YYYY-MM-DD1.0initial specificationsecurity reviewer role

Retirement

When the tool is retired from the registry, this specification is retained for the agent’s deployment life plus the organisation’s records-retention period. A tool specification that appears in any live agent’s registry cannot be deleted.


End of Tool-Use Constraint Specification template.