This is an on-demand capability and local dependency check, not a mandatory prerequisite for Entry. Doctor reports separately:
- whether the current Agent's native tools for regular search, image search, and image generation are registered, configured, or actually verified;
- the PPT full package's built-in
sn-ppt-toolswhether it exists and is configured.
Doctor does not check or restore sn_agent_runner.py, does not write .env, nor does it turn optional media capabilities into hard thresholds.
Persistent configuration
PPT built-in tools and Doctor automatically read:
- Hermes:
~/.hermes/.env - OpenClaw:
~/.openclaw/.env - Custom: first set
SN_PPT_ENV_FILE=/absolute/path/to/file
Existing process variables take precedence over file values. Recommended configuration:
# 搜索和搜图共用;默认请求 google.serper.dev
SN_PPT_SEARCH_API_KEY="<search-api-key>"
# OpenAI/SenseNova 兼容的同步 /images/generations 接口
SN_PPT_IMAGE_GEN_URL="https://your-host/images/generations"
SN_PPT_IMAGE_GEN_API_KEY="<image-generation-api-key>"
SN_PPT_IMAGE_GEN_MODEL="<image-generation-model>"
The user only needs to edit the file once, and does not need to run before each Hermes startup export. Doctor outputs the file actually read,
the adopted variable names, and missing fields, but must not output key values.
Check contents
- whether the current workspace is writable,
<pwd>/ppt_deckswhether it is available; pypdf、python-docxwhether it can be used for attachment parsing;- whether the Python Playwright required for Standard HTML rendering exists;
- when the current interpreter lacks Playwright, first retain bare Python's pip installation path, then check whether the installed
uv toolPlaywright can serve as an optional isolated environment; - whether Playwright Chromium is already installed and can actually launch (not just checking script files);
- whether Node.js can be used for Workbench and Static default HTML -> PPTX compatible export;
- whether the npm,
pptxgenjs、echarts, and Node Playwright required for HTML -> PPTX can be resolved, and whether that Playwright's Chromium can actually launch; - whether the Standard rendering script, PPTX exporter, and Workbench runtime exist;
python-pptxwhether it can be used for Creative full-page image packaging.sn-ppt-toolswhether the four scripts exist;- whether the built-in URLs for regular search, image search, and image generation are valid, and whether the key/model are configured;
- the actually loaded
.envpath, invalid lines, and missing fields.
Native tool validity
A tool appearing in the Agent tool list does not mean it is available. Doctor must use the following statuses:
| Status | Meaning |
|---|---|
absent |
The current Agent does not have the corresponding tool |
present_unverified |
The tool is registered, but there is no configuration check or evidence of a successful call |
misconfigured |
The tool or a known configuration check explicitly reports missing URL, key, model, etc. |
available |
A no-cost config/health check passes, or one real call succeeds |
failed |
A real call has already failed |
The Agent running the Doctor Skill must:
- check the current actual tool list, and write when there is no tool
absent。 - when a tool exists, first look for the config/health status exposed by that tool; when configuration is explicitly missing, write
misconfigured。 - when there is no no-cost check, only write
present_unverified, and must not write merely because the tool name existsavailable。 - when the user requests a complete check, perform one minimal real call each for regular search and image search.
- A real image generation probe may incur charges, so explicit user consent must be obtained first; before probing, keep
present_unverified, unless there is already explicit evidence of missing configuration.
Local scripts cannot read the Agent tool registry, so only report Bundled configuration facts, and in native_media
return agent_inspection_required. Doctor Skill is responsible for presenting the Native and Bundled layers side by side,
then giving the effective source:
- a verified Native;
- otherwise a configured or successfully probed Bundled;
- None when neither can be confirmed.
A missing optional dependency only affects the corresponding capability and should not block the other exits. For example, when Node is absent, the host-native PPTX capability is still available; when HTML -> PPTX fails, HTML is still retained.
Call
python3 "$SKILL_DIR/ppt_doctor/check_environment.py"
The default command does not go online; it only checks the Bundled configuration. Explicitly probe the Bundled search interface:
python3 "$SKILL_DIR/ppt_doctor/check_environment.py" --probe-search
Bundled image generation may incur charges; run it only when the user explicitly requests it:
python3 "$SKILL_DIR/ppt_doctor/check_environment.py" \
--probe-image-generation \
--probe-output-dir "/absolute/existing/directory"
Doctor only reports; it does not install dependencies, write secrets, or modify the task directory.standard_html.status is only true when
the rendering script, Python Playwright, and Chromium all actually start available; otherwise
playwright_chromium.install_hint gives preparation commands. In the report, python_source is
current_interpreter or uv_tool. The former is always checked first, and the main installation prompt when packages are missing retains
python -m pip install -r requirements.txt; only when Doctor actually detects an installed uv-tool
Playwright should uv tool run --from playwright python ...。
html_to_pptx_environment.status be used. It is only true when
the export script, Node packages, and Node Playwright Chromium can all actually run available, and when they are missing, preparation commands are likewise
given. When media configuration is missing, the report still completes with exit code 0, and shows the .env path to edit and the missing items.