Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aios_framework-0.1.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aios_framework-0.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

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

Hashes for aios_framework-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4277a75a26b29b1f11bdea6b2d70c1c6c254c54380624f7d0881bdc13d053061
MD5 e1888688bf122e549ff11b55524739e8
BLAKE2b-256 a659f261755cefb605ab456fa625cd2d0351328fbb8accb7764e809d2ea88840

See more details on using hashes here.

Provenance

The following attestation bundles were made for aios_framework-0.1.0.tar.gz:

Publisher: python-publish.yml on KenyiGM/aios

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for aios_framework-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 474b6ee6f92ce81a7bbe11c837ffd87050ae65b70cfe2524c9b12d5bb8286d88
MD5 7875cd315c0489961b07db7e17fc99b9
BLAKE2b-256 38a2b5ebb154c2eba8c225f41f01adc6b3a52d7c8f0da704e22ef8676dfce552

See more details on using hashes here.

Provenance

The following attestation bundles were made for aios_framework-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on KenyiGM/aios

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page