Inferensys

Prompt

Agent Capability Self-Assessment Prompt

A practical prompt playbook for using Agent Capability Self-Assessment Prompt in production AI workflows.
Developer demonstrating multi-agent tool use, agent tool selection interface on laptop, casual tech demo moment.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job, reader, and constraints for the Agent Capability Self-Assessment Prompt.

This prompt is designed for agent framework developers who need their agents to produce a reliable, structured summary of their own capabilities before beginning a task. The core job-to-be-done is preventing capability hallucination at the planning stage. Instead of letting an agent optimistically assume it can perform an action and fail at runtime, this prompt forces introspection against its registered tool set. The ideal user is an AI platform engineer integrating dynamic tool ecosystems, such as Model Context Protocol (MCP) servers, where the available tools can change between sessions. The required context is a live, machine-readable tool registry or a system prompt that accurately lists every available tool with its full schema.

You should use this prompt at the boundary between tool discovery and task planning. For example, inject it as the first user turn after a dynamic tool registry refresh, or use it to generate a preamble that constrains the agent's subsequent planning steps. The output is a structured capability summary that includes explicit statements of what the agent cannot do and confidence levels for each claimed capability. This is not a prompt for single-step function calling or for agents with a static, well-known tool set. Do not use it when the tool list is trivially small or when the agent's task is so constrained that capability assessment adds latency without reducing risk. It is also inappropriate for agents that do not have access to a reliable, programmatic description of their tools—asking an agent to guess its own capabilities from vague system prompts will produce a confident hallucination, not a useful self-assessment.

The primary constraint is that this prompt is only as good as the tool registry it introspects. If the registry is stale, incomplete, or contains malformed schemas, the self-assessment will faithfully reproduce those errors. Always pair this prompt with a validated, recently refreshed tool manifest. In high-stakes deployments—such as agents with write access to production databases or customer-facing systems—the structured output from this prompt should be logged as an audit artifact and compared against a known capability baseline. A significant deviation in claimed capabilities between runs is a leading indicator of registry drift, a partial tool server outage, or a prompt injection attempt. The next step after generating the self-assessment is to feed it into the agent's planning prompt as a hard constraint, explicitly instructing the planner to never attempt actions outside the assessed capabilities.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Agent Capability Self-Assessment Prompt works and where it introduces risk. Use these cards to decide if this prompt fits your current architecture and operational maturity.

01

Good Fit: Dynamic Tool Ecosystems

Use when: your agent connects to MCP servers or plugin registries that change at runtime. The prompt prevents the agent from relying on a stale mental model of its tools. Guardrail: always run this prompt after a tools/list update and diff the output against the previous capability snapshot.

02

Good Fit: Pre-Planning Validation

Use when: you need the agent to explicitly state what it can and cannot do before it builds a multi-step plan. This catches capability hallucinations before execution begins. Guardrail: feed the structured capability summary into the planning prompt as a hard constraint block.

03

Bad Fit: Static, Small Tool Sets

Avoid when: the agent has a fixed set of 3-5 well-known tools that never change. The introspection overhead adds latency without reducing risk. Guardrail: hard-code the capability list in the system prompt and skip dynamic discovery entirely.

04

Required Input: Live Tool Registry

Risk: running this prompt without access to the current tool registry produces a confident but fabricated capability list. Guardrail: the prompt harness must inject the full tool manifest (schemas, descriptions, parameters) as [TOOL_REGISTRY] context. Never rely on the model's training data for tool knowledge.

05

Operational Risk: Stale Self-Assessment

Risk: a capability summary generated 10 minutes ago may be invalid after a tool server restart or schema migration. Guardrail: attach a TTL to every generated capability manifest and re-trigger assessment on any tool registration event or health check failure.

06

Operational Risk: Over-Confidence in Gaps

Risk: the model may state it cannot perform a task that a newly registered tool actually supports, leading to unnecessary escalation or task refusal. Guardrail: always pair the self-assessment output with a programmatic schema validator that confirms capability claims against the actual tool definitions before blocking execution.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt that forces an agent to produce a structured capability summary from its registered tool set, including explicit gaps and confidence levels.

