Explains how to execute Synapse plugins programmatically. Use when the user mentions "run_plugin", "ExecutionMode", "LocalExecutor", "RayActorExecutor", "RayJobExecutor", "PluginDiscovery", "from_path", "from_module", or needs help with running plugins programmatically.
Synapse SDK provides multiple ways to execute plugin actions programmatically.
The simplest way to run a plugin action:
from synapse_sdk.plugins.runner import run_plugin, ExecutionMode
# Local execution (in-process, good for dev)
result = run_plugin(
plugin_code='/path/to/plugin',
action='train',
params={'epochs': 100},
mode=ExecutionMode.LOCAL,
)
# Ray Actor execution (fast startup)
result = run_plugin(
plugin_code='/path/to/plugin',
action='train',
params={'epochs': 100},
mode=ExecutionMode.TASK,
)
# Ray Job execution (heavy workloads)
job_id = run_plugin(
plugin_code='/path/to/plugin',
action='train',
params={'epochs': 100},
mode=ExecutionMode.JOB,
)
| Mode | Class | Use Case | Returns |
|------|-------|----------|---------|
| LOCAL | LocalExecutor | Development, testing | Result dict |
| TASK | RayActorExecutor | Fast startup, medium work | Result dict |
| JOB | RayJobExecutor | Heavy workloads, isolation | Job ID string |
Discover and inspect plugins before execution:
from synapse_sdk.plugins.discovery import PluginDiscovery
# From filesystem path
discovery = PluginDiscovery.from_path('/path/to/plugin')
# From Python module
import my_plugin
discovery = PluginDiscovery.from_module(my_plugin)
# List available actions
actions = discovery.list_actions() # ['train', 'inference']
# Get action class
action_cls = discovery.get_action_class('train')
# Get action metadata
config = discovery.get_action_config('train')
params_model = discovery.get_action_params_model('train')
For more control, use executors directly:
from synapse_sdk.plugins.executors.local import LocalExecutor
from synapse_sdk.plugins.discovery import PluginDiscovery
discovery = PluginDiscovery.from_path('/path/to/plugin')
action_cls = discovery.get_action_class('train')
executor = LocalExecutor()
result = executor.execute(action_cls, {'epochs': 100})
npx skills add datamaker-kr/synapse-plugin-execution下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer