SDK API Reference¶
effero.sdk
¶
Public SDK surface for building new skills and adapters.
from effero.sdk import skill, SafetyClass is the primary entry point
described in the top-level README's Quickstart.
SafetyClass
¶
Bases: StrEnum
Declares how much autonomy a skill is trusted with.
READ_ONLY -- cannot change any external state. ACT_AUTONOMOUS -- may act without human approval. ACT_WITH_APPROVAL -- requires human-in-the-loop confirmation before executing. ACT_RESTRICTED -- simulation/dry-run only until explicitly promoted.
Source code in src/effero/sdk/skill.py
SkillRegistry
¶
Process-wide registry of every skill Effero knows about.
A later milestone will project this registry out as MCP tool schemas; for now it's a plain in-memory lookup so the rest of the runtime (and tests) have something concrete to build against.
Source code in src/effero/sdk/skill.py
effero.sdk.skill
¶
Effero SDK: skill registration decorator and safety classification.
A "skill" is the atomic unit of capability in Effero: a robot joint, a smart plug, a shell command, and a browser click are all exposed through this same interface. In a full deployment each registered skill is also exposed as an MCP tool, so Effero's own planner -- and any other MCP-compatible client -- can call it without extra glue code.
This module is deliberately dependency-free and self-contained so it can be imported (and unit-tested) without the rest of the runtime.
SafetyClass
¶
Bases: StrEnum
Declares how much autonomy a skill is trusted with.
READ_ONLY -- cannot change any external state. ACT_AUTONOMOUS -- may act without human approval. ACT_WITH_APPROVAL -- requires human-in-the-loop confirmation before executing. ACT_RESTRICTED -- simulation/dry-run only until explicitly promoted.
Source code in src/effero/sdk/skill.py
SkillSpec
dataclass
¶
The registered form of a skill: metadata plus the callable itself.
Source code in src/effero/sdk/skill.py
SkillRegistry
¶
Process-wide registry of every skill Effero knows about.
A later milestone will project this registry out as MCP tool schemas; for now it's a plain in-memory lookup so the rest of the runtime (and tests) have something concrete to build against.
Source code in src/effero/sdk/skill.py
skill(name, description, safety_class=SafetyClass.ACT_WITH_APPROVAL)
¶
Decorator that turns a plain function into a registered Effero skill.
Example
from effero.sdk import skill, SafetyClass
@skill( ... name="iot.thermostat.set_temperature", ... description="Set the target temperature of a named thermostat.", ... safety_class=SafetyClass.ACT_AUTONOMOUS, ... ) ... def set_temperature(thermostat_id: str, celsius: float) -> dict: ... return {"status": "ok", "device": thermostat_id, "target_temperature": celsius} set_temperature("kitchen", 21.5)