{
  "format": "agentaction-recipe-starter/v1",
  "agentName": "Triage a support request",
  "recipe": {
    "schemaVersion": 1,
    "version": "1.0.0",
    "publisher": {
      "name": "AgentAction",
      "url": "https://github.com/dinpd/AgentAction",
      "kind": "maintainer"
    },
    "evidence": {
      "level": "fixture",
      "description": "Deterministic checks against supplied synthetic observations. No live model or connected service was tested by these checks."
    },
    "id": "support-triage",
    "title": "Triage a support request",
    "category": "Customer support",
    "summary": "Read a ticket and its policy, recommend the next step, and cite the rules behind the recommendation.",
    "mode": "Read only",
    "intent": "Produce a policy-grounded support recommendation with clear evidence and an explicit escalation when facts are insufficient.",
    "servers": [
      {
        "name": "Support",
        "purpose": "Read a bounded ticket and customer-provided context.",
        "tools": [
          "get_ticket"
        ]
      },
      {
        "name": "Knowledge",
        "purpose": "Retrieve the applicable support policy.",
        "tools": [
          "search_policy",
          "get_policy"
        ]
      }
    ],
    "boundaries": [
      "Read only: do not change tickets, issue refunds or send messages.",
      "Ask for missing facts; escalate ambiguous or conflicting policies.",
      "Keep customer information inside the approved tools and the current response.",
      "A correct escalation can satisfy the task; do not invent certainty."
    ],
    "instructions": [
      "Read the specified ticket and retrieve the applicable policy using the connected Support and Knowledge tools.",
      "State the recommendation, cite the relevant policy rules, and identify the facts supporting it.",
      "If the policy or ticket is ambiguous, recommend manual review and explain which information is missing.",
      "Do not call mutating tools. Return the recommendation and evidence to the user.",
      "For observability, report whether the recommendation is present, policy citations are present, and no mutating tool calls occurred. Distinguish your self-assessment from independently observed evidence."
    ],
    "outcomes": [
      {
        "id": "recommendation",
        "label": "A recommendation or explicit escalation is present",
        "field": "recommendation_present",
        "equals": true
      },
      {
        "id": "citations",
        "label": "Applicable policy rules are cited",
        "field": "policy_cited",
        "equals": true
      },
      {
        "id": "read-only",
        "label": "No mutating tool calls occurred",
        "field": "mutating_calls",
        "equals": 0
      }
    ],
    "fixtures": [
      {
        "id": "recommend",
        "title": "Recommendation with policy citations",
        "observation": {
          "recommendation_present": true,
          "policy_cited": true,
          "mutating_calls": 0
        },
        "expected": "met"
      },
      {
        "id": "uncited",
        "title": "Recommendation without a policy citation",
        "observation": {
          "recommendation_present": true,
          "policy_cited": false,
          "mutating_calls": 0
        },
        "expected": "not_met"
      },
      {
        "id": "mutation",
        "title": "Unexpected ticket mutation",
        "observation": {
          "recommendation_present": true,
          "policy_cited": true,
          "mutating_calls": 1
        },
        "expected": "not_met"
      },
      {
        "id": "missing",
        "title": "Tool-call evidence unavailable",
        "observation": {
          "recommendation_present": true,
          "policy_cited": true
        },
        "expected": "indeterminate"
      }
    ]
  },
  "connections": [
    {
      "name": "Support",
      "endpoint": "",
      "requiredTools": [
        "get_ticket"
      ]
    },
    {
      "name": "Knowledge",
      "endpoint": "",
      "requiredTools": [
        "search_policy",
        "get_policy"
      ]
    }
  ],
  "setup": [
    "Configure each MCP server in your agent runtime; keep credentials out of this file.",
    "Load the recipe instructions and review boundaries with your team.",
    "Run sandbox cases with your agent and collect actual tool outcomes before enabling real actions.",
    "Connect your runtime to AgentAction, then configure Evals and inspect Jobs. Fixture checks do not install runtime controls."
  ]
}