Outils GPU pour frameworks d'agents

Donnez à un agent LangChain, LlamaIndex, OpenAI Agents SDK ou Claude Agent SDK des outils GPU à coût plafonné, et arrêtez ses sessions à la sortie.

Quatre petits paquets Python donnent à un agent les outils GPU de Node Lodge : lister les machines, vérifier le solde, lancer une session, la suivre et l’arrêter. Ils partagent une même boîte à outils, qui porte vos plafonds de coût et arrête chaque session lancée par l’agent quand votre code n’en a plus besoin.

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

Pour les agents qui parlent MCP nativement, comme Claude Desktop ou Claude Code, utilisez plutôt le serveur MCP.

Les plafonds

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 est obligatoire. Un lancement au-delà est refusé avant tout envoi à Node Lodge.
  • max_total_usd plafonne la somme des budgets des sessions lancées par cette boîte à outils.
  • Node Lodge applique en plus les limites de la clé d’API : donnez à l’agent sa propre clé, avec des Spending limits, dans Keys.
  • La sortie du bloc with, l’appel à toolkit.close() ou la fin du processus Python arrêtent chaque session lancée par la boîte à outils.
  • Un refus (un plafond, votre crédit, une limite de la clé, une entrée invalide) parvient au modèle comme une erreur motivée : il peut s’arrêter et vous prévenir au lieu de réessayer avec plus.

La clé provient de NODELODGE_API_KEY, la clé SSH de ~/.ssh/id_ed25519.pub, et l’adresse autorisée à se connecter est votre adresse IPv4 publique. Chacune peut aussi être passée à GpuToolkit.

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.")

Le lancement et l’arrêt d’une session suspendent l’exécution en attendant votre approbation (result.interruptions dans le SDK). Passez require_approval=False pour laisser l’agent agir seul, dans les limites des plafonds.

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)

Les outils tournent dans votre processus, comme serveur MCP intégré. En pré-approuvant seulement les outils en lecture seule, comme ci-dessus, le lancement et l’arrêt restent soumis à la demande d’autorisation du SDK.

Outils

Outil Rôle
list_offers Machines réservables maintenant, de la moins chère à la plus chère, avec GPU, VRAM, prix horaire et emplacement.
get_balance Crédit disponible pour une nouvelle session, et ce que la boîte à outils peut encore dépenser.
launch_session Démarre une machine avec un budget. max_cost_usd est obligatoire, réservé sur votre crédit et plafonné par la boîte à outils. La facturation suit le temps réel d’exécution, jamais au-delà.
get_session État, coût à ce stade, étape du lancement pendant le démarrage (launch_step), et commande ssh une fois la machine en marche.
stop_session Arrête une session : la facturation s’arrête, la machine et son disque sont supprimés.
raise_session_budget Relève le budget d’une session en cours, dans les plafonds de la boîte à outils et les limites de la clé.
list_sessions Sessions actives ou terminées.

Dernière mise à jour

Les résultats apparaissent pendant la saisie. Les flèches permettent de les parcourir.