O Lang-Agent é uma plataforma de configuração de agente (AI Intelligent Body) desenvolvida com base na pilha de tecnologia LangGraph. Ele fornece uma interface visual que permite aos usuários criar fluxos de trabalho complexos com capacidade de programação limitada, arrastando e soltando nós e conectando linhas. A filosofia de design do projeto é semelhante à do ComfyUI, incentivando os desenvolvedores a criar nós funcionais dedicados com base em suas próprias necessidades comerciais, em vez de fornecer uma plataforma totalmente encapsulada, como o dify ou o coze. O principal recurso do Lang-Agent é a introdução do conceito de "variáveis de estado", que permite que os dados sejam passados e controlados de forma flexível em todo o fluxo de trabalho, quebrando a restrição de "a saída do nó anterior é a única entrada do próximo nó" no fluxo de trabalho tradicional e, portanto, permitindo um controle lógico mais preciso e complexo. O projeto adota uma arquitetura de separação de front-end e back-end, o back-end é baseado em FastAPI e o front-end é construído usando ReactFlow e HeroUI.
Lista de funções
- Orquestração visual de processosInterface de tela de arrastar e soltar: fornece uma interface de tela de arrastar e soltar que permite aos usuários criar e organizar intuitivamente a lógica de execução do agente.
- Nós internos avançadosO sistema tem uma variedade de nós principais integrados, incluindo início, fim, entrada do usuário, LLM (Large Language Model), contadores, carregamento de documentos, executores de código e armazenamento e recuperação de vetores.
- gerenciamento de variáveis de estadoSuporte a variáveis de estado globais personalizadas que podem ser usadas em entradas e saídas de nós e em julgamentos condicionais de bordas, permitindo o controle preciso de fluxos de trabalho.
- Agente pré-fabricadoIntegração de dois agentes pré-construídos que podem ser usados diretamente:
ReactAgent
(capacidade de recorrer a ferramentas externas de forma autônoma) eSupervisorAgent
(Capacidade de chamar outros agentes de forma autônoma). - Configuração da biblioteca de modelos e vetoresOs usuários podem configurar facilmente conexões com diferentes modelos de linguagem grande (LLMs) e modelos de incorporação, além de suportar o acoplamento a uma variedade de bancos de dados vetoriais, como Postgres e Milvus.
- Configuração da chamada de ferramenta (MCP)Suporte para configuração de MCPs (ferramentas que fornecem acesso a serviços externos para modelos de idiomas grandes) para cenários que exigem chamadas de ferramentas.
- alta escalabilidadeFornece diretrizes claras para o desenvolvimento de nós personalizados; os desenvolvedores podem estender facilmente os componentes de front-end e a lógica de back-end para atender a cenários comerciais específicos.
- Importação e exportação de processosSuporte à exportação de fluxos de trabalho configurados do Agent para arquivos JSON ou à importação de arquivos JSON para facilitar o compartilhamento e a reutilização.
Usando a Ajuda
O Lang-Agent consiste em duas partes, o front-end (lang-agent-frontend) e o back-end (lang-agent-backend), que precisam ser instalados e iniciados, respectivamente, antes do uso.
Instalação e inicialização
1. clonagem de códigos de projeto
Primeiro, clone o código-fonte do projeto localmente a partir do GitHub.
git clone https://github.com/cqzyys/lang-agent.git
2. instalação e inicialização do back-end (lang-agent-backend)
uso de back-endPoesiaExecutar o gerenciamento de pacotes.
- Ambiente de inicialização: Vá para o diretório do projeto backend e instale as dependências usando o Poetry.
cd lang-agent-backend poetry env use python poetry shell poetry install
- Início de projetosExecute o seguinte comando para iniciar o serviço de back-end.
python -m lang_agent.main
3. instalação e inicialização do front-end (lang-agent-frontend)
O front-end usa o Yarn para gerenciamento de pacotes.
- Instalação de dependências: Vá para o diretório do projeto front-end e instale os pacotes de dependência usando o Yarn.
cd lang-agent-frontend yarn install
- Início de projetosExecute o seguinte comando para iniciar o servidor de desenvolvimento front-end.
yarn dev
Após uma inicialização bem-sucedida, você pode acessar o http://localhost:8820
Entre na interface de operação do Lang-Agent.
Operação da função principal
1. configuração ambiental
Antes de começar a criar o agente, é necessário fazer algumas configurações básicas.
- Configuração do modelo:
- Clique em [Model Configuration] na barra de navegação superior.
- Clique no ícone [+] no canto superior direito da página para criar uma nova conexão de modelo.
- nome (de uma coisa)Nome personalizado exclusivo para o modelo.
- tipologia: Selecione
llm
(para nós de modelo de linguagem) ouembedding
(para nós vetorizados). - vala de irrigaçãoCanal: No momento, somente os canais compatíveis com OpenAI são compatíveis.
- Parâmetros de conexão do modeloPreencha o endereço da API do modelo, a chave e outros parâmetros.
- Configuração da biblioteca de vetores:
- Clique na guia [Vector Library Configuration].
- Clique no ícone [+] para configurar uma nova biblioteca de vetores.
- nome (de uma coisa)Nome exclusivo para a biblioteca de vetores: Um nome exclusivo para a biblioteca de vetores.
- tipologia:: Atualmente suportado
postgres
responder cantandomilvus
. - Preencha o endereço de conexão (URI), o nome de usuário e a senha da biblioteca vetorial.
- Modelos de incorporaçãoSelecione um que tenha sido definido na configuração do modelo
embedding
Modelos.
2. configuração do agente
Essa é a principal funcionalidade do projeto, criando agentes por meio de uma interface visual.
- Criação de um agente:
- Clique na guia [Agent Configuration] e, em seguida, clique no cartão [Add Agent] para acessar a página de configuração.
- A página de configuração é dividida em seções à esquerda e à direita: à esquerda está a seçãoárvore de recursosque contém todos os nós e agentes disponíveis; à direita está otela (superfície de pintura do artista)usado para criar fluxos de trabalho.
- Processo de construção:
- Arrastar e soltar nósArraste e solte os nós necessários (por exemplo, "Start Node", "LLM Node", "Input Node") da árvore de recursos à esquerda para a tela à direita.
- Nós de configuração:
- nó inicial: Deve haver um e somente um para cada Agente. Aqui você pode definir ovariável de estadoPor exemplo, o padrão
messages
para armazenar o histórico de diálogos, você também pode adicionar variáveis personalizadas (por exemplocounter
(para contagem). - Nó do LLMDescrição: Esse é o núcleo da ativação do diálogo inteligente. É necessário selecionar um
llm
e pode escrever Prompts do sistema e Prompts do usuário. Os prompts podem usar variáveis de estado com a sintaxe{{variable_name}}
talvez{{messages['node_name']}}
. - nó de entradaé usado para receber entradas do usuário e armazená-las na variável de estado especificada (geralmente a variável
messages
).
- nó inicial: Deve haver um e somente um para cada Agente. Aqui você pode definir ovariável de estadoPor exemplo, o padrão
- nó de conexão:
- lado padrãoCaminho de execução: Arraste o ponto à direita de um nó até o ponto à esquerda de outro nó para criar um caminho de execução. Isso significa que, depois que o nó de origem for executado, o nó de destino será executado em seguida.
- lado condicionalCondição de execução: Depois que uma conexão é feita, uma condição de execução pode ser definida para a borda. Essa expressão de condição pode ser avaliada por meio de variáveis de estado. Por exemplo, quando uma variável de contador
{{counter}}
O próximo nó é executado somente se o valor do nó for menor que 5. Isso possibilita a criação de loops e lógica de ramificação.
- Operação e comissionamento:
- Quando a configuração estiver concluída, clique no botão [Salvar] na parte superior da tela.
- Clique no botão [Run] e o Agent será iniciado.
- Você pode interagir com o agente e ver os resultados da execução no chatbot no canto inferior direito da interface.
cenário do aplicativo
- Atendimento ao cliente inteligente e bots de perguntas e respostas
Um processo pode ser construído: primeiro, uma pergunta do usuário é recebida, depois as informações relevantes são recuperadas da base de conhecimento pelo nó Vector Recall e, por fim, as informações recuperadas, juntamente com a pergunta do usuário, são fornecidas ao nó LLM para gerar a resposta final. - Geração automatizada de conteúdo
Um Poet Agent pode ser projetado para gerar uma linha de um poema a partir de um "nó LLM" e, em seguida, percorrê-lo usando "nós contadores" e "bordas condicionais" para gerar automaticamente um poema completo. Um poema completo pode ser gerado automaticamente por meio de um looping através de "nós contadores" e "bordas condicionais". - Intelligentsia para processamento de tarefas complexas
UtilizarSupervisorAgent
Dessa forma, um agente mestre pode decidir chamar outros subagentes especializados em diferentes tarefas (por exemplo, consulta de dados, processamento de arquivos) de acordo com as instruções do usuário para colaborar em uma tarefa complexa. - Geração e execução de código
Os usuários podem apresentar um requisito de cálculo, gerar código Python por meio do "nó LLM" e, em seguida, passar o código para o "nó executor de código" para ser executado e retornar o resultado para obter um assistente de programação simples.
QA
- Qual é a diferença entre o Lang-Agent e outras plataformas de agentes (por exemplo, Dify, Coze)?
O conceito de design do Lang-Agent está mais próximo do ComfyUI, que não fornece uma plataforma de aplicativos totalmente encapsulada, mas incentiva os usuários a ampliar a funcionalidade desenvolvendo nós personalizados de acordo com suas necessidades comerciais. Sua principal vantagem é que ele consegue um controle de processo e uma transferência de dados mais flexíveis por meio de "variáveis de estado", proporcionando uma programabilidade limitada, mas poderosa. - O que é uma "variável de estado"? O que ela faz?
Uma "variável de estado" pode ser entendida como um dicionário global durante a operação interna do agente. Ela pode ser usada para passar dados entre diferentes nós e também pode ser usada para controlar julgamentos lógicos em relação às condições. Por exemplo, você pode definir uma variável chamadacount
use o "nó contador" para adicionar um a ela cada vez que fizer um loop e, em seguida, use a "borda condicional" para determinar se a variável{{count}}
O fato de um determinado valor ser atingido ou não determina se o loop deve ser encerrado ou não. - Como adicionar um novo nó de função ao Lang-Agent?
Os desenvolvedores precisam estender tanto no front-end quanto no back-end. No front-end, um novo componente React precisa ser criado no diretório especificado (.tsx
) para definir a interface do nó e os parâmetros de entrada. No backend, um novo arquivo de classe Python precisa ser criado (.py
) para definir a lógica comercial do nó. O pseudocódigo detalhado e a estrutura de diretórios são fornecidos na documentação oficial. ReactAgent
responder cantandoSupervisorAgent
Qual é a diferença?ReactAgent
é um agente que permite que o modelo de linguagem grande invoque de forma autônoma ferramentas externas (Tools) para concluir tarefas que precisam ser predefinidas na configuração do MCP.SupervisorAgent
É um agente "supervisor" que não executa diretamente a tarefa em si, mas decide, com base em instruções, qual dos "agentes reutilizáveis" configurados deve ser chamado para concluir a tarefa.