A proliferação de inteligência artificial (IA) e agentes autônomos trouxe consigo um desafio inesperado: a complexidade de gerenciar múltiplos ecossistemas de desenvolvimento. Linguagens de programação tradicionais, concebidas para humanos, mostram-se inadequadas para as necessidades emergentes dos agentes de IA. Nesse cenário, Jason Mars, professor da Universidade de Michigan, apresenta Jac, uma linguagem de programação e um runtime chamado Jaseci, que buscam tratar agentes de IA como cidadãos de primeira classe no mundo do desenvolvimento de software.

Mars argumenta que as ferramentas atuais, desde linguagens até cadeias de ferramentas de compilação, foram criadas antes da ascensão da IA generativa e, portanto, falham em compreender as necessidades específicas dos agentes. "Não queremos novas ferramentas, queremos ferramentas para nossos agentes", declarou Mars, destacando a urgência de uma abordagem que priorize a interação e a eficiência desses sistemas autônomos. A fragmentação atual força os agentes a navegarem por um mar de linguagens e bibliotecas distintas, um processo que pode se tornar proibitivamente caro e ineficiente, como exemplificado pelo alto custo de tokenização em traduções de código complexas.

O Desafio da Fragmentação e a Proposta de Jac

A linguagem Jac é concebida como uma solução para a "complexidade poliglota" que aflige os agentes de IA. Inspirada em Python, Jac integra os runtimes e toolchains de TypeScript e Python, compilando para bytecode Python, JavaScript e código de máquina nativo. Isso permite que o código Jac aproveite bibliotecas dos ecossistemas PyPI e npm. Além disso, a integração com o LLVM (Low Level Virtual Machine) confere a Jac recursos de segurança de memória e otimização de desempenho semelhantes aos do Rust, permitindo também a importação de bibliotecas C e C++. Uma funcionalidade notável é a capacidade de "ejetar" o código Jac para TypeScript, Python ou C, facilitando a conformidade corporativa.

Unificando Dados com Estruturas em Grafo

Além de unificar ecossistemas de linguagens, Jac aborda a fragmentação arquitetural através da representação de dados como grafos. Em vez de depender de tabelas de banco de dados ou objetos de classe, os atributos de dados são definidos em nós, e as relações entre eles são estabelecidas por meio de conexões de arestas. Embora a criação de tais estruturas em grafo exija um esforço inicial maior do que a criação de tabelas de banco de dados convencionais, Mars postula que isso economiza um trabalho considerável para os agentes a longo prazo. Eles não precisarão mais gastar recursos (tokens) extraindo dados de diversas fontes, como blobs de objetos, strings JSON ou objetos Python. Em vez disso, os agentes podem despachar "walkers" para percorrer a estrutura de dados e processar informações em tempo real, permitindo paralelismo natural e execução mais rápida.

Jac em Comparação com Frameworks Existentes

Em uma demonstração comparativa realizada durante a conferência All Things Open, Mars colocou Jac contra o LangGraph, um framework de orquestração de agentes que utiliza bibliotecas Python. A tarefa consistia em replicar o Greptile, uma ferramenta de revisão de código por IA. Com Jac, um agente de IA construiu autonomamente um aplicativo sofisticado de múltiplos estágios capaz de chamar várias ferramentas em paralelo. Em contraste, o agente utilizando LangGraph produziu uma máquina de estados linear rudimentar que não conseguia operar em paralelo, possivelmente sobrecarregada pelas ferramentas que precisava gerenciar. Mars concluiu que as ferramentas fornecidas à IA determinam a qualidade do resultado, e Jac parece oferecer uma vantagem significativa nesse aspecto.

O Futuro e as Perguntas em Aberto

Embora a linguagem Jac e seu runtime Jaseci já tenham sido aplicados em serviços comerciais menores, como a plataforma multi-agente GraphClaw e a plataforma de memória pessoal Tobu, o sucesso futuro de Jac dependerá da adoção por desenvolvedores e agentes. A promessa de uma linguagem unificada que simplifica a complexidade do desenvolvimento de IA é atraente, mas resta saber se Jac conseguirá desbancar outros frameworks de agentes baseados em Python. O desenvolvimento de Jac representa um passo intrigante para lidar com a crescente complexidade do ecossistema de IA, focando em tornar os agentes, e não os humanos, os principais beneficiários das ferramentas de desenvolvimento.

Com reportagem de Brazil Valley

Source · The Register