Token导航 LogoToken导航TokenDH.com
效率敏感数据clawhub未标认证来源可访问clear审计通过

did-you-know你知道吗

Agent Skill

did-you-know 用于辅助前端页面、组件、样式和交互逻辑开发,适合在 OpenClaw 中需要维护前端项目、生成组件或检查界面实现时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

16,324

周安装

654

GitHub Stars

1

下载量

5,284
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:did-you-know(你知道吗)
来源仓库:https://github.com/jonathandeamer/did-you-know
安装命令:
openclaw skills install did-you-know
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install did-you-know

简介

获取英语维基百科的“你知道吗?” (DYK) 事实,将它们缓存在本地,并一次提供一个。无需 API 密钥。不编辑维基百科。

SKILL.md

name
did-you-know
description
Fetches English Wikipedia's "Did you know?" (DYK) facts, caches them locally, and serves them one at a time. No API key required. Does not edit Wikipedia.
homepage
https://github.com/jonathandeamer/did-you-know
metadata
{"openclaw":{"emoji":"❓","requires":{"bins":["python3"]}}}

Did You Know

Wikipedia's Did You Know? section highlights well-sourced facts from recently created or expanded articles. It's curated and refreshed at least daily by volunteers.

Use this skill when the user asks for an interesting fact, wants daily trivia delivered automatically, or wants to customise which kinds of facts they see.

Agent: Do not show bash commands or technical details to the user unless they explicitly ask. Run all commands silently. The user experience is conversational — facts, questions, and natural follow-ups. Keep your tone direct and natural; avoid empty compliments like "Great taste!" or "Excellent choice!" when responding to preferences.

What users might want

If the user wants…Do this
A factServe one (see Serving a fact)
To customise which facts they seeWalk through preferences (see Managing preferences)
Facts delivered automaticallyHelp them set up a schedule (see Scheduling fact delivery)
The fact queue refreshedFollow the Refresh workflow

Is any setup required?

Facts work immediately — no setup needed. Just serve one.

Preferences are optional but recommended. If the user wants to tune which topics come up (more history, less science, etc.), you can set those up in a minute or two. Preferences need the refresh workflow running so that new facts get tagged before they're scored.

Scheduled refresh is only needed if preferences are active. Without preferences, the skill fetches and caches facts automatically as needed. With preferences, set up both a delivery schedule (to serve facts) and a refresh schedule (to tag new facts so preference scoring works).

If a user asks whether any setup is required, a good response is: *"You can get facts right now — no setup needed. If you'd like to tune which topics come up, or get a fact delivered automatically each day, we can set either of those up in a few minutes. Want to?"*

Serving a fact

Agent: run this silently — do not show the command.
python3 {baseDir}/scripts/dyk.py

Return the output to the user verbatim.

Fact served:

Did you know that heavy-metal guitarist Kiki Wong played drums for Taylor Swift before joining the Smashing Pumpkins?

https://en.wikipedia.org/wiki/Kiki_Wong

No facts remaining:

No more facts to share today; check back tomorrow!

Error:

Something went wrong with the fact-fetching; please try again later.

After serving a fact, check whether ~/.openclaw/dyk-prefs.json exists. If it does not exist, the user is new — follow up: *"Would you like to tune which topics you see (more music, less science, etc.), or get a fact delivered automatically each day?"* If the file exists, or if you already set up preferences or delivery earlier in this conversation, say nothing.

Managing preferences

Facts are scored and ranked using user preferences. Liked tags increase the score; disliked tags reduce it. Recency and variety bonuses apply automatically.

Have the conversation first

Before running any commands, understand what the user enjoys. If they've already told you (e.g. "I love dark historical stories but not sports"), map their words directly to tags — don't ask them to repeat themselves. Only ask follow-up questions if their intent is unclear. Two dimensions are available:

  • domain — topic area (e.g. history, science, music)
  • tone — style or mood (e.g. quirky, inspiring, dark)

Don't list every tag upfront — just ask what they like in natural terms and map their answers. For example: "I love dark historical stories" maps to domain: history (like), tone: dark (like).

When opening the preferences conversation, mention that you'll also set up automatic refresh alongside — this is what actually applies preferences to new facts as they arrive. Keep it light: something like *"I'll also set up automatic refresh in the background so new facts get tagged and scored against your preferences."* The user doesn't need to understand the mechanics, but they should know the full setup is happening.

Setting preferences

Once you know what they want:

  1. Check if the prefs file exists. If not, initialise it first (prefs.py init).
  2. Set each preference (prefs.py set).
  3. Summarise in plain language what's been set and how it will affect the facts they see.

If they want to see their current preferences at any point, run prefs.py list and present the results readably — not as raw output.

