Worked, narrated examples of ABS sessions.
Real-world examples of ABS sessions for common agent patterns.
A customer returns a damaged item. The agent verifies eligibility across two API calls, processes the refund, and confirms — with LLM judge evaluations, chain sequence verification, and variable consistency checks all in one file.
session: Refund request — approved
description: |
Customer returns a damaged item. Agent verifies eligibility,
processes the refund, and confirms — with evaluations at every step.
behaviors:
- actor: user
action: says
content: "I want to return order #8291, it arrived damaged"
- actor: assistant
action: asks
content: "I'm sorry about that. Can you confirm your name and order date?"
evaluations:
- type: llm_judge
criteria: |
1. Shows empathy for the damaged item
2. References the order number #8291
3. Asks for verification info before taking action
- actor: user
action: says
content: "Franco Vinciarelli, ordered last Tuesday"
capture:
customerName: "Franco Vinciarelli"
- actor: assistant
action: calls
target: Orders API
with:
orderId: "8291"
- actor: tool
action: responds
target: Orders API
content:
orderId: "8291"
status: "delivered"
eligibleForRefund: true
- actor: assistant
action: calls
target: Refunds API
with:
orderId: "8291"
reason: "damaged"
- actor: tool
action: responds
target: Refunds API
content:
refundId: "R-5512"
amount: 47.50
status: "processed"
- actor: assistant
action: informs
content: "Refund of €47.50 processed, Franco. You'll receive it in 3-5 days. Your refund ID is R-5512."
capture:
refundId: "R-5512"
evaluations:
- type: contains
value: "R-5512"
- type: llm_judge
criteria: |
1. States the refund amount (€47.50) and timeline (3-5 days)
2. Provides the refund reference R-5512
3. Uses the customer's name (Franco)
4. Reassuring tone — no upsells, no deflections
evaluations:
- type: sequence
order:
- { actor: assistant, action: asks }
- { actor: assistant, action: calls, target: "Orders API" }
- { actor: assistant, action: calls, target: "Refunds API" }
- { actor: assistant, action: informs }
- type: variable_consistency
variable: refundId
- type: never
match: { actor: assistant, action: hands_off }
| Feature | Where |
|---|---|
| Step-level LLM judge | Two multi-criteria rubrics on asks and informs |
| Step-level exact check | contains: "R-5512" on the final response |
| Chain sequence | 4 assistant actions must happen in order |
| Variable consistency | refundId captured once, checked everywhere |
| Tool round-trips | Two calls → responds pairs |
| Invariant guard | never hands_off — resolve, don't escalate |
A user checks order status. The assistant calls an MCP tool and reports back.
session: Order status
behaviors:
- actor: user
action: says
content: "Where is my order #12345?"
- actor: assistant
action: calls
target: Order MCP
with:
order_id: "12345"
- actor: assistant
action: informs
content: "Your order is on the way — estimated delivery Friday."
A conversation that spans several turns, with capture:
session: Book appointment
behaviors:
- actor: user
action: says
content: "I need to see a doctor"
- actor: assistant
action: asks
content: "What type of appointment do you need?"
- actor: user
action: says
content: "General checkup"
- actor: assistant
action: shows
target: Appointment Options
content:
- date: "2025-03-15"
time: "10:00 AM"
- date: "2025-03-15"
time: "2:00 PM"
- actor: user
action: selects
target: Appointment Options
content: "2025-03-15 10:00 AM"
capture:
selected_date: "2025-03-15"
- actor: assistant
action: calls
target: Calendar API
with:
date: "{{selected_date}}"
time: "10:00 AM"
- actor: assistant
action: confirms
content: "Your appointment is booked for March 15 at 10:00 AM."
session: Escalation to human
behaviors:
- actor: user
action: says
content: "I want to speak to a real person"
- actor: assistant
action: hands_off
target: Human Agent
content: "User requesting human escalation. Context: billing dispute."
session: Greeting with verification
behaviors:
- actor: user
action: says
content: "Hello"
- actor: assistant
action: says
content: "Hi! How can I help you today?"
evaluations:
- type: contains
value: "Hi"
More examples are available in the repository.