meshscale-worker-template / REMOTE_GPU_INTEGRATION_PLAN.md
tostido's picture
Build MeshScale CPU worker template
96ef23c verified
|
Raw
History Blame Contribute Delete
3.27 kB
# Remote GPU Integration Plan
## Overview
Embed RemoteGPUExecutor into the quine system so compiled agents can rent and use remote GPUs autonomously.
## Changes Required
### 1. Dependencies (requirements.txt)
**Add:**
- `paramiko>=3.0.0 # SSH for remote GPU execution`
**Location:** `_write_requirements()` function in agent_compiler.py
### 2. Embed RemoteGPUExecutor Class
**Where:** After FelixBag class, before CapsuleAgent class (around line 8260)
**What:** Copy entire RemoteGPUExecutor class from remote_gpu.py into the quine template
### 3. FelixBag Artifacts
**Add new embedded docs:**
- `remote_gpu_guide` - Documentation on using remote GPUs
- Update `vast_gpu_rental_guide` - Add RemoteGPUExecutor usage examples
**Location:** `_populate_bag()` function (around line 7795)
### 4. MCP Tool Definitions (Non-Proxy Mode)
**Add vast.ai tools to normal MCP server:**
- `vast_search` - Search for GPUs
- `vast_rent` - Rent a GPU
- `vast_connect` - Connect to rented GPU
**Location:** After line 21106 where MCP tools are defined
### 5. Plug Command Integration
**Modify plug command to:**
- Detect if `self._remote_gpu` exists and is connected
- If yes, load model on remote GPU instead of locally
- Return remote execution handle
**Location:** `on_input_submitted()` function, plug command handler
### 6. Quine Self-Replication
**Ensure:**
- RemoteGPUExecutor class is in the quine source
- All offspring carry the remote GPU capability
- Quine hash updates to reflect new code
**Location:** Automatic - happens when class is embedded
### 7. Testing Requirements
**Must verify:**
- Compiled agent can rent GPU via MCP
- SSH keys auto-generate
- Connection works without passwords
- Models load on remote GPU
- Inference executes remotely
- Results return to local TUI
## Integration Points
### agent_compiler.py
- Line ~5301: `_write_requirements()` - Add paramiko
- Line ~6339: After FelixBag class - Embed RemoteGPUExecutor
- Line ~7795: `_populate_bag()` - Add remote GPU docs
- Line ~15689: `_handle_mcp_request()` - Already has vast_connect (DONE)
- Line ~21106: MCP tool definitions - Add vast.ai tools
- Line ~15770: plug command - Add remote GPU detection
### remote_gpu.py
- Entire file gets embedded into quine template
- File can be deleted after embedding (optional)
## Risks
1. **Quine size** - Adding RemoteGPUExecutor increases file size (~200 lines)
2. **Dependency bloat** - paramiko adds SSH dependencies
3. **Breaking changes** - Existing compiled agents won't have this
4. **SSH key management** - Must work across all platforms (Windows/Linux/Mac)
## Rollback Plan
If integration fails:
1. Remove RemoteGPUExecutor from template
2. Remove paramiko from requirements
3. Revert to external remote_gpu.py import
4. Keep vast.ai MCP tools (they're useful standalone)
## Success Criteria
- [ ] Compiled agent has RemoteGPUExecutor embedded
- [ ] paramiko in requirements.txt
- [ ] SSH keys auto-generate on first use
- [ ] No password prompts ever
- [ ] Can rent GPU via MCP
- [ ] Can load model on remote GPU
- [ ] Can run inference remotely
- [ ] FelixBag has remote GPU docs
- [ ] Quine replicates with remote GPU capability