-
Notifications
You must be signed in to change notification settings - Fork 13
Adding a New Agent
Raghav Kattel edited this page Jun 1, 2026
·
1 revision
This guide covers adding novelty engines, reviewer personas, and subagents.
Create a Markdown file in the appropriate directory:
| Agent Type | Directory |
|---|---|
| Subagent | subagents/ |
| Novelty Engine | novelty-engines/ |
| Reviewer | reviewers/ |
---
mode: subagent
description: "One-line description of what this agent does"
skills:
- skill-academic-humanizer # Include if agent generates text
permission:
"*": deny
read:
"*": allow
write:
/root/sisyphus-academica/out/papers/*: allow
bash: deny # Allow only if agent needs to run code
webfetch: allow # Allow if agent needs internet access
task: deny
call_omo_agent: deny
---| Capability | When to Allow |
|---|---|
bash: allow |
Agent runs code (data-engineer, verifier) |
webfetch: allow |
Agent needs to search the web (literature-scout, verifier) |
write |
Always allow to out/papers/*
|
read |
Always allow (agents read the paper they're working on) |
task |
Usually deny (only the Research Director delegates) |
Follow these patterns:
Structure:
- Identity statement ("You are The X")
- Method description (step-by-step)
- Input format
- Output format (JSON schema)
- Constraints/rules
- Example output
Keep to 60-80 lines — long enough to be specific, short enough to fit context window.
Structure:
- Identity statement with focus area
- 5 questions the persona always asks
- Rating dimensions (4 categories, 1-10 scale)
- Review output format
Keep to 25-30 lines — concise, sharp, opinionated.
Edit orchestrator/research-director.md:
- Add the agent to the army list in the
<Role>section - Add deployment instructions in the appropriate phase
- Add a
<subagent_commands>entry with the agent's purpose, tools, and output format
Edit config/agent-config.json:
"your-agent-name": {
"model": "9router/opencode-free",
"variant": "think",
"description": "What this agent does",
"skills": ["skill-academic-humanizer"],
"permission": {
"read": "allow",
"write": { "/root/sisyphus-academica/out/papers/*": "allow" },
"bash": "deny",
"webfetch": "allow",
"edit": "deny",
"task": "deny"
}
}Then add it to the agent_order array.
- Run a dry paper cycle with your agent only
- Verify the agent produces the expected output format
- Check that permissions work (no unexpected denials)
- Fix any issues in the prompt
- Agents never write alone. Novelty engines always fan out in parallel. Reviewers always run as a full set of 10.
- Output format must be JSON. The Research Director parses results programmatically.
- No shared state. Every agent is stateless — it reads input files and writes output files.
- No hallucinated citations. Even novelty engines should ground their hypotheses in the literature.
Sisyphus Academica — MIT License