This template is designed to be injected at session start or before a planning phase. It forces the agent to introspect its tool registry and produce a structured self-assessment rather than relying on implicit capability assumptions. The output is a machine-readable capability manifest that downstream planning prompts can reference. Use this when you need the agent to explicitly state what it can and cannot do before it attempts any multi-step task. Do not use this for agents with static, well-known tool sets where capability is already encoded in the system prompt.

text
You are an agent with access to a set of registered tools. Before you plan or execute any task, you must produce a structured capability self-assessment based ONLY on the tools currently available to you.

## INPUT
- Tool Registry: [TOOL_REGISTRY]
- Task Domain (optional): [TASK_DOMAIN]

## INSTRUCTIONS
1. Examine every tool in the provided tool registry. For each tool, extract its name, primary function, required parameters, and return type.
2. Group tools by capability category (e.g., data retrieval, computation, file operations, external API calls).
3. For each capability category, state:
   - What you CAN do with high confidence (tool exists, schema is complete, no ambiguity).
   - What you CAN do with low confidence (tool exists but schema is incomplete, parameters are ambiguous, or the tool description is sparse).
   - What you CANNOT do that might be expected for [TASK_DOMAIN] (explicit gaps where no tool exists).
4. Assign a confidence score (0.0 to 1.0) to each capability claim.
5. Flag any tools with missing required metadata, conflicting schemas, or deprecation notices.

## OUTPUT SCHEMA
Return a JSON object with this exact structure:
{
  "assessment_timestamp": "ISO-8601",
  "tool_count": integer,
  "capabilities": [
    {
      "category": "string",
      "confidence": 0.0-1.0,
      "status": "high_confidence | low_confidence | gap",
      "tools_used": ["tool_name"],
      "description": "What this capability enables",
      "limitations": ["specific things you cannot do within this category"],
      "missing_metadata": ["fields missing from tool schemas"]
    }
  ],
  "explicit_gaps": [
    {
      "expected_capability": "string",
      "reason_unavailable": "no_tool | insufficient_schema | deprecated_tool | permission_denied",
      "suggested_workaround": "string or null"
    }
  ],
  "registry_health": {
    "deprecated_tools": ["tool_name"],
    "schema_conflicts": [{"tool": "name", "conflict": "description"}],
    "missing_required_fields": [{"tool": "name", "fields": ["field_name"]}]
  }
}

## CONSTRAINTS
- Do not invent capabilities. If a tool is not in the registry, you cannot perform its function.
- If a tool description is ambiguous, mark it as low_confidence and explain the ambiguity.
- If [TASK_DOMAIN] is provided, explicitly list capabilities expected in that domain that you lack.
- Do not omit gaps to appear more capable. Explicit gaps are required output.
- If the tool registry is empty, return an assessment with tool_count: 0 and populate explicit_gaps with all capabilities you would normally expect to need.

## EXAMPLES
[FEW_SHOT_EXAMPLES]

## RISK LEVEL
[RISK_LEVEL]

Adapt this template by replacing the square-bracket placeholders. [TOOL_REGISTRY] should contain the serialized tool definitions available to the agent—typically JSON Schema function definitions or MCP tool manifests. [TASK_DOMAIN] is optional; provide it when you want the agent to assess its capabilities against a specific problem space like 'customer support triage' or 'database migration.' [FEW_SHOT_EXAMPLES] should include one well-populated capability assessment and one sparse-registry example showing how gaps are reported. [RISK_LEVEL] controls whether the agent should be more conservative in claiming capabilities; set to 'high' for regulated domains where overclaiming is dangerous. After adapting, validate that the output schema matches your downstream planning prompt's expected input format. Run this prompt against a known tool registry first and compare the output to a manually verified capability list before deploying to production.

IMPLEMENTATION TABLE

Prompt Variables

Placeholders required by the Agent Capability Self-Assessment Prompt. Replace each before execution. Validation notes describe how to confirm the placeholder is correctly populated.

PlaceholderPurposeExampleValidation Notes

[TOOL_REGISTRY]

Serialized list of all registered tools with their schemas, descriptions, and current status

{"tools": [{"name": "search_kb", "description": "Queries the knowledge base", "parameters": {"query": "string"}, "status": "active"}]}

