mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 11:38:38 +00:00
docs: document system-context prompt hook guidance
This commit is contained in:
@@ -82,7 +82,7 @@ See [Hooks](/automation/hooks) for setup and examples.
|
|||||||
These run inside the agent loop or gateway pipeline:
|
These run inside the agent loop or gateway pipeline:
|
||||||
|
|
||||||
- **`before_model_resolve`**: runs pre-session (no `messages`) to deterministically override provider/model before model resolution.
|
- **`before_model_resolve`**: runs pre-session (no `messages`) to deterministically override provider/model before model resolution.
|
||||||
- **`before_prompt_build`**: runs after session load (with `messages`) to inject `prependContext`, `systemPrompt`, `prependSystemContext`, or `appendSystemContext` before prompt submission.
|
- **`before_prompt_build`**: runs after session load (with `messages`) to inject `prependContext`, `systemPrompt`, `prependSystemContext`, or `appendSystemContext` before prompt submission. Use `prependContext` for per-turn dynamic text and system-context fields for stable guidance that should sit in system prompt space.
|
||||||
- **`before_agent_start`**: legacy compatibility hook that may run in either phase; prefer the explicit hooks above.
|
- **`before_agent_start`**: legacy compatibility hook that may run in either phase; prefer the explicit hooks above.
|
||||||
- **`agent_end`**: inspect the final message list and run metadata after completion.
|
- **`agent_end`**: inspect the final message list and run metadata after completion.
|
||||||
- **`before_compaction` / `after_compaction`**: observe or annotate compaction cycles.
|
- **`before_compaction` / `after_compaction`**: observe or annotate compaction cycles.
|
||||||
|
|||||||
@@ -431,6 +431,54 @@ Notes:
|
|||||||
- Plugin-managed hooks show up in `openclaw hooks list` with `plugin:<id>`.
|
- Plugin-managed hooks show up in `openclaw hooks list` with `plugin:<id>`.
|
||||||
- You cannot enable/disable plugin-managed hooks via `openclaw hooks`; enable/disable the plugin instead.
|
- You cannot enable/disable plugin-managed hooks via `openclaw hooks`; enable/disable the plugin instead.
|
||||||
|
|
||||||
|
### Agent lifecycle hooks (`api.on`)
|
||||||
|
|
||||||
|
For typed runtime lifecycle hooks, use `api.on(...)`:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
export default function register(api) {
|
||||||
|
api.on(
|
||||||
|
"before_prompt_build",
|
||||||
|
(event, ctx) => {
|
||||||
|
return {
|
||||||
|
prependSystemContext: "Follow company style guide.",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{ priority: 10 },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Important hooks for prompt construction:
|
||||||
|
|
||||||
|
- `before_model_resolve`: runs before session load (`messages` are not available). Use this to deterministically override `modelOverride` or `providerOverride`.
|
||||||
|
- `before_prompt_build`: runs after session load (`messages` are available). Use this to shape prompt input.
|
||||||
|
- `before_agent_start`: legacy compatibility hook. Prefer the two explicit hooks above.
|
||||||
|
|
||||||
|
`before_prompt_build` result fields:
|
||||||
|
|
||||||
|
- `prependContext`: prepends text to the user prompt for this run. Best for turn-specific or dynamic content.
|
||||||
|
- `systemPrompt`: full system prompt override.
|
||||||
|
- `prependSystemContext`: prepends text to the current system prompt.
|
||||||
|
- `appendSystemContext`: appends text to the current system prompt.
|
||||||
|
|
||||||
|
Prompt build order in embedded runtime:
|
||||||
|
|
||||||
|
1. Apply `prependContext` to the user prompt.
|
||||||
|
2. Apply `systemPrompt` override when provided.
|
||||||
|
3. Apply `prependSystemContext + current system prompt + appendSystemContext`.
|
||||||
|
|
||||||
|
Merge and precedence notes:
|
||||||
|
|
||||||
|
- Hook handlers run by priority (higher first).
|
||||||
|
- For merged context fields, values are concatenated in execution order.
|
||||||
|
- `before_prompt_build` values are applied before legacy `before_agent_start` fallback values.
|
||||||
|
|
||||||
|
Migration guidance:
|
||||||
|
|
||||||
|
- Move static guidance from `prependContext` to `prependSystemContext` (or `appendSystemContext`) so providers can cache stable system-prefix content.
|
||||||
|
- Keep `prependContext` for per-turn dynamic context that should stay tied to the user message.
|
||||||
|
|
||||||
## Provider plugins (model auth)
|
## Provider plugins (model auth)
|
||||||
|
|
||||||
Plugins can register **model provider auth** flows so users can run OAuth or
|
Plugins can register **model provider auth** flows so users can run OAuth or
|
||||||
|
|||||||
Reference in New Issue
Block a user