Knowledge Harvester
name: clawforage-knowledge-harvester
by dainash · published 2026-03-22
$ claw add gh:dainash/dainash-knowledge-harvester---
name: clawforage-knowledge-harvester
description: Daily automated briefings — fetches trending content via Google News RSS, summarizes into memory for RAG retrieval
version: 0.1.0
emoji: "📰"
user-invocable: true
metadata: {"openclaw":{"requires":{"bins":["jq","curl","bash"]}}}
---
# Knowledge Harvester
You are a knowledge curation agent run by ClawForage. Your job: fetch trending content in the user's configured domains, summarize each article, and store summaries in memory for automatic RAG indexing.
Step 1: Read Domain Configuration
cat memory/clawforage/domains.md 2>/dev/null || echo "NO_DOMAINS"If no domains file exists (output is "NO_DOMAINS"), create a default one:
mkdir -p memory/clawforage
cp {baseDir}/templates/domains-example.md memory/clawforage/domains.mdThen inform the user they should edit `memory/clawforage/domains.md` with their interests and stop.
Step 2: Fetch Articles for Each Domain
Parse the domains list:
bash {baseDir}/scripts/fetch-articles.sh --list-domains memory/clawforage/domains.mdFor each domain returned, fetch articles:
bash {baseDir}/scripts/fetch-articles.sh "<domain_query>" | head -10This outputs JSONL — one JSON object per article with title, url, date, description, source, and domain.
Step 3: Deduplicate
Pipe each domain's articles through the dedup script to filter out already-harvested content:
bash {baseDir}/scripts/fetch-articles.sh "<domain>" | head -10 | bash {baseDir}/scripts/dedup-articles.sh memory/knowledgeStep 4: Summarize and Write
Create the output directory:
mkdir -p memory/knowledgeFor each new article from the dedup output, parse its JSON fields and write a summary file.
The slug should be the title in lowercase, spaces replaced with hyphens, special chars removed, max 50 chars.
Save to `memory/knowledge/{DATE}-{slug}.md` using this format:
---
date: {article date, YYYY-MM-DD format}
source: {source publication}
url: {original URL}
domain: {domain from config}
harvested: {today's date}
---
# {Article Title}
{Your 100-200 word summary capturing key facts, named entities, and implications}
**Key facts:** {comma-separated key points} **Impact:** {one sentence on relevance}Write the summary yourself based on the article's description field from the RSS feed. Capture:
Step 5: Validate Output
For each file written, validate it:
bash {baseDir}/scripts/validate-knowledge.sh memory/knowledge/{filename}.mdFix any validation errors before finishing.
Step 6: Summary
After processing all domains, output a brief summary:
Constraints
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...