Começar

Quickstart

Crie um agent, inicie uma session e leia a resposta em tempo real com o SDK TypeScript.

Este guia mostra o caminho recomendado para integrar a plataforma em um backend. A API key usada pelo SDK identifica o projeto; o SDK resolve esse contexto automaticamente antes de chamar recursos project-scoped.

#Instalar o SDK

bash
pnpm add @noorden/sdk

Configure a chave em uma variável de ambiente do servidor:

bash
export NOORDEN_API_KEY=rxk_live_...
# opcional: defina NOORDEN_API_URL quando usar um ambiente dedicado

#Criar um agent

Um agent é uma configuração versionada. O retorno inclui id e version; use os dois para iniciar sessions de forma determinística.

create-agent.tsts
import Noorden from '@noorden/sdk';

const client = new Noorden.Platform();

const agent = await client.agents.create({
  name: 'Atendente de seguros',
  model: 'anthropic/claude-haiku-4-5',
  system: [
    'Você atende corretores de seguros no Brasil.',
    'Responda com precisão, peça dados faltantes e nunca invente coberturas.',
  ].join(' '),
  tools: ['web_search'],
});

console.log(agent.id, agent.version);

#Rodar uma session

Crie uma session e envie uma mensagem. session.send() grava um user.message no event log e retorna um Run ancorado nesse turno.

run-session.tsts
import Noorden, { isAgentMessage } from '@noorden/sdk';

const client = new Noorden.Platform();

const session = await client.sessions.create({
  agent: { id: 'agent_...', version: 1 },
  title: 'Dúvida sobre seguro residencial',
  metadata: { customerId: 'cus_123', channel: 'whatsapp' },
});

const run = await session.send('Quais informações preciso coletar para cotar seguro residencial?');

for await (const event of run.stream()) {
  if (isAgentMessage(event)) {
    process.stdout.write(event.text);
  }
}

#Ler eventos

O histórico e o stream usam a mesma forma de evento. Use seq para retomar leitura sem duplicar processamento.

ts
const page = await session.events({ afterSeq: 0, limit: 100 });

for (const event of page.data) {
  console.log(event.seq, event.type);
}

#Próximos passos