MCP ReferenceBlueprint Schema

Blueprint Schema

A blueprint is a JSON document that describes your AI agent — its name, framework, tools, workflows, constraints, and expected behaviors. Invarium uses this information to generate targeted behavioral test cases.


Full template

Here is the complete blueprint schema with all supported fields:

{
  "agent_name": "my-agent",
  "framework": "langchain",
  "description": "A brief description of what the agent does.",
  "model": "gpt-4o",
  "tools": [
    {
      "name": "tool_name",
      "description": "What this tool does.",
      "parameters": {
        "param_name": "param_type"
      },
      "returns": "Description of what the tool returns.",
      "side_effects": "none",
      "error_handling": "retry",
      "rate_limit": "10 req/min"
    }
  ],
  "workflow_chains": [
    {
      "name": "chain_name",
      "description": "What this workflow does.",
      "steps": ["tool_a", "tool_b", "tool_c"]
    }
  ],
  "constraints": [
    "Never share PII with external services",
    "Always cite sources when answering questions"
  ],
  "guardrails": [
    "Reject requests for harmful content",
    "Rate limit to 100 requests per user per hour"
  ],
  "expected_behaviors": [
    "Greet the user before asking clarifying questions",
    "Escalate to human support when confidence is below 0.5"
  ],
  "failure_modes": [
    "Hallucinating information not in the knowledge base",
    "Calling tools with incorrect parameter types"
  ]
}

Field reference

FieldTypeRequiredDescription
agent_namestringYesUnique name for the agent. Used to identify it across all Invarium tools. Must be URL-safe (alphanumeric, hyphens, underscores).
frameworkstringNoThe agent framework. Helps Invarium generate framework-specific test scenarios.
descriptionstringNoBrief description of what the agent does and its purpose.
modelstringNoThe LLM model the agent uses (e.g., gpt-4o, claude-3-opus). Informational only.
toolsarrayYesArray of tool definitions. At least one tool is required.
tools[].namestringYesName of the tool. Must be unique within the blueprint.
tools[].descriptionstringYesWhat the tool does. The more detail, the better the generated tests.
tools[].parametersobjectNoKey-value map of parameter names to their types (e.g., {"query": "string", "limit": "int"}).
tools[].returnsstringNoDescription of what the tool returns.
tools[].side_effectsstringNoWhat side effects the tool has.
tools[].error_handlingstringNoHow errors from this tool are handled.
tools[].rate_limitstringNoRate limit for this tool, as a human-readable string.
workflow_chainsarrayNoOrdered sequences of tool calls that represent multi-step workflows.
workflow_chains[].namestringNoName of the workflow chain.
workflow_chains[].descriptionstringNoWhat this workflow accomplishes.
workflow_chains[].stepsarrayNoOrdered list of tool names in the chain.
constraintsarrayNoRules the agent must always follow. These become test assertions.
guardrailsarrayNoSafety boundaries and limits. Invarium generates adversarial tests to probe these.
expected_behaviorsarrayNoDescriptions of correct agent behavior. Used to evaluate test results.
failure_modesarrayNoKnown failure modes. Invarium prioritizes testing these scenarios.

Validation rules

Framework values

The framework field accepts the following values:

ValueFramework
langchainLangChain / LangGraph
crewaiCrewAI
autogenAutoGen
openai_agentsOpenAI Agents SDK
customCustom / other frameworks

If omitted, Invarium defaults to custom.

Side effects values

The side_effects field on tools accepts:

ValueMeaning
database_writeTool writes to a database.
database_readTool reads from a database.
api_callTool makes an external API call.
email_sendTool sends an email.
file_writeTool writes to a file.
file_readTool reads from a file.
paymentTool processes a payment.
notificationTool sends a notification.
noneTool has no side effects.

Tools with write-related side effects (database_write, file_write, payment, email_send) receive more rigorous testing, including scenarios where the agent should refuse to call the tool.

Error handling values

The error_handling field on tools accepts:

ValueMeaning
retryThe agent retries the tool call on failure.
fallbackThe agent falls back to an alternative approach.
noneNo specific error handling defined.

Confidence scoring

After uploading a blueprint, Invarium assigns a confidence score based on how much information is provided:

ConfidenceCriteria
HighAgent has tools with parameters and return types, constraints or guardrails are defined, and at least one workflow chain is present.
MediumAgent has tools with descriptions, and at least one constraint or expected behavior is defined.
LowAgent has only a name and basic tool names with no additional detail.

Higher confidence means Invarium can generate more targeted and relevant test cases. To improve confidence:

  • Add parameters and returns to every tool
  • Define constraints and guardrails
  • Add workflow_chains for multi-step processes
  • Include failure_modes to guide the scenario generator

You do not need a high-confidence blueprint to get started. Even a minimal blueprint produces useful tests. You can iterate and add detail over time.

Was this page helpful?