Este projeto implementa uma interface de linha de comando (CLI) que integra APIs de terceiros, incluindo Arcee AI, TESS e o SDK oficial do Model Context Protocol (@sdk-mcp). O projeto segue a estrutura Clean Architecture e os princípios do Domain-Driven Design (DDD).
Esta CLI não reimplementa os serviços que integra, mas serve como uma camada de abstração que permite:
- Acesso unificado a múltiplos serviços (Arcee, TESS, MCP)
- Padronização de interfaces para facilitar o uso
- Adição de funcionalidades específicas à CLI sem modificar as APIs subjacentes
O MCP é um protocolo padronizado que facilita a comunicação entre modelos de linguagem e ferramentas externas. Este projeto utiliza o SDK oficial do MCP (@sdk-mcp) para implementar essa comunicação, sem modificar ou reimplementar o protocolo.
O servidor TESS-MCP é o componente responsável por implementar a integração entre o TESS (Tool Execution Subsystem) e o MCP. Este servidor:
- Orquestra e gerencia ferramentas que podem ser utilizadas por modelos de IA
- Expõe APIs para listar e executar agentes de IA
- Gerencia upload e organização de arquivos
- Permite interação com modelos de linguagem como o "tess-ai-light"
O TESS trabalha em conjunto com o MCP, permitindo que modelos solicitem e utilizem ferramentas de forma padronizada.
A CLI consome as APIs do servidor TESS-MCP, Arcee AI e MCP, fornecendo uma interface unificada para o usuário final. Ela não reimplementa essas funcionalidades, apenas oferece uma forma padronizada de acessá-las.
O Arcee AI é uma plataforma completa de IA que inclui:
- Arcee Orchestra: plataforma agentic para construir fluxos de trabalho de IA
- Arcee Conductor: roteador inteligente que seleciona o modelo mais adequado e eficiente em custo para cada prompt
- Small Language Models (SLMs): modelos de linguagem otimizados para tarefas específicas
Para mais informações sobre TESS, consulte a documentação oficial da API TESS.
O projeto segue a Clean Architecture com as seguintes camadas:
-
domain/interfaces
: Interfaces que definem contratos para integração com APIs externas -
domain/services
: Serviços de domínio que orquestram as chamadas para APIs externas -
domain/exceptions
: Exceções de domínio para tratamento de erros
-
application/use_cases
: Casos de uso que coordenam a lógica de negócio
-
infrastructure/mcp_client
: Cliente que integra o SDK oficial do MCP (@sdk-mcp) -
infrastructure/providers
: Adaptadores para as APIs externas (TESS, Arcee)
-
src/commands
: Comandos CLI para interação com os casos de uso -
src/adapters
: Adaptadores para compatibilidade entre implementações
Os adaptadores no projeto são componentes arquiteturais intencionais que servem a propósitos específicos:
-
Desacoplamento entre sistemas:
- MCP e TESS são sistemas com responsabilidades distintas que evoluem independentemente
- Os adaptadores permitem que essas evoluções ocorram sem quebrar a integração
-
Tradução entre interfaces:
- Convertem chamadas e dados entre o formato esperado por cada sistema
- Protegem o domínio de mudanças nas APIs externas
-
Implementação do padrão Ports & Adapters:
- Facilitam testes unitários e simulações
- Permitem substituir implementações sem afetar o domínio
O projeto utiliza dois tipos principais de adaptadores:
-
Adaptadores de Infraestrutura:
- Localização:
infrastructure/providers
- Propósito: Conectar as interfaces do domínio com APIs externas
- Exemplo:
TessApiProvider
adapta a API do TESS para a interfaceITessProvider
do domínio
- Localização:
-
Adaptadores de Compatibilidade:
- Localização:
src/adapters
- Propósito: Manter compatibilidade com código existente enquanto usa as novas implementações
- Exemplo:
MCPRunClient
adapta a nova implementação para código que ainda usa a interface antiga
- Localização:
Nosso foco é manter adaptadores eficientes através de:
- Interfaces padronizadas com contratos claros
- Minimização de conversões desnecessárias
- Cobertura adequada de testes
- Documentação das responsabilidades de cada adaptador
A CLI fornece acesso unificado aos seguintes serviços:
A CLI consome as APIs do servidor TESS-MCP, permitindo:
- Listar todas as ferramentas disponíveis
- Buscar ferramentas específicas
- Obter detalhes de ferramentas e agentes
- Executar ferramentas e agentes com parâmetros
- Fazer upload de arquivos para uso com agentes
A CLI permite interagir com a API do Arcee AI:
- Gerar conteúdo com modelos de linguagem
- Interagir através de uma interface de chat
- Selecionar entre diferentes modelos disponíveis
- Utilizar o roteamento inteligente do Arcee Conductor
# Ferramentas MCP (via SDK @sdk-mcp)
arcee mcp-tools listar
arcee mcp-tools buscar "processamento"
arcee mcp-tools detalhes tool1
arcee mcp-tools executar tool1 '{"param1": "valor1"}'
# Servidor TESS-MCP
arcee tess listar
arcee tess executar agent123 "Como posso otimizar este código?"
# API Arcee AI
arcee chat "Explique o conceito de Clean Architecture"
arcee generate "Escreva um código Python para ordenar uma lista"
O projeto usa adaptadores para permitir evolução contínua enquanto mantém compatibilidade:
# Código existente (continua funcionando)
from src.tools.mcpx_simple import MCPRunClient
client = MCPRunClient(session_id="abc123")
tools = client.get_tools()
# Código novo (implementação atual)
from infrastructure.mcp_client import MCPClient
client = MCPClient()
tools = client.list_tools()
Este modelo de adaptadores permite:
- Evolução gradual sem quebrar código existente
- Melhoria contínua da implementação interna
- Facilidade de migração para novos clientes
Para desenvolver novos recursos de integração:
- Defina interfaces no domínio (
domain/interfaces
) que espelhem as APIs externas - Implemente serviços no domínio (
domain/services
) que orquestrem chamadas às APIs - Crie casos de uso na aplicação (
application/use_cases
) para funcionalidades específicas - Implemente clientes/adaptadores na infraestrutura (
infrastructure
) para comunicação com APIs externas - Exponha funcionalidades via CLI (
src/commands
)
Este fluxo de desenvolvimento garante uma separação clara entre o código do projeto e as APIs externas integradas.
-
Novo script para interação direta com API TESS: Implementado o script
tess_api_cli.py
que permite listar, consultar e executar agentes TESS diretamente, sem depender do comandotest_api_tess
. - Suporte a múltiplos modelos de linguagem: O script suporta diversos modelos de linguagem, incluindo GPT-4o e Claude 3.5 Sonnet.
- Exemplos práticos para geração de anúncios: Adicionados exemplos para cafeteria, agência de marketing digital e corretora de seguros.
- Documentação detalhada: Criados guias de integração e dicas avançadas para otimização de anúncios Google Ads usando a API TESS.
- Interface Streamlit simplificada: Removidas as abas superiores desnecessárias, mantendo apenas "Arcee CLI" e "Ajuda".
- Correção de bugs no adaptador TESS: Resolvidos problemas na comunicação com a API TESS.