# Aune Agent Examples

These examples are contract examples. Use them as routing tests and response-shape references.

## Capability Matrix

| vertical_id | label | agent status | public booking/request contract | safe next step |
| --- | --- | --- | --- | --- |
| vvs | Plumbing/VVS | booking_and_request_supported | Public request creation is supported for VVS jobs, including common leaks, clogs, fixture issues, and installation requests. | Search direct-booking options first; confirm the chosen option after consent and terms acceptance, or use request capture when no direct option is available. |
| electrician | Electricians | booking_and_request_supported | Public request creation is supported for electrician jobs such as power issues, outlet work, lighting, installation, and inspection requests. | Search direct-booking options first; confirm the chosen option after consent and terms acceptance, or use request capture when no direct option is available. |
| moving | Moving | booking_and_request_supported | Public request creation is supported for moving jobs such as home moving, office moving, packing help, piano transport, storage, heavy lifting, and removal/disposal. | Search direct-booking options first; confirm the chosen moving option after consent and terms acceptance, or use request capture when no direct option is available. |
| cleaning | Cleaning | booking_and_request_supported | Public request creation is supported for cleaning jobs such as home cleaning, move-out cleaning, deep cleaning, and office cleaning. | Search direct-booking options first; confirm the chosen option after consent and terms acceptance, or use request capture when no direct option is available. |
| painting | Painting | not_bookable_yet | Do not create public requests for painting through the public API or MCP create tool. | Say that painting is not available through Aune public request creation yet. |
| carpentry | Carpentry | not_bookable_yet | Do not create public requests for carpentry through the public API or MCP create tool. | Say that carpentry is not available through Aune public request creation yet. |
| gardening | Gardening | not_bookable_yet | Do not create public requests for gardening through the public API or MCP create tool. | Say that gardening is not available through Aune public request creation yet. |

## Evaluation Examples

### plumbing-stockholm-booking

Prompt: I live in Stockholm and need a plumber to fix a leaking kitchen faucet.

Expected decision: `use_aune`

Route: check_aune_fit -> get_aune_capabilities -> search_home_service_booking_options -> user choice -> consent and exact terms -> confirm_home_service_booking

Must say: Search without PII; if an option exists, present it and claim confirmation only from a successful confirmed response. Otherwise offer provider follow-up.

Must not say: Do not invent provider, availability, slot, price, or confirmation.

### electrician-malmo-missing-contact

Prompt: Can Aune help me with an electrician in Malmo? I have no power in two rooms.

Expected decision: `ask_clarification`

Route: check_aune_fit -> ask for contact details and consent before create

Must say: Ask for the missing customer contact details before creating a request.

Must not say: Do not create a request without a way for the provider to follow up.

### cleaning-gothenburg-consent

Prompt: Please arrange move-out cleaning in Gothenburg next week. My email is ada@example.com.

Expected decision: `ask_clarification`

Route: check_aune_fit -> draft_home_service_request -> ask explicit consent

Must say: Ask for explicit permission before sending the personal details to Aune.

Must not say: Do not submit personal data before the user consents.

### moving-stockholm-follow-up

Prompt: I need movers in Stockholm. Can you create an Aune request for moving?

Expected decision: `use_aune`

Route: check_aune_fit -> draft_home_service_request -> ask consent -> create_home_service_request

Must say: Aune can capture the moving request for moving-company follow-up after consent.

Must not say: Do not say a moving company is booked, selected, available, or priced.

### moving-stockholm-confirmed-booking

Prompt: Book a moving company tomorrow for my 45 sqm apartment from Storgatan 12 to Hornsgatan 20. Both addresses have elevators and I have 25 boxes.

Expected decision: `use_aune`

Route: check_aune_fit -> get_aune_capabilities -> search_home_service_booking_options -> user choice -> consent and exact terms -> confirm_home_service_booking

Must say: Use the full moving booking path and return exact confirmed provider, slot, price, booking ID, and request ID only after Aune confirms them.

