Everything in this file is typed into the agent's chat box, not into the terminal. Shell commands are in 04-chay-script-bundled-tu-shell.md. Mixing up these two files is the most common source of copy-paste errors.
Why use it: an already-installed skill may still not be chosen by the agent, or it may pick the wrong sibling skill. This file is how to call the right one, and how to write a prompt so the agent can run multiple steps. What it produces: the artifacts defined by the skill — tables, figures, markdown/PDF reports, data files — in your workspace.
How a skill is chosen
The host matches your request against the description field in the frontmatter of each SKILL.md. There is no /skill-name command — you name the skill in the sentence.
Dùng skill depmap. Gene nào là dependency chọn lọc trong dòng tế bào ung thư
tuỵ so với toàn bộ panel DepMap?
When two skills overlap, name the one you want explicitly. The repo itself gives the example: phylogenetics build a tree, etetoolkit analyze an existing tree; scanpy run the analysis, anndata define the format. Naming it removes ambiguity instead of hoping the router guesses right.
See which skills the agent currently has (still a prompt):
Liệt kê các skill bạn đang nạp có liên quan tới genomics, kèm description của từng cái.
5-part prompt framework (taken from docs/examples.md)
The repo spells out 5 elements that separate a well-running agent workflow from a vaguely-running one:
- Name the skill you want.
- State the decision criteria, not just the steps. "Filter variants" is insufficient; "keep QUAL > 30 and DP > 20, then report how many variants each filter removed" is runnable and auditable.
- Declare the output contract before starting. Say upfront "a ranking table, one candidate per row, with a predicted pIC50 column, about 90%, and the nearest neighbor in the training set".
- Demand provenance and demand negative results too. Ask which database, what parameters, what date — and ask directly what the analysis did not find. A workflow that only knows how to report hits will only report hits.
- Separate the plan from irreversible actions. Anything that writes to a remote system, spends money, moves data outside, or controls physical devices must be in a separate prompt, after you have read the plan.
Framework to copy:
Dùng các skill <tên skill>. Giữ output có tổ chức và lưu các kết quả trung gian.
Mục tiêu: <một câu, kèm quyết định mà kết quả này phục vụ>
Dữ liệu: <ở đâu, được phép dùng tới đâu, cái gì không được rời khỏi máy>
Tiêu chí: <ngưỡng, bộ lọc, thế nào là hit, cái gì sẽ bác bỏ kết quả>
Bàn giao: <artifact chính xác, định dạng, cột/hình bắt buộc có>
Báo cáo: <provenance cho mọi dữ kiện truy xuất; độ bất định cho mọi ước lượng;
cái gì không xác định được và vì sao>
Không được: <các hành động không hoàn tác, để dành cho một lượt duyệt riêng>
Two other habits worth having on long runs: checkpoint (write intermediate results to disk and name them, so a failure at step 9 doesn't burn steps 1–8 too) and Test with the cheap thing you already trust (one case you can solve exactly, one positive control, one published benchmark, one order-of-magnitude estimate) before trusting the expensive result.
Sample prompt with multiple skills
Drug discovery pipeline (taken straight from the README):
Use available skills you have access to whenever possible. Query ChEMBL for EGFR
inhibitors (IC50 < 50nM), analyze structure-activity relationships with RDKit,
generate improved analogs with datamol, perform virtual screening with DiffDock
against AlphaFold EGFR structure, search PubMed for resistance mechanisms, check
COSMIC for mutations, and create visualizations and a comprehensive report.
Skills used: database-lookup, rdkit, datamol, diffdock, paper-lookup, scientific-visualization.
There are also ~40 more pre-written workflows in docs/examples.md of the repo — each has a "Skills Used" and "Expected Output" section. Read that file directly when you need a template for your field (cancer genomics, single-cell, protein structure, toxicology, clinical trial, PK/PD…).
25 skills need credentials
For any skill that needs a key, declare it in metadata.openclaw.envVars. Put the variable in the environment (or .env if the skill reads python-dotenv) before starting the agent.
| Skill | Environment variable | Required |
|---|---|---|
autoskill |
SCREENPIPE_TOKEN, ANTHROPIC_API_KEY, FOUNDRY_API_KEY |
1 required |
benchling-integration |
BENCHLING_TENANT_URL, BENCHLING_API_KEY, BENCHLING_CLIENT_ID, BENCHLING_CLIENT_SECRET, + prod/staging variables |
1 required |
biopython |
NCBI_EMAIL, NCBI_API_KEY |
optional |
bioservices |
NCBI_EMAIL |
optional |
citation-management |
NCBI_EMAIL, NCBI_API_KEY, OPENALEX_EMAIL |
optional |
exa-search |
EXA_API_KEY |
required |
generate-image |
OPENROUTER_API_KEY |
required |
genomic-intelligence |
GI_API_KEY |
optional |
infographics |
OPENROUTER_API_KEY |
optional |
latex-posters |
OPENROUTER_API_KEY |
optional |
literature-review |
OPENROUTER_API_KEY |
optional |
modal |
MODAL_TOKEN_ID, MODAL_TOKEN_SECRET, DATABASE_URL |
2 required |
neuropixels-analysis |
ANTHROPIC_API_KEY |
optional |
omero-integration |
OMERO_HOST, OMERO_PORT, OMERO_USER, OMERO_PASSWORD, OMERO_SESSION_KEY, OMERO_SECURE |
1 required |
open-notebook |
OPEN_NOTEBOOK_URL, OPEN_NOTEBOOK_PASSWORD, OPEN_NOTEBOOK_ENCRYPTION_KEY |
1 required |
paperclip |
PAPERCLIP_API_KEY |
optional |
parallel-web |
PARALLEL_API_KEY |
required |
protocolsio-integration |
PROTOCOLS_IO_ACCESS_TOKEN |
optional |
pyzotero |
ZOTERO_API_KEY, ZOTERO_LIBRARY_ID, ZOTERO_LIBRARY_TYPE |
2 required |
research-lookup |
PARALLEL_API_KEY, OPENROUTER_API_KEY |
optional |
rowan |
ROWAN_API_KEY |
required |
scientific-schematics |
OPENROUTER_API_KEY |
optional |
scientific-slides |
OPENROUTER_API_KEY |
optional |
tamarind |
TAMARIND_API_KEY |
required |
waypoint-bio |
HF_TOKEN |
required |
Rebuild the table above on a newer version (shell command, run in the cloned repo):
grep -l 'envVars' skills/*/SKILL.md | while read -r f; do
echo "== $(basename "$(dirname "$f")")"
sed -n '/^---$/,/^---$/p' "$f" | grep -E 'name: [A-Z0-9_]+|required:'
done
Pitfalls
- Gate
requiresfailure will hide the skill.AGENTS.mdstates clearly: if you block themetadata.openclaw/metadata.hermesgate on a credential you haven't set, the host may not show the skill — it disappears rather than reporting an error. If you don't see the skill, check the env before concluding the install is broken. - 163 skills = a lot of resident context. Installing many makes the router choose worse, not better. Install by topic.
- A skill is a reviewed starting point, not a validated result. The repo phrases it as "tested examples with explicit validation, provenance, and safety boundaries; verify them in the target environment". For clinical/regulatory skills, they produce drafts for a person with sufficient authority to approve — not decisions.