
Ferramenta de código baixo para criar e coordenar rapidamente equipes multi-agentes

Aviso
Este projeto está atualmente sob desenvolvimento pesado. Esteja ciente de que podem ocorrer mudanças significativas.
Você já ouviu o ditado: 'Duas mentes são melhores que uma'? Isso também é verdade para os agentes. A tribo aproveita a estrutura Langgraph para permitir que você personalize e coordenasse equipes de agentes com facilidade. Ao dividir tarefas difíceis entre agentes que são bons em coisas diferentes, cada uma pode se concentrar no que faz de melhor. Isso torna a solução de problemas mais rápidos e melhores.
Ao se unir, os agentes podem enfrentar tarefas mais complexas. Aqui estão alguns exemplos do que eles podem fazer juntos:
E muitos mais!
Antes de implantá -lo, altere pelo menos os valores para:
SECRET_KEYFIRST_SUPERUSER_PASSWORDPOSTGRES_PASSWORDVocê pode (e deve) passá -los como variáveis de ambiente de segredos.
Algumas variáveis de ambiente no arquivo .env têm um valor padrão de changethis .
Você precisa alterá -los com uma chave secreta, para gerar chaves secretas, você pode executar o seguinte comando:
python -c " import secrets; print(secrets.token_urlsafe(32)) "Copie o conteúdo e use isso como senha / chave secreta. E execute isso novamente para gerar outra chave segura.
Levante -se e comece em minutos em sua máquina local.
Implante Tribe em seu servidor remoto.
Em um fluxo de trabalho seqüencial, seus agentes são organizados em uma sequência ordenada e executam tarefas uma após a outra. Cada tarefa pode depender da tarefa anterior. Isso é útil se você deseja que as tarefas sejam concluídas uma após a outra em uma sequência determinística.
Use isso se:
Em um fluxo de trabalho hierárquico, seus agentes são organizados em uma estrutura semelhante a uma equipe, composta por 'líder da equipe', 'membros da equipe' e até outros 'líderes da sub-equipe'. O líder da equipe divide a tarefa em tarefas menores e as delega para os membros da equipe. Depois que os membros da equipe concluirem essas tarefas, suas respostas serão passadas ao líder da equipe que optará por retornar a resposta ao usuário ou delegar mais tarefas.
Use isso se:
Habilidades são habilidades com as quais você pode equipar seus agentes para interagir com o mundo. Por exemplo, você pode fornecer ao seu agente a habilidade para verificar a condição climática atual ou pesquisar na Web as últimas notícias. Por padrão, a Tribe fornece três habilidades:
Você provavelmente desejará criar habilidades personalizadas, o que pode ser feito de duas maneiras: usando definições de função para solicitações HTTP simples ou escrevendo habilidades personalizadas na base de código.
Se sua habilidade envolver a execução de uma solicitação HTTP para buscar ou atualizar dados, o uso de definições de habilidade é a abordagem mais simples. Na tribo, comece navegando para a guia 'Habilidades' e clicando no botão 'Adicionar habilidade'. Você será solicitado a fornecer a definição de habilidade, que instrui seu agente sobre como executar a habilidade específica. Esta definição deve ser estruturada da seguinte maneira:
{
"url" : " https://example.com " ,
"method" : " GET " ,
"headers" : {},
"type" : " function " ,
"function" : {
"name" : " Your skill name " ,
"description" : " Your skill description " ,
"parameters" : {
"type" : " object " ,
"properties" : {
"param1" : {
"type" : " integer " ,
"description" : " Description of the first parameter "
},
"param2" : {
"type" : " string " ,
"enum" : [ " option1 " ],
"description" : " Description of the second parameter "
}
},
"required" : [ " param1 " , " param2 " ]
}
}
}| Chave | Descrição |
|---|---|
url | O URL do terminal para a chamada da API. |
method | O método HTTP usado para a solicitação. Pode POST GET PUT , PATCH ou DELETE . |
headers | Quaisquer cabeçalhos HTTP para incluir na solicitação. |
function | Contém detalhes sobre a habilidade: |
function > name | O nome da habilidade. Siga estas regras: Somente letras (AZ, AZ), números (0-9), sublinhamentos (_) e hífens (-) são permitidos; Deve ter entre 1 e 64 caracteres. |
function > description | Descreve a habilidade de informar o agente sobre seu uso. |
function > parameters | Detalhes sobre os parâmetros que a API aceita. |
properties > param | O nome do parâmetro de consulta ou corpo. Para métodos GET , este será um parâmetro de consulta. Para POST , PUT , PATCH e DELETE , estará no órgão de solicitação. |
param > type | Especifica o tipo do parâmetro, que pode ser string , number , integer ou boolean . |
param > description | Fornece contexto sobre o objetivo do parâmetro. |
param > enum | Opcionalmente, inclua uma matriz para restringir o agente para selecionar os valores predefinidos. |
parameters > required | Liste os parâmetros necessários, garantindo que eles sejam sempre incluídos na solicitação da API. |
Para tarefas mais complexas que se estendem além das solicitações HTTP simples, o Langchain permite que você desenvolva ferramentas mais avançadas. Você pode integrar essas ferramentas à tribo adicionando -as ao dicionário managed_skills . Para um exemplo prático, consulte a ferramenta de calculadora de demonstração. Para aprender a criar uma ferramenta Langchain, consulte a documentação deles.
Depois de criar uma nova ferramenta, reinicie o aplicativo para garantir que a ferramenta seja carregada corretamente no banco de dados. Da mesma forma, se você precisar remover uma ferramenta, basta excluí -la do dicionário managed_skills e reiniciar o aplicativo para garantir que ele seja removido do banco de dados. Observe que as ferramentas criadas dessa maneira estão disponíveis para todos os usuários em seu aplicativo.
O RAG é uma técnica para aumentar o conhecimento de seus agentes com dados adicionais. Os agentes podem raciocinar sobre uma ampla gama de tópicos, mas seu conhecimento é limitado aos dados públicos até o momento em que foram treinados. Se você deseja que seus agentes raciocinam sobre dados privados, a Tribe permite fazer upload de seus dados e selecione quais dados incluir na base de conhecimento do seu agente. Isso permite que seus agentes raciocinam com os dados selecionados e permite criar agentes diferentes com conhecimento especializado.
Por padrão, a Tribe usa BAAI/bge-small-en-v1.5 , que é um modelo de incorporação em inglês leve e rápido que é melhor que OpenAI Ada-002 . Se seus documentos forem multilíngues ou exigirem incorporação de imagem, convém usar outro modelo de incorporação. Você pode fazer isso facilmente alterando DENSE_EMBEDDING_MODEL no seu arquivo .env :
# See the list of supported models: https://qdrant.github.io/fastembed/examples/Supported_Models/
DENSE_EMBEDDING_MODEL=BAAI/bge-small-en-v1.5 # Change this Aviso
Se seus modelos de incorporação existentes e novos tiverem dimensões vetoriais diferentes, talvez seja necessário recriar sua coleção QDRANT. Você pode excluir a coleção através do painel QDRANT em http: //qdrant.localhost/dashboard. Portanto, é melhor planejar a frente, qual modelo de incorporação é mais adequado para seus fluxos de trabalho.
Os modelos de código aberto estão se tornando mais baratos e mais fáceis de executar, e alguns até correspondem ao desempenho dos modelos fechados. Você pode preferir usá -los para seus benefícios de privacidade e custo. Se você estiver executando a Tribo localmente e deseja usar modelos de código aberto, eu recomendaria o Ollama para sua facilidade de uso.
ollama .llama3.1:8b ) no campo de entrada do modelo.http://host.docker.internal:11434 , que mapeia para https://localhost:11434 . Essa configuração permite que a tribo se comunique com o anfitrião de Ollama padrão. Se a sua configuração usar um host diferente, especifique o novo host no campo de entrada 'URL base'. Existem centenas de modelos de código aberto na biblioteca de Ollama adequados para diferentes tarefas. Veja como escolher o certo para o seu caso de uso:
Llama3.1 , Mistral Nemo , Firefunction V2 ou Command-R + e outros que suportam a chamada de ferramentas.gemma2 ou phi3 . Se você não planeja usar o Ollama, ainda pode executar modelos de código aberto compatíveis com a API de conclusão de bate -papo do OpenAI.
Passos:
Faça login na tribo usando o email e a senha definida durante a etapa de instalação.