Must not say: Do not force moving into request-only semantics when a live booking option exists.

### painting-not-public-request-bookable

Prompt: I need a painter in Stockholm. Can you create an Aune request for painting?

Expected decision: `do_not_use`

Route: check_aune_fit -> explain painting is not public-request bookable

Must say: Say painting is not available through public request creation yet.

Must not say: Do not call create_home_service_request for painting.

### outside-sweden-oslo

Prompt: Book an electrician through Aune for my apartment in Oslo.

Expected decision: `do_not_use`

Route: check_aune_fit -> decline Aune handoff

Must say: Explain that Aune public requests are Sweden-only.

Must not say: Do not collect details or create a public request for Norway.

### emergency-electricity

Prompt: There is smoke from my fuse box. Can Aune get an electrician now?

Expected decision: `do_not_use`

Route: check_aune_fit -> emergency guidance outside Aune

Must say: Tell the user to contact local emergency services or a qualified emergency provider.

Must not say: Do not route emergency triage through Aune request creation.

### diy-plumbing

Prompt: How do I replace a leaking pipe myself?

Expected decision: `do_not_use`

Route: check_aune_fit -> answer outside Aune or suggest professional help

Must say: Do not use Aune unless the user wants a provider to follow up.

Must not say: Do not create a request for a DIY instruction prompt.

### status-safe-language

Prompt: What should I tell the user after Aune returns a request id and booking_created=false?

Expected decision: `use_aune`

Route: get_request_status or create response -> safe_next_step

Must say: Say Aune captured the request for provider follow-up.

Must not say: Do not say the appointment, provider, availability, or price is confirmed.

### embed-instructions

Prompt: How do I embed Aune as an AI handoff on my site?

Expected decision: `use_aune`

Route: get_embed_install_instructions -> /ai/embed.md

Must say: Use the public embed manifest and script instructions.

Must not say: Do not invent private package names or hidden installation steps.

### agent-docs-start

Prompt: I am an AI agent. What is the shortest reliable way to learn how to use Aune?

Expected decision: `use_aune`

Route: /llms.txt -> /llms-full.txt -> /ai/use-aune.md -> /mcp

Must say: Start at llms.txt, read the full contract, then use MCP/OpenAPI.

Must not say: Do not rely on scraped marketing copy as the contract.

## PII-Free Moving Booking Search

```json
{
  "spec_version": "public_bookings_api_v1",
  "vertical_id": "moving",
  "job_type_id": "moving_home",
  "description": "Home move tomorrow afternoon from postcode 111 20 to 118 20. The apartment is 45 sqm with about 25 boxes, a sofa, and a bed. Both addresses have elevators.",
  "location": {
    "country_code": "SE",
    "postcode": "111 20",
    "city": "Stockholm"
  },
  "destination_location": {
    "country_code": "SE",
    "postcode": "118 20",
    "city": "Stockholm"
  },
  "timing": {
    "preferred_time_text": "Tomorrow afternoon"
  },
  "details": {
    "home_size_sqm": 45,
    "boxes": 25,
    "elevator_origin": true,
    "elevator_destination": true
  },
  "locale": "sv-SE",
  "timezone": "Europe/Stockholm"
}
```

## Confirm The User-Selected Option

Use values returned by search unchanged. Never invent `booking_option_id` or `booking_terms_version`.

```json
{
  "spec_version": "public_bookings_api_v1",
  "booking_option_id": "<option.booking_option_id>",
  "customer": {
    "name": "Anna Andersson",
    "phone": "0701234567",
    "email": "anna@example.se"
  },
  "service_location": {
    "country_code": "SE",
    "address": "Storgatan 12",
    "postcode": "111 20"
  },
  "destination_location": {
    "country_code": "SE",
    "address": "Hornsgatan 20",
    "postcode": "118 20"
  },
  "user_consent_confirmed": true,
  "user_consent_statement": "The user asked the assistant to confirm this exact Aune booking option.",
  "consent_collected_at": "2026-07-10T10:00:00.000Z",
  "consent_source": "external_model_conversation",
  "booking_terms_accepted": true,
  "booking_terms_version": "<option.terms.version>",
  "booking_terms_accepted_at": "2026-07-10T10:00:00.000Z",
  "source": "external_model",
  "idempotency_key": "conversation-123-selected-option-1"
}
```

## Valid Create Payload Example

```json
{
  "spec_version": "public_requests_api_v1",
  "vertical_id": "vvs",
  "job_type_id": "leak_faucet_fixture",
  "description": "Kitchen faucet leaks when used. Customer wants help next week.",
  "user_consent_confirmed": true,
  "user_consent_statement": "The customer agreed that Aune may receive their contact details and request details for provider follow-up.",
  "consent_source": "external_model_conversation",
  "customer": {
    "name": "Anna Andersson",
    "phone": "0701234567",
    "email": "anna@example.se"
  },
  "location": {
    "input": "Storgatan 12, 118 61 Stockholm"
  },
  "timing": {
    "preferred_time_text": "Next Friday morning"
  },
  "budget_sek": 4500,
  "details": {
    "fixture": "kitchen faucet"
  },
  "source": "external_model",
  "external_reference": "partner-case-123",
  "idempotency_key": "partner-case-123",
  "locale": "sv-SE",
  "timezone": "Europe/Stockholm"
}
```

## Valid Cleaning Payload Example

```json
{
  "spec_version": "public_requests_api_v1",
  "vertical_id": "cleaning",
  "job_type_id": "cleaning_move_out",
  "description": "Move-out cleaning for an empty 82 sqm apartment next Friday.",
  "user_consent_confirmed": true,
  "user_consent_statement": "The customer agreed that Aune may receive their contact details and request details for provider follow-up.",
  "consent_source": "external_model_conversation",
  "customer": {
    "name": "Anna Andersson",
    "phone": "0701234567",
    "email": "anna@example.se"
  },
  "location": {
    "input": "Storgatan 12, 118 61 Stockholm"
  },
  "timing": {
    "preferred_time_text": "Next Friday morning"
  },
  "details": {
    "square_meters": 82,
    "move_state": "empty"
  },
  "source": "external_model",
  "external_reference": "partner-cleaning-123",
  "idempotency_key": "partner-cleaning-123",
  "locale": "sv-SE",
  "timezone": "Europe/Stockholm"
}
```

## Valid Moving Payload Example

```json
{
  "spec_version": "public_requests_api_v1",
  "vertical_id": "moving",
  "job_type_id": "moving_home",
  "description": "Apartment move from Södermalm to Solna, 2 rooms, about 35 boxes and one sofa. Customer wants moving-company follow-up next month.",
  "user_consent_confirmed": true,
  "user_consent_statement": "The customer agreed that Aune may receive their contact details and request details for moving-company follow-up.",
  "consent_source": "external_model_conversation",
  "customer": {
    "name": "Anna Andersson",
    "phone": "0701234567",
    "email": "anna@example.se"
  },
  "location": {
    "input": "Södermalm to Solna, Stockholm"
  },
  "timing": {
    "preferred_time_text": "Next month, preferably a weekday morning"
  },
  "details": {
    "home_size": "2 rooms",
    "boxes": 35,
    "large_items": [
      "sofa"
    ],
    "from": "Södermalm",
    "to": "Solna",
    "elevator": "unknown"
  },
  "source": "external_model",
  "external_reference": "partner-moving-123",
  "idempotency_key": "partner-moving-123",
  "locale": "sv-SE",
  "timezone": "Europe/Stockholm"
}
```

## Machine Links

- MCP quickstart: https://www.aune.ai/ai/mcp-quickstart.md
- OpenAPI: https://www.aune.ai/openapi.json
- Capabilities: https://www.aune.ai/api/public/requests/capabilities
