GPU-Tools für Agent-Frameworks
GPU-Tools mit festen Kostengrenzen für Agenten mit LangChain, LlamaIndex, OpenAI Agents SDK oder Claude Agent SDK, Sitzungen stoppen beim Beenden.
Vier kleine Python-Pakete geben einem Agenten die GPU-Tools von Node Lodge: Maschinen auflisten, Guthaben prüfen, eine Sitzung starten, verfolgen und stoppen. Sie teilen sich ein Toolkit, das Ihre Kostengrenzen einhält und jede vom Agenten gestartete Sitzung stoppt, sobald Ihr Code es nicht mehr braucht.
| Paket | Framework |
|---|---|
nodelodge-langchain |
LangChain |
nodelodge-llamaindex |
LlamaIndex |
nodelodge-agents[openai] |
OpenAI Agents SDK |
nodelodge-agents[claude] |
Claude Agent SDK |
Für Agenten, die MCP nativ sprechen, etwa Claude Desktop oder Claude Code, verwenden Sie stattdessen den MCP-Server.
Die Kostengrenzen
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_sessionist erforderlich. Ein Start darüber wird abgelehnt, bevor etwas an Node Lodge gesendet wird.max_total_usdbegrenzt die Summe der Budgets der Sitzungen, die dieses Toolkit startet.- Node Lodge setzt zusätzlich die Limits des API-Schlüssels durch: Geben Sie dem Agenten unter Keys einen eigenen Schlüssel mit Spending limits.
- Das Verlassen des
with-Blocks, der Aufruf vontoolkit.close()oder das Ende des Python-Prozesses stoppt jede Sitzung, die das Toolkit gestartet hat. - Eine Ablehnung (eine Kostengrenze, Ihr Guthaben, ein Limit des Schlüssels, eine ungültige Eingabe) erreicht das Modell als Fehler mit Begründung. So kann es anhalten und Sie informieren, statt es mit einem höheren Betrag erneut zu versuchen.
Der Schlüssel kommt aus NODELODGE_API_KEY, der SSH-Schlüssel aus ~/.ssh/id_ed25519.pub, und die zum Verbinden zugelassene Adresse ist Ihre öffentliche IPv4-Adresse. Jeden dieser Werte können Sie stattdessen an GpuToolkit übergeben.
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.")
Das Starten und das Stoppen einer Sitzung unterbrechen den Lauf, bis Sie zustimmen (result.interruptions im SDK). Übergeben Sie require_approval=False, damit der Agent innerhalb der Kostengrenzen selbstständig handelt.
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)
Die Tools laufen als In-Process-MCP-Server in Ihrem Prozess. Wenn Sie wie oben nur die lesenden Tools vorab freigeben, bleiben Starten und Stoppen hinter der Berechtigungsabfrage des SDK.
Tools
| Tool | Funktion |
|---|---|
list_offers |
Jetzt buchbare Maschinen, günstigste zuerst, mit GPU, VRAM, Stundenpreis und Standort. |
get_balance |
Für eine neue Sitzung verfügbares Guthaben und der Betrag, den das Toolkit noch ausgeben darf. |
launch_session |
Startet eine Maschine mit einem Budget. max_cost_usd ist erforderlich, wird auf Ihrem Guthaben reserviert und ist durch das Toolkit begrenzt. Abgerechnet wird die tatsächliche Laufzeit, nie mehr. |
get_session |
Status, bisherige Kosten, der Startschritt während des Starts (launch_step) und der ssh-Befehl, sobald die Maschine läuft. |
stop_session |
Stoppt eine Sitzung: Die Abrechnung endet, Maschine und Festplatte werden gelöscht. |
raise_session_budget |
Erhöht das Budget einer laufenden Sitzung, innerhalb der Grenzen des Toolkits und der Limits des Schlüssels. |
list_sessions |
Laufende oder beendete Sitzungen. |