feat(FN-1443): create dedicated soul.md files for all New Agent presets

- Add soul.md files for 20 agent presets (backend-engineer, ceo, cfo, ci-engineer, cmo, cto, data-engineer, designer, devops-engineer, engineer, frontend-engineer, fullstack-engineer, marketing-manager, ml-engineer, product-manager, qa-engineer, reviewer, security-engineer, technical-writer, triage)
- Create agent-presets/index.ts module exporting all preset definitions
- Refactor NewAgentDialog to use centralized agent-presets module
- Add comprehensive tests for agent presets validation
- Update docs/agents.md with agent preset documentation
This commit is contained in:
gsxdsm
2026-04-09 15:23:51 -07:00
parent 7506e0f2d6
commit f19239d43e
24 changed files with 1123 additions and 223 deletions

View File

@@ -40,6 +40,86 @@ Agents can be configured with:
Heartbeat values are validated and minimum-clamped.
## New Agent Presets (Dashboard UI)
The New Agent dialog in the dashboard provides quick-start presets for common agent roles. Each preset includes:
- **Name and icon** — Display identification
- **Professional title** — Descriptive role title
- **Soul** — Personality and operating principles defining how the agent thinks and communicates
- **Instructions** — Actionable behavioral guidelines
### Preset Library Location
Preset definitions live in `packages/dashboard/app/components/agent-presets/`:
```
agent-presets/
├── index.ts # Exports AGENT_PRESETS and helper functions
├── ceo/soul.md # Chief Executive Officer soul
├── cto/soul.md # Chief Technology Officer soul
├── cmo/soul.md # Chief Marketing Officer soul
├── cfo/soul.md # Chief Financial Officer soul
├── engineer/soul.md # Software Engineer soul
├── backend-engineer/soul.md
├── frontend-engineer/soul.md
├── fullstack-engineer/soul.md
├── qa-engineer/soul.md
├── devops-engineer/soul.md
├── ci-engineer/soul.md
├── security-engineer/soul.md
├── data-engineer/soul.md
├── ml-engineer/soul.md
├── product-manager/soul.md
├── designer/soul.md
├── marketing-manager/soul.md
├── technical-writer/soul.md
├── triage/soul.md
└── reviewer/soul.md
```
### Soul File Format
Each `soul.md` file is a Markdown document containing:
```markdown
# Soul: [Role Name]
[First-person identity statement]
## Operating Principles
[Bullet points describing key behaviors]
## Communication Style
[How the agent communicates]
```
Soul content should be:
- **First-person** — Written from the agent's perspective ("I am...")
- **Role-specific** — Defines the unique character of this role
- **Actionable** — Describes concrete behaviors, not abstract qualities
- **Paperclip-inspired** — Clear ownership, decision discipline, communication standards
### Adding or Modifying Presets
1. Create or edit the `soul.md` file in the appropriate directory
2. Update `index.ts` if adding a new preset (export the imported soul and add to `AGENT_PRESETS` array)
3. Run tests to verify: `pnpm --filter @fusion/dashboard exec vitest run app/components/__tests__/agent-presets.test.ts`
### Preset vs Engine Templates
**Dashboard presets** are a UI-only concept that populates the New Agent dialog fields (name, icon, role, soul, instructionsText). They don't map to engine types.
**Engine role prompts** (in `agentPrompts` settings) define the actual agent behavior when executing tasks. These are separate from dashboard presets and live in project settings.
This separation means:
- Presets provide starting point personality and instructions for new agents
- Engine templates control actual task execution behavior
- An agent created from a preset can have its engine role prompt customized independently
## Configurable Agent Prompts (`agentPrompts`)
`agentPrompts` project setting supports: