Roy é uma alternativa leve ao autogen
para desenvolver sistemas multiagentes avançados usando modelos de linguagem. Visa simplificar e democratizar o desenvolvimento da inteligência coletiva emergente.
Agnóstico de modelo : use qualquer LLM, sem necessidade de APIs externas. O padrão é um modelo assistente-codificador-python quantizado de 4 bits para eficiência.
Modular e combinável : Roy decompõe as interações do agente em blocos de construção reutilizáveis - modelagem, recuperação, geração, execução.
Transparente e personalizável : cada método tem um propósito claro. Troque facilmente componentes ou adicione novos recursos.
git clone https://github.com/JosefAlbers/Roy
cd Roy
pip install -r requirements.txt
pip install -U transformers optimum accelerate auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
from roy import Roy
roy = Roy ()
Use modelos para estruturar conversas e fornecer contexto.
s = 'What date is today? Which big tech stock has the largest year-to-date gain this year? How much is the gain?'
roy . generate ( roy . format ( s ))
Aprimore a geração com conhecimento relevante.
s = 'Create a text to image generator.'
r = roy . retrieve ( s , n_topk = 3 , src = 'huggingface' )
[ roy . generate ( s ) for s in r ]
Os agentes colaboram em ciclos estreitos para refinar iterativamente os resultados de acordo com as especificações.
# Iterative multiturn chat style
s = "Create a secure and unique secret code word with a Python script that involves multiple steps to ensure the highest level of confidentiality and protection. n "
for i in range ( 2 ):
c = roy . generate ( s , prohibitions = [ 'input' ])
s += roy . execute ( c )
Compare e itere facilmente a arquitetura do seu modelo:
Componentes de troca : modelos de linguagem, formatos de prompt, arquiteturas de agentes, etc.
Teste em diversas tarefas : aritmética, codificação python, HumanEval da OpenAI etc.
Quantifique melhorias : veja como cada mudança afeta o desempenho geral.
from human_eval import evaluate
evaluate ( roy . generate )
Roy pretende facilitar o surgimento de sistemas multiagentes complexos e adaptativos. Inspira-se em conceitos biológicos e de IA para permitir a coordenação descentralizada e a aprendizagem contínua.
Sobrevivência do mais apto - Avaliar periodicamente e reter seletivamente agentes de alto desempenho com base na precisão, velocidade, etc. Os agentes se adaptam por meio de interações entre pares.
Mistura de especialistas - Designe a experiência dos agentes, monte equipes de especialistas de forma dinâmica e encaminhe tarefas para os especialistas ideais. Refine e aumente continuamente os especialistas.
Esses mecanismos facilitam o surgimento de coletivos de agentes capazes, adaptativos e eficientes.
Primitivos flexíveis para construir ecossistemas de agentes.
from roy import Roys
roys = Roys ()
# AutoFeedback
roys . create ( agents = { 'Coder' : 'i = execute(generate(i))' })
roys . start ( requests = { 'i' : 'Create a mobile application that can track the health of elderly people living alone in rural areas.' })
# Retrieval Augmented Generation
roys . create (
agents = {
'Retriever' : 'r = retrieve(i)' ,
'Generator' : 'o = generate(r)' ,
})
roys . start ( requests = { 'i' : 'Create a Deutsch to English translator.' })
# Providing a custom tool to one of the agents using lambda
roys . create (
agents = {
'Coder' : 'c = generate(i)' ,
'Proxy' : 'c = custom(execute(c))' ,
},
tools = { 'custom' : lambda x : f'Modify the code to address the error encountered: n n { x } ' if 'Error' in x else None })
roys . start ( requests = { 'i' : 'Compare the year-to-date gain for META and TESLA.' })
Roy está em desenvolvimento ativo. Aceitamos contribuições - sinta-se à vontade para abrir questões e PRs!
Se você achou este projeto útil ou interessante e deseja apoiar mais desses experimentos, sinta-se à vontade para me comprar um café!