Frugal Self-Improvement
Agenties can learn from repeated friction, but the improvement loop must be cheaper than the problem it fixes. The current system is passive, local, heuristic-first, and on demand. It does not run a model in the background to analyze itself.
How it works
| Step | Mechanism | Cost |
|---|---|---|
| 1 | Append cheap local signals to JSONL. | One file append. |
| 2 | Aggregate by signal type and key. | One bounded local file read. |
| 3 | Return exactly one improvement proposal. | No model call. |
| 4 | Annotate deterministic ROI. | Pure function. |
| 5 | User decides whether to create real work. | Human approval. |
Signal file
Signals are append-only records. They are intentionally small so Agenties can track patterns without loading session history or large logs.
| Signal type | Example key | Meaning |
|---|---|---|
repeated_task | deploy | The same task keeps coming back. |
firewall_block | batched-work | A spawn firewall block happened repeatedly. |
high_cost_task | large-review | A task type tends to cost too much. |
permission_repeat | Bash | The same permission prompt appears often. |
journal_missing | task-close | A significant task finished without durable context. |
test_failure_pattern | chatIpc.test | The same test failure pattern repeats. |
MCP tools
| Tool | Use |
|---|---|
append_improvement_signal | Append one signal. Pure local write; no model invocation. |
suggest_improvement | Read aggregated candidates and return one ROI-annotated proposal. |
Proposal shape
suggest_improvement returns at most one proposal: the highest-count candidate above threshold.
Budget gate
The tool gates on activeRunPressure, not old historical usage. Historical project usage is advisory only for this tool because the analysis is a zero-model local file read.
Warning:Do not block local self-improvement reads because the project has old high cache-read history. Block only when there is real active pressure, such as too many recent spawns or running agents.
Automatic signals
Agenties currently emits firewall_block signals from spawn firewall paths:
| Key | Meaning |
|---|---|
prompt-too-large | The prompt exceeded the spawn firewall size guard. |
batched-work | The task looked like multiple issues combined. |
usage-high | The usage firewall blocked a spawn. |