Must be valid JSON. Each tool entry requires name, description, and parameters fields. Empty registry allowed but will produce empty capability summary.

[AGENT_ROLE]

Defines the agent's operational scope and primary function for context-aware capability assessment

You are a research assistant agent responsible for answering questions from internal documentation.

Must be a non-empty string under 500 tokens. Should align with the agent's system prompt to prevent contradictory self-assessments.

[CAPABILITY_SCHEMA]

JSON Schema that defines the required output structure for the capability summary

{"type": "object", "properties": {"capabilities": {"type": "array"}, "gaps": {"type": "array"}, "confidence": {"type": "string"}}, "required": ["capabilities", "gaps", "confidence"]}

Must be valid JSON Schema draft-07 or later. Required fields must include capabilities, gaps, and confidence. Schema mismatch will cause downstream parsing failures.

[CONFIDENCE_THRESHOLD]

Minimum confidence level required for the agent to claim a capability without flagging it for human review

0.8

Must be a float between 0.0 and 1.0. Values below 0.5 produce overly cautious assessments. Values above 0.95 may suppress legitimate capabilities.

[MAX_CAPABILITIES]

Upper bound on the number of capabilities the agent should report to prevent unbounded output

50

Must be a positive integer. Set based on tool registry size. Exceeding this value in output indicates the agent is hallucinating capabilities beyond registered tools.

[UNKNOWN_TOOL_POLICY]

Instruction for how the agent should handle tools it cannot parse or understand from the registry

Flag as 'unverified' and exclude from active capability claims. Append to gaps list with reason 'unparseable_tool'.

Must be a non-empty string. Policy should produce deterministic behavior. Ambiguous policies cause inconsistent capability reporting across runs.

[SESSION_ID]

Unique identifier for the current agent session, used for traceability and audit logging

session_2025-03-15_agent_7f3a

Must be a non-empty string. Should be unique per session. Used to correlate capability assessments with downstream tool-call logs for debugging.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the capability self-assessment prompt into an agent framework with validation, caching, and observability.

The Agent Capability Self-Assessment Prompt is not a one-off chat interaction. It is a structured introspection call that should be wired into the agent's initialization sequence and periodically re-executed when the tool registry changes. The prompt expects a complete tool manifest as input and returns a structured capability summary. This output becomes a first-class artifact in the agent's context window, used by planning, tool selection, and refusal logic. Treat the self-assessment as a cached, versioned artifact rather than a transient thought.

Wire this prompt into your agent harness as a synchronous preflight step before any user task begins. Pass the current tool registry—including tool names, descriptions, parameter schemas, and any known constraints—into the [TOOL_REGISTRY] placeholder. The model returns a JSON object containing capabilities, gaps, confidence_scores, and explicit_limitations. Validate the output against a schema that requires: (1) every claimed capability references at least one registered tool, (2) confidence scores are numeric values between 0.0 and 1.0, and (3) the explicit_limitations array is non-empty (an agent that claims no limitations is a red flag). If validation fails, retry once with the validation errors injected into the [CONSTRAINTS] field. After two failures, fall back to a conservative capability set derived directly from tool descriptions without model inference.

Cache the validated capability summary with a hash of the tool registry input. On subsequent agent invocations, compare the current registry hash against the cached hash. If they match, reuse the cached assessment to avoid unnecessary latency and cost. If the registry has changed—tools added, removed, or schemas modified—re-execute the prompt. Log every assessment run with the registry version, model used, latency, and validation status. For high-stakes deployments where capability hallucination could cause downstream harm (e.g., agents with write access to production systems), route the capability summary through a human review queue before it enters the agent's active context. The review should confirm that no claimed capability lacks a corresponding tool and that limitations are honestly stated.

Model choice matters here. Use a model with strong instruction-following and structured output capabilities. GPT-4o, Claude 3.5 Sonnet, and Gemini 1.5 Pro are all suitable. Avoid smaller or older models that may conflate general world knowledge with actual tool access. If you are running this prompt in a local or air-gapped deployment with an open-weight model, add few-shot examples to the [EXAMPLES] placeholder showing the desired output shape for a small tool registry. Test the harness with a deliberately incomplete or malformed registry to confirm the agent correctly identifies gaps rather than papering over them. The most common production failure is an agent that claims capabilities it does not possess because the self-assessment prompt was skipped, cached indefinitely, or run against a stale registry.

