文件预览

SKILL.md

查看 Context Assembler 技能包中的文件内容。

文件内容

SKILL.md

---
name: context-assembler
description: Dynamic context preprocessor for OpenClaw agents. Selects relevant memory, collapses timelines, detects forbidden patterns, and injects task-specific context before agent reasoning. Reduces context noise by up to 89% while improving output quality. Use when you want smarter, more focused agent behavior without changing any prompts.
version: 1.0.0
tags: [context, memory, optimization, agent-infra]
---

# Context Assembler

**Not a tool for agents — a preprocessor for their context window.**

OpenClaw injects ~3700 tokens of static bootstrap context into every session, regardless of the task. Context Assembler reduces that to ~400 tokens of task-relevant information, achieving 89% context compression without quality loss.

## What It Does

```
Task arrives → Classify → Semantic Projection → Timeline Collapse → Forbidden Patterns → Pack → Agent reasons
```

1. **Classifies** the task type (nas_ops, coding, research, evolution_check, etc.)
2. **Semantically projects** relevant memory from MEMORY.md and daily notes — only what matters
3. **Collapses timelines** — repeated failures become single entries, noise gets filtered
4. **Detects forbidden patterns** — paths that failed ≥2 times get marked "do not retry"
5. **Packs** everything into a compact context block within token budget

## Why This Matters

Karpathy's "Context Engineering > Prompt Engineering" principle applied to OpenClaw. The quality bottleneck isn't how you write prompts — it's what the agent sees in its context window before reasoning.

## Quick Start

### Manual invocation (agent calls it)

```bash
python3 scripts/assembler.py --task "check NAS disk health" --max-tokens 1500
```

### Cron pre-turn hook

In your OpenClaw cron job, run assembler first:

```bash
# The agent's first action: get optimized context
python3 skills/context-assembler/scripts/assembler.py \
  --task "daily evolution check" \
  --max-tokens 1800
```

### Agent-assisted mode

Tell your agent: `"optimize my context"` — it will call assembler and use the output.

## Configuration

Edit `genome.yml` to customize:
- **Source weights**: which memory sources matter most
- **Task profiles**: per-task token budgets and source preferences
- **Synonym map**: lightweight semantic expansion (e.g., "shrimp" → "aquaculture, water quality")
- **Noise patterns**: timeline events to filter out
- **Staleness decay**: how fast old information loses relevance

The `genome.yml` is the "mutable kernel" — you tune it, the assembler engine stays fixed.

## Requirements

- Python 3.8+
- PyYAML (`pip install pyyaml`)
- Read access to OpenClaw workspace (`MEMORY.md`, `memory/*.md`)

## Architecture

```
skills/context-assembler/
├── SKILL.md              # This file
├── genome.yml            # ★ Mutable kernel (tune this)
├── scripts/
│   └── assembler.py      # Fixed engine (~510 lines)
├── index/                # Future: pre-built search indices
└── feedback/             # Selection → outcome log
```

## Design Principles

1. **Offload decisions**: don't teach the agent to judge — encode judgment as a checklist
2. **Compress output space**: templates > free-form writing
3. **Absence as signal**: tell the agent what NOT to include
4. **Embed domain knowledge**: your expertise encoded as correlation rules
5. **Graceful degradation**: missing data is normal, not an error

## Notes

- Phase 1 uses keyword matching with synonym expansion (zero-latency, zero-extra-memory)
- Phase 2+ will add embedding-based semantic search as memory corpus grows
- The genome is designed to be optimizable — feedback logging enables self-tuning
- Does NOT modify OpenClaw core — installs as a regular skill
- Contains no credentials, tokens, or personal identifiers — safe to publish