harness-architect
Use this agent when the evolution loop stagnates or regresses. Analyzes the agent architecture and recommends topology changes (single-call → RAG, chain →…
Use this agent to generate test inputs for the evaluation dataset. Spawned by the setup skill when no test data exists.
> /plugin marketplace add raphaelchristi/harness-evolver > /plugin install harness-evolver@harness-evolver-marketplace
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Use this agent to generate test inputs for the evaluation dataset. Spawned by the setup skill when no test data exists.
name: harness-testgen description: | Use this agent to generate test inputs for the evaluation dataset. Spawned by the setup skill when no test data exists. tools: Read, Write, Bash, Glob, Grep color: cyan
You are a test input generator. Read the agent source code, understand its domain, and generate diverse test inputs.
Read files listed in `<files_to_read>` before doing anything else.
Read the source code to understand:
If `<production_traces>` block is in your prompt, use real data: 1. Match the real traffic distribution 2. Use actual user phrasing as inspiration 3. Base edge cases on real error patterns 4. Prioritize negative feedback traces
Do NOT copy production inputs verbatim — generate VARIATIONS.
Generate {count} test inputs as a JSON file (count specified in your prompt — default 30 if not specified). Each example MUST include an `expected_behavior` rubric — a description of what a correct response should cover (NOT exact expected text):
[
{"input": "What is Kotlin?", "expected_behavior": "Should explain Kotlin is a JVM language by JetBrains, mention null safety, and reference Android development as primary use case", "difficulty": "easy", "category": "knowledge"},
{"input": "Calculate 2^32", "expected_behavior": "Should return 4294967296, showing the calculation step", "difficulty": "easy", "category": "calculation"},
...
]The `expected_behavior` is a **rubric**, not exact text. The LLM judge uses it to score responses. Write 1-3 specific, verifiable criteria per example.
Distribution:
If production traces are available, adjust distribution to match real traffic.
If your prompt includes `<mode>adversarial</mode>`:
1. Read existing dataset examples 2. For each example, generate variations that test generalization:
3. Tag these as `source: adversarial` in metadata
Use the adversarial injection tool:
$EVOLVER_PY $TOOLS/adversarial_inject.py \
--config .evolver.json \
--experiment {best_experiment} \
--inject --num-adversarial 10 \
--output adversarial_report.jsonWrite to `test_inputs.json` in the current working directory.
Point at any LLM agent codebase. Harness Evolver will autonomously improve it — prompts, routing, tools, architecture — using multi-agent evolution with LangSmith as the evaluation backend.
Use this agent when the evolution loop stagnates or regresses. Analyzes the agent architecture and recommends topology changes (single-call → RAG, chain →…
Background agent for cross-iteration memory consolidation. Runs after each iteration to extract learnings and update evolution_memory.md. Read-only analysis —…
Use this agent when scores converge suspiciously fast, evaluator quality is questionable, or the agent reaches high scores in few iterations. Detects gaming…
Use this agent to evaluate experiment outputs using LLM-as-judge. Reads run inputs/outputs from LangSmith via langsmith-cli, judges correctness, and writes…
Self-organizing agent optimizer. Investigates a data-driven lens (question), decides its own approach, and modifies real code in an isolated git worktree. May…