GPU para frameworks de agentes

Dé a un agente de LangChain, LlamaIndex, OpenAI Agents SDK o Claude Agent SDK herramientas GPU con topes de costo estrictos, y detenga sus sesiones al salir.

Cuatro pequeños paquetes de Python dan a un agente las herramientas GPU de Node Lodge: listar máquinas, consultar el saldo, lanzar una sesión, seguirla y detenerla. Comparten un toolkit que guarda sus topes de costo y detiene cada sesión lanzada por el agente cuando su código termina con él.

Paquete Framework
nodelodge-langchain LangChain
nodelodge-llamaindex LlamaIndex
nodelodge-agents[openai] OpenAI Agents SDK
nodelodge-agents[claude] Claude Agent SDK

Para los agentes que hablan MCP de forma nativa, como Claude Desktop o Claude Code, use el servidor MCP.

Los topes

from nodelodge.agent_tools import GpuToolkit

with GpuToolkit(max_cost_usd_per_session=5, max_total_usd=20) as toolkit:
    ...  # give the toolkit's tools to your agent
# every session the agent launched is stopped here
  • max_cost_usd_per_session es obligatorio. Un lanzamiento por encima se rechaza antes de enviar nada a Node Lodge.
  • max_total_usd limita la suma de los presupuestos de las sesiones que lanza este toolkit.
  • Node Lodge aplica además los límites de la clave de API: dé al agente su propia clave, con Spending limits, en Keys.
  • Salir del bloque with, llamar a toolkit.close() o el fin del proceso de Python detiene cada sesión que lanzó el toolkit.
  • Un rechazo (un tope, su crédito, un límite de la clave, una entrada no válida) llega al modelo como un error con su motivo, para que se detenga y se lo indique en lugar de reintentar con más.

La clave proviene de NODELODGE_API_KEY, la clave SSH de ~/.ssh/id_ed25519.pub, y la dirección autorizada a conectarse es su dirección IPv4 pública. Cada una puede pasarse a GpuToolkit en su lugar.

LangChain

from langchain.agents import create_agent
from nodelodge_langchain import nodelodge_tools

with GpuToolkit(max_cost_usd_per_session=5) as toolkit:
    agent = create_agent("anthropic:claude-sonnet-5-5", tools=nodelodge_tools(toolkit))
    agent.invoke({"messages": [{"role": "user", "content": "Launch the cheapest GPU with 48 GB of VRAM."}]})

LlamaIndex

from llama_index.core.agent.workflow import FunctionAgent
from nodelodge_llamaindex import nodelodge_tools

with GpuToolkit(max_cost_usd_per_session=5) as toolkit:
    agent = FunctionAgent(tools=nodelodge_tools(toolkit), llm=llm)
    await agent.run("Launch the cheapest GPU with 48 GB of VRAM.")

OpenAI Agents SDK

from agents import Agent, Runner
from nodelodge_agents import openai_agents_tools

with GpuToolkit(max_cost_usd_per_session=5) as toolkit:
    agent = Agent(name="gpu-ops", tools=openai_agents_tools(toolkit))
    result = await Runner.run(agent, "Launch the cheapest GPU with 48 GB of VRAM.")

Lanzar y detener una sesión pausan la ejecución hasta su aprobación (result.interruptions en el SDK). Pase require_approval=False para que el agente actúe solo, dentro de los topes.

Claude Agent SDK

from claude_agent_sdk import ClaudeAgentOptions, query
from nodelodge_agents import claude_allowed_tools, claude_mcp_server

with GpuToolkit(max_cost_usd_per_session=5) as toolkit:
    options = ClaudeAgentOptions(
        mcp_servers={"nodelodge": claude_mcp_server(toolkit)},
        allowed_tools=claude_allowed_tools(["list_offers", "get_balance", "get_session", "list_sessions"]),
    )
    async for message in query(prompt="Launch the cheapest GPU with 48 GB of VRAM.", options=options):
        print(message)

Las herramientas se ejecutan en su proceso como un servidor MCP integrado. Aprobar de antemano solo las herramientas de lectura, como arriba, deja el lanzamiento y la detención sujetos a la solicitud de permiso del SDK.

Herramientas

Herramienta Qué hace
list_offers Máquinas reservables ahora, de la más barata a la más cara, con GPU, VRAM, precio por hora y ubicación.
get_balance Crédito disponible para una nueva sesión y lo que el toolkit aún puede gastar.
launch_session Inicia una máquina con un presupuesto. max_cost_usd es obligatorio, se reserva sobre su crédito y el toolkit lo limita. La facturación sigue el tiempo real en marcha, nunca más allá.
get_session Estado, costo acumulado, el paso de arranque mientras la máquina arranca (launch_step) y el comando ssh cuando está en marcha.
stop_session Detiene una sesión: la facturación se detiene y la máquina y su disco se eliminan.
raise_session_budget Aumenta el presupuesto de una sesión en curso, dentro de los topes del toolkit y los límites de la clave.
list_sessions Sesiones activas o finalizadas.

Última actualización

Los resultados aparecen mientras escribe. Las flechas permiten recorrerlos.