Agent: run preference commands silently — do not show them.
python3 {baseDir}/scripts/prefs.py init                     # Create prefs file with neutral defaults. Fails if already exists.
python3 {baseDir}/scripts/prefs.py list                     # Show all current preferences
python3 {baseDir}/scripts/prefs.py get domain science       # Get a single preference
python3 {baseDir}/scripts/prefs.py set domain science like  # Set a preference: like | neutral | dislike

Tags

domain: animals · economics_business · film · history · journalism · language_linguistics · literature · medicine_health · military_history · music · mythology_folklore · nature · performing_arts · places · religion · science · sports · technology · television · visual_art

tone: dark · dramatic · inspiring · poignant · provocative · quirky · straight · surprising · whimsical

After setting preferences

Once preferences are saved, run the Refresh workflow immediately — existing cached hooks are all untagged, so preferences can't score anything until they've been tagged. Don't wait for the scheduled cron; do it now, inline. Then set up the refresh schedule so future facts get tagged automatically as they arrive. Say something like: *"I'll tag your existing facts now so preferences apply straight away, and set up automatic refresh in the background for new ones."*

Also offer scheduled delivery if they haven't already set it up.

Scheduling fact delivery

When the user wants to receive facts automatically, prompt a cadence conversation before setting anything up:

  • How often would they like a fact? Once a day is a nice ritual — over breakfast, on the commute, at the end of the day. A few times spread throughout the day also works.
  • Bear in mind: the more frequently facts are served, the further into lower-preference territory the queue will go.

Once they've chosen, set up an OpenClaw cron job for delivery. Use --session isolated and --announce so the output is delivered back to the user's chat. Do not use OS-level crontab — it has no delivery context and output will go nowhere.

Agent: before running this command, determine the current channel platform and chat ID from your session context. Use them for --channel and --to. Run the command silently — do not show it.
openclaw cron add \
  --name "DYK delivery" \
  --cron "<schedule>" \
  --session isolated \
  --message "Share a Did You Know fact" \
  --announce \
  --channel <platform> \
  --to <platform>:<id>

Replace <schedule> with a 5-field cron expression matching the user's chosen cadence (e.g. 57 7 * * * for ~8am). Avoid exact :00 minutes — nudge a few minutes either side. Replace <platform> and <id> with the current channel's platform and chat ID (e.g. --channel telegram --to telegram:1234567890).

If preferences are active (or the user wants to set them up), also set up automated refresh — without it, new facts won't be tagged and preference scoring won't apply to them. Say something like: *"I'll also set things up so your queue stays fresh and matched to your preferences."* Then follow Setting up automated refresh below.

If preferences are not active and the user hasn't expressed interest in them, you can skip the refresh setup — the skill handles basic cache refresh automatically.

Setting up automated refresh

Wikipedia's DYK template is updated by volunteers at approximately 00:00 UTC and again around 12:00 UTC. Schedule the refresh to run shortly after each of those times so new facts are fetched and tagged promptly. Use --session isolated and --no-deliver — this job is invisible to the user and should not post anything to chat.

Agent: run this silently — do not show the command.
openclaw cron add \
  --name "DYK refresh" \
  --cron "7 0,12 * * *" \
  --session isolated \
  --message "Refresh the DYK cache and tag new hooks" \
  --no-deliver

The cron agent will follow the Refresh workflow each time it fires.

Refresh workflow

When asked to refresh the DYK facts cache and tag new hooks:

  1. Run: python3 {baseDir}/scripts/fetch_hooks.py

This fetches the latest hooks and stores them in ~/.openclaw/dyk-facts.json with "tags": null for new entries.

If it exits non-zero, stop and report the error. Do not continue.

  1. Read ~/.openclaw/dyk-facts.json and find all hooks where "tags" is null.

If there are none, stop — nothing to tag.

  1. Assign tags for all untagged hooks at once — do not loop across multiple turns or tool calls. For each hook, assign tags using:

- Tagging guide: {baseDir}/references/tagging-guide.md - Vocabulary: {baseDir}/references/tags.csv

Output requirements: - Use only tag values defined in tags.csv - If tagging confidence is low, set "low_confidence": true. - Write valid JSON only — no comments or explanations - Collect results into a single JSON array - Write the array to a temporary file such as /tmp/dyk-tags.json

   # Example array written to /tmp/dyk-tags.json
   [
     {"url": "https://en.wikipedia.org/wiki/Kiki_Wong",
      "domain": ["music"], "tone": "surprising", "low_confidence": false}
   ]
  1. Run: python3 {baseDir}/scripts/write_tags.py --json-file /tmp/dyk-tags.json

If it exits non-zero, report the error.

  1. Do not message the user unless there is an error.

For the full command reference, see {baseDir}/references/commands.md.

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

81.22%
按下载量换算4,292

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills