Skip to content

Instantly share code, notes, and snippets.

@alonsoir
Last active February 5, 2025 11:06
Show Gist options
  • Save alonsoir/390dcdf4788937134411b2ee6743d14b to your computer and use it in GitHub Desktop.
Save alonsoir/390dcdf4788937134411b2ee6743d14b to your computer and use it in GitHub Desktop.
#open_deep_researcher.py
!pip install nest_asyncio
import nest_asyncio
nest_asyncio.apply()
import asyncio
import aiohttp
import json
# =======================
# Configuration Constants
# =======================
OPENROUTER_API_KEY = "OPENROUTER_API_KEY" # Replace with your OpenRouter API key
SERPAPI_API_KEY = "SERPAPI_API_KEY" # Replace with your SERPAPI API key
JINA_API_KEY = "JINA_API_KEY" # Replace with your JINA API key
# Endpoints
OPENROUTER_URL = "https://openrouter.ai/api/v1/chat/completions"
SERPAPI_URL = "https://serpapi.com/search"
JINA_BASE_URL = "https://r.jina.ai/"
# Default LLM model (can be changed if desired)
DEFAULT_MODEL = "anthropic/claude-3.5-haiku"
# ============================
# Asynchronous Helper Functions
# ============================
async def call_openrouter_async(session, messages, model=DEFAULT_MODEL):
"""
Asynchronously call the OpenRouter chat completion API with the provided messages.
Returns the content of the assistant’s reply.
"""
headers = {
"Authorization": f"Bearer {OPENROUTER_API_KEY}",
"X-Title": "OpenDeepResearcher, by Matt Shumer",
"Content-Type": "application/json"
}
payload = {
"model": model,
"messages": messages
}
try:
async with session.post(OPENROUTER_URL, headers=headers, json=payload) as resp:
if resp.status == 200:
result = await resp.json()
try:
return result['choices'][0]['message']['content']
except (KeyError, IndexError) as e:
print("Unexpected OpenRouter response structure:", result)
return None
else:
text = await resp.text()
print(f"OpenRouter API error: {resp.status} - {text}")
return None
except Exception as e:
print("Error calling OpenRouter:", e)
return None
async def generate_search_queries_async(session, user_query):
"""
Ask the LLM to produce up to four precise search queries (in Python list format)
based on the user’s query.
"""
prompt = (
"You are an expert research assistant. Given the user's query, generate up to four distinct, "
"precise search queries that would help gather comprehensive information on the topic. "
"Return only a Python list of strings, for example: ['query1', 'query2', 'query3']."
)
messages = [
{"role": "system", "content": "You are a helpful and precise research assistant."},
{"role": "user", "content": f"User Query: {user_query}\n\n{prompt}"}
]
response = await call_openrouter_async(session, messages)
if response:
try:
# Expect exactly a Python list (e.g., "['query1', 'query2']")
search_queries = eval(response)
if isinstance(search_queries, list):
return search_queries
else:
print("LLM did not return a list. Response:", response)
return []
except Exception as e:
print("Error parsing search queries:", e, "\nResponse:", response)
return []
return []
async def perform_search_async(session, query):
"""
Asynchronously perform a Google search using SERPAPI for the given query.
Returns a list of result URLs.
"""
params = {
"q": query,
"api_key": SERPAPI_API_KEY,
"engine": "google"
}
try:
async with session.get(SERPAPI_URL, params=params) as resp:
if resp.status == 200:
results = await resp.json()
if "organic_results" in results:
links = [item.get("link") for item in results["organic_results"] if "link" in item]
return links
else:
print("No organic results in SERPAPI response.")
return []
else:
text = await resp.text()
print(f"SERPAPI error: {resp.status} - {text}")
return []
except Exception as e:
print("Error performing SERPAPI search:", e)
return []
async def fetch_webpage_text_async(session, url):
"""
Asynchronously retrieve the text content of a webpage using Jina.
The URL is appended to the Jina endpoint.
"""
full_url = f"{JINA_BASE_URL}{url}"
headers = {
"Authorization": f"Bearer {JINA_API_KEY}"
}
try:
async with session.get(full_url, headers=headers) as resp:
if resp.status == 200:
return await resp.text()
else:
text = await resp.text()
print(f"Jina fetch error for {url}: {resp.status} - {text}")
return ""
except Exception as e:
print("Error fetching webpage text with Jina:", e)
return ""
async def is_page_useful_async(session, user_query, page_text):
"""
Ask the LLM if the provided webpage content is useful for answering the user's query.
The LLM must reply with exactly "Yes" or "No".
"""
prompt = (
"You are a critical research evaluator. Given the user's query and the content of a webpage, "
"determine if the webpage contains information relevant and useful for addressing the query. "
"Respond with exactly one word: 'Yes' if the page is useful, or 'No' if it is not. Do not include any extra text."
)
messages = [
{"role": "system", "content": "You are a strict and concise evaluator of research relevance."},
{"role": "user", "content": f"User Query: {user_query}\n\nWebpage Content (first 20000 characters):\n{page_text[:20000]}\n\n{prompt}"}
]
response = await call_openrouter_async(session, messages)
if response:
answer = response.strip()
if answer in ["Yes", "No"]:
return answer
else:
# Fallback: try to extract Yes/No from the response.
if "Yes" in answer:
return "Yes"
elif "No" in answer:
return "No"
return "No"
async def extract_relevant_context_async(session, user_query, search_query, page_text):
"""
Given the original query, the search query used, and the page content,
have the LLM extract all information relevant for answering the query.
"""
prompt = (
"You are an expert information extractor. Given the user's query, the search query that led to this page, "
"and the webpage content, extract all pieces of information that are relevant to answering the user's query. "
"Return only the relevant context as plain text without commentary."
)
messages = [
{"role": "system", "content": "You are an expert in extracting and summarizing relevant information."},
{"role": "user", "content": f"User Query: {user_query}\nSearch Query: {search_query}\n\nWebpage Content (first 20000 characters):\n{page_text[:20000]}\n\n{prompt}"}
]
response = await call_openrouter_async(session, messages)
if response:
return response.strip()
return ""
async def get_new_search_queries_async(session, user_query, previous_search_queries, all_contexts):
"""
Based on the original query, the previously used search queries, and all the extracted contexts,
ask the LLM whether additional search queries are needed. If yes, return a Python list of up to four queries;
if the LLM thinks research is complete, it should return "<done>".
"""
context_combined = "\n".join(all_contexts)
prompt = (
"You are an analytical research assistant. Based on the original query, the search queries performed so far, "
"and the extracted contexts from webpages, determine if further research is needed. "
"If further research is needed, provide up to four new search queries as a Python list (for example, "
"['new query1', 'new query2']). If you believe no further research is needed, respond with exactly <done>."
"\nOutput only a Python list or the token <done> without any additional text."
)
messages = [
{"role": "system", "content": "You are a systematic research planner."},
{"role": "user", "content": f"User Query: {user_query}\nPrevious Search Queries: {previous_search_queries}\n\nExtracted Relevant Contexts:\n{context_combined}\n\n{prompt}"}
]
response = await call_openrouter_async(session, messages)
if response:
cleaned = response.strip()
if cleaned == "<done>":
return "<done>"
try:
new_queries = eval(cleaned)
if isinstance(new_queries, list):
return new_queries
else:
print("LLM did not return a list for new search queries. Response:", response)
return []
except Exception as e:
print("Error parsing new search queries:", e, "\nResponse:", response)
return []
return []
async def generate_final_report_async(session, user_query, all_contexts):
"""
Generate the final comprehensive report using all gathered contexts.
"""
context_combined = "\n".join(all_contexts)
prompt = (
"You are an expert researcher and report writer. Based on the gathered contexts below and the original query, "
"write a comprehensive, well-structured, and detailed report that addresses the query thoroughly. "
"Include all relevant insights and conclusions without extraneous commentary."
)
messages = [
{"role": "system", "content": "You are a skilled report writer."},
{"role": "user", "content": f"User Query: {user_query}\n\nGathered Relevant Contexts:\n{context_combined}\n\n{prompt}"}
]
report = await call_openrouter_async(session, messages)
return report
async def process_link(session, link, user_query, search_query):
"""
Process a single link: fetch its content, judge its usefulness, and if useful, extract the relevant context.
"""
print(f"Fetching content from: {link}")
page_text = await fetch_webpage_text_async(session, link)
if not page_text:
return None
usefulness = await is_page_useful_async(session, user_query, page_text)
print(f"Page usefulness for {link}: {usefulness}")
if usefulness == "Yes":
context = await extract_relevant_context_async(session, user_query, search_query, page_text)
if context:
print(f"Extracted context from {link} (first 200 chars): {context[:200]}")
return context
return None
# =========================
# Main Asynchronous Routine
# =========================
async def async_main():
user_query = input("Enter your research query/topic: ").strip()
iter_limit_input = input("Enter maximum number of iterations (default 10): ").strip()
iteration_limit = int(iter_limit_input) if iter_limit_input.isdigit() else 10
aggregated_contexts = [] # All useful contexts from every iteration
all_search_queries = [] # Every search query used across iterations
iteration = 0
async with aiohttp.ClientSession() as session:
# ----- INITIAL SEARCH QUERIES -----
new_search_queries = await generate_search_queries_async(session, user_query)
if not new_search_queries:
print("No search queries were generated by the LLM. Exiting.")
return
all_search_queries.extend(new_search_queries)
# ----- ITERATIVE RESEARCH LOOP -----
while iteration < iteration_limit:
print(f"\n=== Iteration {iteration + 1} ===")
iteration_contexts = []
# For each search query, perform SERPAPI searches concurrently.
search_tasks = [perform_search_async(session, query) for query in new_search_queries]
search_results = await asyncio.gather(*search_tasks)
# Aggregate all unique links from all search queries of this iteration.
# Map each unique link to the search query that produced it.
unique_links = {}
for idx, links in enumerate(search_results):
query = new_search_queries[idx]
for link in links:
if link not in unique_links:
unique_links[link] = query
print(f"Aggregated {len(unique_links)} unique links from this iteration.")
# Process each link concurrently: fetch, judge, and extract context.
link_tasks = [
process_link(session, link, user_query, unique_links[link])
for link in unique_links
]
link_results = await asyncio.gather(*link_tasks)
# Collect non-None contexts.
for res in link_results:
if res:
iteration_contexts.append(res)
if iteration_contexts:
aggregated_contexts.extend(iteration_contexts)
else:
print("No useful contexts were found in this iteration.")
# ----- ASK THE LLM IF MORE SEARCHES ARE NEEDED -----
new_search_queries = await get_new_search_queries_async(session, user_query, all_search_queries, aggregated_contexts)
if new_search_queries == "<done>":
print("LLM indicated that no further research is needed.")
break
elif new_search_queries:
print("LLM provided new search queries:", new_search_queries)
all_search_queries.extend(new_search_queries)
else:
print("LLM did not provide any new search queries. Ending the loop.")
break
iteration += 1
# ----- FINAL REPORT -----
print("\nGenerating final report...")
final_report = await generate_final_report_async(session, user_query, aggregated_contexts)
print("\n==== FINAL REPORT ====\n")
print(final_report)
def main():
asyncio.run(async_main())
if __name__ == "__main__":
main()

