refactor: separa composição OCI e inicialização do DeepAgents

This commit is contained in:
alex alves
2026-11-05 16:39:01 -03:00
parent 85fc4c4d46
commit e319b4089c
10 changed files with 508 additions and 153 deletions

View File

@@ -264,10 +264,29 @@ Dentro do container, monte o arquivo OCI e as chaves/tokens necessários somente
para leitura, com caminhos acessíveis ao usuário do processo, e ajuste
`auth_file_location`; `~` refere-se ao usuário do container, não ao do Mac.
Não há integração MCP/RAG automática nesse bloco; a implementação usa `tools=[]`.
A entrada `deepagents` do catálogo seleciona `OCIDeepAgentsAdapter`, que compõe
modelo OCI, grafo e memória. `DeepAgentsAdapter` recebe um grafo pronto e não
importa o SDK OCI. A configuração existente continua válida; chamadas Python
diretas com opções OCI devem usar a nova classe de composição.
`initialize()` prepara a sessão antes de `session.ready`. A criação/autenticação
do modelo ocorre em worker fora do event loop. `initialization_timeout_seconds`
(padrão 5 s) limita essa espera; `cleanup_timeout_seconds` (padrão 1 s) limita a
espera pelo worker durante o fechamento. Um timeout não mata a thread: a tarefa
retém a posse do cliente e o fecha quando o worker terminar. Se ainda houver
trabalho pendente, o fechamento reporta timeout, em vez de confirmar liberação.
A limpeza fecha tanto o HTTP assíncrono do modelo quanto a sessão HTTP do SDK.
Prazos maiores devem considerar o limite atual de 10 s do handshake da UI.
`tools=[]` fornece zero ferramentas adicionais; as ferramentas nativas do
DeepAgents continuam habilitadas. Essa entrega preserva essa política. O backend
de arquivos padrão do framework usa estado virtual; não implica acesso automático
aos arquivos do host. Ferramentas futuras devem ser selecionadas na composição.
`agent.options.timeout_seconds` limita a espera por cada próximo evento do
DeepAgents (inclusive eventos internos), sem incluir o tempo em que o consumidor
está processando um fragmento já entregue. Não é prazo total da resposta nem
limite de inicialização/autenticação. A expiração fecha o stream e propaga erro.
está processando um fragmento já entregue. Não é prazo total da resposta;
a inicialização tem um limite separado. A expiração fecha o stream e propaga erro.
## Quickstart