Workflow Guide
Rent a Cloud GPU with Hermes Agent or OpenClaw
Your bot runs on a CPU server, but it can rent a GPU when a job needs one: it quotes the cost, rents a Vast.ai machine on your account, runs the job over SSH, brings the files back and releases the machine. The steps are the same on managed Hermes Agent and OpenClaw.
What this looks like in practice
We tested this on our own managed Hermes Agent while it was producing an animated film in Blender. It had been rendering on CPU and needed a full-HD, 128-sample Cycles frame to check quality. From one chat message, the bot:
- searched Vast.ai for GPUs with at least 12 GB of VRAM, enough CPU and disk, and a CUDA driver new enough for its Blender build, all under a price cap;
- rented an RTX 4060 Ti 16GB with a 20 GB disk and a throwaway SSH key it generated for this one job;
- uploaded Blender and the scene, checking a SHA-256 hash for each upload;
- confirmed Cycles was really rendering on the GPU (CUDA) and not falling back to CPU;
- rendered the 1920×1080 frame in 22.5 seconds, then downloaded it and checked the file;
- destroyed the instance, removed the SSH key, and confirmed nothing was left running.
The whole rental, from creating the machine to releasing it, took 194 seconds. Vast posted a $0.007 charge for that instance. The bot then compared the GPU frame with its earlier CPU preview and told us honestly what had improved and what still fell short, rather than declaring the job done.
How it works
| Piece | Role |
|---|---|
| Your managed bot | Plans the job, prepares the files, and runs every step from its own workspace terminal. |
| Vast.ai connection | Lets the bot quote offers, rent and release instances, manage SSH keys, and read charges on your Vast account, with no API key in the chat. |
| SSH and scp | Already installed in every Hermes Agent and OpenClaw container. The bot uses them to upload inputs, run the job and download outputs. |
| The GPU machine | A short-lived Vast instance running a versioned Docker image. It is destroyed once the results are safely back in your bot's workspace. |
What you need
- A running managed Hermes Agent or OpenClaw bot on OpenClaw Launch.
- A Vast.ai account with credit or a payment method on file.
- Vast.ai connected to your bot. Follow the Vast.ai connection guide: create a Vast API key with the permissions this workflow uses (
miscfor offer search,user_readanduser_writefor balance and SSH keys,instance_readandinstance_writefor rentals,billing_readfor charges), then connect it under Dashboard → Integrations. That takes about two minutes.
Before your first rental, check the connection without spending anything:
Use my connected Vast.ai account. Read my balance and list my instances. Do not create, start, stop or delete anything.
1. Describe the job and your limits
Tell the bot what the job is, what counts as success, and how much you are willing to spend. The more concrete the limits, the better the quote. For example:
Render frame 289 of my Blender project at 1920×1080 with 128 Cycles samples on a rented GPU. Use a single GPU with at least 12 GB of VRAM, a 20 GB disk, and a maximum of $0.40 per hour. Quote the full cost first and wait for my approval. After the render, download the frame, verify it, destroy the instance, and remove any SSH key you added.
If you do not know how much VRAM your job needs, ask the bot to work it out from your model or scene first. Specifying VRAM, CUDA version and disk up front removes most of the cheap offers that would fail halfway.
2. Approve the quote
The bot searches current Vast offers with full pricing and comes back with a specific machine. A good quote names:
- the offer ID, GPU model, VRAM, and the host's maximum supported CUDA version;
- the hourly price for the disk size you asked for (Vast includes storage in that quote, so it should not be added twice);
- upload and download rates, and an estimate of how much data will move;
- an estimated total for the expected runtime, and a hard time limit after which it will release the machine.
Offers on Vast change minute by minute. If the chosen offer disappears, the bot should come back with a new quote instead of quietly renting a different machine. Reply with a clear approval, for example "Approved: offer 123456, up to $0.40 per hour, 30 minutes max."
3. The bot rents the machine and connects
Once you approve, the bot typically:
- generates a new SSH key pair in its own workspace for this job only, and registers the public key with Vast (the private key never leaves the bot);
- creates the instance from the approved offer with a versioned Docker image; the connection refuses
latestor untagged images, so the machine is reproducible; - checks the instance until SSH actually answers. A "running" status from Vast does not yet mean the machine is ready to connect to.
The rental calls look like this from the bot's terminal. You do not need to type them; they show what the bot is doing on your behalf:
composio execute VAST_AI_OCL_SEARCH_GPU_OFFERS_FULL '{"limit":20,"allocated_storage":20,"filters":{"gpu_ram":{"gte":12000},"num_gpus":{"eq":1},"dph_total":{"lte":0.4}}}'
composio execute VAST_AI_OCL_ADD_SSH_KEY '{"user_confirmed":true,"ssh_key":"<the job's public key>"}'
composio execute VAST_AI_OCL_CREATE_INSTANCE '{"user_confirmed":true,"offer_id":123456,"image":"nvidia/cuda:12.8.0-runtime-ubuntu24.04","disk":20,"runtype":"ssh"}'
composio execute VAST_AI_OCL_GET_INSTANCE '{"instance_id":52500115}'4. The bot runs the job
Over SSH, the bot uploads its inputs, installs or unpacks the software, and runs the job. Two checks separate a real GPU run from an expensive CPU run:
- Verify the uploads. Comparing a hash of each file on both ends catches a truncated upload before you pay for a broken run.
- Prove the GPU is used. Run
nvidia-smi, and for Blender check that Cycles has the CUDA or OptiX device enabled. Many tools silently fall back to CPU when the driver and the software's CUDA version do not match.
5. Download, verify, release
When the job finishes, the bot copies the outputs back into its own workspace with scp and checks them. Only then does it destroy the instance:
composio execute VAST_AI_OCL_DESTROY_INSTANCE '{"user_confirmed":true,"instance_id":52500115}'
composio execute VAST_AI_OCL_LIST_INSTANCES '{}'
composio execute VAST_AI_OCL_DELETE_SSH_KEY '{"user_confirmed":true,"ssh_key_id":98765}'The job is only finished when the instance list is empty and the job's SSH key is gone. The results then sit in your bot's workspace, where it can send them to you in chat, publish them, or keep working on them.
Jobs worth sending to a GPU
| Job | What to tell the bot |
|---|---|
| Blender Cycles rendering | Blender version, resolution, samples and frame range. Ask it to confirm the CUDA or OptiX device before rendering the full range. |
| Image and video generation | The ComfyUI workflow or model and the output count. Size VRAM from the model, and have the bot download the model weights on the GPU machine rather than uploading them. |
| Speech transcription | The audio files and the Whisper model size. For a large batch, a short GPU rental can cost less than hours of CPU time; test one file first to compare. |
| Fine-tuning a small model | The base model, dataset and training config. Ask for a checkpoint download before the release step. |
| Batch inference with an open model | The model and the input list. For a quick batch, a short vLLM rental can beat keeping an always-on endpoint. |
Keep costs under control
- Give a price cap and a time limit in the first message, and ask the bot to release the machine automatically when either is reached, including on failure.
- Test small first. One frame or a short sample on the GPU tells you the real speed and cost before you pay for the full batch.
- Check the actual charge. Ask the bot to read your Vast charges for that instance ID afterwards. Vast posts charges with a delay, so the first figure is not always the final one.
- Never retry a rental blindly. If a create call times out, the machine may already exist. The bot should list your instances before trying again, so you do not end up paying for two.
Hermes Agent and OpenClaw: same steps
On OpenClaw Launch, managed Hermes Agent and OpenClaw bots get the same Vast.ai connection, the same composio command and the same preinstalled ssh, scp and ssh-keygen in their workspace. Every prompt and command on this page works unchanged on both. Hermes Agent can also save the finished flow as a reusable skill, so the next GPU job starts from a tested routine instead of from scratch.
Self-hosted agents
The VAST_AI_OCL_ actions are part of OpenClaw Launch's managed connection, so a self-hosted Hermes Agent or OpenClaw does not have them. The same workflow works with Vast's own command-line tool, installed where your agent runs and authorized with your Vast API key:
pip install vastai
vastai set api-key YOUR_VAST_API_KEY
vastai search offers 'gpu_ram>=12 num_gpus=1 rentable=true'
vastai create instance OFFER_ID --image nvidia/cuda:12.8.0-runtime-ubuntu24.04 --disk 20 --ssh
vastai show instances
vastai destroy instance INSTANCE_IDOn a self-hosted agent, vastai set api-key saves the key to a file on that machine and the agent can spend with it, so give it a restricted key and put the same approval and cleanup rules in your instructions.
Troubleshooting
| Problem | What to do |
|---|---|
| SSH connection refused right after renting | Normal for the first minute or two. The bot should poll until SSH answers, with a time limit, and release the machine if it never does. |
| The job ran, but slowly | It probably ran on CPU. Check nvidia-smi and the tool's device setting, and compare the host's maximum CUDA version with the one your software needs. |
| The chosen offer is gone | Ask for a fresh quote. Do not let the bot substitute another machine without your approval. |
| Create failed or timed out | List instances before retrying. An uncertain response can still mean the machine was created. |
| A restarted instance stays in Scheduling | A stopped instance can only restart when its host's GPU is free again, and storage is billed while it waits. If the results were already downloaded, destroying it and renting a fresh offer is usually faster. |
| The bot says Vast tools are missing | Check the connection under Integrations, then ask the bot to run composio search vast_ai. See the connection guide. |
Cloud GPU FAQ
Does this work on Hermes Agent and OpenClaw?
Yes. Managed Hermes Agent and OpenClaw use the same Vast.ai connection, the same composio command and the same SSH tools inside the bot's workspace, so every step on this page is identical on both. Self-hosted agents need their own Vast integration; see the self-hosted section.
Does OpenClaw Launch provide the GPU?
No. Your bot itself runs on a CPU server. The GPU is rented from Vast.ai on your own Vast account and billed by Vast, separately from your OpenClaw Launch plan. Your bot does the renting, setup, running and cleanup for you.
How much does a GPU job cost?
It depends on the GPU, how long it runs, the disk you allocate and how much data you move. In our own test, one 1080p Blender Cycles frame on an RTX 4060 Ti 16GB took about 3 minutes and 15 seconds from rental to release, and Vast posted a $0.007 charge for it. Prices change constantly, so ask your bot for a quote on current offers before every rental.
Can the bot rent a GPU without asking me?
Every paid Vast action on OpenClaw Launch refuses to run unless the bot explicitly marks it as confirmed by you, and the action descriptions tell the bot to do that only after you approve the specific offer and cost. The bot sets that flag itself, so your instructions are the real control: give it a budget and tell it to wait for your approval before it creates anything. Reading balances, offers and instance lists never rents anything.
What happens if the job fails halfway?
Ask the bot to release the machine on failure as well as on success, and to set a hard time limit up front. A stopped Vast instance still bills storage, so a rental is only fully closed once it is destroyed and the instance list shows nothing left running.