burneh

Systems that run unattended, until they shouldn't.

Chat, execution, and event-driven work across every channel, with a human handed the wheel when it matters.

support agent · one brain
live
Hey there, I'm Acme's support assistant. I can track an order, change a booking, answer a quick question, or hand you to a teammate. What can I do for you today?
Where's my order #A-3391?
read_orders · #A-3391
Good news — it shipped Tuesday and it's out for delivery today, so you should have it by this evening. I've sent the live tracking link to your email, and I'll flag it right here if the ETA moves. Anything else I can help with?
classification
Order status
confidence89%
tools called
read_orders()track_shipment()
answered · above the bar
budget$0.06/$0.50
tool steps
2
one brain, every channel · answers what it can, escalates what it shouldn't, runs the slow work on a queue

Drive it. It knows when to step back.

Send a message on any channel and watch it classify, use a tool, and answer, or hand a refund it can't verify to a person. Same brain, every channel, on a budget.

It answers what it can. It escalates what it shouldn't.

What you just drove is this decision. Every message runs two gates before it can answer: is the classifier sure enough, and is this safe to act on unattended. Fail either and it doesn't improvise, it hands the thread to a person exactly where the agent left off.

messageany channelclassifyintent · confidenceconfidence ≥ bar?gate 01safe to act?gate 02 · policyanswerfrom your toolsescalate → humanfull threadyesyeslowsensitive0102030405
01
Classify

Intent and a confidence score, computed on every message before anything is allowed to act.

02
Confidence gate

Below the bar and it doesn't guess. That alone routes the message to a person.

03
Policy gate

Money, an account change, or anything sensitive is escalated even when it's confident.

04
Answer

Clear and in-scope, it answers from your tools and data, with the tool call logged.

05
Escalate

Anything else goes to a human with the whole thread attached, nothing dropped.

One brain behind every channel.

Web, Telegram, WhatsApp, and Discord aren't four bots, they're four doors to the same agent, the same tools, the same memory. A customer doesn't get a worse answer for using a different app, and a person handing off sees the whole conversation, wherever it started.

Every message and tool call is recorded and replayable, so a bad run is debuggable, not a mystery.

webtelegramwhatsappdiscordone agenttools · memorytoolsmemoryhuman handoffwith context

An agent you can leave running.

The loop that answers a message is short and unremarkable. The reason you can hand it your customers is the scaffolding around it: a budget it can't exceed, an allowlist it can't reach past, an approval gate on anything with a side effect, and a trace of everything it did.

agent.py
1# the loop is short. the guards are why you can leave it running
2class SupportAgent(Agent):
3 tools = [read_orders, read_bookings, search_kb] # allowlist only
4 cost_cap = 0.50 # dollars per conversation
5 step_cap = 8
6
7 def handle(self, msg):
8 plan = self.classify(msg) # intent + confidence
9 if plan.confidence < BAR or plan.touches_money:
10 return self.escalate(msg) # hand to a human
11 if self.spent >= self.cost_cap:
12 return self.escalate("hit the budget")
13 return self.act(plan) # call a tool, answer
Cost & step caps

A hard ceiling on spend and tool calls per conversation, so it can't quietly rack up a bill.

Tool allowlist

It can only call the tools you granted, with the arguments you allow. No surprise capabilities.

Approval on side-effects

Anything that spends money or changes an account pauses for a human yes.

Full run traces

Every message, classification, and tool call recorded, so a bad run is debuggable.

The demo bots reply. A useful one runs unattended, until it shouldn't.

Anyone can wire a bot that answers canned messages. The value is the judgement: handling the ordinary case across every channel without you, and knowing the exact edge where a decision becomes a person's to make. We build the agent, and we build the line it won't cross, because a capable bot without that line is a liability, not a product.

Tell us what should run itself.

Send the workflow and the line it shouldn't cross. We come back with a scope, a plan, and where a demo proves it.