En este tutorial, creamos y examinamos un flujo de trabajo OpenSpace, avanzando desde la configuración del entorno y la clonación de repositorios dispersos hasta la ejecución de tareas en vivo, la evolución de habilidades y la integración de agentes basados en MCP. Configuramos las credenciales del modelo y las variables del espacio de trabajo, instalamos el proyecto en modo editable, invocamos la API asincrónica de Python e inspeccionamos cómo OpenSpace almacena las capacidades evolucionadas en SQLite con control de versiones y metadatos de linaje. También creamos un SKILL.md personalizado, conectamos habilidades de agente host, probamos la reutilización de tareas activas, lanzamos el servidor HTTP MCP transmitible y analizamos la base de datos de evolución de exhibición para comprender cómo las habilidades FIX, DERIVED y CAPTURED respaldan un comportamiento de agente reutilizable y de menor costo.
[“git”, “clone”, “–filter=blob:none”, “–sparse”,
“https://github.com/HKUDS/OpenSpace.git”, REPO_DIR]comprobar = Verdadero, ) subproceso.ejecutar (
[“git”, “sparse-checkout”, “set”, “–no-cone”, “/*”, “!/assets/”]cwd=REPO_DIR, check=True, ) print(“✅ Clonado a”, REPO_DIR) print(“Nivel superior:”, ordenado(os.listdir(REPO_DIR))) subprocess.run([sys.executable, “-m”, “pip”, “install”, “-q”, “-e”, REPO_DIR]comprobar=Verdadero) subproceso.run([sys.executable, “-m”, “pip”, “install”, “-q”, “nest_asyncio”]marcar = Verdadero) para cli in [“openspace-mcp”, “openspace-dashboard”]: ruta =shutil.what(cli) print(f”{‘✅’ if ruta else ‘⚠️ ‘} {cli}: {ruta}”) subprocess.run([“openspace-mcp”, “–help”]check=False) WORKSPACE = “/content/openspace_workspace” SKILLS_DIR = “/content/my_agent_skills” os.makedirs(WORKSPACE, exist_ok=True) os.makedirs(SKILLS_DIR, exist_ok=True) env_lines = [
f”OPENSPACE_MODEL={OPENSPACE_MODEL}”,
f”OPENSPACE_WORKSPACE={WORKSPACE}”,
f”OPENSPACE_HOST_SKILL_DIRS={SKILLS_DIR}”,
]
si ANTHROPIC_API_KEY: env_lines.append(f”ANTHROPIC_API_KEY={ANTHROPIC_API_KEY}”) si OPENAI_API_KEY: env_lines.append(f”OPENAI_API_KEY={OPENAI_API_KEY}”) si OPENSPACE_CLOUD_KEY: env_lines.append(f”OPENSPACE_API_KEY={OPENSPACE_CLOUD_KEY}”) env_path = os.path.join(REPO_DIR, “openspace”, “.env”) pathlib.Path(env_path).write_text(“\n”.join(env_lines) + “\n”) pathlib.Path(“/content/.env”).write_text(“\n”.join(env_lines) + “\n”) para la línea en env_lines: k, _, v = line.partition(“=”) os.environ[k] = v print(“✅ .env escrito:\n” + “\n”.join(l.split(“=”)[0] + “=***” si “KEY” en l else l para l en env_lines)) HAS_LLM_KEY = bool(ANTHROPIC_API_KEY o OPENAI_API_KEY) si no HAS_LLM_KEY: print(“⚠️ No se ha establecido ninguna clave LLM: se omitirán los pasos 4/6 (ejecución en vivo).”)
Verificamos el tiempo de ejecución de Python, definimos las credenciales de API requeridas y configuramos el modelo OpenSpace y las configuraciones opcionales de acceso a la nube. Clonamos el repositorio con un proceso de pago escaso, instalamos el paquete en modo editable y confirmamos que las herramientas de línea de comandos de OpenSpace están disponibles. Luego creamos el espacio de trabajo y los directorios de habilidades, escribimos los archivos de configuración del entorno, exportamos las variables requeridas y detectamos si la ejecución LLM en vivo está habilitada.
[n for n in dir(sk_types) if n[0].isuper()][:6]) excepto excepción como e: print(“ℹ️ nota de importación de registro:”, e)
Inicializamos la ejecución asincrónica en Google Colab y definimos una función reutilizable para enviar tareas a través de la API de OpenSpace Python. Ejecutamos una tarea inicial de generación de nómina e inspeccionamos cualquier habilidad que OpenSpace desarrolle durante el análisis posterior a la ejecución. También examinamos la estructura de la base de datos SQLite, mostramos los registros almacenados y verificamos que el registro de habilidades y las definiciones de tipos sean accesibles mediante programación.
Enviamos una tarea de nómina relacionada para observar cómo OpenSpace reutiliza o deriva capacidades de habilidades generadas previamente. Creamos un SKILL.md personalizado que indica al agente que analice archivos CSV y produzca informes Markdown estructurados. Luego instalamos las habilidades de host de OpenSpace, generamos un conjunto de datos de demostración y ejecutamos la capacidad personalizada a través del mismo flujo de trabajo del agente en evolución.
[“openspace-mcp”, “–transport”, “streamable-http”,
“–host”, “127.0.0.1”, “–port”, “8081”]stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, env={**os.environ}, ) time.sleep(8) intente: import urllib.request req = urllib.request.Request(“http://127.0.0.1:8081/mcp”, método=”GET”) intente: urllib.request.urlopen(req, timeout=5) print(“✅ MCP streamable-HTTP endpoint está activo en http://127.0.0.1:8081/mcp”) excepto urllib.error.HTTPError como e: print(f”✅ Servidor MCP activo (HTTP {e.code} en GET simple, esperado para MCP)”) excepto excepción como e: print(“⚠️ Falló la sonda MCP:”, e) print(json.dumps({ “mcpServers”: { “openspace”: { “command”: “openspace-mcp”, “toolTimeout”: 600, “env”: { “OPENSPACE_HOST_SKILL_DIRS”: SKILLS_DIR, “OPENSPACE_WORKSPACE”: WORKSPACE, “OPENSPACE_API_KEY”: “sk-xxx (opcional, para nube)”, }, } } }, sangría=2)) mcp_proc.terminar()
Iniciamos el servidor OpenSpace MCP utilizando el transporte HTTP transmitible y lo vinculamos a un punto final local de Colab. Sondeamos el punto final para confirmar que el proceso del servidor se está ejecutando, incluso cuando una solicitud HTTP básica devuelve un estado de respuesta específico de MCP. También generamos una configuración de host MCP de ejemplo que los agentes externos pueden usar para acceder al espacio de trabajo y a los directorios de habilidades de OpenSpace.
DESDE {t} GRUPO POR origen ORDENAR POR 2 DESC”): print(f” {origen:>10}: {n}”) con.close() print(“”” ═════════════════════════════════ ═════════════════════════════════ 🎓 TUTORIAL COMPLETO: lo que ahora tiene: • OpenSpace instalado + configurado en Colab • Ejecución de tareas en vivo a través de la API de Python (si está configurada la clave) • Un SKILL.md personalizado que su agente descubre automáticamente • Habilidades de host (delegar-tarea, descubrimiento de habilidades) preparadas para cualquier agente compatible con SKILL.md (Claude Code / Codex / OpenClaw / nanobot) • Un servidor MCP que arrancó a través de HTTP con transmisión por secuencias • Linaje completo inspección de una base de datos de evolución de más de 60 habilidades A continuación: ejecute más tareas relacionadas y observe cómo disminuye el uso de tokens a medida que las habilidades se REPARAN, DERIVAN o CAPTURAN por sí mismas. Panel de control (necesita Nodo ≥ 20): openspace-dashboard –port 7788 + cd frontend && npm i && npm run dev. ═════════════════════════════════ ═════════════════════════════════ “””)
Subimos condicionalmente la habilidad personalizada a la comunidad de nube OpenSpace cuando hay disponible una clave API de nube válida. Inspeccionamos la base de datos SQLite del repositorio para estudiar las habilidades almacenadas, los metadatos, la información de calidad y el linaje de evolución completo. Finalmente agregamos habilidades por tipo de origen y resumimos el entorno Colab, la capacidad personalizada, la integración de MCP y el flujo de trabajo autoevolutivo que establecemos a lo largo del tutorial.
En conclusión, establecimos un entorno OpenSpace práctico que demuestra cómo se ejecutan, persisten, reutilizan y mejoran progresivamente las capacidades de los agentes. Trabajamos directamente con la API de Python, directorios de habilidades locales, registros respaldados por SQLite, transportes MCP y comandos opcionales para compartir habilidades en la nube, lo que nos brinda visibilidad tanto del flujo de trabajo de cara al usuario como de la arquitectura subyacente del motor de habilidades. También verificamos cómo las tareas relacionadas pueden reutilizar el conocimiento previamente evolucionado, cómo las habilidades personalizadas se pueden descubrir en tiempo de ejecución y cómo los registros de linaje exponen el historial de desarrollo de cada capacidad, lo que nos deja con una base sólida para construir sistemas de agentes rentables y autoevolutivos en Colab.
Consulte el código completo aquí. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 150.000 ml y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.
¿Necesita asociarse con nosotros para promocionar su repositorio de GitHub O su página principal de Hugging O su lanzamiento de producto O seminario web, etc.? Conéctate con nosotros
A Sana Hassan, pasante de consultoría en Marktechpost y estudiante de doble titulación en IIT Madras, le apasiona aplicar la tecnología y la inteligencia artificial para abordar los desafíos del mundo real. Con un gran interés en resolver problemas prácticos, aporta una nueva perspectiva a la intersección de la IA y las soluciones de la vida real.