Do not treat this prompt as a substitute for programmatic capability enumeration. The tool registry itself is the source of truth; the self-assessment is a derived summary for the agent's reasoning convenience. If your agent framework can deterministically compute capabilities from tool schemas without a model call, prefer that approach and reserve this prompt for cases where tool descriptions are sparse, inconsistent, or written in natural language that requires interpretation. When you do use the prompt, log the raw output alongside the validated version so you can audit capability drift over time and catch cases where the model begins to over-claim or under-claim capabilities as tool registries evolve.

IMPLEMENTATION TABLE

Expected Output Contract

Fields, types, and validation rules for the structured capability summary produced by the Agent Capability Self-Assessment Prompt. Use this contract to parse, validate, and route the agent's output before it enters downstream planning or user-facing surfaces.

Field or ElementType or FormatRequiredValidation Rule

capability_summary

JSON object

Top-level key must exist and parse as valid JSON. Reject if missing or unparseable.

capability_summary.agent_id

string

Must match the agent instance identifier from [AGENT_ID]. Non-empty string required.

capability_summary.registry_version

string

Must match the registry version from [REGISTRY_VERSION]. Semver format recommended. Reject on mismatch or empty string.

capability_summary.registered_tools

array of objects

Each object must contain tool_name (string, required), description (string, required), and confidence (string, enum: confirmed|inferred|uncertain). Array must not be empty if registry is non-empty.

capability_summary.known_gaps

array of strings

Each entry must be a non-empty string describing a capability the agent explicitly cannot perform. Array may be empty. Null not allowed.

capability_summary.confidence_level

string

Must be one of: high, medium, low. Determined by proportion of confirmed vs. inferred tool entries. Reject on unrecognized value.

capability_summary.generated_at

string (ISO 8601)

Must be a valid ISO 8601 timestamp. Parse and compare to system clock. Reject if more than 5 minutes in the future or unparseable.

capability_summary.hallucination_warning

boolean

Must be true if any registered_tools entry has confidence=uncertain or if known_gaps contains entries flagged as inferred. Schema check: boolean type required.

PRACTICAL GUARDRAILS

Common Failure Modes

When agents assess their own capabilities, these failures surface first. Each card pairs a production symptom with a concrete guardrail you can implement before deployment.

01

Capability Hallucination from Sparse Metadata

What to watch: The agent claims capabilities not present in its tool registry because tool descriptions are vague or missing parameter constraints. It infers functionality from tool names alone, producing confident but false capability statements. Guardrail: Require the prompt to cite specific tool names and parameter signatures for every claimed capability. Add an explicit instruction: 'If a capability cannot be mapped to a registered tool with matching input/output schemas, state that the capability is unavailable.' Validate output against the actual registry.

02

Stale Registry Drift After Runtime Changes

What to watch: The agent performs capability assessment against a registry snapshot that is hours or days old. Tools have been added, removed, or had breaking schema changes since registration. The assessment is confidently wrong about current state. Guardrail: Include a registry freshness check in the prompt preamble. Require the agent to compare its registry timestamp against the current system time and flag any assessment as low-confidence when the registry exceeds a configurable staleness threshold. Trigger a registry refresh before assessment when stale.

03

Overclaiming from Tool Name Pattern Matching

What to watch: The agent sees a tool named send_email and claims it can send SMS, push notifications, and Slack messages because it pattern-matches on 'messaging.' Capability boundaries blur when tool names are semantically overloaded. Guardrail: Structure the prompt to require capability claims at the individual tool level, not the inferred category level. Add a constraint: 'Do not generalize capabilities beyond the explicit input/output contract of each tool. If a tool accepts only email addresses as a recipient parameter, do not claim messaging capabilities for other channels.'

04

Confidence Inflation Without Evidence Anchoring

What to watch: The agent produces a capability summary with uniform high confidence across all claims, including those derived from incomplete or ambiguous tool descriptions. Downstream planners treat all capabilities as equally reliable. Guardrail: Require tiered confidence scoring in the output schema: 'confirmed' (schema field present and typed), 'inferred' (derived from description text but not structurally validated), and 'unknown' (insufficient metadata). Downstream systems should treat inferred capabilities as requiring verification before execution.

05

Missing Negative Capability Statements

What to watch: The agent produces a list of what it can do but never states what it cannot do. Planners and orchestrators assume missing capabilities are simply unmentioned, leading to failed tool calls at runtime. Guardrail: Add an explicit output section requirement: 'Capability Gaps — List at least three specific, high-likelihood tasks that a user might reasonably expect this agent to perform but that are not supported by the current tool registry.' This forces explicit negation and prevents silent capability assumptions.

06

Schema Field Omission in Capability Descriptions

What to watch: The agent describes what a tool does but omits required fields, enum constraints, or parameter types from its capability summary. Downstream tool selection picks the right tool but passes invalid arguments because the capability description was incomplete. Guardrail: Require the output to include a structured schema summary for each tool: tool name, required parameters with types, optional parameters, and known constraints. Validate that every required field from the tool manifest appears in the capability output before accepting the assessment.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to test the quality of the agent's capability self-assessment output before integrating it into a planning or discovery pipeline. Each criterion targets a known failure mode for capability introspection.

CriterionPass StandardFailure SignalTest Method

Schema Compliance

Output is valid JSON matching [OUTPUT_SCHEMA] exactly; all required fields present and no extra keys.

JSON parse error, missing required field, or unexpected property.

Automated schema validator run against raw model output string.

Capability Grounding

Every claimed capability maps to a tool name present in [REGISTERED_TOOLS]; no invented tool names.

Capability references a tool not in the input registry or describes a generic AI ability as a tool.

Cross-reference each capability.tool_name against the [REGISTERED_TOOLS] list; flag orphans.

Gap Declaration

At least one explicit gap is stated when [REGISTERED_TOOLS] is missing a common capability category.

Output claims full coverage with no gaps when tool set is obviously incomplete.

Check for non-empty gaps array when [REGISTERED_TOOLS] lacks a category from [EXPECTED_CAPABILITY_CATEGORIES].

Confidence Honesty

Confidence scores are 0.9 or below for inferred capabilities; 1.0 only for explicitly confirmed tool parameters.

All confidence scores are 1.0 or confidence is missing entirely.

Assert that at least one capability.confidence < 1.0 when tool descriptions are sparse or ambiguous.

Refusal Statement

Output includes an explicit statement of what the agent cannot do, derived from tool gaps.

No refusal or limitation language present; output implies unbounded capability.

String match for refusal keywords or check that limitations array is non-empty.

No Hallucinated Parameters

Parameter lists for each capability match the tool's input schema from [REGISTERED_TOOLS]; no invented parameters.

Capability includes a parameter not defined in the corresponding tool schema.

Diff capability.parameters against tool.input_schema.properties for each referenced tool.

Staleness Flag

Output includes a staleness indicator if [REGISTRY_TIMESTAMP] is older than [STALENESS_THRESHOLD_HOURS].

Stale registry used without warning; staleness field missing or false when threshold exceeded.

Calculate time delta between [REGISTRY_TIMESTAMP] and current time; assert staleness_flag is true when delta exceeds threshold.

Uncertainty Language

Inferred or low-confidence capabilities use hedging language in the description field.

All capability descriptions use definitive language despite low confidence scores.

LLM-as-judge check: pass if any capability with confidence < 0.8 contains hedging terms like 'may support', 'appears to', or 'possibly'.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a small, known tool set (3-5 tools). Remove strict schema validation from the output contract. Accept free-text capability summaries alongside structured fields. Add [EXPERIMENTAL] markers to uncertain capability claims.

code
You have access to the following tools: [TOOL_LIST]

Produce a capability summary in any clear format. For each capability, indicate whether it is CONFIRMED (you can see the tool), INFERRED (you believe it exists based on tool names/descriptions), or UNKNOWN (you are unsure).

Explicitly list what you CANNOT do with the current tool set.

Watch for

  • Overconfident capability claims from sparse tool descriptions
  • Missing "cannot do" section entirely
  • Hallucinated parameter names when tool schemas are incomplete
  • No distinction between confirmed and inferred capabilities
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.