Transformando dados de produto em entendimento do usuário, sem alucinações.
Problema
Euconheciváriostimesdeprodutoquetentamfazerpesquisa.Elesatéfazem,masorestodotimeacabaignorandoosresultados.Nãoporqueelesnãoqueremusar,masporquenemconseguemconectaroquedescobriramcomasdecisõesdodiaadia.ApersonaficanumarquivonoFigmaounumPPT.AstranscriçõesdeentrevistasvivemnumdocdoNotionquenemmesmoapessoaqueparticipoudaentrevistavoltaprarevisitar.
Entãoeuviqueogapnãoeraesforço,eraaformaqueessesdadoschegavamprotime.PorissoeuconstruíoResense:paraajudartimesdeprodutoaextrairvalordoqueelesjátinhamemcasa,semprecisardeespecialistaprainterpretarenemprecisargastarhorasemartefatosdepersonaquevãopraúltimagaveta.
A stack de IA
OpipelinedegeraçãomapeiadadosbrutosdeprodutoporJTBDeguardrailsanti-otimismo,estruturandoemSyntheticUsersviaOpenRoutercomClaudeSonnetemproduçãoeGeminiFlashemdesenvolvimento.Euchegueinessaestratégiadedoismodelostestando:iteraçãoemdevprecisavadevelocidade,produçãoprecisavadequalidadederaciocínioparasíntesecomplexa.Servemjobsdiferentes.
AavaliaçãocomRAGrecuperachunksdefonterelevantesparaancoraraanáliseemdadosreaisdeusuário.Éissoquefazotimedeprodutoconfiarnooutput:cadainsightrastreiadevoltaaumafonte.
Opromptcachefazduascoisas:reduzcustodetokenecortaalatênciaderespostaem63%.Numaferramentadepesquisaondeagenteestáesperandoumasínteseantesdeumareunião,essadiferençadevelocidadeimportatantoquantooconteúdoemsi.
CadarequisiçãopassaporumacamadaBYOKparaofreetier:ousuáriotrazaprópriachavedeAPI(OpenRouter,Anthropic,OpenAIouGoogle),quenuncasaidobrowser.Auto-detecçãoroteiaparaoprovedorcerto.Oservidornuncaarmazenanemlogaaschavesdeconvidados.
As decisões de design
Calibrarconfiançafoioproblemadedesignmaisdifícil.LLMsparecemautoritativosmesmoquandoestãochutando,entãoomaiorriscodoprodutoeraentregaroutputsqueotimeusariasemquestionar.Euchegueiemtrêssistemasqueatacamissodefrente.
Citaçõesdefonteporatributo:todoinsightnumperfilSyntheticUserlinkadevoltaprafontedeondeveio.Camposinferidossãomarcadoscom[Inferido]nooutput.Ousuáriovêexatamenteoqueveiodosdadoseoquefoiinferênciadomodelo.
Oguardrailanti-otimismoéumalistadeproibiçõesnosystemprompt:quatropadrõesqueinvalidamumageração.Acamadaforçaomodeloadescreverpontosdefricçãocomosituaçõesespecíficas,quando,onde,oqueacontece.Seopontodefricçãoforvago,ageraçãofalhanavalidação.
Otriangulationscoremedediversidadedefontes(comportamental,atitudinal,contextual)commultiplicador:umtipodefonterende0.6xdeconfiança,trêstiposrendem1.0x.OConfidenceBadgerenderizacomoaviso,informaçãoouconfirmação,emostraexatamentequaistiposdefonteestãofaltando.
Avaliaçãoemelhoriasficamforadocaminhocrítico,disparadassobdemanda.Achamadaaomodeloparaperfisfecha,aíousuáriodisparaumachamadaseparadaparapadrõeserecomendaçõesquandoprecisar.Doissegundossobdemandamantémoloopprincipalrápido,queéondeotimepassaamaiorpartedotempo.
O modo de falha
QuandoomodelonãotemdadossuficientesparagerarumSyntheticUserconfiável,eledizisso.EuconstruíumpainelDataHintqueexibetrêssinais:umaanálisedoqueestáfaltando,ostiposdedadosnecessárioseumaperguntadepesquisasugeridaprairbuscar.Opainelusaprogressivedisclosure.Aanáliseficavisívelporpadrão.Aslacunaseaperguntasugeridaexpandemnainteração.
EudecidiquemostrarumSyntheticUserruim,semsinaisdeincerteza,eramaisperigosodoqueserhonestosobreafaltadedados.Timesqueconfiamempesquisaruimtomamdecisõespiores,eeraexatamenteissoqueeuqueriaqueoprodutoajudasseaevitar.
AntesdequalquerdadochegaraoLLM,umanonimizadorremovePII:emails,CPFs,telefones,endereçosIPenomesemcontexto.Omodelorecebeapenastextoanonimizado.Dadosemrepousousamcriptografiaemníveldecampo.Eunãotenhoacessoaoconteúdobrutodosusuários.Issocustaconveniênciadeadministração.Valeuapena.
How I work with AI
OResensenãocomeçoucomoproduto.Começoucomoomeupróprioprocesso.SyntheticUserssãocomoeuchegonumaprimeiraleituraparaquemeuestoudesenhandoemhorasemvezdesemanas,eaíeuvalidoosqueimportamcompessoasreais.Euusocomopontodepartida,nãoparasubstituirapesquisa.
Omesmoinstintoatravessaorestodomeutrabalho.EuprototipofluxosnavegáveisnoClaudeCodeenoCursor,entãoaengenhariarecebealgoquedápraclicaremvezdeumatelaestática,queéondeohandoffcostumaquebrar.EconstruíumagentededesignquecarregaosmeusprincípiosdedesigneumconjuntodeSyntheticUserscomocontexto,rodandotestesdeconceitoeusabilidadecontraelesantesdeeusentarcomumusuárioreal.Quandocompareiosvereditosdelecomsessõesreais,ficarampróximososuficientepraconfiarcomoprimeirapassada.
IAnãoéumaetapaqueeugrudonofinal.Elaestánapesquisa,noprotótipoenoteste,praeugastarmeutemponasdecisõesenãonosetup.
O que vem a seguir
EuqueroSyntheticUsersqueevoluamsozinhosconformenovosdadoschegam,semregeneraçãomanual.Eumagentedepesquisaqueaprendacomsinaisdecorreçãoesugiraoquevalidaraseguircombasenosgapsquejáforamsinalizados.Oobjetivoéumsistemaqueficamaisútilquantomaisotimeusa.
Salvar links não te torna mais inteligente. Aprender com eles sim.
Problema
Eueraessapessoacomcentenasdelinkssalvosquenuncaiaabrirdenovo.Eusalvavaartigos,vídeos,referências.Masquandoprecisavadealgumacoisa,ficavaprocurandopelotítuloquemallembrava,naspastasquemalorganizava.Aferramentaqueeuusavaorganizavaoqueeutinhasalvo.Oproblemaéqueelanãomeajudavaaaprendercomissonemaacessaroqueeuprecisavaquandoprecisava.
EntãoeuconstruíoCoisas.spaceemtornodeumapergunta:eseoconteúdoquevocêsalvoupudesseaparecerquandoagenteprecisa,semprecisarlembrarqueexistia?
A stack de IA
Acategorizaçãorodacomgpt-4o-miniviaOpenRouteratemperature0.2.Euchegueinessatemperaturabaixatestando:temperaturamaiorintroduziacategorydrift,omesmolinkcategorizadodeformasdiferentesemsavesrepetidos.0.2dáaconsistênciaqueumafeaturedecategorizaçãoprecisaterpraousuárioconfiar.
Acamadaderecuperaçãoconversacionalusaacategoriacomosinaldecontextoescopado,umaabordagemRAG-likerápidaosuficienteparaUXconsumereprecisaosuficienteparaserútil.Eutesteicomembeddingcompletodedocumentoeficoumaislentodoqueospadrõesreaisdequeryjustificavam.
Quandoocontextoéraso,arecuperaçãofazfallbackportrêsníveis:conteúdovisíveldacategoriaativa(últimos3dias),depoistodooconteúdodessacategoria,depoistodooconteúdoindependentedecategoria.Aestratégiamantémasrespostasfundamentadasmesmopraquemacaboudecomeçar.
OalgoritmodematchingdoFocoTimeusaIAsemântica,então"AprenderReact"trazlinkssobrehooks,componentseJSX,inclusivelinksquenuncamencionamReactnotítulo.ResultadossãocacheadosemKVcominvalidaçãoporhash:quandoumnovolinkésalvo,ohashmuda,ocacheinvalidaeapróximarequisiçãodematchingregenera.
As decisões de design
Streamingfoiinegociávelpramim.Qualquercategorizaçãoqueexigisseesperaquebrariaohábitodesalvar.Oprodutosófuncionasesalvarparecerinstantâneo.Olinkapareceimediatamentenogridcomumestadopending,acategorizaçãocompletaembackground,ostatusprogridedependingparaprocessedpararead.
Euescopeiainterfaceconversacionalporcategoriadepropósito.Chatabertosobretodooconteúdosalvoproduziarespostasirrelevantesnostestes,entãoestreitarocontextofoiadecisãoquefezafeaturefuncionar.Quandoousuáriotrocadecategoriacomumchataberto,umavisoinlineaparececomduasopções:manterocontextoatualoure-ancoraraconversananovacategoria.
Ocomando/resumirusaprogressivedisclosurebaseadoemFibonacci:aprimeirachamadaretorna5links.Ousuáriopodepedirmais,easequênciaexpandepara8,13,21,34.Ousuáriovaidescobrindooquetem,noritmoqueprecisar.
O modo de falha
Quandoomodelonãoconseguecategorizarumlinkcomconfiança(páginascompaywall,conteúdoambíguo,URLsquebradas),olinkvaiparaumestadoSemcategoriacomopçãodeoverridemanual.Olinkestásemprelá,sempreacessível.AIAéumacamadaaditivasobreosdados,entãoquandoelafalha,olinkcontinuadisponível.
Acamadadeprovedortemumfallback:seoOpenRouterretornar402(créditosesgotados),osistemaroteiaautomaticamenteparaoOpenAIcomumajaneladeretryde1hora.OstatusdoserviçoérastreadoemKV:provedor,últimoerro,tentativasfalhas,últimotempodesucesso.Ousuárionuncavêumatrocadeprovedor.
Aextraçãodeconteúdousasilentfailure:seaextraçãoexpiraem10segundos,olinkcontinuafuncionandocomseusmetadados.Eupriorizeivelocidadederespostaaqui,porqueumlinknogridjáserveousuário,mesmosemotextocompletoextraído.
Row-levelsecurityéaplicadononíveldobancodedadosenacamadadeaplicação.CadatabeladedadosdousuáriotempolíticasRLSvinculadasaoauth.uid().Nenhumbugdeaplicaçãopodevazarosdadosdeumusuárioparaoutro.
O que vem a seguir
EuqueroadicionarleituraprofundaviaFirecrawl,extraindooconteúdorealdoslinkssalvosalémdosmetadados.EGmailOAuthparapuxarnewslettersethreadsdiretoparaabiblioteca,transformandoacaixadeentradaemumfeeddeaprendizado.Oqueeumaisqueroéacamadadeleitura,porqueéoquevaifazerasrespostasdeIAficaremancoradasnoquevocêdefatoleu,eaíelasficamrealmenteúteis.
