mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
feat(skills): repair used skills in turn (#121522)
* feat(skills): repair used skills in turn * fix(skills): bind repair to used skill receipt * fix(skills): preserve explicit repair review Co-authored-by: Ayaan Zaidi <hi@obviy.us>
This commit is contained in:
@@ -19,6 +19,21 @@ them through the normal scanner-gated Workshop service without asking for
|
||||
approval. Choose `propose` to review every capture before it becomes active, or
|
||||
`off` to disable autonomous capture.
|
||||
|
||||
## Immediate repair
|
||||
|
||||
When the foreground agent discovers that a skill it used is wrong or incomplete,
|
||||
it reads the current live skill and drafts a targeted patch through Skill
|
||||
Workshop in the same turn. A runtime usage receipt prevents foreground repair of
|
||||
skills that the run did not use. Autonomous mode controls the outcome: `off`
|
||||
disables the repair, `propose` leaves it pending for explicit review and apply,
|
||||
and `auto` scans and applies it immediately. The repair still goes through
|
||||
proposal storage, hash binding, the security scanner, and rollback capture.
|
||||
|
||||
Immediate repair changes the live skill for new sessions. It does not rewrite the
|
||||
skill snapshot already loaded into the running session. The delayed experience
|
||||
review remains a fallback for durable learning that the foreground agent did not
|
||||
repair itself.
|
||||
|
||||
## Experience review
|
||||
|
||||
Every autonomous capture is authored by a model reviewing real evidence. There
|
||||
|
||||
@@ -110,6 +110,13 @@ Update an existing workspace skill:
|
||||
Update trip-planning to also check seat maps before booking.
|
||||
```
|
||||
|
||||
If a skill used in the current turn proves wrong or incomplete, the agent reads
|
||||
the live skill and creates a targeted patch proposal. A runtime receipt limits
|
||||
this flow to skills used in that run. Autonomous mode `off` disables repair,
|
||||
`propose` leaves the patch pending until explicitly applied, and `auto` scans and
|
||||
applies it immediately. The repaired skill is loaded by new sessions; the
|
||||
running session keeps its original skill snapshot.
|
||||
|
||||
Iterate on a pending proposal:
|
||||
|
||||
```text
|
||||
@@ -235,14 +242,15 @@ and paths outside the standard support folders.
|
||||
## Agent tool
|
||||
|
||||
The model uses `skill_workshop` with one required `action`:
|
||||
`create | update | revise | list | inspect | evaluate | apply | reject | quarantine`.
|
||||
`create | read | patch | update | revise | list | inspect | evaluate | apply | reject | quarantine`.
|
||||
Other parameters apply depending on the action:
|
||||
|
||||
| Parameter | Used by | Notes |
|
||||
| -------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------- |
|
||||
| `name` | `create`, `inspect`, `revise` | Required for `create`; resolves a pending proposal by name otherwise |
|
||||
| `description` | `create`, `update`, `revise` | Max 160 bytes |
|
||||
| `skill_name` | `update` | Existing skill name or key |
|
||||
| `skill_name` | `read`, `patch`, `update` | Existing skill name or key |
|
||||
| `old_string`, `new_string` | `patch` | Exact current text and its replacement; read the skill first |
|
||||
| `proposal_content` | `create`, `update`, `revise` | Required for create/update; omit on revise to preserve the body |
|
||||
| `support_files` | `create`, `update`, `revise` | Array of `{ path, content }` |
|
||||
| `goal`, `evidence` | `create`, `update`, `revise` | Free-text context |
|
||||
|
||||
Reference in New Issue
Block a user