Skip to content

O archflow é um framework open source para automação de agentes de IA em Java, construído sobre o [LangChain4j](https://github.com/langchain4j/langchain4j).

License

Notifications You must be signed in to change notification settings

edsonmartins/archflow

Repository files navigation

archflow

License Build Status Maven Central Java Version Discord

archflow Logo

Framework open source para automação de agentes de IA em Java

WebsiteDocumentaçãoQuickstartDiscord

✨ Por que archflow?

O archflow é um framework para criar, executar e gerenciar fluxos de trabalho baseados em IA de forma robusta e escalável. Construído sobre LangChain4j, ele oferece:

  • 🎯 Fluxo Estruturado: Desenvolva fluxos de IA modulares e reutilizáveis em Java
  • 🚀 Alta Performance: Execução otimizada e escalável com suporte a processamento paralelo
  • 🔌 Extensibilidade: Sistema robusto de plugins com gerenciamento automático de dependências
  • 🛡️ Controle Total: Gestão completa do ciclo de vida dos fluxos, com monitoramento detalhado
  • 📊 Observabilidade: Métricas detalhadas e auditoria completa de execuções
  • 🏭 Produção Ready: Projetado para ambientes empresariais com foco em confiabilidade

🎯 Componentes Principais

🖼️ Arquitetura em Pilhas

A arquitetura do archflow é organizada em pilhas, proporcionando uma separação clara de responsabilidades e facilitando a manutenção e escalabilidade.

Arquitetura em Pilhas do archflow

🤖 Core Engine

  • Execução de fluxos distribuída
  • Gerenciamento de estado
  • Controle de ciclo de vida
  • Processamento paralelo
  • Tratamento de erros robusto

📚 Integração com LangChain4j

  • ModelAdapter para diferentes LLMs
  • ChainAdapter para sequências de processamento
  • AgentAdapter para execução autônoma
  • ToolAdapter para funcionalidades específicas
  • MemoryAdapter para gestão de contexto

🔒 Gestão de Plugins

  • Carregamento dinâmico
  • Versionamento automático
  • Resolução de dependências via Jeka
  • Isolamento de classloader
  • Hot reload de componentes

📊 Monitoramento

  • Métricas de execução detalhadas
  • Tracking de uso de recursos
  • Auditoria de operações
  • Logging estruturado
  • Alertas e notificações

🔌 Recursos Implementados

1. Engine de Execução

  • Execução assíncrona de fluxos
  • Gestão de estado distribuída
  • Controle de ciclo de vida
  • Processamento paralelo
  • Retry policies

2. Sistema de Plugins

  • Carregamento dinâmico
  • Gestão de dependências
  • Versionamento
  • Isolamento
  • Hot reload

3. Monitoramento e Métricas

  • Performance metrics
  • Resource utilization
  • Execution tracking
  • Error monitoring
  • Audit logging

4. Adaptadores LangChain4j

  • Integração com LLMs
  • Chain processing
  • Agent execution
  • Tool management
  • Memory handling

💻 Requisitos de Sistema

  • Java 17 ou superior
  • Maven 3.8+
  • Memória: 4GB RAM (mínimo)
  • Disco: 1GB disponível
  • Sistema Operacional: Linux, Windows ou macOS

🚀 Início Rápido

Dependências Maven

<dependencies>
   <dependency>
      <groupId>br.com.archflow</groupId>
      <artifactId>archflow-core</artifactId>
      <version>1.0.0-SNAPSHOT</version>
   </dependency>
   <dependency>
      <groupId>br.com.archflow</groupId>
      <artifactId>archflow-agent</artifactId>
      <version>1.0.0-SNAPSHOT</version>
   </dependency>
   <dependency>
      <groupId>br.com.archflow</groupId>
      <artifactId>archflow-langchain4j</artifactId>
      <version>1.0.0-SNAPSHOT</version>
   </dependency>
</dependencies>

Exemplo de Fluxo

public class CustomerSupportFlow implements Flow {
   @Override
   public String getId() {
      return "customer-support";
   }

   @Override
   public List<FlowStep> getSteps() {
      return Arrays.asList(
              new IntentAnalysisStep(),
              new ResponseGenerationStep()
      );
   }

   @Override
   public FlowConfiguration getConfiguration() {
      return FlowConfiguration.builder()
              .timeout(30000)
              .retryPolicy(new RetryPolicy(3, 1000, 2.0))
              .build();
   }
}

Executando o Fluxo

AgentConfig config = AgentConfig.builder()
        .agentId("support-agent")
        .pluginsPath("plugins")
        .maxConcurrentFlows(10)
        .build();

try (ArchFlowAgent agent = new ArchFlowAgent(config)) {
Flow flow = new CustomerSupportFlow();
Map<String, Object> input = Map.of("message", "Como posso resetar minha senha?");

FlowResult result = agent.executeFlow(flow, input).get();
    System.out.println("Status: " + result.getStatus());
        System.out.println("Output: " + result.getOutput().orElse(null));
        }

📦 Módulos

  • archflow-core: Engine de execução, interfaces base e contratos principais
  • archflow-model: Modelos de domínio e estruturas de dados
  • archflow-plugin-api: Sistema de catálogo e API para desenvolvimento de plugins
  • archflow-plugin-loader: Carregamento dinâmico de plugins com Jeka
  • archflow-agent: Agente de execução com gestão de plugins e métricas
  • archflow-langchain4j: Adaptadores para integração com LangChain4j

🌱 Começando

  1. Setup do Ambiente

    git clone https://github.com/archflow/archflow.git
    cd archflow
    mvn clean install
  2. Primeiro Fluxo

🤝 Contribuindo

Adoramos contribuições! Veja como você pode ajudar:

  • 🐛 Reporte bugs e sugira features nas Issues
  • 📖 Melhore a documentação
  • 💻 Contribua com código seguindo nosso guia
  • 🌟 Dê uma estrela no projeto e compartilhe!

📚 Links

📄 Licença

archflow é licenciado sob Apache License 2.0.

🙏 Agradecimentos


⭐️ Se você gosta do archflow, considere dar uma estrela no projeto! ⭐️

Comece AgoraAprenda MaisContribua

About

O archflow é um framework open source para automação de agentes de IA em Java, construído sobre o [LangChain4j](https://github.com/langchain4j/langchain4j).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published