EdgePilot Research router
The Node Ready Bridge always exposes edgepilot_runtime_status,
edgepilot_runtime_start, edgepilot_runtime_update and edgepilot_runtime_repair, even
before Runtime exists. The bridge automatically prepares the release-bound Runtime before first business use; never treat an older compatible Runtime as ready. When Runtime is ready, use the five Host meta tools:
edgepilot_connection_list
edgepilot_tool_search
edgepilot_tool_get
edgepilot_tool_execute
edgepilot_result_present
Search for an operation, fetch its exact current descriptor, then execute with the returned
schema_revision. Do not invent dynamic tools, copy operation schemas into this plugin or
infer missing benchmark facts. Preserve exact strategy version, package digest,
configuration-schema digest, dataset provenance and Runtime identity in reproducible
results.
Route one user outcome at a time. Use edgepilot_connection_list for current anonymous
catalog availability. Search unknown capabilities once in concise English, batch Get for
the exact contracts, and batch Execute only for independent calls. A returned identifier or
digest starts a later dependency round. Present only an execute-minted result_ref.
The normal research route is catalog search/recommend, exact inspect/version list, install,
configuration resolve, backtest start, durable job status and result get. Runtime workflow
hints are navigation, not execution authority. Never repeat a start call merely because a
job is still queued or running.
For chat recommendation, call the read-only edgepilot_strategy_recommend convenience
tool with the structured questionnaire; it delegates to the Host operation
catalog.strategy.recommend. For “open Research”, call edgepilot_dashboard_open and
return its loopback URL; never start the Dashboard directly.
First-use onboarding
Run this flow only when the user selects a setup/recommendation starter prompt or explicitly
asks for onboarding. Reply in the user's current language (en, ko, zh-CN or zh-TW).
Ordinary catalog, Dashboard, data or backtest requests go directly to that outcome and do
not force the questionnaire.
- Call
edgepilot_runtime_status, then edgepilot_runtime_start when the bound target
needs starting, installation or recovery. Let the script decide whether to reuse,
start, prepare or resume; do not infer process liveness from stored job states or
historical lifecycle phases and do not assemble alternative shell recovery commands.
Wait for the original call's final result; yielded/running is not completed. If the
script reports runtime_operation_pending, wait on that call or query status with
bounded backoff, without parallel open calls or duplicate installations.
When state=awaiting_confirmation, show switch.processes and switch.jobs and ask
once: “暂不切换” (defer) or “停止旧版本并继续” (stop_and_continue), translated into
the user's language. Explain that stopping trading programs does not guarantee order
cancellation or position closure. Submit the chosen action to the same lifecycle tool
with the returned operation_id and snapshot_digest; never invent or reuse a changed
snapshot. This choice authorizes only the listed process stop, not an orders/positions
review. A refreshed snapshot requires a fresh choice. On deferred, end this target
startup request and leave the old environment alone; do not open old onboarding as
target success. Report other failures and their script-provided recovery action.
For stale_session, reload the plugin session rather than attempting a downgrade.
- For this Dashboard-and-onboarding request, all successful paths (already running,
stopped target started, first installation, upgrade or repair) continue identically.
Only after
state=ready and connection_ready=true, call
edgepilot_dashboard_open once and return its loopback URL. Then call
edgepilot_onboarding_open once with the current locale. On success, hand control to
that interactive card and end the turn. A brief instruction to continue in the card is
enough; do not repeat questionnaire choices in chat or call another question/selection
tool. Keep all seven choices, review and recommendation inside that one App.
The tool does not report rendering visibility. Missing model-visible HTML, missing
acknowledgement or delayed rendering is unknown, not evidence of failure. Never claim
the card did not appear based on that absence and never automatically start text onboarding
alongside a successful App request. Do not restart installation to recover presentation.
- Switch to text onboarding only when the host explicitly reports App rendering unsupported
or failed, or the user reports the card unusable or explicitly requests text onboarding.
A Runtime/tool execution error follows step 1 recovery, not the questionnaire fallback.
Apply the one-question turn boundary
as the formal fallback. The internal field order is
profit_style,
holding_period, pain_point, max_drawdown_pct, trading_mode, allocation_band,
universe. Ask only the first unanswered field, with only that field's choices, and end
the assistant turn immediately. Never display the complete questionnaire, a numbered
checklist, future questions, future choices or a request for multiple answers. Do not
preview what comes next.
- On the user's next message, retain every valid supplied answer and ask only the next
unanswered field, then end the turn immediately again. If the current answer is invalid
or ambiguous, clarify only the same field and end the turn; do not advance or expose any
later field. A message that already contains valid answers may fill them silently, but
the response still asks at most one unanswered field.
- After the last answer, use a separate assistant turn to summarize the selected values
and ask only for explicit confirmation. Do not combine that confirmation request with
another question and do not call recommendation before confirmation.
- In the textual fallback, call
edgepilot_strategy_recommend once with questionnaire_version="2.0", the seven
confirmed values and matching locale. Present exactly best fit, relatively steadier and
more aggressive while preserving versions, evidence, trade-offs and warnings.
Do not install a recommended strategy until the user selects it. This flow remains anonymous
and never introduces an account, credential, paper, demo, live or order capability.
This Research surface never has account, credential, paper, exchange-demo, live execution
or order operations. If a requested operation is absent, explain the boundary; never route
through the Live profile or ask for a trading credential.
The local MCP route and bearer are created in an owner-private staged copy by the Runtime
Host. If the connection is unavailable, report that the Runtime/Host must be started
or repaired; do not search for Python, install packages, scan ports or call Marketplace MCP
as an internal substitute.
Upgrade recovery
The plugin ships its fixed-release lifecycle entry. Upgrades are forward-only; do not invoke
rollback or search for system Python. Inspect a pending lifecycle operation instead of starting
a duplicate. Active backtests or writes must complete or be explicitly cancelled before upgrade.
Research never uses Live task management or reads Live state.
1---2name: edgepilot-research3description: Route anonymous public strategy discovery and reproducible historical backtests through the local EdgePilot Research Runtime. It has no accounts, credentials, paper, demo, live trading, or order execution.4---56# EdgePilot Research router78The Node Ready Bridge always exposes `edgepilot_runtime_status`,9`edgepilot_runtime_start`, `edgepilot_runtime_update` and `edgepilot_runtime_repair`, even10before Runtime exists. The bridge automatically prepares the release-bound Runtime before first business use; never treat an older compatible Runtime as ready. When Runtime is ready, use the five Host meta tools:11121. `edgepilot_connection_list`132. `edgepilot_tool_search`143. `edgepilot_tool_get`154. `edgepilot_tool_execute`165. `edgepilot_result_present`1718Search for an operation, fetch its exact current descriptor, then execute with the returned19`schema_revision`. Do not invent dynamic tools, copy operation schemas into this plugin or20infer missing benchmark facts. Preserve exact strategy version, package digest,21configuration-schema digest, dataset provenance and Runtime identity in reproducible22results.2324Route one user outcome at a time. Use `edgepilot_connection_list` for current anonymous25catalog availability. Search unknown capabilities once in concise English, batch Get for26the exact contracts, and batch Execute only for independent calls. A returned identifier or27digest starts a later dependency round. Present only an execute-minted `result_ref`.2829The normal research route is catalog search/recommend, exact inspect/version list, install,30configuration resolve, backtest start, durable job status and result get. Runtime workflow31hints are navigation, not execution authority. Never repeat a start call merely because a32job is still queued or running.3334For chat recommendation, call the read-only `edgepilot_strategy_recommend` convenience35tool with the structured questionnaire; it delegates to the Host operation36`catalog.strategy.recommend`. For “open Research”, call `edgepilot_dashboard_open` and37return its loopback URL; never start the Dashboard directly.3839## First-use onboarding4041Run this flow only when the user selects a setup/recommendation starter prompt or explicitly42asks for onboarding. Reply in the user's current language (`en`, `ko`, `zh-CN` or `zh-TW`).43Ordinary catalog, Dashboard, data or backtest requests go directly to that outcome and do44not force the questionnaire.45461. Call `edgepilot_runtime_status`, then `edgepilot_runtime_start` when the bound target47 needs starting, installation or recovery. Let the script decide whether to reuse,48 start, prepare or resume; do not infer process liveness from stored job states or49 historical lifecycle phases and do not assemble alternative shell recovery commands.50 Wait for the original call's final result; yielded/running is not completed. If the51 script reports `runtime_operation_pending`, wait on that call or query status with52 bounded backoff, without parallel open calls or duplicate installations.53 When `state=awaiting_confirmation`, show `switch.processes` and `switch.jobs` and ask54 once: “暂不切换” (`defer`) or “停止旧版本并继续” (`stop_and_continue`), translated into55 the user's language. Explain that stopping trading programs does not guarantee order56 cancellation or position closure. Submit the chosen action to the same lifecycle tool57 with the returned `operation_id` and `snapshot_digest`; never invent or reuse a changed58 snapshot. This choice authorizes only the listed process stop, not an orders/positions59 review. A refreshed snapshot requires a fresh choice. On `deferred`, end this target60 startup request and leave the old environment alone; do not open old onboarding as61 target success. Report other failures and their script-provided recovery action.62 For `stale_session`, reload the plugin session rather than attempting a downgrade.632. For this Dashboard-and-onboarding request, all successful paths (already running,64 stopped target started, first installation, upgrade or repair) continue identically.65 Only after `state=ready` and `connection_ready=true`, call66 `edgepilot_dashboard_open` once and return its loopback URL. Then call67 `edgepilot_onboarding_open` once with the current locale. On success, hand control to68 that interactive card and end the turn. A brief instruction to continue in the card is69 enough; do not repeat questionnaire choices in chat or call another question/selection70 tool. Keep all seven choices, review and recommendation inside that one App.71 The tool does not report rendering visibility. Missing model-visible HTML, missing72 acknowledgement or delayed rendering is unknown, not evidence of failure. Never claim73 the card did not appear based on that absence and never automatically start text onboarding74 alongside a successful App request. Do not restart installation to recover presentation.753. Switch to text onboarding only when the host explicitly reports App rendering unsupported76 or failed, or the user reports the card unusable or explicitly requests text onboarding.77 A Runtime/tool execution error follows step 1 recovery, not the questionnaire fallback.78 Apply the **one-question turn boundary**79 as the formal fallback. The internal field order is `profit_style`,80 `holding_period`, `pain_point`, `max_drawdown_pct`, `trading_mode`, `allocation_band`,81 `universe`. Ask only the first unanswered field, with only that field's choices, and end82 the assistant turn immediately. Never display the complete questionnaire, a numbered83 checklist, future questions, future choices or a request for multiple answers. Do not84 preview what comes next.854. On the user's next message, retain every valid supplied answer and ask only the next86 unanswered field, then end the turn immediately again. If the current answer is invalid87 or ambiguous, clarify only the same field and end the turn; do not advance or expose any88 later field. A message that already contains valid answers may fill them silently, but89 the response still asks at most one unanswered field.905. After the last answer, use a separate assistant turn to summarize the selected values91 and ask only for explicit confirmation. Do not combine that confirmation request with92 another question and do not call recommendation before confirmation.936. In the textual fallback, call `edgepilot_strategy_recommend` once with `questionnaire_version="2.0"`, the seven94 confirmed values and matching locale. Present exactly best fit, relatively steadier and95 more aggressive while preserving versions, evidence, trade-offs and warnings.9697Do not install a recommended strategy until the user selects it. This flow remains anonymous98and never introduces an account, credential, paper, demo, live or order capability.99100This Research surface never has account, credential, paper, exchange-demo, live execution101or order operations. If a requested operation is absent, explain the boundary; never route102through the Live profile or ask for a trading credential.103104The local MCP route and bearer are created in an owner-private staged copy by the Runtime105Host. If the connection is unavailable, report that the Runtime/Host must be started106or repaired; do not search for Python, install packages, scan ports or call Marketplace MCP107as an internal substitute.108109## Upgrade recovery110111The plugin ships its fixed-release lifecycle entry. Upgrades are forward-only; do not invoke112rollback or search for system Python. Inspect a pending lifecycle operation instead of starting113a duplicate. Active backtests or writes must complete or be explicitly cancelled before upgrade.114Research never uses Live task management or reads Live state.