Introducción

🤖 Saptiva Agents

Saptiva-Agents es un potente framework para construir aplicaciones de IA multiagente que pueden actuar de forma autónoma o colaborar con humanos.


⚙️ Instalación

Saptiva-Agents requiere Python 3.10 o superior.

pip install -U saptiva-agents

✅ Última versión estable: v0.1.2


🧪 Instalar desde PyPI

Para instalar desde PyPI:

pip install saptiva-agents==0.1.2

🚀 Inicio rápido

👋 Hola Mundo

Crea un agente asistente usando llama3.3:70b con Saptiva-Agents:

import asyncio

from saptiva_agents import LLAMA_MODEL
from saptiva_agents.base import SaptivaAIChatCompletionClient
from saptiva_agents.agents import AssistantAgent

async def main() -> None:
    model_client = SaptivaAIChatCompletionClient(
        model=LLAMA_MODEL, 
        api_key="TU_SAPTIVA_API_KEY"
    )
    agent = AssistantAgent("assistant", model_client=model_client)
    print(await agent.run(task="Say 'Hello World!'"))
    await model_client.close()

asyncio.run(main())
python hello_world.py

🌐 Equipo de Agentes para Navegación Web

Crea un equipo de agentes con navegador usando Playwright:

# pip install saptiva-agents
# playwright install --with-deps chromium

import asyncio

from saptiva_agents import QWEN_MODEL
from saptiva_agents.agents import UserProxyAgent
from saptiva_agents.base import SaptivaAIChatCompletionClient
from saptiva_agents.conditions import TextMentionTermination
from saptiva_agents.teams import RoundRobinGroupChat
from saptiva_agents.web_surfer import MultimodalWebSurfer
from saptiva_agents.ui import Console

async def main() -> None:
    model_client = SaptivaAIChatCompletionClient(
        model=QWEN_MODEL, 
        api_key="TU_SAPTIVA_API_KEY"
    )
    web_surfer = MultimodalWebSurfer(
        "web_surfer", 
        model_client, 
        headless=False, 
        animate_actions=True, 
        start_page="https://www.google.com"
    )
    user_proxy = UserProxyAgent("user_proxy")
    termination = TextMentionTermination("salir", sources=["user_proxy"])
    team = RoundRobinGroupChat([web_surfer, user_proxy], termination_condition=termination)

    try:
        await Console(team.run_stream(task="Navega a saptiva.com y consigue información sobre Saptiva AI."))
        # Al escribir el texto de finalización en la consola (salir), el script se detendrá
    finally:
        await web_surfer.close()
        await model_client.close()

asyncio.run(main())
python web_surfer.py

🧰 Custom Tools

Junto a la SDK viene un grupo de tools pre-determinadas con funcionalidades que puedes adherir en la fase de inicialización de tus agentes, estas tools dan acceso a funcionalidades tales como extracción de documentos, consultas CURP, CFDI y demás. Acá te mostramos un ejemplo corto de como utilizar las tools

import asyncio

from saptiva_agents import LLAMA_MODEL

from saptiva_agents.base import SaptivaAIChatCompletionClient
from saptiva_agents.agents import AssistantAgent
from saptiva_agents.tools import (
    # Para este ejemplo usaremos la saptiva_bot_query
    saptiva_bot_query,
)

SAPTIVA_API_KEY = os.getenv("SAPTIVA_API_KEY", "<TU SAPTIVA KEY>")

model_client = SaptivaAIChatCompletionClient(
    model=LLAMA_MODEL,
    api_key=SAPTIVA_API_KEY,
)

agent = AssistantAgent(
    "sample_agent",
    model_client=model_client,
    system_message="You are an agent that helps users by the usage of the `tools` you have been provided with.",
    tools=[saptiva_bot_query]
)

async def run():
    result = await agent.run(task="invoka `saptiva_bot_query` ¿Cuáles son los productos de Saptibank?")
    result_json = json.dumps(result.messages[2].content[0].content, ensure_ascii=False, indent=2)    print("result:")
    print(result_json)

# Corre el agente
if __name__ == "__main__":
    asyncio.run(run())

Acá te dejamos la lista de tools disponibles (versión: 0.1.3)

TOOL
Descripción

get_verify_sat

Permite verificar SAT urls através de portal Vulcanix

obtener_texto_en_documento

Envía un documento convertido en base64 para extraer sus contenidos mediante el Saptiva API extractor

saptiva_bot_query

Permite hacer consultas al Saptiva bot

consultar_curp_get

Permite consumir fase de extracción de CURPS mediante la plataforma Vulcanix

consultar_curp_post

Permite consumir fase de envío de CURPS mediante la plataforma Vulcanix

consultar_cfdi

Permite consultar CFDI mediante la plataforma Vulcanix

upload_csv

Permite subir CSV al Saptibank analyzer service

wikipedia_search

Permite hacer búsquedas simples en Wikipedia

get_weather

Una tool de testing para practicar la integración de tools en agentes, contiene texto estático respecto al clima de una ciudad.

📚 Modelos Disponibles

Saptiva-Agents soporta una variedad de modelos para tareas tanto de texto como multimodales.

🧠 Modelos de texto

Modelo
Descripción

llama3.3:70b

Modelo de última generación basado en Meta LLaMA 3, ideal para tareas complejas de lenguaje natural.

qwen2.5:72b-instruct

Modelo avanzado ajustado con instrucciones de Alibaba DAMO, diseñado para seguir indicaciones del usuario.

🖼️ Modelos multimodales

Modelo
Descripción

gemma3:27b

Modelo multimodal capaz de razonar sobre entradas visuales y textuales. Ideal para tareas interactivas y exploración web.

🔗 Ver lista completa de modelos disponibles en Saptiva


📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT.


🌐 Enlaces

Última actualización