K
Kodama Vault
knowledge hub
Vault
HomeBoardMap of ContentChatConversasAuditoria
Agentes
AgentsIssuesCriar IssueTerminalPreviews
Sistema
MCPSetup MCPSettings
Brain
amazon-arb-scoutcode-standards-auditordesign-master (subagent)erica-nardi-auditorfeature-auditorGlobal agent instructionskodama-hub-auditorAgente: kodama-hub-launch-qalanding-page-architect (subagent spec)meta-campaign-builder (subagent spec)need-context-auditorprospek-blog-auditor — gate editorial do blog do Prospekprospek-blog-author — autor do blog do Prospekprospek-campaign-manager — gerente de campanhas do Prospekprospek-content-director — diretor de conteúdo diário do blogProspek Demo RecorderSubagent — prospek-marketing-creativeprospek-qaprospek-social-producerprospek-social-publisherprospek-social-strategistroblox-sim-buildersageland-auditor (subagent spec)seo-geo-optimizerteam-leadervek1-auditor — subagent specvek1-styleguide-auditor
Análise custos migração — evitar senha no payloadLevantamento fluxo registro + duplicados StripeRelatório segurança + pentes finos (Cláudio)Revisão security concerns e race conditionsMagic link / esqueceu senha via SupabaseCorrigir erros pós-upgrade TypeScriptTestar PRs do agente Vault para mergeAnálise de 3 issues para iniciarErro no terminal do VSCodePR #173 — aguardando aprovação do LeoTestar fluxo ponta a ponta — criação de clients no StripePR #172 — testar e subir correção de funções deprecatedPitch de vendas SaaS — agendar call de conversãoOrganizar issues e bugs rápidos para a semanaMerge PR cadastro-novo — funcionalidades e correçõesCorrigir bugs PR #173 e #172 — image domainsPR mesosóico — página de acesso mobile + segurança OTPRefatoração de códigos — PR #202Ajustes em PRs abertos de ontemEstudo de jornada de compra e técnicas de fechamentoDefinir preço e entregável do produtoProspecção de reuniões para esta semanaAgente anti AI slop — centralização de conhecimento ConnfitPR #179 — resolver conflitos e erros de teste CLIAlinhamento de preços e usos da ConffitFix adicional para PR #183 — perfil do usuárioCorrigir estilização da Connfit para identidade visualSubir modificações no copy da ConnfitCriação de 4 campanhas no Meta AdsRevisão de PRs do GilinesExploração do Roblox EditorRelatório João — devolutiva TikTok ShopReunião presencial Zassi Uniformes — diagnóstico automaçõesCriar repositório de diagnósticos e relatórios de entrevistasDiagnóstico da ZassiGeração de relatórios para reuniões de fechamentoProposta Zassi — apresentação amanhãProspecção — Clínica Odontológica Dr. ButAlinhamento com ADRIANO sobre produtos e simulaçãoCombinar com Lauro os produtos do diagnósticoSolicitar recursos (vbucks) à INEDIA/ObiettoAnálise de issues do Kodama-Hub e início pelo vaultIssue KH03 — estudo de abordagem DockerKH-12 — script de correção e PR no kodama-hubTeste de despacho e agentes da vaultRemover issues 7, 9 e 10 do fluxo de trabalhoKH-15 — testar e preparar para Gilini testar em prod (Kodama Hub)VEK-1 — testar no WhatsAppBot local — testar localmenteEscrever issues para replicação do modelo de LPSwarm — modelar landing pages para tecnologias concorrentes (Google Ads)Configurar Docker no Windows para tarefas do Hub LisaLP de Suplementos — iniciar issue #96 (Vek)PR #93 git — subir para testar em prodPR #94 git — despachar agents pelo vaultTestes e documentação de bugs no site VEKPR #98 de LP — cosméticosRemover issues concluídas do board (#5, #10, #11, #12, #13)PRs de comparação vek1 vs LPs — correções e mergeDocumentação de uso e bugs na Vek1Criação de issues via Vault — bugs VekFix bug redirect botão Produtos na sidebar colapsada (vek)Planejamento de issues e mini sprint no site da Vek1facilitabusca — cron de fetch parado desde 05/08 (RESOLVIDO 11/08)
kodama-watchdog — self-heal + alerta pra todos os projetos da VPS HermesVPS Hermes — acesso e estrutura
Memory namespacing (multi-user)
OpenSpec -- Spec-Driven Development no VaultPlano de Teste — OpenSpec Vault Persistence
CaumzitoNyxzZanini
vek1-api — arquiteturavek1-api — contextovek1-api — decisões técnicasvek1-api — catálogo de endpointsvek1-api — gotchasvek1-api — integrações externasvek1-api — atividade recente
Amazon Arb (atacado→varejo BR)
Claude Code — Setup MCP VaultClaude Desktop — Setup MCP Vault (remote)VS Code + Copilot — Setup MCP Vault
Skill — Carousel Designer (Paper Style)carousel-paperPlugin marketing-skills (coreyhaines31/marketingskills)
Standup 2026-05-14Standup 2026-05-15Standup 2026-05-16Standup 2026-05-17Standup 2026-05-18Standup 2026-05-19Standup 2026-05-20Standup 2026-05-21Standup 2026-05-22Standup 2026-05-25Standup 2026-05-26Standup 2026-05-27Standup 2026-05-28Standup 2026-05-29Standup 2026-06-01Standup 2026-06-02Standup 2026-06-03Standup 2026-06-05Standup 2026-06-11Standup 2026-06-15Standup 2026-06-16Standup 2026-06-17Standup 2026-06-18Standup 2026-06-22Standup 2026-06-23Standup 2026-06-29Standup 2026-06-30Standup 2026-07-01Standup 2026-07-02Standup 2026-07-03Standup 2026-07-06Standup 2026-07-07Standup 2026-07-08Standup 2026-07-09Standup 2026-07-10Standup 2026-07-13Standup 2026-07-14Standup 2026-07-15Standup 2026-07-16Standup 2026-07-17Standup 2026-07-21Standup 2026-07-22Standup 2026-07-23Standup 2026-07-28Standup 2026-07-29Standup 2026-07-30Standup 2026-07-31Standup 2026-08-03Standup 2026-08-06Standup 2026-08-07Standup 2026-08-10Standup 2026-08-11Standup 2026-08-12Standups
MOCStandup 2026 07 23Welcome
v0.3
K
Kodama Vault
brain / projects / vek1-api

vek1-api — contexto

vek1-api — contexto raiz

Backend FastAPI/Python do vek1. Source-of-truth dos modelos de IA + DB writes. Frontend vek1 fala com este serviço via HTTP interno (3 token scopes).

O que é (uma frase)

API RAG conversacional + backing store HTTP do Better Auth + dono de todas as mutations (orders/leads/products/agents/stores/etc.) + integrações externas isoladas (DeepSeek, Ollama, Resend, AbacatePay webhook receiver, ERP stock sync). Function calling consultivo com create_order tool — agente fecha pedido sem intervenção humana.

Onde olhar primeiro

Quero saber sobre Lê
Stack + estrutura de pastas architecture.md
Catálogo completo de endpoints (auth/app/webhook + públicos) endpoints.md
Decisões técnicas (DeepSeek, bge-m3, psycopg2, slowapi, cache auth) decisions.md
Integrações externas (Ollama, DeepSeek, Resend, AbacatePay) integrations.md
Bugs, traps, race conditions resolvidas gotchas.md
Trajetória / PRs recentes recent-activity.md

Localização

  • Repo: https://github.com/kodama1/vek1-api
  • Clone local: C:\Users\User\vek1-api\
  • Branch principal: master
  • Deploy prod: https://vek1-api.kodama.solutions (VPS Hermes)
  • Container: vek1-api (porta 127.0.0.1:8000) + vek1-postgres (5434 exposto pra Vercel)
  • SSH deploy: ~/.ssh/id_vek1_deploy (alias github-vek1)

Stack resumido

  • FastAPI 0.104 + Uvicorn + GZip middleware + slowapi rate limit (opcional)
  • Postgres 16 + pgvector 0.8.2 self-hosted (pgvector/pgvector:pg16)
  • Ollama bge-m3 (1024 dim) — container vault-ollama reaproveitado
  • DeepSeek (deepseek-chat) via SDK openai com base_url=https://api.deepseek.com
  • psycopg2-binary + ThreadedConnectionPool (síncrono — handlers síncronos)
  • httpx (Ollama, Resend, AbacatePay outbound, stock sync)
  • Resend transactional (reset password)

Token scopes

  • X-Internal-Token (app) — domínios (orders, leads, products, agents, stores, etc.)
  • X-Auth-Token — Better Auth backing store (/internal/auth/*)
  • X-Webhook-Token — fire-and-forget (email, AbacatePay relay, ERP stock sync inbound)

Constant-time compare via hmac.compare_digest. Fallback: app token serve pros 3 se dedicados ausentes.

Routers (per-domain)

main.py carrega cada router com try/except ImportError — falha de import não trava startup, só warn.

Router Prefix Scope O que faz
auth.py /internal/auth auth Better Auth backing store (29 endpoints purpose-built)
orders.py /internal/orders + /webhooks app + webhook CRUD orders + state machine + AbacatePay webhook
leads.py /internal/leads app ensure/get/list/patch + events
agents.py /internal/agents + webhook app + webhook CRUD + KB + evolution-instance lookup
products.py /internal app products + documents + product_files
stores.py /internal app stores + company
dashboard.py /internal/dashboard app aggregated stats
messages.py /internal app messages_history + audit_log read
token_usage.py /internal/token-usage app insert/list/summary (billing telemetry)
email.py /internal/email webhook Resend send-reset-password
stock.py /internal/stock + /webhooks/stock-sync app + webhook decrement/restore + ERP sync bidirectional

Detalhes completos em endpoints.md.

Função /chat (caminho crítico)

rag_service.process_query_with_functions():

  1. Carrega config do agente (agents_config.yaml)
  2. Se lead_id: SELECT lead.profile_summary, injeta como 2ª system message
  3. Monta tools (search_products, get_product_details, filter_products_by_price, create_order, confirm_shipping)
  4. Loop até 5 iterações: LLM → tool calls → exec → resposta
  5. Persist em messages_history com lead_id (cross-agent/cross-channel lookup)
  6. Skip persistência se lead_id present (vek1 já grava — dd2ac9f)

dry_run: true simula side-effects sem chamar HTTP — usado em tests integration.

Memória long-term por lead

  • profile_summary (text compact) + profile_embedding (vector 1024) gerados pelo vek1 (lib/leads.ts:buildLeadProfileSummary)
  • vek1-api injeta no /chat como system message, sem re-fazer dump de history
  • Reduz tokens 70-90% vs fetch full conversation

Variáveis de ambiente

DATABASE_URL=postgresql://vek1:<senha>@postgres:5432/vek1
POSTGRES_PASSWORD=<senha>

# LLM + embeddings
DEEPSEEK_API_KEY=sk-...
OPENAI_API_KEY=                       # vazio — usa DEEPSEEK
OPENAI_BASE_URL=https://api.deepseek.com
OLLAMA_BASE_URL=http://vault-ollama:11434
EMBEDDING_MODEL=bge-m3

# Token scopes
INTERNAL_API_TOKEN=...
INTERNAL_AUTH_TOKEN=...
INTERNAL_WEBHOOK_TOKEN=...

# Email transactional
RESEND_API_KEY=re_...
RESEND_FROM_EMAIL=noreply@vek1.app

# Misc
ENVIRONMENT=production
DEBUG=False
LOG_LEVEL=INFO
MAX_FILE_SIZE_MB=10
ALLOWED_EXTENSIONS=pdf,csv

Vide também

  • vek1 — frontend Next.js que consome essa API
  • infra/vps-hermes — VPS host
notas relacionadas
carregando…