A conda env name (e.g. ml) — the plugin searches common conda prefix directories (~/miniconda3/envs, ~/anaconda3/envs, etc.) and falls back to conda run -n <name> if not found
All Python tools, pip, pytest, and dynamic tools share this single interpreter.
Agent Zero
Persistent Memory
The plugin stores memories as JSON at .agent_memory/memory.json inside the workspace. Memories survive across conversations. The model can tag and query them with memory_save / memory_recall.
Sub-agents (spawn_agent)
Sub-agents run an autonomous tool-call loop against LM Studio's OpenAI-compatible API.
RAM-aware model selection:
One model loaded (low-RAM devices) → the same model is reused with a different system prompt. Zero extra RAM.
Sub-Agent Model ID set and loaded → uses the dedicated sub-agent model.
The sub-agent has access to: read_file, write_file, list_directory, run_python_code, run_command, memory_save, memory_recall.
Set allow_tools=false for pure generation tasks (faster, no tool-call loop).
Dynamic Tools (create_tool / call_tool)
The model can write Python functions and register them as persistent tools:
Tools are saved as Python scripts in .agent_tools/ inside the workspace and can be called by name in future conversations. Arguments are passed as JSON via stdin; the function returns a string or JSON-serialisable value.
Error Handling
Every tool is wrapped in safe_impl(). When a tool throws, the model receives a structured JSON response it can parse and retry:
The prompt preprocessor injects tool-call rules on the first turn, reminding the model to output valid JSON and handle tool_error responses.
Security
Workspace sandbox: all file paths are resolved and validated against the configured workspace root. Paths that escape (e.g. ../../etc/passwd) are rejected.
Private IP blocking: fetch_url blocks requests to localhost, RFC 1918, and link-local addresses.
Execution opt-in: shell, Python, C++, and pip tools are disabled by default and must be explicitly enabled in settings.
{ "tool_error": true, "tool": "write_file", "error": "Path escapes the workspace", "hint": "Read the error above, fix the parameter causing the issue, and retry the tool call."}