A signed go / no-go guard before your AI agent acts.
Humanoids are the highest-stakes acting class - bipedal, working among people - so they're the case we model deepest. Before a humanoid (or any agent) acts, one keyless call returns a signed go / caution / no-go for that class at that location, fused from wind (topple), precipitation (slip), temperature (ice + actuator limits), air quality (people nearby) and hazards. Gate the action on it; keep the signed verdict as proof of what the robot knew the moment it acted.
The call
The humanoid pre-operation preset - one keyless call returns a signed verdict (real example: a cold site where a humanoid gets 'caution' that a wheeled robot does not):
curl -s -X POST https://dynamicfeed.ai/v1/humanoid \
-H 'Content-Type: application/json' \
-d '{"location":{"lat":-54.8,"lon":-68.3},"radius_km":50}'
# → { "verdict": { "status": "caution",
# "advisory": "-0.5C - near/below freezing; ice underfoot + cold-stressed actuators" },
# "facts": {...}, "signature": {...} } · same spot, class=ground → "go"
Sample response
# pip install requests — guard any humanoid (or agent) ACTION on a signed verdict
import functools, requests
def df_check(lat, lon, klass="humanoid", radius_km=25):
"""Signed go / caution / no-go + the grounded facts. Never hangs; a degraded source
floors the verdict to 'caution' - never a false 'go'."""
return requests.post("https://dynamicfeed.ai/v1/awareness", timeout=10, json={
"robot": {"class": klass}, # humanoid|ground|aerial|marine|orbital
"location": {"lat": lat, "lon": lon}, "radius_km": radius_km}).json()
def require_clear(klass="humanoid"):
def deco(act):
@functools.wraps(act)
def wrap(lat, lon, *a, **k):
v = df_check(lat, lon, klass)
if v["verdict"]["status"] == "no-go":
raise PermissionError(v["verdict"]["advisory"])
return act(lat, lon, *a, _awareness=v, **k)
return wrap
return deco
@require_clear("humanoid")
def step_into_workspace(lat, lon, _awareness=None):
... # runs only if not no-go. Anchor _awareness via POST /v1/anchor for a permanent record.
# ROS 2? a ready node publishes the verdict to /dynamicfeed/preop_verdict:
# clients/ros/humanoid_preop_guard.py (repo: github.com/dynamicfeed/Dynamic-Feed)
# Evidence, not a safety guarantee — your robot's stack owns every action.
Why live data
Humanoid robots are the highest-stakes acting systems coming: bipedal, working in homes, hospitals and factories ALONGSIDE people - where a wrong action has a physical-human consequence. So DF models the humanoid class deepest. POST /v1/humanoid (a preset over /v1/awareness) returns ONE signed go / caution / no-go fused from wind tuned for topple (a tall biped falls where a wheeled robot doesn't), precipitation (wet/icy footing → slip), temperature (ice underfoot + actuator/battery envelope), air quality at a tighter limit (people nearby) and nearby earthquakes - under a hard deadline so it never blocks the robot, and fail-safe: a degraded input floors the verdict to 'caution', never a false 'go'. Live proof of the depth: at a near-freezing site a humanoid returns 'caution' (ice underfoot) while a wheeled ground robot at the same spot returns 'go'. Every verdict is Ed25519-signed (optionally Bitcoin-anchored), so you keep a tamper-evident record of exactly what the robot knew the moment it acted. To be precise: the signature is proof a verdict existed unchanged at a time - tamper-evidence, NOT a claim it is safe and NOT a safety certification. It is evidence; your robot's own stack owns every action. Full guide: dynamicfeed.ai/iot · verify a signature yourself at /playground.
Use it for
- Gate a humanoid action (step into a workspace, lift, hand off to a person) on a signed go/no-go
- Hold or slow when wind (topple), wet/icy footing (slip) or heat/cold cross the humanoid limits
- Floor to 'caution' automatically when a data source is degraded — never act on a false 'go'
- Drop in anywhere: require_clear('humanoid') in Python, or the ROS 2 pre-op node on-robot
FAQ
Does this decide for the agent?
No. It returns a signed verdict + the facts behind it so your agent can decide. It is evidence, not an autopilot and not a safety system - your stack owns every action. The verdict floors to 'caution' when degraded, so it never hands back a false 'go'.
What classes are supported?
ground, humanoid, aerial, marine, orbital. There's also a /v1/preflight preset for class=aerial (drone take-off). Pass the class in robot.class.
Is it fast enough to call before an action?
Yes - it runs under a hard deadline and returns in time or returns degraded; it never blocks a physical system. Keyless over REST or MCP.