- Added all 6 agents: chiron, chiron-forge, hermes, athena, apollo, calliope
- Primary agents (2): chiron (Plan Mode), chiron-forge (Build Mode)
- Subagents (4): hermes (communications), athena (work knowledge), apollo (private knowledge), calliope (writing)
- All agents use model: zai-coding-plan/glm-4.7
- Prompt references use file pattern: {file:./prompts/<name>.txt}
- Permission structure: primaries have external_directory rules, subagents have simple question: allow
- Verified with Python JSON validation (6 agents, correct names)
- Documented patterns and learnings in notepad
2.2 KiB
2.2 KiB
Learnings - Chiron Agent Framework
Wave 1, Task 1: Create agents.json with 6 agent definitions
Agent Structure Pattern
Required fields per agent:
description: Clear purpose statementmode: "primary" for orchestrators, "subagent" for specialistsmodel: "zai-coding-plan/glm-4.7" (consistent across all agents)prompt: File reference pattern{file:./prompts/<name>.txt}permission: Either explicit permissions or simple "question": "allow"
Primary vs Subagent Modes
Primary agents (2): chiron, chiron-forge
- Can be invoked directly by user
- Orchestrate and delegate work
- Higher permission levels (external_directory rules)
Subagents (4): hermes, athena, apollo, calliope
- Invoked by primary agents via Task tool
- Specialized single-purpose workflows
- Simpler permission structure (question: "allow")
Permission Patterns
Primary agents: Complex permission structure
"permission": {
"external_directory": {
"~/p/**": "allow",
"*": "ask"
}
}
Subagents: Simple permission structure
"permission": {
"question": "allow"
}
Agent Domains
- chiron: Plan Mode - Read-only analysis and planning
- chiron-forge: Build Mode - Full execution with safety prompts
- hermes: Work communication (Basecamp, Outlook, Teams)
- athena: Work knowledge (Outline wiki, documentation)
- apollo: Private knowledge (Obsidian vault, personal notes)
- calliope: Writing (documentation, reports, prose)
Verification Commands
Agent count:
python3 -c "import json; data = json.load(open('agents/agents.json')); print(len(data))"
# Expected output: 6
Agent names:
python3 -c "import json; data = json.load(open('agents/agents.json')); print(sorted(data.keys()))"
# Expected output: ['apollo', 'athena', 'calliope', 'chiron', 'chiron-forge', 'hermes']
Key Takeaways
- Prompt files use file references, not inline content (Wave 2 will create these)
- Model is consistent across all agents for predictable behavior
- Permission structure matches agent capability level (more complex for primaries)
- Mode determines how agent can be invoked (direct vs delegated)