Mini-framework en Python para registrar herramientas y generar manifests que describen capacidades de aplicaciones para IA.
Project description
AIOS
AIOS significa AI Operating System.
Es un concepto para construir aplicaciones que puedan exponer sus capacidades de forma estructurada para sistemas de inteligencia artificial, permitiendo que agentes o modelos de IA interactúen con ellas de manera clara y controlada.
La idea principal es que una aplicación pueda describir qué puede hacer, en lugar de que una IA tenga que analizar todo su código.
Arquitectura del proyecto
El proyecto AIOS está compuesto por diferentes componentes.
Actualmente incluye:
AIOS
│
└─ aios (mini-framework)
│
└─ ai_tools (recurso disponible)
│
└─ tools registradas por la aplicación
aios (mini-framework)
aios es un pequeño framework en Python diseñado para registrar y describir herramientas de una aplicación.
Estas herramientas representan capacidades del sistema que una IA podría utilizar.
El framework permite:
- registrar herramientas
- describirlas con metadata
- generar un manifest JSON
- exponer las capacidades del sistema a agentes de IA
El framework no ejecuta IA, solo describe el sistema.
ai_tools
ai_tools es el primer recurso disponible dentro de AIOS.
Este recurso representa las herramientas que una aplicación ofrece a una IA.
Cada herramienta describe:
- qué hace
- qué parámetros recibe
- qué devuelve
- etiquetas o categorías
- permisos requeridos
- prioridad
- posibles flujos de acción
Instalacion
Actualmente aios se utiliza directamente desde el código fuente.
1. Clonar el repositorio
git clone https://github.com/KenyiGM/aios.git
2. Creacion de entorno virtual (Opcional)
python -m venv venv
Activar el entorno
Linux/macOS
source venv/bin/activate
Windows
venv\Scripts\activate
Instalar el modulo
pip install git+https://github.com/KenyiGM/aios.git
Quick Start
Este ejemplo muestra cómo crear una pequeña aplicación que expone herramientas para IA usando aios.
1. Importar AIOS
from aios import AiTools
2. Crear una aplicación
app = AiTools(
name="notas",
description="Sistema simple de notas"
)
La aplicación actuará como contenedor de herramientas.
3. Definir una herramienta
Las herramientas se registran usando el decorador ai_action.
@app.ai_action(tags=["nota"])
def crear_nota(titulo: str, contenido: str, ai_tools: AiTools):
"""Crea una nueva nota"""
notas = ai_tools.get_context("notas", namespace="data", default=[])
notas.append({
"titulo": titulo,
"contenido": contenido
})
ai_tools.set_context("notas", notas, namespace="data")
return f"Nota '{titulo}' creada"
La función se convierte automáticamente en una tool disponible para la aplicación.
4. Ejecutar una herramienta
Las herramientas pueden ejecutarse desde código usando ai_executor.
app.ai_executor(
"notas.crear_nota",
titulo="Idea IA",
contenido="Crear un framework de tools"
)
5. Generar el manifest del sistema
AIOS puede describir las capacidades de la aplicación en formato JSON.
schema = app.generate_schema()
print(schema)
También se puede guardar como archivo:
app.save_manifest()
Esto generará:
manifest/ai_manifest.json
El manifest permite que agentes o modelos de IA descubran las herramientas disponibles.
6. Exportar herramientas para LLM
AIOS también puede exportar las herramientas en formato compatible con LLM function calling.
tools = app.export_openai_tools()
print(tools)
7. Ejemplo Completo
from aios import AiTools
app = AiTools(
name="notas",
description="Sistema simple de notas"
)
app.set_context("notas", [], namespace="data")
@app.ai_action(tags=["nota"])
def crear_nota(titulo: str, contenido: str, ai_tools: AiTools):
"""Crea una nueva nota"""
notas = ai_tools.get_context("notas", namespace="data", default=[])
notas.append({
"titulo": titulo,
"contenido": contenido
})
ai_tools.set_context("notas", notas, namespace="data")
return f"Nota '{titulo}' creada"
print(
app.ai_executor(
"notas.crear_nota",
titulo="Idea IA",
contenido="Crear un framework de tools"
)
)
print(app.generate_schema())
Concepto
Se explica las ideas basicas del sistema.
App
Una App es la instancia principal de AIOS.
Representa una aplicación que expone capacidades para ser utilizadas por sistemas de IA.
app = AiTools(
name="notas",
description="Sistema simple de notas"
)
La app es responsable de:
-
registrar herramientas
-
mantener el contexto
-
generar el manifest del sistema
-
ejecutar herramientas
Module
Un Module agrupa herramientas relacionadas.
Por ejemplo:
- notas
- usuarios
- archivos
- agenda
Cada módulo describe un conjunto de capacidades dentro de la aplicación.
En AIOS, el nombre del módulo forma parte de la ruta de la herramienta.
Ejemplo:
notas.crear_nota
notas.listar_notas
Tool
Una Tool representa una acción que la aplicación puede realizar.
Las tools se definen como funciones Python registradas con ai_action.
@app.ai_action(tags=["nota"])
def crear_nota(titulo: str, contenido: str):
Cada tool describe:
-
qué hace
-
qué parámetros recibe
-
qué devuelve
-
metadata adicional (tags, permisos, prioridad, etc.)
Las tools son las capacidades que una IA puede utilizar.
Context
El Context es un almacenamiento interno que permite compartir estado entre herramientas.
Ejemplo:
app.set_context("notas", [], namespace="data")
Luego una herramienta puede acceder a ese estado:
notas = ai_tools.get_context("notas", namespace="data")
Esto permite construir herramientas que trabajen con información persistente durante la ejecución.
Manifest
El Manifest es una descripción estructurada de todas las capacidades de la aplicación.
AIOS puede generarlo automáticamente:
app.generate_schema()
O guardarlo en un archivo:
app.save_manifest()
El manifest permite que agentes de IA puedan descubrir las herramientas disponibles sin analizar el código fuente.
Routes
Cada tool tiene una ruta única dentro del sistema.
Formato:
module.tool
Ejemplo:
notas.crear_nota
notas.listar_notas
Estas rutas son utilizadas para ejecutar herramientas dinámicamente:
app.ai_executor("notas.crear_nota", titulo="Idea", contenido="...")
Licencia
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aios_framework-0.1.0.tar.gz.
File metadata
- Download URL: aios_framework-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4277a75a26b29b1f11bdea6b2d70c1c6c254c54380624f7d0881bdc13d053061
|
|
| MD5 |
e1888688bf122e549ff11b55524739e8
|
|
| BLAKE2b-256 |
a659f261755cefb605ab456fa625cd2d0351328fbb8accb7764e809d2ea88840
|
Provenance
The following attestation bundles were made for aios_framework-0.1.0.tar.gz:
Publisher:
python-publish.yml on KenyiGM/aios
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aios_framework-0.1.0.tar.gz -
Subject digest:
4277a75a26b29b1f11bdea6b2d70c1c6c254c54380624f7d0881bdc13d053061 - Sigstore transparency entry: 1069868960
- Sigstore integration time:
-
Permalink:
KenyiGM/aios@08bb8bddc4da87175701100750d51e5225ff4ac3 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/KenyiGM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@08bb8bddc4da87175701100750d51e5225ff4ac3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file aios_framework-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aios_framework-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
474b6ee6f92ce81a7bbe11c837ffd87050ae65b70cfe2524c9b12d5bb8286d88
|
|
| MD5 |
7875cd315c0489961b07db7e17fc99b9
|
|
| BLAKE2b-256 |
38a2b5ebb154c2eba8c225f41f01adc6b3a52d7c8f0da704e22ef8676dfce552
|
Provenance
The following attestation bundles were made for aios_framework-0.1.0-py3-none-any.whl:
Publisher:
python-publish.yml on KenyiGM/aios
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aios_framework-0.1.0-py3-none-any.whl -
Subject digest:
474b6ee6f92ce81a7bbe11c837ffd87050ae65b70cfe2524c9b12d5bb8286d88 - Sigstore transparency entry: 1069869005
- Sigstore integration time:
-
Permalink:
KenyiGM/aios@08bb8bddc4da87175701100750d51e5225ff4ac3 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/KenyiGM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@08bb8bddc4da87175701100750d51e5225ff4ac3 -
Trigger Event:
release
-
Statement type: