Nas últimas semanas estive profundamente envolvido com código e fazendo o que considero encanamento de contexto.
Estou construindo um sistema de IA e é assim que parece.
Deixe-me desempacotar.
Intenção
As interfaces de IA vagamente tratam de intenção e contexto.
A intenção é o objetivo do usuário, grande ou pequeno, explícito ou implícito.
Exclusivamente para computadores, a IA pode compreender a intenção e responder de uma forma realmente humana. Esta é uma nova capacidade! Como o usuário pode digitar Eu quero comprar uma câmera
ou aponte para uma luz principal e subvocalize Recebi uma ligação em 20 minutos
ou aperte um botão rotulado remover nuvens
e trabalho feito.
As empresas se preocupam com isso porque os computadores que estão mais próximos da intenção tendem a vencer.
por exemplo, o smartphone deslocou o desktop. Em um telefone, você vê algo e toca diretamente. Com uma área de trabalho, essa intenção é mediada por um ponteiro – você vê algo na tela, mas para interagir você diz ao seu braço para mover o mouse que move o ponteiro. Embora não pareça muito, seu cérebro de macaco não gosta.
Portanto, o mesmo se aplica às interfaces de usuário em geral: escolher comandos em menus ou navegar e agrupar páginas da web para planejar férias ou lembrar como funciona o painel de controle do seu HVAC. Tudo isso é burocracia. Descobrir a sequência por si mesmo é fardo entre intenção e resultado.
Agora, como empresa de IA, você pode superar esse fardo. E você quer estar presente no milissegundo e no local onde surge a intenção – o desejo – do usuário. Você não quer que o usuário tenha o fardo de tirar um telefone do bolso ou de ter que formular uma intenção inconsciente em palavras. Estar mais próximo da origem da intenção afastará as empresas concorrentes.
Isso explica a necessidade de dispositivos como óculos ou cordões habilitados para IA, ou microfones ou câmeras que leiam sua linguagem corporal.
É por isso que penso que o futuro das interfaces é Faça o que eu quero dizer: não é apenas uma nova capacidade possibilitada pela IA, há toda uma economia de atenção imperativa nela.
Contexto
O que torna uma IA capaz de lidar muito bem com a intenção é contexto.
Claro que existe o conhecimento mundial no próprio modelo de linguagem grande, obtido a partir de grandes quantidades de dados de treinamento.
Mas digamos que um agente de IA esteja pegando alguma intenção do usuário e subindo em direção a esse objetivo usando uma sequência de chamadas de ferramentas (que é como os agentes funcionam), então o desempenho será muito melhor quando o prompt for preenchido com todos os tipos de contexto útil:
Por exemplo:
- Conhecimento prévio de fontes como Wikipedia ou Google sobre o que outras pessoas fizeram nesta situação.
- Documentação sobre as ferramentas que o agente usará para satisfazer a intenção.
- O contexto do usuário, como o que ele fez antes, a hora do dia, etc.
- Conhecimento tácito e pontos comuns compartilhados entre o usuário e a IA, ou seja, o que todos presumimos que viemos fazer aqui.
- O “quadro branco” compartilhado: o documento em que estamos trabalhando.
- Para o próprio agente, contexto da sessão: se esta tarefa é uma subtarefa de um objetivo maior, o que funcionou antes e o que não funcionou, e assim por diante.
Isso deu origem à ideia de engenharia de contexto (blog LangChain):
A engenharia de contexto está construindo sistemas dinâmicos para fornecer as informações e ferramentas certas no formato certo, para que o LLM possa realizar a tarefa de maneira plausível.
aliás, o acesso ao contexto também explica alguns comportamentos das grandes empresas de IA:
Se você deseja responder melhor à intenção do usuário, então você precisa estar onde está o contexto do usuário, e é por isso que é preferível estar em um cordão com uma câmera sempre ligada em vez de uma câmera normal sob demanda, e por que um agente de IA que vive em seu arquivo de e-mail será mais eficaz do que aquele que não pode. Então eles realmente querem entrar lá, realmente aconchegados.
(E o contexto no momento da inferência são dados de treinamento valiosos, se forem registrados, então também existe.)
Encanamento?
O que falta na ideia da engenharia de contexto é que o contexto é dinâmico. Isso muda, é oportuno.
O contexto aparece em fontes diferentes, por atividade do usuário ou por mudanças no ambiente do usuário: o que ele está trabalhando muda, e-mails aparecem, documentos são editados, não faz mais sol lá fora, as ferramentas disponíveis foram atualizadas.
Este contexto nem sempre é onde a IA é executada (e a IA é executada o mais próximo possível do ponto de intenção do usuário).
Portanto, a tarefa de fazer um agente funcionar muito bem é mover o contexto para onde ele precisa estar.
Essencialmente, copiar dados de um banco de dados e colocá-los em outro – mas como um processo contínuo.
Muitas vezes, você não quer que seu agente de IA tenha que procurar o contexto toda vez que estiver respondendo à intenção. Isso é lento. Se você deseja que um agente atue rapidamente, você precisa planejar com antecedência: construir canais que fluam o contexto potencial de onde ele foi criado até onde será usado.
Como isso pode acontecer continuamente nos bastidores, sem desperdiçar largura de banda ou ciclos ou sem que os dados fiquem obsoletos?
Portanto, tenho pensado na arquitetura técnica do sistema de IA como uma forma de canalizar as fontes e os sumidouros do contexto.
Nos velhos tempos da Web 2.0, a arquitetura técnica preferida era um aplicativo “CRUD”: um aplicativo da web que agrupava um banco de dados onde você teria entidades e operações para criar, ler, atualizar e excluir (esses também são os verbos HTTP).
Essa também era a experiência do usuário, de modo que a entidade do usuário teria uma página da web (um perfil) e a entidade do objeto, digamos, uma foto, teria uma página da web, e então as páginas da web dinâmicas indexariam as entidades de diferentes maneiras (um fluxo ou um feed). E você poderia decompor webapps assim; a tecnologia e a compreensão do usuário alinhadas.
Com sistemas de IA, você deseja que o usuário tenha uma intuição sobre qual contexto está disponível para ele. O encanamento do fluxo de contexto não é apenas o que é tecnicamente possível ou eficiente, mas o que corresponde às expectativas do usuário.
De qualquer forma.
Estou ciente de que isso está ficando – para você, caro leitor – impossivelmente abstrato.
Mas para mim, estou construindo a plataforma que venho tentando construir nos últimos 2 anos, só que desta vez está funcionando.
Estou desenvolvendo o Cloudflare e tenho contexto fluindo entre todos os tipos de entidades e agentes e subagentes de IA em execução onde precisam ser executados, e nada parece emaranhado ou confuso porque está bem feito.
E eu queria fazer uma anotação sobre isso, mesmo que ainda não possa falar especificamente sobre o que é.
Nas últimas semanas estive profundamente envolvido com código e fazendo o que considero encanamento de contexto.
Estou construindo um sistema de IA e é assim que parece.
Deixe-me desempacotar.
Intenção
As interfaces de IA vagamente tratam de intenção e contexto.
A intenção é o objetivo do usuário, grande ou pequeno, explícito ou implícito.
Exclusivamente para computadores, a IA pode compreender a intenção e responder de uma forma realmente humana. Esta é uma nova capacidade! Como o usuário pode digitar ou aponte para uma luz principal e subvocalize ou aperte um botão rotulado e trabalho feito.
As empresas se preocupam com isso porque os computadores que estão mais próximos da intenção tendem a vencer.
por exemplo, o smartphone deslocou o desktop. Em um telefone, você vê algo e toca diretamente. Com uma área de trabalho, essa intenção é mediada por um ponteiro – você vê algo na tela, mas para interagir você diz ao seu braço para mover o mouse que move o ponteiro. Embora não pareça muito, seu cérebro de macaco não gosta.
Portanto, o mesmo se aplica às interfaces de usuário em geral: escolher comandos em menus ou navegar e agrupar páginas da web para planejar férias ou lembrar como funciona o painel de controle do seu HVAC. Tudo isso é burocracia. Descobrir a sequência por si mesmo é fardo entre intenção e resultado.
Agora, como empresa de IA, você pode superar esse fardo. E você quer estar presente no milissegundo e no local onde surge a intenção – o desejo – do usuário. Você não quer que o usuário tenha o fardo de tirar um telefone do bolso ou de ter que formular uma intenção inconsciente em palavras. Estar mais próximo da origem da intenção afastará as empresas concorrentes.
Isso explica a necessidade de dispositivos como óculos ou cordões habilitados para IA, ou microfones ou câmeras que leiam sua linguagem corporal.
É por isso que penso que o futuro das interfaces é Faça o que eu quero dizer: não é apenas uma nova capacidade possibilitada pela IA, há toda uma economia de atenção imperativa nela.
Contexto
O que torna uma IA capaz de lidar muito bem com a intenção é contexto.
Claro que existe o conhecimento mundial no próprio modelo de linguagem grande, obtido a partir de grandes quantidades de dados de treinamento.
Mas digamos que um agente de IA esteja pegando alguma intenção do usuário e subindo em direção a esse objetivo usando uma sequência de chamadas de ferramentas (que é como os agentes funcionam), então o desempenho será muito melhor quando o prompt for preenchido com todos os tipos de contexto útil:
Por exemplo:
Isso deu origem à ideia de engenharia de contexto (blog LangChain):
aliás, o acesso ao contexto também explica alguns comportamentos das grandes empresas de IA:
Se você deseja responder melhor à intenção do usuário, então você precisa estar onde está o contexto do usuário, e é por isso que é preferível estar em um cordão com uma câmera sempre ligada em vez de uma câmera normal sob demanda, e por que um agente de IA que vive em seu arquivo de e-mail será mais eficaz do que aquele que não pode. Então eles realmente querem entrar lá, realmente aconchegados.
(E o contexto no momento da inferência são dados de treinamento valiosos, se forem registrados, então também existe.)
Encanamento?
O que falta na ideia da engenharia de contexto é que o contexto é dinâmico. Isso muda, é oportuno.
O contexto aparece em fontes diferentes, por atividade do usuário ou por mudanças no ambiente do usuário: o que ele está trabalhando muda, e-mails aparecem, documentos são editados, não faz mais sol lá fora, as ferramentas disponíveis foram atualizadas.
Este contexto nem sempre é onde a IA é executada (e a IA é executada o mais próximo possível do ponto de intenção do usuário).
Portanto, a tarefa de fazer um agente funcionar muito bem é mover o contexto para onde ele precisa estar.
Essencialmente, copiar dados de um banco de dados e colocá-los em outro – mas como um processo contínuo.
Muitas vezes, você não quer que seu agente de IA tenha que procurar o contexto toda vez que estiver respondendo à intenção. Isso é lento. Se você deseja que um agente atue rapidamente, você precisa planejar com antecedência: construir canais que fluam o contexto potencial de onde ele foi criado até onde será usado.
Como isso pode acontecer continuamente nos bastidores, sem desperdiçar largura de banda ou ciclos ou sem que os dados fiquem obsoletos?
Portanto, tenho pensado na arquitetura técnica do sistema de IA como uma forma de canalizar as fontes e os sumidouros do contexto.
Nos velhos tempos da Web 2.0, a arquitetura técnica preferida era um aplicativo “CRUD”: um aplicativo da web que agrupava um banco de dados onde você teria entidades e operações para criar, ler, atualizar e excluir (esses também são os verbos HTTP).
Essa também era a experiência do usuário, de modo que a entidade do usuário teria uma página da web (um perfil) e a entidade do objeto, digamos, uma foto, teria uma página da web, e então as páginas da web dinâmicas indexariam as entidades de diferentes maneiras (um fluxo ou um feed). E você poderia decompor webapps assim; a tecnologia e a compreensão do usuário alinhadas.
Com sistemas de IA, você deseja que o usuário tenha uma intuição sobre qual contexto está disponível para ele. O encanamento do fluxo de contexto não é apenas o que é tecnicamente possível ou eficiente, mas o que corresponde às expectativas do usuário.
De qualquer forma.
Estou ciente de que isso está ficando – para você, caro leitor – impossivelmente abstrato.
Mas para mim, estou construindo a plataforma que venho tentando construir nos últimos 2 anos, só que desta vez está funcionando.
Estou desenvolvendo o Cloudflare e tenho contexto fluindo entre todos os tipos de entidades e agentes e subagentes de IA em execução onde precisam ser executados, e nada parece emaranhado ou confuso porque está bem feito.
E eu queria fazer uma anotação sobre isso, mesmo que ainda não possa falar especificamente sobre o que é.