feat(nodes): add auto-discovered Ollama inference#99234
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 3, 2026, 4:11 AM ET / 08:11 UTC. Summary Reproducibility: not applicable. this is a feature PR rather than a bug reproduction. Source inspection confirms current main lacks the requested Review metrics: 3 noteworthy metrics.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Restore a narrow Ollama node-inference PR, or explicitly route every non-Ollama surface through the relevant owners, then provide exact-current-head paired-node Ollama proof plus fresh-install and upgrade evidence for the startup/config behavior. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a feature PR rather than a bug reproduction. Source inspection confirms current main lacks the requested Is this the best way to solve the issue? No for the current live head. The Ollama-owned node-command/tool shape is a plausible owner-boundary fit, but the branch is too broad and needs exact-current-head proof plus maintainer acceptance of the startup/config behavior before it is the best landing path. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 5e61da3deb19. Label changesLabel changes:
Label justifications:
Evidence reviewedSecurity concerns:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Land-ready maintainer verificationExact head:
Known proof gaps: none. |
Dependency GuardThis PR changes dependency-related files. Maintainers should confirm these changes are intentional. Changed files:
Maintainer follow-up:
|
Dependency graph changes notedThis PR includes dependency graph changes. The dependency guard is informational because the PR author is a repository admin or a member of
Security review is still recommended before merge when the dependency graph change is intentional. |
|
Merged via squash.
|
Mantis Telegram Desktop ProofSummary: Mantis captured native Telegram Desktop before/after GIF evidence for a tool-using chat turn.
Motion-trimmed clips: Raw QA files: https://artifacts.openclaw.ai/mantis/telegram-desktop/pr-99234/run-28647614569-1/index.json |




Closes #99228
AI-assisted: Codex. I understand and reviewed the implementation and its node/plugin boundaries.
What Problem This Solves
Agents connected to desktop or server nodes could not discover and use a fast local model on that node. Using Ollama as the Gateway provider requires direct Gateway network access, while shelling out through node exec has no typed model discovery, capability filtering, or bounded result contract.
Operators also need node-level control: Ollama may be running on a node without being available to agents.
Why This Change Was Made
The bundled Ollama plugin now owns two node-host commands (
ollama.modelsandollama.chat) plus anode_inferenceagent tool. It reuses the existing plugin command registry, node invoke policy, and runtime node APIs; Ollama remains loopback-only on the node, with no new core protocol, dependency, or remote-provider fallback.Startup activation is deliberate: node-host command metadata must be registered before a node advertises its capabilities, so lazy Gateway provider discovery cannot expose these commands. Ollama API requests remain demand-driven.
Discovery positively verifies completion capability, excludes cloud and embedding-only rows, and ranks loaded models first. Runs validate one exact local model, bound prompts/output/timeouts/error bodies, report usage/timings, and surface token-limit truncation as an error.
plugins.entries.ollama.config.nodeInference.enabled=falsedisables command registration on the node host while leaving Ollama itself, the Gateway provider, and the agent tool unchanged. This gives each node host an explicit opt-out without expanding core config.The final hosted artifact gate also exposed a deterministic
tsdownOOM at its existing 8 GB V8 heap ceiling. The workflow now gives only that build step a 12 GB ceiling on its 16-vCPU runner; the exact-head rerun passed.User Impact
Users can keep small helper tasks on a paired node: start Ollama and the OpenClaw node host, approve the advertised commands, then ask an agent to discover and run an installed model. The path is available on macOS, Linux, and Windows node hosts and stays subject to normal node pairing and command policy.
The Ollama provider guide documents setup, discovery/filtering, security/locality, direct command verification, the node-level opt-out, re-enable behavior, and foreground-vs-service restart. The Nodes guide links to that workflow.
Evidence
qwen3:0.6b; twonode_inferencecalls returnedNODE_LOCAL_OPENAI_E2E_OKwith no fallback, and local generation completed in 1.61 seconds.nodeInference.enabled=false, Ollama remained reachable with 17 models while the paired node advertised neither thelocal-inferencecapability norollama.models/ollama.chat.node scripts/run-vitest.mjs src/security/audit-plugin-readonly-scope.test.ts src/security/audit-node-command-findings.test.ts(7/7 passed).pnpm build.tbx_01kwkbn7fvsm770h1jm75thbtm, exit 0; delegated Actions run. Covered extension production/test types, all core and plugin lint shards, guards, and import-cycle analysis.tbx_01kwk0vhy7st9eshebcc7y3fh7, exit 0; delegated Actions run.tsdownOOM reproduced twice; raising only that step to 12 GB passed on exact-head run 28647141731..agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main --stream-engine-outputreturned clean with no accepted/actionable findings.