- Desenhar um endpoint para cada ação
- Escrever e manter schemas de ferramenta
- Construir e hospedar o loop do agente
- Mapear a saída do modelo na sua API
- Adicionar validação e limites
- Tratar retries e falhas parciais
- Manter tudo em sincronia com o produto
Demo ao vivoOuterEden · Agentic Native Platform
Fale.Sua plataforma faz.
Declare suas ferramentas uma vez. A OuterEden roda o agente com quem seus usuários falam, por voz ou chat, e faz as chamadas por eles. Toda chamada é conferida antes de rodar: ela precisa existir na sua declaração, todo ID que ela cita precisa ter vindo do seu sistema, e nada que mexe com dinheiro roda sem um sim.
Simulação interativa. Três produtos de clientes da OuterEden — uma loja, uma clínica e um banco — declaram a própria API, e a OuterEden empacota cada uma num agente com quem o cliente final fala. O cliente pede por voz; a OuterEden faz as chamadas de função, pede um sim antes de qualquer coisa que mude a conta do cliente e bloqueia chamadas alucinadas antes que cheguem ao produto. A conversa é texto legível, e você pode digitar o seu próprio pedido.
- 01Declarar
- 02Empacotar
- 03Falar
export const integration = defineIntegration({
brief: "Catálogo, sacola e checkout da Aurora.",
refs: R, tools, goal,
});$ npm run dev
✓ declaração · 12 ferramentas
✓ empacotando para chat + voz…
0 ações tipadas
da sua declaração · o que gasta espera um sim
- Rcatalog.search(query, size?, max?)Product[]
- Rcatalog.get(sku)Product
- Wcart.add(sku, qty: int)Cart
- Wcart.remove(sku)Cart
- Rcart.get()Cart
- Wcheckout.start(cartId)Checkout
- Rshipping.quote(cep)Option[]
- Wcheckout.pay(checkoutId, method)Order
- Rorders.track(orderId)Tracking
- Wwishlist.add(sku)Wishlist
- Rreviews.list(sku)Review[]
- Rstock.check(sku, size)Stock
- Rdoctors.find(name?, specialty?)Doctor[]
- Ravailability.list(doctorId, day)Slot[]
- Wappointments.book(doctorId, slot)Appointment
- Wappointments.reschedule(id, slot)Appointment
- Dappointments.cancel(id, reason)Appointment
- Wreminders.create(id, channel, offset)Reminder
- Rinsurance.check(plan, procedure)Coverage
- Wcopay.charge(appointmentId, method)Payment
- Wdocuments.send(appointmentId, channel)Delivery
- Rresults.list(patientId)Result[]
- Runits.list()Unit[]
- Rbalance.get()Balance
- Rbills.list(status?)Bill[]
- Rbills.get(billId)Bill
- Wpayments.pay(billId)Payment
- Wpayments.schedule(billId, date)Payment
- Wtransfers.create(to, amount)Transfer
- Rstatements.list(month)Entry[]
- Dcards.lock(cardId)Card
- Wlimits.set(cardId, amount)Card
- Walerts.create(billId, offset)Alert
02Como funciona
Declare uma vez. Opere por voz.
Você não constrói um agente. Você declara o que o seu produto já faz — cada chamada, seus argumentos e o que custa se der errado — e a OuterEden transforma isso num agente com quem dá para falar.
- 01
O que seus usuários clicam.
Botões, formulários, menus. Cada um deles é uma chamada de API por baixo.
- 02
O que você declara.
Um arquivo. Cada chamada, seus argumentos e que tipo de efeito ela tem: uma consulta, uma reserva que dá para desfazer, ou algo que mexe com dinheiro e não volta atrás.
- 03
O que o agente recebe.
Um agente que a OuterEden hospeda para os seus usuários; chat e voz são as superfícies em que ele vai rodar. Sua declaração diz o que cada chamada precisa e o que ela produz, então o agente não pula etapa nem inventa ID — e a OuterEden confere cada chamada antes do seu produto ver.
03Verificação
Alucinação não chega na sua plataforma.
Modelo chuta. A OuterEden não deixa o chute rodar. Toda chamada que o agente propõe é checada contra a API que você declarou antes de executar, e tudo que mexe com dinheiro espera o sim do seu usuário. O que falha para com o motivo, e o agente replaneja.
- 01
Existe
A ação está no seu grafo. Ação inventada é recusada.
payments.payAll()✕ não está no grafo - 02
Tipos
Os argumentos são conferidos contra os tipos que você declarou antes do seu código rodar. Nada é convertido no chute.
cart.add(sku, "dois")✕ qty: esperava int - 03
Referências
Todo ID resolve para um registro real, ou a chamada para.
cart.add("SKU-9999", 1)✕ produto não existe - 04
Estado
O seu próprio sistema confere as pré-condições no dado vivo, no instante de rodar. A recusa volta tipada, e o agente replaneja.
book("dr_helena", "08:00")✕ horário ocupado - 05
Consentimento
Tudo que mexe com dinheiro espera um sim, e o valor mostrado na confirmação vem do seu sistema, nunca do modelo.
payments.pay(…)◷ espera o sim
04Escala
A complexidade escala. A alucinação não.
Um passo ou dez mil, todo passo passa pela mesma verificação. Num agente sem verificação, ação alucinada se acumula a cada passo. Com a OuterEden, o número que chega na sua plataforma continua zero.
Simulação ilustrativa. Assume que 2% dos passos propostos pelo modelo são alucinados: ações inventadas, tipos errados, IDs que não existem.
05Integrar
Descreva. Declare. Suba.
Uma dependência e um endpoint. Você declara suas ferramentas e sobe uma rota; a OuterEden roda o agente e chama você. Sem loop de agente para hospedar. Sem chave de modelo para guardar.
export const capture = defineTool({
name: "checkout.capture",
effect: "commit",
idem: true,
args: { authId: R.authId },
emits: [R.orderId],
binds: { from: R.authId, into: R.orderId, facts: ["/total"] },
async handler({ authId }, ctx) {
const order = await shop.capture(authId.auth_id, ctx.idemKey);
return ctx.ok({}, [ctx.emit(R.orderId, order)]);
},
});const endpoint = createEndpoint({
integration,
keys: { url: OE_KEYS_URL },
audience: "https://shop.example/oe",
connection: OE_CONNECTION,
session: (token) => sessions.userFor(token),
replay: redisReplayStore(redis),
});
app.post("/oe", endpoint.node);- ✓ declaração validada · 12 ferramentas
- ✓ efeitos tipados · chamadas que gastam marcadas
- ✓ endpoint no ar · só chamadas assinadas
- ✓ agente pronto
- no ar em loja.aurora.example · seus clientes já podem falar
O SDK está em preview privado: a gente entrega na call, e o pacote de declaração fica público no lançamento.
- 01
Descreva suas ferramentas
Em português mesmo: o que o seu produto faz e para quem. É o briefing do agente.
- 02
Declare sua API
Declare cada chamada e escreva o handler por trás dela, no seu código e na sua máquina. Diga quais mexem com dinheiro.
- 03
Suba o endpoint
Cada chamada que o agente faz chega como um pedido assinado que o seu próprio código responde, para o usuário a quem o seu login emitiu um token.
06Versus API-first
API de agente é projeto. OuterEden é declaração.
Plataformas API-first te entregam um endpoint. Tudo entre esse endpoint e o seu produto continua sendo seu para construir — e para manter funcionando.
- Declarar sua API, subir o endpoint
Agent-native
- O agente, hospedado por nós
- Ações tipadas da API que você declarou
- Toda chamada conferida antes de rodar
- IDs vêm do seu sistema, nunca do modelo
- Dinheiro só se move depois de um sim
Pronto
Deixe seus usuários falarem com ela.
Traga sua API. A gente declara com você e roda o seu fluxo mais difícil por voz, ao vivo.
O SDK está em preview privado: a gente entrega na call, e o pacote de declaração fica público no lançamento.