Install
openclaw skills install bohrium-wikiBrowse and search Bohrium SciencePedia (encyclopedia) via open.bohrium.com. Use when: user asks about finding scientific topics, reading encyclopedia-style entries, browsing by major/level/field hierarchy, or looking up a specific concept's article. NOT for: paper search (use bohrium-paper-search), knowledge base management (use bohrium-knowledge-base).
openclaw skills install bohrium-wikiAccess Bohrium SciencePedia through the /v1/literature-sage/wiki_v2/* endpoints on open.bohrium.com — a hierarchical encyclopedia of scientific topics organized as major → level → field → topic.
Use when:
Don't use for:
bohrium-paper-searchbohrium-knowledge-baseNo CLI support — HTTP API only.
"bohrium-wiki": {
"enabled": true,
"apiKey": "YOUR_ACCESS_KEY",
"env": {
"ACCESS_KEY": "YOUR_ACCESS_KEY"
}
}
import os, requests
AK = os.environ["ACCESS_KEY"]
BASE = "https://open.bohrium.com/openapi/v1/literature-sage/wiki_v2"
H = {"accessKey": AK, "Content-Type": "application/json"}
# Optional global defaults
DEFAULTS = {"language": "en-US", "style": "Feynman"}
# language: "en-US" / "zh-CN"
# style: "Feynman" for accessible tone, or others
| Action | Method | Purpose |
|---|---|---|
info | GET | Basic SciencePedia info |
major_levels | POST | List all majors and their levels |
get_wiki_index | POST | Fetch index for a given nodeId / fieldId |
get_level_wiki_index | POST | List nodes filtered by node_types |
search_index_name | POST | Keyword search of index entries |
level_fields | POST | List fields under a set of level nodes |
article | POST | Fetch the article body of a node / entry |
infor = requests.get(f"{BASE}/info", headers={"accessKey": AK})
print(r.json())
major_levelsr = requests.post(f"{BASE}/major_levels", headers=H, json={**DEFAULTS})
for m in r.json().get("majors", []):
levels = ", ".join(l["name"] for l in m.get("levels", []))
print(f"- {m['name']} [{m['node_id']}] levels: {levels}")
search_index_namer = requests.post(f"{BASE}/search_index_name", headers=H, json={
"name": "graphene",
"node_types": ["field"], # Filter: major / level / field / topic
"style": "Feynman",
})
for i, n in enumerate(r.json().get("wiki_indices", []), 1):
print(f"[{i}] [{n['node_type']}] {n['node_name']} id={n['node_id']}")
get_level_wiki_indexr = requests.post(f"{BASE}/get_level_wiki_index", headers=H, json={
"node_types": ["major", "level"],
**DEFAULTS,
})
for n in r.json().get("wiki_indices", [])[:50]:
print(f"[{n['node_type']}] {n['node_name']} ({n['node_id']})")
get_wiki_indexr = requests.post(f"{BASE}/get_wiki_index", headers=H, json={
"node_id": "NODE_ID_HERE",
# or "field_id": "FIELD_ID_HERE"
**DEFAULTS,
})
print(r.json())
level_fieldsr = requests.post(f"{BASE}/level_fields", headers=H, json={
"node_ids": ["LEVEL_NODE_ID1", "LEVEL_NODE_ID2"],
"page_num": 1, "page_size": 10,
**DEFAULTS,
})
for row in r.json().get("items", []):
major = row.get("major", {}).get("name")
level = row.get("level", {}).get("name")
field = row.get("field", {}).get("name")
print(f"- {major}/{level}/{field} topics={row.get('topic_count')}")
articler = requests.post(f"{BASE}/article", headers=H, json={
"node_id": "NODE_ID", # or "entry_id": "ENTRY_ID"
**DEFAULTS,
})
doc = r.json().get("document", {})
print(f"# {doc.get('article_name')}")
print(doc.get("main_content", "")[:2000])
Common fields: document.article_name / document.main_content / document.applications / document.seo_title.
AK="YOUR_ACCESS_KEY"
BASE="https://open.bohrium.com/openapi/v1/literature-sage/wiki_v2"
# Search entries by keyword
curl -s -X POST "$BASE/search_index_name" \
-H "accessKey: $AK" -H "Content-Type: application/json" \
-d '{"name":"graphene","node_types":["field"],"style":"Feynman"}' \
| jq '.wiki_indices[] | {node_name, node_type, node_id}'
| Symptom | Cause | Fix |
|---|---|---|
No matches for "..." | Keyword not in index | Try synonyms; expand node_types to ["field","topic","major","level"] |
Empty article | Wrong nodeId/entryId or no body | First call search_index_name to obtain the correct node_id |
| All-English (or all-Chinese) results | Wrong language | Set "language": "en-US" or "zh-CN" |
major_levels) → pick a field → scholar to find leading researchers