133 lines
5.4 KiB
Markdown
133 lines
5.4 KiB
Markdown
# Configuration
|
|
|
|
> Global config for the fable-agent system.
|
|
> Read by AGENT.md on startup. Edit to change behavior across all sessions.
|
|
|
|
---
|
|
|
|
## Model Routing
|
|
|
|
| Tier | Model | Use Case | Status |
|
|
|------|-------|----------|--------|
|
|
| Mythos | ~~Fable 5~~ | Orchestration, planning | **BLOCKED** (June 12, 2026) |
|
|
| Mythos | ~~Mythos 5~~ | Glasswing-only | **BLOCKED** (June 12, 2026) |
|
|
| Opus | Opus 4.8 | Orchestration, vision, planning, routing | Available |
|
|
| Sonnet | Sonnet 4.6 | Bounded subtasks, code review, vision | Available |
|
|
| Haiku | Haiku | Quick grading, routine edits, file ops | Available |
|
|
| Frontier | GPT-4.1 | Alternative orchestrator | Available |
|
|
| Frontier | GPT-4o | Vision checks | Available |
|
|
| Reasoning | o3-mini | Verification, analysis | Available |
|
|
| Local | Local (Ollama/vLLM) | Offline, cheap tasks | Check status |
|
|
| Compound | OpenRouter Fusion | Fable-tier compound (draft→critique→fuse) | Available (needs key) |
|
|
|
|
Routing priority:
|
|
1. Never route to blocked models (Fable 5, Mythos 5)
|
|
2. Orchestration/planning → Opus 4.8 (or GPT-4.1 fallback)
|
|
3. Vision tasks → Opus 4.8 or GPT-4o (vision-capable)
|
|
4. Grading/verification → Haiku (cheapest, fast)
|
|
5. Code review → Sonnet 4.6
|
|
6. Fusion/compound → OpenRouter Fusion (or local panel dispatch)
|
|
7. Offline fallback → local model
|
|
|
|
---
|
|
|
|
## Data Paths
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| `~/.fable-agent/` | Persistent state root |
|
|
| `~/.fable-agent/sessions/` | Session checkpoints |
|
|
| `~/.fable-agent/skills/` | Skill registry (auto-synced with SKILLS/) |
|
|
| `~/.fable-agent/knowledge/` | Knowledge base entries |
|
|
| `~/.fable-agent/memory/` | Episodic, semantic, procedural memory |
|
|
| `~/.fable-agent/safety/` | Model overrides + incident log |
|
|
| `~/.fable-agent/scheduler/` | Scheduled task definitions |
|
|
| `~/.fable-agent/reviews/` | Skill sharpener reviews |
|
|
| `./LOGS/runs/` | Session logs (gitignored) |
|
|
|
|
---
|
|
|
|
## Loop Defaults
|
|
|
|
| Param | Default | Description |
|
|
|-------|---------|-------------|
|
|
| `maxIterations` | 20 | Max feedback loop iterations per goal |
|
|
| `convergenceThreshold` | 0.05 | Min improvement delta to avoid plateau |
|
|
| `contextTokenBudget` | 128000 | Max context tokens |
|
|
| `dreamInterval` | 3 | Dream every N goals |
|
|
| `heartbeatIntervalMs` | 30000 | Session heartbeat frequency |
|
|
| `loopDelayMs` | 1000 | Delay between loop iterations |
|
|
|
|
---
|
|
|
|
## Self-Validation
|
|
|
|
| Param | Default | Description |
|
|
|-------|---------|-------------|
|
|
| `maxRetries` | 2 | Max phase re-executions on validation failure |
|
|
| `enforceMinLength` | true | Reject outputs below phase-specific minimums |
|
|
| `forbidUncertainty` | true | Reject "maybe", "I don't know", "perhaps" |
|
|
|
|
---
|
|
|
|
## Safety
|
|
|
|
| Param | Default | Description |
|
|
|-------|---------|-------------|
|
|
| `autoBlockOnAuthError` | true | Block model on 401/403/404 |
|
|
| `maxRetriesPerModel` | 3 | Attempts before failing to fallback |
|
|
| `preferCheapGrader` | true | Route grading to cheapest available model |
|
|
|
|
## Runtime bootstrap
|
|
|
|
Environment values are loaded before command handlers run.
|
|
|
|
- `loadEnv()` (`src/upgrades/env-loader.ts`) is executed at CLI startup.
|
|
- Files loaded in order: `.env`, `.env.<NODE_ENV>`, `.env.local`.
|
|
- `NODE_ENV` controls which environment file is read as `.env.<NODE_ENV>`.
|
|
- Existing process variables are preserved; env files do not overwrite.
|
|
|
|
CLI command and docs parity:
|
|
- Command additions/removals should update [COMMANDS.md](/C:/Users/Artale/fable-agent/COMMANDS.md) first.
|
|
- Any changed runtime preconditions (proxy check, API requirements, auth sources) should be reflected in this config file and [README.md](/C:/Users/Artale/fable-agent/README.md).
|
|
|
|
## CLI environment matrix
|
|
|
|
| Variable | Use | Description |
|
|
|----------|-----|-------------|
|
|
| `EXA_API_KEY` | Exa | Used by `exa search`, `exa company`, `demo` |
|
|
| `OPENROUTER_API_KEY` | Fusion | Enables `fusion run --openrouter` |
|
|
| `FAL_KEY` | Media | Enables `fal-ai` engine for `generate image|video` |
|
|
| `FABLE_DATA_DIR` | Daemon | Overrides persistent storage root (`~/.fable-agent`) for daemon pid/log flow |
|
|
| `FABLE_DAEMON` | Daemon | Internal runtime marker used when running detached daemon |
|
|
| `HOME`/`USERPROFILE` | Daemon/State | Default fallback for storage and runtime paths |
|
|
| `NODE_ENV` | Runtime bootstrap | Selects `.env.<NODE_ENV>` load order |
|
|
|
|
## Proxy defaults
|
|
|
|
- Proxy host/port: `127.0.0.1:18901`
|
|
- Commands that health-check the proxy first:
|
|
- `plinius godmode --proxy`
|
|
- `pai cert` (unless `--skip-proxy-check`)
|
|
- `pai proxy`
|
|
|
|
|
|
## Plinius + Fable5 behavior notes
|
|
|
|
- What changed: new diagnostics and upgrade commands now live under plinius (godmode, parseltongue, ultra, autotune, stm, refusal, observatory, liberation, transparency) and fable5 stack --enable-plinius turns on upgraded stack layers.
|
|
- Who should use: users who want stronger local diagnostics, refusal analysis, prompt hardening checks, and output transformations in looped execution.
|
|
- Risk: new diagnostics can be stricter and noisier; some transformed outputs are intentionally opinionated for safety.
|
|
- Defaults: these behaviors are opt-in; standard runs remain backward compatible unless --enable-plinius is explicitly set.
|
|
|
|
## Docs maintenance guard
|
|
|
|
Before merging command-facing changes:
|
|
|
|
1. Update COMMANDS.md for every .command and flag change in src/index.ts.
|
|
2. Update CONFIG.md when env vars, bootstrap, or proxy requirements change.
|
|
3. Run smoke checks:
|
|
- node dist/index.js --help
|
|
- node dist/index.js plinius --help
|
|
- node dist/index.js fable5 stack smoke test --enable-plinius
|
|
|