Skip to content

Strands Agent Tool

When a language model meets a robot body. Neon integrates with Strands Agents as a tool — any LLM becomes a high-level planner, and Neon becomes the hands.


The Three-Line Version

from strands import Agent
from neon.tools import neon_tool

agent = Agent(tools=[neon_tool])
agent("Pick up the red cup and place it on the shelf")

The agent decides what to do. Neon decides how to move. System 2 meets System 1.


Available Actions

predict — Look Before You Act

neon_tool(
    action="predict",
    instruction="Pick up the cup",
    image_path="/tmp/camera.jpg",
)

Returns predicted actions without executing them. For planning, visualization, or sanity checking.

control — Closed-Loop Execution

neon_tool(
    action="control",
    instruction="Pick up the cup",
    robot_ip="192.168.123.10",
    control_mode="arms_only",
    max_steps=200,
)

Connects to the G1 and runs a full control loop. The agent blocks until execution completes or max_steps is reached.

status — What's Loaded

neon_tool(action="status")

Returns model info, device, action space configuration, and current state.

reset — Clean Slate

neon_tool(action="reset")

Clears the inference server's temporal smoothing. Call between episodes.


Environment

Variable Default What
NEON_MODEL_PATH cagataydev/neon-g1-v1 Model to load (HuggingFace ID or local path)

Multi-Step Reasoning

The real power isn't single commands — it's the LLM decomposing complex tasks into sequences of physical actions:

agent("Make me a sandwich")

# The agent's internal reasoning:
# 1. neon_tool(action="predict", instruction="Look around and find the bread")
# 2. neon_tool(action="control", instruction="Pick up the bread")
# 3. neon_tool(action="control", instruction="Place bread on the cutting board")
# 4. neon_tool(action="control", instruction="Pick up the butter knife")
# ... and so on, step by step

The LLM handles high-level planning — task decomposition, error recovery, common sense. Neon handles low-level motor control — joint trajectories, safety, smooth execution. This is the dual-system architecture from GR00T N1 — but with any LLM as the planner. Claude, GPT-4, Qwen, an open-source model on your laptop. The brain is swappable. The body stays the same.


Why This Matters

A traditional robot needs a new program for every task. A Strands-powered Neon robot needs a sentence.

"Pick up the red cup" and "sort the blocks by color" and "clean up the table" all run through the same model, the same action heads, the same control loop. The language model provides the versatility. Neon provides the physics.

Eighteen Python files. One tool integration. Every task you can describe.


Go deeper: Architecture — how the entire system is built