AI Connect/Como criar/Como criar
Como criar
Cinco projetos ponta a ponta que nenhuma outra plataforma oferece: um chatbot de consumo, copilots por departamento, uma frota de agentes, automações sem intervenção humana e um SaaS multi-tenant. Cada um parte de uma única Application Key e transforma um tipo diferente de ator em um usuário isolado, com conectores, credenciais e capacidades próprios.
O Início Rápido mostrou uma chamada. Leia esta linha devagar, porque ela é o futuro inteiro em uma frase: com uma única Application Key, cada usuário do seu produto ganha milhares de conexões de IA desde o primeiro dia, cada usuário isolado com conectores, credenciais e capacidades próprios, e nenhum deles jamais exposto à Vinkius. Nenhuma plataforma do mercado oferece essa frase. Os cinco projetos completos desta seção mostram como ela fica em produção: um chatbot de consumo, copilots por departamento, uma frota de agentes, automações sem intervenção humana e um SaaS multi-tenant, cada um escrito para que um desenvolvedor comece no topo e termine com uma IA funcional agindo no mundo real.
O primitivo por baixo dos cinco é o que o resto da indústria não oferece: qualquer entidade que precise agir se torna um usuário. Análises de custo da indústria estimam em seis dígitos, ao longo de três anos, uma versão construída em casa dessa arquitetura, e mesmo assim ela nunca termina de ser entregue. No AI Connect SDK ela é a linha de largada, não a linha de chegada.
A ideia que destrava tudo
Em todos os tutoriais aparece a mesma linha:
const user = vinkius.user(externalId);Esse externalId é um valor que você define. Não é uma conta Vinkius, não é um e-mail, não é um ser humano. É uma string opaca e segura para URL que seu backend já controla, e o SDK a trata como a fronteira que isola conectores, credenciais e capacidades. Como é opaca, pode nomear qualquer coisa que precise agir:
Seu externalId nomeia… | É… | Por que importa |
|---|---|---|
alice_123 | um usuário humano | cada cliente traz o próprio GitHub, Slack, Gmail |
dept-finance | um departamento | o copilot de finanças age nas contas de finanças |
triage-agent | um agente de IA autônomo | cada agente ganha conectores próprios e teto de gasto |
svc-nightly-sync | uma conta de serviço | um cron conecta o banco sem nenhuma intervenção humana |
cus_acme_u_9f2 | um usuário dentro do seu cliente | todo o seu SaaS entrega conectores, isolados por tenant |
Um "usuário" no AI Connect SDK é qualquer entidade que deva possuir um conjunto isolado de conexões e capacidades. Não precisa ser uma pessoa. É esse único reposicionamento que faz o SDK escalar de um chatbot de fim de semana a uma frota de agentes e a uma plataforma corporativa white-label sem alterar uma única chamada.
Perceba o quão radical isso é. Toda plataforma de conectividade que a indústria entregou até hoje conecta uma aplicação a um serviço. Nenhuma delas entrega ao seu produto o próprio modelo de usuários por entidade, com credenciais que o seu código jamais consegue ler de volta. A linha acima entrega, e essa é a diferença entre alugar conectividade para o seu app e possuir uma plataforma de conectividade para os seus usuários.
Escolha o seu projeto
| Projeto | Quem é o "usuário" | O que você entrega |
|---|---|---|
| Chatbot de consumo multiusuário | um humano por conta | um assistente de produto em que a IA de cada usuário vê as próprias ferramentas |
| Copilots por departamento em uma transportadora | um departamento | assistentes internos, um por time, em uma única chave de app |
| Uma frota de agentes de IA, cada um como usuário | um agente autônomo | um enxame em que cada agente tem conectores delimitados e medição própria |
| Automações sem intervenção e contas de serviço | um processo, não uma pessoa | jobs agendados, webhooks e CI que conectam sistemas sem navegador |
| Um SaaS de IA multi-tenant | um usuário dentro do seu cliente | IA white-label para cada cliente da sua plataforma |
O fluxo que todo projeto compartilha
Seja qual for a entidade que você modelar, o loop de execução é idêntico. Aprenda uma vez e construa todos os cinco de memória:
- Crie um cliente no servidor a partir de uma única Application Key.
- Identifique o ator: entregue ao
vinkius.user(externalId)o id que é dono da ação. - Conecte um conector:
user.connector('github').connect(), armazene credenciais uma vez, nunca as leia de volta. - Descubra capacidades:
user.capabilities()retorna apenas o que este ator tem pronto. - Entregue ao modelo: um adapter converte o conjunto para OpenAI, Anthropic, Gemini, Vercel AI SDK, LangChain ou JSON Schema puro.
- Execute e devolva: rode a chamada de tool do modelo; o
isErrordeixa o agente se recuperar em vez de quebrar.
Comece pelo projeto mais próximo do que você já tem. Se mantém um bot de suporte, comece com o chatbot. Se é um time de plataforma interna, comece com os copilots por departamento. Se está lançando o próximo produto nativo de IA, comece com o SaaS multi-tenant. Cada página termina com um checklist de produção para você publicar, não só prototipar.
A vantagem defensável, por dentro
Todos os projetos abaixo se apoiam na mesma arquitetura, e compreendê-la é o que torna crível a promessa de que "a infraestrutura de integração não é sua", em vez de simples marketing.
- Dois planos, um segredo. Um plano de controle (
users,connectors,credentials,catalog) sobre REST, e um plano de execução (listar e executar capacidades) que conversa via JSON-RPC diretamente com o runtime de cada conexão. Tudo é acessado por uma única chavevk_app_sk_*; o runtime usa o protocolo MCP internamente, mas isso jamais aparece no seu vocabulário. - Medição e revogação por conexão. Cada conexão possui o próprio token de dados
vk_live_*. Custo e revogação imediata operam por conexão, e é isso que permite isolar um departamento, um agente ou uma conta de serviço de forma financeira e operacional, não apenas lógica. - Credenciais somente de escrita. Seu servidor armazena os segredos de conector de um usuário e pode ver quais campos estão configurados, mas nada, nem seu código, nem o modelo, nem o painel, consegue ler os valores de volta.
- Redação por padrão. Os
hooksde observabilidade recebem dados já higienizados:Authorization, campos que aparentam credenciais e segmentos de URLvk_live_*são mascarados antes do seu callback executar. - Zero dependências de runtime.
fetchnativo, ESM/CJS e tipagem, roda em Node 18+, Bun, Deno e edge, então o mesmo alvo de build cobre um contêiner de cron e um Worker. - Repetição e idempotência bem definidas. Falhas transitórias são repetidas automaticamente com backoff de jitter completo, e declarar um
idempotencyKeyé o que torna seguro repetir até uma escrita não-idempotente.
Nada acima é um recurso que você configura por projeto, tudo é herdado por cada external_id que você cria. Essa herança é a vantagem defensável: as garantias de isolamento, medição e segurança são aplicadas automaticamente a humanos, departamentos, agentes, processos e tenants.
Antes de começar
Todos os projetos assumem os mesmos três pré-requisitos, detalhados em Instalação e Autenticação e escopo:
- Node.js 18+ ou qualquer runtime de servidor com
fetch(Bun, Deno, edge, Cloudflare Workers) @vinkius/connectinstalado- Um App ID (
vk_app_…) e uma Application Key (vk_app_sk_…) do Vinkius em variáveis de ambiente do servidor
Todo trecho desta seção roda no servidor. A Application Key e as credenciais dos conectores dos usuários jamais devem aparecer em um bundle de navegador, em um binário de celular ou em um prompt de modelo. Publique uma rota de backend enxuta na frente do SDK; o navegador fala com a sua rota, a sua rota fala com o Vinkius.
Pronto? Nenhuma outra plataforma do mercado consegue hospedar esta seção, porque nenhuma oferece a sua premissa: a de que um usuário é qualquer entidade que precisa agir. Escolha um projeto e termine, com uma IA que age para todo usuário que você definir.
What you just got
Not a pitch: the properties this build inherits automatically.
Connections and capabilities resolve only inside one external_id. No cross-actor leakage is possible, and you wrote none of that enforcement.
Your server stores secrets and can read back which fields are configured, never the values. Not your code, the model, or a dashboard can exfiltrate them.
Every connection owns a vk_live_* token, so cost and revocation are per connection. One call to disconnect() is a complete, auditable stop.
One CapabilitySet converts to OpenAI, Anthropic, Gemini, Vercel AI SDK, LangChain, LlamaIndex, Workers AI or neutral JSON Schema. Only the last line changes.
idempotencyKey, timeoutMs and AbortSignal per call; automatic full-jitter retries on transient failures; typed VinkiusError branches. No bespoke harness.
Give it to your AI agent
An Agent Skill (SKILL.md) for this build. Preview the first lines below, then copy or download it into your repo under .claude/skills/: Claude Code, Cursor or any Agent-Skills-compatible agent follows it to implement this pattern correctly.