output.md

OUTPUT open_deep_researcher.py:

Enter your research query/topic: si quisiera empezar a programar usando agentes distribuidos, cual es la mejor opción? Enter maximum number of iterations (default 10):

=== Iteration 1 === Aggregated 38 unique links from this iteration. Fetching content from: https://www.dotcom-monitor.com/blog/es/las-20-mejores-herramientas-de-monitoreo-de-servidores-de-2023/ Fetching content from: https://nocodestartup.io/es/como-crear-agentes-de-ia-explorando-herramientas-y-arquitecturas/ Fetching content from: https://tldv.io/es/blog/best-agency-software/ Fetching content from: https://kinsta.com/es/blog/herramientas-devops/ Fetching content from: https://www.acronis.com/es-es/blog/posts/monitoring-tools/ Fetching content from: https://network-king.net/es/analisis-de-las-9-mejores-herramientas-de-monitoreo-de-servidores/ Fetching content from: https://clickup.com/es-ES/blog/55994/programacion-de-proyectos-software/ Fetching content from: https://www.ambit-bst.com/blog/las-10-mejores-herramientas-itsm Fetching content from: https://www.startechup.com/es/blog/microservices-tools/ Fetching content from: https://thedigitalprojectmanager.com/es/tools/software-programacion-proyectos/ Fetching content from: https://es.wikipedia.org/wiki/Sistema_multiagente Fetching content from: https://core.ac.uk/download/pdf/15778237.pdf Fetching content from: https://www.youtube.com/watch?v=OxCQUY6trLk Fetching content from: https://webs.um.es/juanbot/miwiki/lib/exe/fetch.php?media=clase_master_pavon1.pdf Fetching content from: http://sedici.unlp.edu.ar/bitstream/handle/10915/22950/Documento_completo.pdf?sequence=1&isAllowed=y Fetching content from: https://www.uv.mx/personal/aguerra/files/2019/04/sma-slides-06.pdf Fetching content from: http://grasia.fdi.ucm.es/jorge/tesis.pdf Fetching content from: https://www.cs.us.es/~fsancho/Blog/posts/Sistemas_Multiagente_y_Simulacion.md.html Fetching content from: http://journal.iberamia.org/public/ia-old/articles/604/article%20(1).pdf Fetching content from: https://www.researchgate.net/publication/277265363_Diseno_e_implementacion_de_un_sistema_multiagente_para_la_identificacion_y_control_de_procesos Fetching content from: https://www.reddit.com/r/AI_Agents/comments/1ho3uie/ai_agent_frameworks_that_support_distributed/?tl=es-es Fetching content from: https://www.inesdi.com/blog/Frameworks-de-IA-que-debes-conocer/ Fetching content from: https://www.datacamp.com/es/blog/top-ai-frameworks-and-libraries Fetching content from: https://botpress.com/es/blog/ai-agent-frameworks Fetching content from: https://dev.to/carlos_alarcn_4318831566/swarm-el-framework-experimental-de-openai-para-orquestacion-de-agentes-4d9h Fetching content from: https://openaccess.uoc.edu/bitstream/10609/136328/3/Gestio%C2%BFn%20de%20big%20data%2C%20tecnologi%C2%BFas_Mo%C2%BFdulo2_Big%20data%20frameworks.pdf Fetching content from: https://ceeivalencia.emprenemjunts.es/?op=8&n=28657 Fetching content from: https://es.wikipedia.org/wiki/Agente_(software) Fetching content from: https://www.thoughtworks.com/es-cl/radar/languages-and-frameworks Fetching content from: http://webdiis.unizar.es/asignaturas/ISBC/lecciones/9.Agentes.pdf Fetching content from: https://www.dsi.fceia.unr.edu.ar/images/TIA_Agentes_2019.pdf Fetching content from: https://es.scribd.com/document/386520717/Introduccion-a-los-Agentes-Inteligentes-pdf Fetching content from: http://sedici.unlp.edu.ar/bitstream/10915/22205/1/10-Sistemas+Distribuidos+y+Agentes.pdf Fetching content from: https://www.recimundo.com/index.php/es/article/download/819/1456?inline=1 Fetching content from: https://nlaredo.tecnm.mx/takeyas/apuntes/Inteligencia%20Artificial/Apuntes/tareas_alumnos/Agentes_Inteligentes/Agentes_Inteligentes(2005-II).pdf Fetching content from: https://cibernetica.wordpress.com/2007/05/31/inteligencia-artificial-distribuida-1/ Fetching content from: https://www.uaeh.edu.mx/investigacion/icbi/LI_GesFactHum/Martha_Rivera/1.pdf Fetching content from: https://16khs695mehu6grk1ykq.institutomilitar.com/IA%20-%20Tema1_Introduccion.pdf Page usefulness for https://www.datacamp.com/es/blog/top-ai-frameworks-and-libraries: Yes Page usefulness for https://www.dotcom-monitor.com/blog/es/las-20-mejores-herramientas-de-monitoreo-de-servidores-de-2023/: No Page usefulness for https://cibernetica.wordpress.com/2007/05/31/inteligencia-artificial-distribuida-1/: Yes Page usefulness for https://www.inesdi.com/blog/Frameworks-de-IA-que-debes-conocer/: No Page usefulness for https://www.uaeh.edu.mx/investigacion/icbi/LI_GesFactHum/Martha_Rivera/1.pdf: Yes Page usefulness for https://www.ambit-bst.com/blog/las-10-mejores-herramientas-itsm: No Page usefulness for https://www.researchgate.net/publication/277265363_Diseno_e_implementacion_de_un_sistema_multiagente_para_la_identificacion_y_control_de_procesos: Yes Page usefulness for https://es.scribd.com/document/386520717/Introduccion-a-los-Agentes-Inteligentes-pdf: No Page usefulness for https://www.recimundo.com/index.php/es/article/download/819/1456?inline=1: Yes Page usefulness for https://16khs695mehu6grk1ykq.institutomilitar.com/IA%20-%20Tema1_Introduccion.pdf: Yes Jina fetch error for https://www.dsi.fceia.unr.edu.ar/images/TIA_Agentes_2019.pdf: 422 - {"data":null,"cause":{},"code":422,"name":"AssertionFailureError","status":42206,"message":"Failed to goto https://www.dsi.fceia.unr.edu.ar/images/TIA_Agentes_2019.pdf: Error: net::ERR_CERT_DATE_INVALID at https://www.dsi.fceia.unr.edu.ar/images/TIA_Agentes_2019.pdf","readableMessage":"AssertionFailureError: Failed to goto https://www.dsi.fceia.unr.edu.ar/images/TIA_Agentes_2019.pdf: Error: net::ERR_CERT_DATE_INVALID at https://www.dsi.fceia.unr.edu.ar/images/TIA_Agentes_2019.pdf"} Page usefulness for http://journal.iberamia.org/public/ia-old/articles/604/article%20(1).pdf: Yes Page usefulness for https://es.wikipedia.org/wiki/Agente_(software): Yes Page usefulness for https://www.reddit.com/r/AI_Agents/comments/1ho3uie/ai_agent_frameworks_that_support_distributed/?tl=es-es: Yes Page usefulness for https://ceeivalencia.emprenemjunts.es/?op=8&n=28657: No Page usefulness for https://www.acronis.com/es-es/blog/posts/monitoring-tools/: No Page usefulness for https://botpress.com/es/blog/ai-agent-frameworks: Yes Page usefulness for https://thedigitalprojectmanager.com/es/tools/software-programacion-proyectos/: No Page usefulness for http://webdiis.unizar.es/asignaturas/ISBC/lecciones/9.Agentes.pdf: Yes Page usefulness for http://sedici.unlp.edu.ar/bitstream/handle/10915/22950/Documento_completo.pdf?sequence=1&isAllowed=y: Yes Page usefulness for https://webs.um.es/juanbot/miwiki/lib/exe/fetch.php?media=clase_master_pavon1.pdf: Yes Page usefulness for https://network-king.net/es/analisis-de-las-9-mejores-herramientas-de-monitoreo-de-servidores/: No Page usefulness for https://dev.to/carlos_alarcn_4318831566/swarm-el-framework-experimental-de-openai-para-orquestacion-de-agentes-4d9h: Yes Page usefulness for https://nocodestartup.io/es/como-crear-agentes-de-ia-explorando-herramientas-y-arquitecturas/: Yes Extracted context from https://www.datacamp.com/es/blog/top-ai-frameworks-and-libraries (first 200 chars): Basado en el contenido de la página web, no hay información específica sobre frameworks de agentes distribuidos. El artículo se centra en marcos generales de IA y aprendizaje automático como:

Recommended Technology Stack:

Sistemas Multi-Agente: Se mencionan como un área importante dentro de la Inteligencia Artificial, donde agentes Extracted context from https://www.researchgate.net/publication/277265363_Diseno_e_implementacion_de_un_sistema_multiagente_para_la_identificacion_y_control_de_procesos (first 200 chars): Based on the content, here are the key points relevant to starting programming with distributed agents:

  1. The article recommends using FIPA (Foundation for Intelligent Physical Agents) specification Extracted context from https://www.recimundo.com/index.php/es/article/download/819/1456?inline=1 (first 200 chars): Para comenzar a programar usando agentes distribuidos, algunas opciones y consideraciones relevantes son:

Opciones de desarrollo de agentes:

The field of Distributed Artificial Intelligence (IAD) has two main areas of developmen Page usefulness for https://www.uv.mx/personal/aguerra/files/2019/04/sma-slides-06.pdf: Yes Extracted context from https://dev.to/carlos_alarcn_4318831566/swarm-el-framework-experimental-de-openai-para-orquestacion-de-agentes-4d9h (first 200 chars): Basado en el contenido de la página, aquí hay información relevante para alguien que quiere empezar a programar usando agentes distribuidos:

Swarm de OpenAI es un framework experimental para orquesta Extracted context from https://botpress.com/es/blog/ai-agent-frameworks (first 200 chars): Para empezar a programar usando agentes distribuidos, algunas de las mejores opciones gratuitas y de código abierto son:

  1. Botpress: Una plataforma para crear agentes de IA con diseño visual de fluj Extracted context from https://es.wikipedia.org/wiki/Agente_(software) (first 200 chars): Based on the Wikipedia article about software agents, here are the key insights for someone wanting to start programming distributed agents:

Distributed agents are software programs executed across d Extracted context from http://webdiis.unizar.es/asignaturas/ISBC/lecciones/9.Agentes.pdf (first 200 chars): Based on the document, here are the key points for someone wanting to start programming with distributed agents:

  1. Recommended Books for Getting Started:
  1. Herramientas de procesamiento de lenguaje natural (PLN):

Several methodologies and approaches exist for developing multi-agent systems:

  1. Ke Extracted context from http://sedici.unlp.edu.ar/bitstream/handle/10915/22950/Documento_completo.pdf?sequence=1&isAllowed=y (first 200 chars): Basado en el contenido del documento, aquí hay información relevante para empezar a programar usando agentes distribuidos:

Lenguaje Recomendado: Orgel

Características del lenguaje Orgel para sistema Extracted context from https://openaccess.uoc.edu/bitstream/10609/136328/3/Gestio%C2%BFn%20de%20big%20data%2C%20tecnologi%C2%BFas_Mo%C2%BFdulo2_Big%20data%20frameworks.pdf (first 200 chars): Based on the document, here are some relevant details for starting with distributed agent programming:

While the document doesn't directly discuss distributed agent frameworks, it provides insights i Extracted context from https://webs.um.es/juanbot/miwiki/lib/exe/fetch.php?media=clase_master_pavon1.pdf (first 200 chars): Based on the content, here are the key insights for starting to program using distributed agents:

Recommended Methodologies for Multi-Agent System Development:

  1. AAII (Australian Artificial Intellig Extracted context from https://www.cs.us.es/~fsancho/Blog/posts/Sistemas_Multiagente_y_Simulacion.md.html (first 200 chars): Basado en el contenido de la página web, aquí hay información relevante para comenzar a programar usando agentes distribuidos:

Los Sistemas Multi-Agente (MAS) son un dominio de investigación en infor Extracted context from https://es.wikipedia.org/wiki/Sistema_multiagente (first 200 chars): Para comenzar a programar usando agentes distribuidos, algunas opciones recomendadas son:

Frameworks y plataformas:

  1. Características principales de los sistemas multiagentes:
  1. Características clave de los agentes inteligentes:

The text discusses several platforms and methodologies for multi-agent systems (Sistemas Multi-Agente o Extracted context from https://www.uv.mx/personal/aguerra/files/2019/04/sma-slides-06.pdf (first 200 chars): Based on the content, here are the key points for someone wanting to start programming with distributed agents:

Jason is an excellent option for multi-agent systems programming:

  1. Jason is an inter Extracted context from https://core.ac.uk/download/pdf/15778237.pdf (first 200 chars): Based on the document, here are the key points for starting to program with distributed agents:

Recommended Java-based Multi-Agent Platforms:

  1. JADE (Java Agent Development Framework)
  • Simplifies LLM provided new search queries: ['frameworks para desarrollo de agentes distribuidos en python', 'mejores lenguajes de programación para sistemas multi-agente', 'herramientas open source para agentes de IA distribuidos', 'tutoriales para principiantes en sistemas multi-agente']

=== Iteration 2 === Aggregated 36 unique links from this iteration. Fetching content from: https://kinsta.com/es/blog/python-frameworks/ Fetching content from: https://docs.newrelic.com/es/docs/apm/agents/python-agent/configuration/python-agent-configuration/ Fetching content from: https://docs.newrelic.com/es/docs/apm/agents/python-agent/python-agent-api/guide-using-python-agent-api/ Fetching content from: https://www.inesdi.com/blog/Frameworks-de-IA-que-debes-conocer/ Fetching content from: https://www.youtube.com/watch?v=dWiGZNlO20g Fetching content from: https://core.ac.uk/download/pdf/15778237.pdf Fetching content from: https://riunet.upv.es/bitstream/handle/10251/106906/ALEMANY%20-%20Dise%C3%B1o%20e%20implementaci%C3%B3n%20de%20un%20simulador%20basado%20en%20agentes%20estilo%20JGOMAS%20en%20Python..pdf?sequence=1&isAllowed=y Fetching content from: https://jmortegac.medium.com/frameworks-de-machine-learning-open-source-5cbac67d38e5 Fetching content from: https://es.slideshare.net/slideshow/desarrollo-gil-de-sistemas-distribuidos-con-python-empleando-la-arquitectura-orientada-a-servicios/26401621 Fetching content from: https://bambu-mobile.com/frameworks-de-python/ Fetching content from: https://www.weblineindia.com/es/blog/top-100-programming-languages/ Fetching content from: https://www.datacamp.com/es/blog/ai-programming-languages Fetching content from: https://dpsframework.org/essays/cardoso/2021-01-27-Cardoso-Ferrando_es.html Fetching content from: https://www.uv.mx/personal/aguerra/files/2019/04/sma-slides-06.pdf Fetching content from: https://ciberseguridad.com/guias/prevencion-proteccion/lenguajes-programacion/ Fetching content from: https://www.hostinger.es/tutoriales/mejores-lenguajes-de-programacion Fetching content from: http://journal.iberamia.org/public/ia-old/articles/604/article%20(1).pdf Fetching content from: https://www.rumpelstinski.es/actualidad/5-lenguajes-de-programaci%C3%B3n-web-m%C3%A1s-usados-en-2023 Fetching content from: https://nocodestartup.io/es/como-crear-agentes-de-ia-explorando-herramientas-y-arquitecturas/ Fetching content from: https://www.ibm.com/es-es/think/insights/open-source-ai-tools Fetching content from: https://www.redhat.com/es/topics/ai/what-is-agentic-ai Fetching content from: https://www.cio.com/article/3490424/los-agentes-de-ia-transformaran-procesos-y-encararan-riesgos.html Fetching content from: https://www.datacamp.com/es/blog/top-ai-frameworks-and-libraries Fetching content from: https://www.reddit.com/r/webdev/comments/1i2tpmj/top_7_open_source_ai_agent_infrastructure_tools/?tl=es-es Fetching content from: https://nocodestartup.io/es/desafiar/ Fetching content from: https://cloud.google.com/products/agent-builder?hl=es Fetching content from: https://www.youtube.com/watch?v=OxCQUY6trLk Fetching content from: https://www.youtube.com/watch?v=CwOo82ftXV8 Fetching content from: https://www.youtube.com/watch?v=lo9xZWYJQeY Fetching content from: https://www.youtube.com/watch?v=fDCcDkKWabY Fetching content from: https://botpress.com/es/blog/multi-agent-systems Fetching content from: https://www.datacamp.com/es/tutorial/crew-ai Fetching content from: https://whaticket.com/blog/que-son-los-sistemas-multiagentes/ Fetching content from: https://www.youtube.com/watch?v=UgI6GWTfhZQ Fetching content from: https://es.linkedin.com/advice/1/what-current-trends-future-directions-multi-agent?lang=es Fetching content from: https://learn.microsoft.com/es-es/shows/make-azure-ai-real/working-with-agents-and-multi-agents-using-azure-openai Page usefulness for https://www.uv.mx/personal/aguerra/files/2019/04/sma-slides-06.pdf: Yes Page usefulness for https://www.inesdi.com/blog/Frameworks-de-IA-que-debes-conocer/: No Page usefulness for http://journal.iberamia.org/public/ia-old/articles/604/article%20(1).pdf: Yes Page usefulness for https://nocodestartup.io/es/como-crear-agentes-de-ia-explorando-herramientas-y-arquitecturas/: Yes Page usefulness for https://www.datacamp.com/es/blog/top-ai-frameworks-and-libraries: Yes Page usefulness for https://www.datacamp.com/es/blog/ai-programming-languages: Yes Page usefulness for https://www.weblineindia.com/es/blog/top-100-programming-languages/: No Page usefulness for https://learn.microsoft.com/es-es/shows/make-azure-ai-real/working-with-agents-and-multi-agents-using-azure-openai: No Page usefulness for https://www.rumpelstinski.es/actualidad/5-lenguajes-de-programaci%C3%B3n-web-m%C3%A1s-usados-en-2023: No Page usefulness for https://www.reddit.com/r/webdev/comments/1i2tpmj/top_7_open_source_ai_agent_infrastructure_tools/?tl=es-es: Yes Page usefulness for https://www.datacamp.com/es/tutorial/crew-ai: Yes Page usefulness for https://core.ac.uk/download/pdf/15778237.pdf: Yes Page usefulness for https://www.ibm.com/es-es/think/insights/open-source-ai-tools: Yes Page usefulness for https://docs.newrelic.com/es/docs/apm/agents/python-agent/python-agent-api/guide-using-python-agent-api/: No Page usefulness for https://dpsframework.org/essays/cardoso/2021-01-27-Cardoso-Ferrando_es.html: Yes Page usefulness for https://es.slideshare.net/slideshow/desarrollo-gil-de-sistemas-distribuidos-con-python-empleando-la-arquitectura-orientada-a-servicios/26401621: No Page usefulness for https://jmortegac.medium.com/frameworks-de-machine-learning-open-source-5cbac67d38e5: Yes Page usefulness for https://es.linkedin.com/advice/1/what-current-trends-future-directions-multi-agent?lang=es: Yes Page usefulness for https://bambu-mobile.com/frameworks-de-python/: Yes Page usefulness for https://botpress.com/es/blog/multi-agent-systems: Yes Page usefulness for https://nocodestartup.io/es/desafiar/: Yes Page usefulness for https://whaticket.com/blog/que-son-los-sistemas-multiagentes/: Yes Page usefulness for https://cloud.google.com/products/agent-builder?hl=es: Yes Page usefulness for https://www.cio.com/article/3490424/los-agentes-de-ia-transformaran-procesos-y-encararan-riesgos.html: Yes Page usefulness for https://www.youtube.com/watch?v=CwOo82ftXV8: No Extracted context from https://www.datacamp.com/es/blog/top-ai-frameworks-and-libraries (first 200 chars): Basado en el contenido de la página web, para comenzar a programar con agentes distribuidos, algunas opciones recomendadas son:

  1. Marcos Open Source para IA:

Jason is highly recommended as a programming environment for multi-agent systems:

  1. Jason is a Extracted context from https://nocodestartup.io/es/como-crear-agentes-de-ia-explorando-herramientas-y-arquitecturas/ (first 200 chars): Basándome en el contenido de la página, aquí hay algunas recomendaciones para empezar a programar usando agentes distribuidos:

Herramientas Open Source recomendadas para principiantes:

  1. Langchain: Extracted context from https://jmortegac.medium.com/frameworks-de-machine-learning-open-source-5cbac67d38e5 (first 200 chars): While the webpage doesn't directly discuss distributed agent frameworks in Python, it does mention one potentially relevant option for agent development:

OpenAI Gym is a toolkit for developing and co Extracted context from https://www.datacamp.com/es/blog/ai-programming-languages (first 200 chars): Based on the webpage content, here are the key points relevant to programming distributed agents:

Python seems to be the most recommended language for AI and multi-agent systems programming, with sev Page usefulness for https://docs.newrelic.com/es/docs/apm/agents/python-agent/configuration/python-agent-configuration/: No Extracted context from https://www.reddit.com/r/webdev/comments/1i2tpmj/top_7_open_source_ai_agent_infrastructure_tools/?tl=es-es (first 200 chars): Based on the webpage content, here are the best open-source options for starting with distributed AI agents:

  1. CopilotKit: A full-stack framework for building integrated AI assistants in application Page usefulness for https://www.youtube.com/watch?v=dWiGZNlO20g: No Page usefulness for https://kinsta.com/es/blog/python-frameworks/: No Extracted context from http://journal.iberamia.org/public/ia-old/articles/604/article%20(1).pdf (first 200 chars): Based on the content, here are the key insights for starting with distributed agent programming:

Several methodologies and approaches exist for developing multi-agent systems, with different programm Extracted context from https://www.datacamp.com/es/tutorial/crew-ai (first 200 chars): Basado en el contenido de la página web, aquí hay información relevante para alguien que quiere empezar a programar usando agentes distribuidos:

CrewAI es una excelente opción para principiantes en s Page usefulness for https://riunet.upv.es/bitstream/handle/10251/106906/ALEMANY%20-%20Dise%C3%B1o%20e%20implementaci%C3%B3n%20de%20un%20simulador%20basado%20en%20agentes%20estilo%20JGOMAS%20en%20Python..pdf?sequence=1&isAllowed=y: Yes Extracted context from https://dpsframework.org/essays/cardoso/2021-01-27-Cardoso-Ferrando_es.html (first 200 chars): Based on the content, here are the key points for someone wanting to start programming with distributed agents:

Several programming languages and approaches for multi-agent systems are discussed:

Page usefulness for https://www.youtube.com/watch?v=UgI6GWTfhZQ: No Page usefulness for https://www.redhat.com/es/topics/ai/what-is-agentic-ai: Yes Extracted context from https://www.ibm.com/es-es/think/insights/open-source-ai-tools (first 200 chars): Para comenzar a programar usando agentes distribuidos, basándome en el contenido del artículo, te recomiendo las siguientes herramientas open source de inteligencia artificial:

  1. TensorFlow
  1. FastAPI:

Sistemas multiagente (MAS) son una rama interdisciplinaria de la inteligencia artificial Extracted context from https://whaticket.com/blog/que-son-los-sistemas-multiagentes/ (first 200 chars): Para principiantes en sistemas multi-agente, el artículo ofrece algunas ideas clave:

Un sistema multiagente (SMA) es una solución tecnológica que integra múltiples agentes autónomos capaces de:

  • Tom Extracted context from https://botpress.com/es/blog/multi-agent-systems (first 200 chars): Basado en el contenido de la página, aquí hay información relevante para un principiante que quiere empezar a programar usando agentes distribuidos:

Sistemas Multiagente (MAS) Características Princip Extracted context from https://nocodestartup.io/es/desafiar/ (first 200 chars): Basado en el contenido de la página, aquí está la información relevante para comenzar a programar usando agentes distribuidos:

Dify es una herramienta open source destacada para crear agentes de IA d Page usefulness for https://www.youtube.com/watch?v=OxCQUY6trLk: No Extracted context from https://cloud.google.com/products/agent-builder?hl=es (first 200 chars): Basado en el contenido de la página, aquí hay algunas opciones relevantes para comenzar con agentes distribuidos:

  1. Vertex AI Agent Builder ofrece varias herramientas para crear agentes de IA distri Extracted context from https://core.ac.uk/download/pdf/15778237.pdf (first 200 chars): Para comenzar a programar usando agentes distribuidos en Python, el documento menciona varias plataformas, pero específicamente para Python destaca:

  2. JADE: Es un framework de desarrollo de agentes Extracted context from https://www.cio.com/article/3490424/los-agentes-de-ia-transformaran-procesos-y-encararan-riesgos.html (first 200 chars): Basado en el contenido, aquí están las mejores opciones para comenzar con agentes distribuidos de IA:

Herramientas open source recomendadas:

  • Microsoft AutoGen
  • crewAI
  • LlamaIndex

Consideraciones Extracted context from https://riunet.upv.es/bitstream/handle/10251/106906/ALEMANY%20-%20Dise%C3%B1o%20e%20implementaci%C3%B3n%20de%20un%20simulador%20basado%20en%20agentes%20estilo%20JGOMAS%20en%20Python..pdf?sequence=1&isAllowed=y (first 200 chars): Based on the document, here are the relevant details about distributed agent frameworks in Python:

  1. SPADE (Simplified Protocol for Agents Development Environment):
  • A Python-based agent platform

Page usefulness for https://ciberseguridad.com/guias/prevencion-proteccion/lenguajes-programacion/: No Extracted context from https://www.redhat.com/es/topics/ai/what-is-agentic-ai (first 200 chars): Basado en el contenido web, aquí hay información relevante para comenzar con agentes distribuidos:

Herramientas Open Source para Agentes Distribuidos:

  1. Red Hat Enterprise Linux® AI - Sistema basad LLM provided new search queries: ['python distributed agent frameworks comparison', 'open source multi-agent systems python', 'best distributed AI agent development platforms', 'introduction to multi-agent systems programming techniques']

=== Iteration 3 === Aggregated 32 unique links from this iteration. Fetching content from: https://getstream.io/blog/multiagent-ai-frameworks/ Fetching content from: https://www.kdnuggets.com/5-ai-agent-frameworks-compared?utm_source=flipboard&utm_content=topic/pythonscript Fetching content from: https://blog.context.ai/comparing-leading-multi-agent-frameworks/ Fetching content from: https://www.reddit.com/r/LocalLLaMA/comments/1dsxros/i_built_a_pr_agent_with_all_the_agentic/ Fetching content from: https://gyliu513.medium.com/battle-of-ai-agent-frameworks-82466004a989 Fetching content from: https://www.netguru.com/blog/python-frameworks-comparison Fetching content from: https://www.youtube.com/watch?v=5JGM9CLau9Y Fetching content from: https://stackoverflow.com/questions/1002002/what-is-the-best-approach-for-creating-an-agent-framework-in-python-for-flexible Fetching content from: https://www.panewslab.com/en/articledetails/ezbkfmwq.html Fetching content from: https://medium.com/@aydinKerem/which-ai-agent-framework-i-should-use-crewai-langgraph-majestic-one-and-pure-code-e16a6e4d9252 Fetching content from: https://medium.com/pythoneers/building-a-multi-agent-system-using-crewai-a7305450253e Fetching content from: https://pade.readthedocs.io/en/latest/ Fetching content from: https://www.reddit.com/r/LangChain/comments/1d81pvi/opensource_low_code_platform_to_build_and/ Fetching content from: https://github.com/awslabs/multi-agent-orchestrator Fetching content from: https://blog.dataiku.com/open-source-frameworks-for-llm-powered-agents Fetching content from: https://campustechnology.com/Articles/2024/11/08/Microsoft-Intros-Open-Source-Multi-Agent-AI-System.aspx Fetching content from: https://www.curotec.com/insights/top-ai-agent-frameworks/ Fetching content from: https://www.reddit.com/r/AI_Agents/comments/1ho3uie/ai_agent_frameworks_that_support_distributed/ Fetching content from: https://research.aimultiple.com/ai-agent-builders/ Fetching content from: https://odsc.medium.com/8-environments-and-platforms-for-multi-agent-systems-3de58a871685 Fetching content from: https://www.marketermilk.com/blog/best-ai-agent-platforms Fetching content from: https://www.openxcell.com/blog/ai-agent-frameworks/ Fetching content from: https://slashdot.org/software/ai-agent-builders/on-premise/ Fetching content from: https://www.wiley.com/en-us/An+Introduction+to+MultiAgent+Systems%2C+2nd+Edition-p-9780470519462 Fetching content from: https://www.researchgate.net/profile/Mohamed_Mourad_Lafifi/post/Route-planning-of-multiple-agent-systems-Robots/attachment/5dfe7fe43843b09383976be7/AS%3A838645057605632%401576959971422/download/Introduction+to+Multi-Agent+Programming.pdf Fetching content from: https://www.jasss.org/7/3/reviews/robertson.html Fetching content from: https://link.springer.com/chapter/10.1007/978-3-642-14435-6_1 Fetching content from: https://blog.mbma.com/default.aspx/uploaded-files/A00021/AnIntroductionToMultiagentSystems.pdf Fetching content from: https://www.ibm.com/think/topics/multiagent-system Fetching content from: https://mitpress.mit.edu/9780262044578/multi-agent-oriented-programming/ Fetching content from: https://gki.informatik.uni-freiburg.de/teaching/ws0910/imap/01_Introduction.pdf Fetching content from: https://www.researchgate.net/publication/226165258_An_Introduction_to_Multi-Agent_Systems Page usefulness for https://blog.mbma.com/default.aspx/uploaded-files/A00021/AnIntroductionToMultiagentSystems.pdf: No Page usefulness for https://blog.context.ai/comparing-leading-multi-agent-frameworks/: Yes Page usefulness for https://www.jasss.org/7/3/reviews/robertson.html: No Page usefulness for https://medium.com/pythoneers/building-a-multi-agent-system-using-crewai-a7305450253e: Yes Page usefulness for https://www.openxcell.com/blog/ai-agent-frameworks/: Yes Page usefulness for https://www.kdnuggets.com/5-ai-agent-frameworks-compared?utm_source=flipboard&utm_content=topic/pythonscript: Yes Page usefulness for https://gyliu513.medium.com/battle-of-ai-agent-frameworks-82466004a989: No Page usefulness for https://www.reddit.com/r/AI_Agents/comments/1ho3uie/ai_agent_frameworks_that_support_distributed/: No Page usefulness for https://medium.com/@aydinKerem/which-ai-agent-framework-i-should-use-crewai-langgraph-majestic-one-and-pure-code-e16a6e4d9252: Yes Page usefulness for https://odsc.medium.com/8-environments-and-platforms-for-multi-agent-systems-3de58a871685: Yes Page usefulness for https://mitpress.mit.edu/9780262044578/multi-agent-oriented-programming/: Yes Page usefulness for https://stackoverflow.com/questions/1002002/what-is-the-best-approach-for-creating-an-agent-framework-in-python-for-flexible: Yes Page usefulness for https://www.reddit.com/r/LocalLLaMA/comments/1dsxros/i_built_a_pr_agent_with_all_the_agentic/: Yes Page usefulness for https://campustechnology.com/Articles/2024/11/08/Microsoft-Intros-Open-Source-Multi-Agent-AI-System.aspx: No Page usefulness for https://www.reddit.com/r/LangChain/comments/1d81pvi/opensource_low_code_platform_to_build_and/: No Page usefulness for https://getstream.io/blog/multiagent-ai-frameworks/: Yes Page usefulness for https://www.ibm.com/think/topics/multiagent-system: Yes Page usefulness for https://link.springer.com/chapter/10.1007/978-3-642-14435-6_1: Yes Page usefulness for https://slashdot.org/software/ai-agent-builders/on-premise/: No Page usefulness for https://www.curotec.com/insights/top-ai-agent-frameworks/: Yes Page usefulness for https://www.marketermilk.com/blog/best-ai-agent-platforms: Yes Page usefulness for https://blog.dataiku.com/open-source-frameworks-for-llm-powered-agents: Yes Page usefulness for https://www.netguru.com/blog/python-frameworks-comparison: No Page usefulness for https://www.panewslab.com/en/articledetails/ezbkfmwq.html: Yes Page usefulness for https://www.researchgate.net/publication/226165258_An_Introduction_to_Multi-Agent_Systems: Yes Page usefulness for https://www.wiley.com/en-us/An+Introduction+to+MultiAgent+Systems%2C+2nd+Edition-p-9780470519462: Yes Page usefulness for https://www.youtube.com/watch?v=5JGM9CLau9Y: No Extracted context from https://medium.com/pythoneers/building-a-multi-agent-system-using-crewai-a7305450253e (first 200 chars): Based on the extracted webpage content, there isn't enough detailed information to comprehensively answer the query about the best open source multi-agent systems in Python. The webpage appears to be Page usefulness for https://github.com/awslabs/multi-agent-orchestrator: Yes Page usefulness for https://research.aimultiple.com/ai-agent-builders/: Yes Extracted context from https://blog.context.ai/comparing-leading-multi-agent-frameworks/ (first 200 chars): Para empezar a programar usando agentes distribuidos en Python, hay varias opciones de frameworks que puedes considerar:

  1. AutoGen: Un framework robusto y personalizable desarrollado por Microsoft. Page usefulness for https://www.researchgate.net/profile/Mohamed_Mourad_Lafifi/post/Route-planning-of-multiple-agent-systems-Robots/attachment/5dfe7fe43843b09383976be7/AS%3A838645057605632%401576959971422/download/Introduction+to+Multi-Agent+Programming.pdf: Yes Page usefulness for https://gki.informatik.uni-freiburg.de/teaching/ws0910/imap/01_Introduction.pdf: Yes Extracted context from https://stackoverflow.com/questions/1002002/what-is-the-best-approach-for-creating-an-agent-framework-in-python-for-flexible (first 200 chars): Based on the webpage content, here are the relevant distributed agent framework options for Python:

  2. Pyro: A distributed computing framework with powerful features for script distribution and remot Extracted context from https://www.kdnuggets.com/5-ai-agent-frameworks-compared?utm_source=flipboard&utm_content=topic/pythonscript (first 200 chars): Para comenzar a programar usando agentes distribuidos, aquí hay varias opciones en Python con sus características principales:

  3. LangGraph: Framework para sistemas de agentes con propiedades de esta Extracted context from https://odsc.medium.com/8-environments-and-platforms-for-multi-agent-systems-3de58a871685 (first 200 chars): Based on the query "si quisiera empezar a programar usando agentes distribuidos, cual es la mejor opción?", here are the most relevant platforms for getting started with distributed AI agents:

  4. Tri Extracted context from https://mitpress.mit.edu/9780262044578/multi-agent-oriented-programming/ (first 200 chars): Based on the webpage content, here are the key points for someone looking to start programming using distributed agents:

The book "Multi-Agent Oriented Programming" recommends using the JaCaMo platfo Extracted context from https://getstream.io/blog/multiagent-ai-frameworks/ (first 200 chars): Basándome en el contenido, Phidata parece ser la mejor opción para comenzar a programar con agentes distribuidos en Python. Algunas razones clave:

  • Es un framework Python para convertir modelos de l Extracted context from https://www.openxcell.com/blog/ai-agent-frameworks/ (first 200 chars): Based on the content, here are the most relevant options for starting to program using distributed AI agents:
  1. Ray by Anyscale

Python Distributed Agent Frameworks:

  1. Top Recommended Frameworks:

The book "An Introduction to MultiAgent Systems" by Michael Wooldridge of Extracted context from https://medium.com/@aydinKerem/which-ai-agent-framework-i-should-use-crewai-langgraph-majestic-one-and-pure-code-e16a6e4d9252 (first 200 chars): Based on the webpage content, here are the most relevant recommendations for getting started with distributed agent programming:

Top Python Distributed Agent Frameworks:

  1. CrewAI

The article highlights four open-source Python frameworks for multi-agent and dist Extracted context from https://www.curotec.com/insights/top-ai-agent-frameworks/ (first 200 chars): Basándome en su interés en comenzar a programar usando agentes distribuidos, aquí hay algunas opciones recomendadas:

  1. LangChain: Excelente para construir aplicaciones con modelos de lenguaje grande Extracted context from https://www.marketermilk.com/blog/best-ai-agent-platforms (first 200 chars): Based on the webpage content, here are the most relevant details for someone wanting to start programming with distributed AI agents:

Top Recommended Platforms for Distributed AI Agents:

  1. Gumloop

Extracted context from https://www.researchgate.net/publication/226165258_An_Introduction_to_Multi-Agent_Systems (first 200 chars): Based on the webpage content, here are the key points relevant to starting programming with distributed agents:

Multi-Agent Systems (MAS) Fundamentals:

Python Options:

Multi-Agent Systems (MAS) Programming Recommendations:

  1. Learn foundational concepts f Extracted context from https://www.ibm.com/think/topics/multiagent-system (first 200 chars): Based on the content, here are the key insights for getting started with distributed agent programming:

Multiagent Systems (MAS) Fundamentals:

Open-Source Options:

  1. CrewAI

Several good options for multi-agent systems programming include:

  1. JADE Extracted context from https://github.com/awslabs/multi-agent-orchestrator (first 200 chars): Based on the user's query about starting to program using distributed agents, here are the key relevant details:

The Multi-Agent Orchestrator is an open-source framework for managing multiple AI agen Extracted context from https://gki.informatik.uni-freiburg.de/teaching/ws0910/imap/01_Introduction.pdf (first 200 chars): Based on the content, here are the key points relevant to starting programming with distributed agents:

Multi-Agent Systems (MAS) Characteristics:

  • Each agent has incomplete information or capabilit Extracted context from https://pade.readthedocs.io/en/latest/ (first 200 chars): PADE (Python Agent Development framework) is an excellent open-source multi-agent system framework for Python that offers:

Key Features:

  • 100% written in Python
  • Uses Twisted library for network co OpenRouter API error: 402 - {"error":{"message":"Insufficient credits. Add more using https://openrouter.ai/credits","code":402}} LLM did not provide any new search queries. Ending the loop.

Generating final report... OpenRouter API error: 402 - {"error":{"message":"Insufficient credits. Add more using https://openrouter.ai/credits","code":402}}

==== FINAL REPORT ====

None

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment