Capability gaps & learning
Han AI improves itself in two ways: it logs every moment it wanted a capability it did not have, and it learns your preferences from the feedback you give on its outputs.
Capability gaps
When the AI reaches for a tool that is not installed, a credential that is missing, or a capability that does not exist yet, it logs the gap rather than fail silently.
| Field | Value |
|---|---|
| Log path | /var/hanai/state/capability-gaps.jsonl |
| Captured | Tool name (or wanted capability), context, timestamp |
| Surfaced in | Tenant brief — top recurring and most recent gaps |
The operator reviews recurring gaps when deciding what to build next. If you keep asking for something Han AI cannot yet do, the gap log is how the product roadmap finds out.
PDF preference learning
Every time you accept, reject, or react to a generated PDF, Han AI records the signal via the record_pdf_feedback tool.
| Field | Value |
|---|---|
| Store | /var/hanai/state/pdf-preferences.jsonl |
| Signals | Style chosen, style accepted, style rejected, reason |
| Effect | Future PDF generations weight your preferred styles higher |
Over time, Han AI converges on the styles you actually prefer and stops asking which one to use.
What learning does not do
- It does not retrain the underlying model. Learning is local preference state, not a fine-tune.
- It does not share signals across workspaces. Your preferences stay on your VPS.
- It does not auto-install missing tools. Capability gaps are observations for the operator, not actions.