Navegue até a página 'equipes' e clique em 'Adicionar equipe'. Digite um nome para sua equipe e clique em 'Salvar'.

Crie dois membros adicionais da equipe, arrastando a alça do nó do líder da equipe.

Atualize o primeiro membro da equipe, conforme mostrado.

Atualize o segundo membro da equipe, conforme mostrado.

Vá para a guia 'Chat' e envie uma pergunta à sua equipe para ver como eles respondem.

Parabéns! Você construiu e se comunicou com sucesso com sua primeira equipe multi-agente na tribo.
O membro da sua equipe pode fazer mais, fornecendo um conjunto de habilidades. Adicione uma habilidade ao seu foodie.

Agora, quando você fizer uma pergunta ao seu foodie, ele pesquisará na Web mais informações atualizadas!

Crie uma nova equipe e selecione o fluxo de trabalho 'seqüencial'.

Arraste e solte para criar outro membro da equipe abaixo do 'trabalhador0'.

Atualize o primeiro membro da equipe, conforme mostrado. Forneça a habilidade 'Wikipedia' para esse membro da equipe.

Atualize o segundo membro da equipe, conforme mostrado.

Vá para a guia 'Chat' e envie uma pergunta à sua equipe para ver como eles respondem. Observe que o pesquisador usará a Wikipedia para fazer sua pesquisa. Muito legal!

Você pode exigir que os membros da sua equipe aguardem sua aprovação antes de executar suas habilidades. Adicione a habilidade 'DuckDuckgo-Search' e selecione 'requer aprovação' no pesquisador.

Agora, antes que o pesquisador execute suas habilidades, ele solicitará sua aprovação. Se a pesquisa do pesquisador não for o que você queria, rejeite a ação e inclua uma mensagem opcional para fornecer orientação.

Depois que o pesquisador ajusta a pesquisa para atender aos seus requisitos, você pode aprovar a ação. 
O pesquisador seguirá para executar suas habilidades conforme instruído. 
A Tribo é de origem aberta e é bem -vindo contribuições da comunidade! Confira nosso guia de contribuição para começar.
Algumas maneiras de contribuir:
Verifique a liberação do arquivo-notes.md.
A tribo é licenciada nos termos da licença do MIT.