EARS: SDK e API de Extensões (ADR-0026) | Wiki
Documentação de engenharia e especificações técnicas da Gleam-BR.
EARS: SDK e API de Extensões (ADR-0026)
*Requisitos Ubíquos (Ubiquitous Requirements)*
-
*UBQ-SDK-01:* O pacote
gbr_ai_sdk*deve* isolar e abstrair todos os tipos e lógica core de Prompt, Tool Calling e Memória Episódica para que possam ser importados por qualquer projeto dentro do monorepo Gleam-BR sem causar acoplamento com a camada de execução (Harness). -
*UBQ-SDK-02:* A aplicação
gbr_ai_harness*deve* encapsular toda a lógica de sandboxing, ciclo de vida de processo Erlang/OTP e renderização de interface visual TUI (etui), garantindo segurança por padrão. - *UBQ-SDK-03:* A API oficial de Extensões para agentes e ferramentas *deve* operar exclusivamente sobre o *Model Context Protocol (MCP)*, garantindo que "ferramentas internas" e "ferramentas externas" obedeçam ao mesmo padrão de contrato.
*Requisitos Orientados a Eventos (Event-Driven Requirements)*
-
*EVD-SDK-01:* Quando a aplicação Harness (
gbr_ai_harness) iniciar o ciclo de vida do agente local, o sistema *deve* instanciar o sub-processoetuisem injetar ou embutir sua base de código no código do agente, invocando-o apenas via interface de dependênciagleam.toml. - *EVD-SDK-02:* Quando o harness requisitar a carga de uma extensão de funcionalidade do sistema, ele *deve* fazê-lo negociando as Capabilities e Tools via client MCP abstraído pelo SDK.
*Requisitos de Estado (State-Driven Requirements)*
-
*STD-SDK-01:* Enquanto o
gbr_ai_harnessnão puder validar o handshake MCP de uma ferramenta recém-anexada, a ferramenta *deve* ser mantida inativa e indisponível para o contexto do LLM.
*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)*
- *UNW-SDK-01:* Se uma extensão "built-in" tentar exportar suas funções diretamente (via chamadas OTP tradicionais) bypassando o conector MCP do SDK, o Harness *não deve* expor essas funções para o Client do LLM, prevenindo integrações forasteiras não-padronizadas.