mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-01 02:23:26 +00:00
* refactor: extract agent core package Introduce packages/agent-core as the OpenClaw-owned home for reusable agent loop, harness, session, prompt, and runtime dependency contracts. * refactor: extract shared llm runtime Move provider model registries, stream wrappers, OAuth helpers, and LLM utilities into src/llm with plugin-sdk barrels instead of depending on the old embedded runtime layout. * refactor: remove pi runtime internals Rename remaining Pi-shaped agent surfaces to OpenClaw agent runtime names, delete obsolete Pi docs and package graph checks, and add the third-party notice for incorporated code. * refactor: tighten agent session runtime Make agent-core/runtime dependencies explicit, consolidate compaction and session transcript helpers, and move model/session helpers behind OpenClaw-owned contracts. * refactor: remove static model and pi auth paths Drop static model catalogs and Pi auth bridges, move model/provider facts to manifest-owned runtime contracts, and harden internal embedded-agent utilities. * refactor: remove legacy provider compat paths * docs: remove agent parity notes * fix: skip provider wildcard metadata parsing * refactor: share session extension sdk loading * refactor: inline acpx proxy error formatter * refactor: fold edit recovery into edit tool * fix: accept extension batch separator * test: align startup provider plugin expectations * fix: restore provider-scoped release discovery * test: align static asset packaging expectations * fix: run static provider catalogs during scoped discovery * fix: add provider entry catalogs for scoped live discovery * fix: load lightweight provider catalog entries * fix: refresh provider-scoped plugin metadata * fix: keep provider catalog entries on release live path * fix: keep static manifest models in release live checks * fix: harden release model discovery * fix: reduce OpenAI live cache probe reasoning * fix: disable OpenAI cache probe reasoning * ci: extend OpenAI gateway live timeout * fix: extend live gateway model budget * fix: stabilize release validation regressions * fix: honor provider aliases in model rows * fix: stabilize release validation lanes * fix: stabilize release memory qa * ci: stabilize release validation lanes * ci: prefer ipv4 for live docker node calls * fix: restore shared tool-call stream wrapper * ci: remove legacy pi test shard alias * fix: clean up embedded agent test drift * fix: stabilize runtime alias status * fix: clean up embedded agent ci drift * fix: restore release ci invariants * fix: clean up post-rebase runtime drift * fix: restore release ci checks * fix: restore release ci after rebase * fix: remove stale pi runtime path * test: align compaction runtime expectations * test: update plugin prerelease expectations * fix: handle claude live tool approvals * fix: stabilize release validation gates * fix: finish agent runtime import * test: finish post-rebase agent runtime mocks * fix: keep codex compaction native * fix: stabilize codex app-server hook tests * test: isolate codex diagnostic active run * test: remove codex diagnostic completion race # Conflicts: # extensions/codex/src/app-server/run-attempt.test.ts * ci: fix full release manifest performance run id * refactor: narrow llm plugin sdk boundary * chore: drop generated google boundary stamps * fix: repair rebase fallout * fix: clean up rebased runtime references * fix: decode codex jwt payloads as base64url * fix: preserve shipped pi runtime alias * fix: add scoped sdk virtual modules * fix: decode llm codex oauth jwt as base64url * fix: avoid stale vertex adc negative cache * fix: harden tool arg decoding and codeql path * fix: keep vertex adc negative checks live * refactor: consolidate codex jwt and edit helpers * fix: await codex oauth node runtime imports * fix: preserve sdk tool and notice contracts * fix: preserve shipped compat config boundaries * fix: align codex oauth callback host * fix: terminate agent-core loop streams on failure * fix: keep codex oauth callback alive during fallback * ci: include session tools in critical codeql scans * fix: keep Cloudflare Anthropic provider auth header * docs: redirect legacy pi runtime pages * fix: honor bundled web provider compat discovery * fix: protect session output spill files * fix: keep legacy agent dir env blocked * fix: contain auto-discovered skill symlinks * fix: harden agent core sdk proxy surfaces * fix: restore approval reaction sdk compat * fix: keep live docker runs bounded * fix: keep codex oauth redirect host aligned * fix: resolve post-rebase agent runtime drift * fix: redact anthropic oauth parse failures * fix: preserve responses strict tool shaping * fix: repair agent runtime rebase cleanup * docs: redirect retired parity pages * fix: bound auto-discovered resources to roots * fix: repair post-rebase agent test drift * fix: preserve bundled provider allowlist migration * fix: preserve manifest-owned provider aliases * fix: declare photon image dependency * fix: keep provider headers out of proxy body * fix: preserve shipped env aliases * fix: refresh control ui i18n generated state * fix: quote read fallback paths * fix: preview edits through configured backend * test: satisfy core test typecheck * fix: preserve ZAI usage auth fallback * test: repair codex diagnostic test * fix: repair agent runtime rebase drift * test: finish embedded runner import rename * fix: repair agent runtime rebase integrations * test: align compaction oauth fallback expectations * fix: allow sdk-auth session models * fix: update doctor tool schema import * fix: preserve bedrock plugin region * fix: stream harmony-like prose immediately * ci: include session runtime in codeql shards * fix: repair latest rebase integrations * fix: honor explicit codex websocket transport * fix: keep openai-compatible credentials provider-scoped * fix: refresh sdk api baseline after rebase * fix: route cli runtime aliases through openclaw harness * test: rename stale harness mock expectation * test: rename embedded agent overflow calls * test: clean embedded auth test wording * test: use openclaw stream types in deepinfra cache test * fix: refresh sdk api baseline on latest main * fix: honor bundled discovery compat allowlists * fix: refresh sdk api baseline after latest rebase * fix: remove stale rebase imports * test: rename stale model catalog mock * test: mock renamed doctor runtime modules * fix: map canonical kimi env auth * fix: use internal model registry in bench script * fix: migrate deepinfra provider catalog entry * fix: enforce builtin tool suppression * fix: route compaction auth and proxy payloads safely * refactor: prune unused llm registry leftovers * test: update codex hooks session import * test: fix model picker ci coverage * test: align model picker auth mock types
179 lines
12 KiB
Markdown
179 lines
12 KiB
Markdown
---
|
|
doc-schema-version: 1
|
|
summary: "OpenClaw tools, skills, and plugins overview: what agents can call and how to extend them"
|
|
read_when:
|
|
- You want to understand what tools OpenClaw provides
|
|
- You are deciding between built-in tools, skills, and plugins
|
|
- You need the right docs entry point for tool policy, automation, or agent coordination
|
|
title: "Overview"
|
|
---
|
|
|
|
Use this page to choose the right Capabilities surface. **Tools** are callable
|
|
actions, **skills** teach agents how to work, and **plugins** add runtime
|
|
capabilities such as tools, providers, channels, hooks, and packaged skills.
|
|
|
|
This is an overview and routing page. For exhaustive tool policy, defaults,
|
|
group membership, provider restrictions, and configuration fields, use
|
|
[Tools and custom providers](/gateway/config-tools).
|
|
|
|
## Start here
|
|
|
|
For most agents, start with the built-in tool categories, then adjust policy
|
|
only when the agent should see fewer tools or needs explicit host access.
|
|
|
|
| If you need to... | Use this first | Then read |
|
|
| ------------------------------------------- | ---------------------------------------------- | ----------------------------------------------------------------------- |
|
|
| Let an agent act with existing capabilities | [Built-in tools](#built-in-tool-categories) | [Tool categories](#built-in-tool-categories) |
|
|
| Control what an agent can call | [Tool policy](#configure-access-and-approvals) | [Tools and custom providers](/gateway/config-tools) |
|
|
| Teach an agent a workflow | [Skills](#choose-tools-skills-or-plugins) | [Skills](/tools/skills) and [Creating skills](/tools/creating-skills) |
|
|
| Add a new integration or runtime surface | [Plugins](#extend-capabilities) | [Plugins](/tools/plugin) and [Build plugins](/plugins/building-plugins) |
|
|
| Run work later or in the background | [Automation](/automation) | [Automation overview](/automation) |
|
|
| Coordinate multiple agents or harnesses | [Sub-agents](/tools/subagents) | [ACP agents](/tools/acp-agents) and [Agent send](/tools/agent-send) |
|
|
| Search a large OpenClaw tool catalog | [Tool Search](/tools/tool-search) | [Tool Search](/tools/tool-search) |
|
|
|
|
## Choose tools, skills, or plugins
|
|
|
|
<Steps>
|
|
<Step title="Use a tool when the agent needs to act">
|
|
A tool is a typed function the agent can call, such as `exec`, `browser`,
|
|
`web_search`, `message`, or `image_generate`. Use tools when the agent
|
|
needs to read data, change files, send messages, call a provider, or operate
|
|
another system. Visible tools are sent to the model as structured function
|
|
definitions.
|
|
|
|
The model only sees tools that survive the active profile, allow/deny
|
|
policy, provider restrictions, sandbox state, channel permissions, and
|
|
plugin availability.
|
|
|
|
</Step>
|
|
|
|
<Step title="Use a skill when the agent needs instructions">
|
|
A skill is a `SKILL.md` instruction pack loaded into the agent prompt. Use a
|
|
skill when the agent already has the tools it needs, but needs a repeatable
|
|
workflow, review rubric, command sequence, or operating constraint.
|
|
|
|
Skills can live in a workspace, shared skill directory, managed OpenClaw
|
|
skill root, or plugin package.
|
|
|
|
[Skills](/tools/skills) | [Creating skills](/tools/creating-skills) | [Skills config](/tools/skills-config)
|
|
|
|
</Step>
|
|
|
|
<Step title="Use a plugin when OpenClaw needs a new capability">
|
|
A plugin can add tools, skills, channels, model providers, speech, realtime
|
|
voice, media generation, web search, web fetch, hooks, and other runtime
|
|
capabilities. Use a plugin when the capability has code, credentials,
|
|
lifecycle hooks, manifest metadata, or installable packaging. Existing
|
|
plugins can be installed from ClawHub, npm, git, local directories, or
|
|
archives.
|
|
|
|
[Install and configure plugins](/tools/plugin) | [Build plugins](/plugins/building-plugins) | [Plugin SDK](/plugins/sdk-overview)
|
|
|
|
</Step>
|
|
</Steps>
|
|
|
|
## Built-in tool categories
|
|
|
|
The table lists representative tools so you can recognize the surface. It is
|
|
not the full policy reference. For exact groups, defaults, and allow/deny
|
|
semantics, use [Tools and custom providers](/gateway/config-tools).
|
|
|
|
| Category | Use when the agent needs to... | Representative tools | Read next |
|
|
| ----------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
| Runtime | Run commands, manage processes, or use provider-backed Python analysis | `exec`, `process`, `code_execution` | [Exec](/tools/exec), [Code execution](/tools/code-execution) |
|
|
| Files | Read and change workspace files | `read`, `write`, `edit`, `apply_patch` | [Apply patch](/tools/apply-patch) |
|
|
| Web | Search the web, search X posts, or fetch readable page content | `web_search`, `x_search`, `web_fetch` | [Web tools](/tools/web), [Web fetch](/tools/web-fetch) |
|
|
| Browser | Operate a browser session | `browser` | [Browser](/tools/browser) |
|
|
| Messaging and channels | Send replies or channel actions | `message` | [Agent send](/tools/agent-send) |
|
|
| Sessions and agents | Inspect sessions, delegate work, steer another run, or report status | `sessions_*`, `subagents`, `agents_list`, `session_status` | [Sub-agents](/tools/subagents), [Session tool](/concepts/session-tool) |
|
|
| Automation | Schedule work or respond to background events | `cron`, `heartbeat_respond` | [Automation](/automation) |
|
|
| Gateway and nodes | Inspect Gateway state or paired target devices | `gateway`, `nodes` | [Gateway configuration](/gateway/configuration), [Nodes](/nodes) |
|
|
| Media | Analyze, generate, or speak media | `image`, `image_generate`, `music_generate`, `video_generate`, `tts` | [Media overview](/tools/media-overview) |
|
|
| Large OpenClaw catalogs | Search and call many eligible tools without sending every schema to the model | `tool_search_code`, `tool_search`, `tool_describe` | [Tool Search](/tools/tool-search) |
|
|
|
|
<Note>
|
|
Tool Search is an experimental OpenClaw agent surface. Codex harness runs use
|
|
Codex-native code mode, native tool search, deferred dynamic tools, and nested
|
|
tool calls instead of `tools.toolSearch`.
|
|
</Note>
|
|
|
|
## Plugin-provided tools
|
|
|
|
Plugins can register additional tools. Plugin authors wire tools through
|
|
`api.registerTool(...)` and the manifest's `contracts.tools`; use
|
|
[Plugin SDK](/plugins/sdk-overview) and [Plugin manifest](/plugins/manifest)
|
|
for contract details.
|
|
|
|
Common plugin-provided tools include:
|
|
|
|
- [Diffs](/tools/diffs) for rendering file and markdown diffs
|
|
- [LLM Task](/tools/llm-task) for JSON-only workflow steps
|
|
- [Lobster](/tools/lobster) for typed workflows with resumable approvals
|
|
- [Tokenjuice](/tools/tokenjuice) for compacting noisy `exec` and `bash` tool
|
|
output
|
|
- [Tool Search](/tools/tool-search) for discovering and calling large tool
|
|
catalogs without putting every schema in the prompt
|
|
- [Canvas](/plugins/reference/canvas) for node Canvas control and A2UI
|
|
rendering
|
|
|
|
## Configure access and approvals
|
|
|
|
Tool policy is enforced before the model call. If policy removes a tool, the
|
|
model does not receive that tool's schema for the turn. A run can lose tools
|
|
because of global config, per-agent config, channel policy, provider
|
|
restrictions, sandbox rules, channel/runtime policy, or plugin availability.
|
|
|
|
- [Tools and custom providers](/gateway/config-tools) documents tool profiles,
|
|
allow/deny lists, provider-specific restrictions, loop detection, and
|
|
provider-backed tool settings.
|
|
- [Exec approvals](/tools/exec-approvals) documents host command approval
|
|
policy.
|
|
- [Elevated exec](/tools/elevated) documents controlled execution outside the
|
|
sandbox.
|
|
- [Sandbox vs tool policy vs elevated](/gateway/sandbox-vs-tool-policy-vs-elevated) explains which layer controls file and process access.
|
|
- [Per-agent sandbox and tool restrictions](/tools/multi-agent-sandbox-tools)
|
|
documents agent-specific restrictions for delegated runs.
|
|
|
|
## Extend capabilities
|
|
|
|
Choose the extension path by the job you need OpenClaw to do:
|
|
|
|
- Install or manage an existing plugin with [Plugins](/tools/plugin).
|
|
- Build a new integration, provider, channel, tool, or hook with
|
|
[Build plugins](/plugins/building-plugins).
|
|
- Add or tune reusable agent instructions with [Skills](/tools/skills) and
|
|
[Creating skills](/tools/creating-skills).
|
|
- Package reusable workflow material with
|
|
[Skill workshop](/plugins/skill-workshop) when the workflow belongs in a
|
|
plugin-distributed skill bundle.
|
|
- Use [Plugin SDK](/plugins/sdk-overview) and [Plugin manifest](/plugins/manifest) when you need implementation contracts.
|
|
|
|
## Troubleshoot missing tools
|
|
|
|
If the model cannot see or call a tool, start with the effective policy for the
|
|
current turn:
|
|
|
|
1. Check the active profile, `tools.allow`, and `tools.deny` in
|
|
[Tools and custom providers](/gateway/config-tools).
|
|
2. Check provider-specific restrictions in
|
|
[Tools and custom providers](/gateway/config-tools) and confirm the selected
|
|
[model provider](/concepts/model-providers) supports the tool shape.
|
|
3. Check channel permissions, sandbox state, and elevated access with
|
|
[Sandbox vs tool policy vs elevated](/gateway/sandbox-vs-tool-policy-vs-elevated) and [Elevated exec](/tools/elevated).
|
|
4. Check whether the owning plugin is installed and enabled in
|
|
[Plugins](/tools/plugin).
|
|
5. For delegated runs, check per-agent restrictions in
|
|
[Per-agent sandbox and tool restrictions](/tools/multi-agent-sandbox-tools).
|
|
6. For large OpenClaw catalogs, confirm whether the run uses direct tool exposure or
|
|
[Tool Search](/tools/tool-search).
|
|
|
|
## Related
|
|
|
|
- [Automation](/automation) for cron, tasks, heartbeat, commitments, hooks, standing orders, and Task Flow
|
|
- [Agents](/concepts/agent) for the agent model, sessions, memory, and multi-agent coordination
|
|
- [Tools and custom providers](/gateway/config-tools) for the canonical tool policy reference
|
|
- [Plugins](/tools/plugin) for plugin installation and management
|
|
- [Plugin SDK](/plugins/sdk-overview) for plugin author reference
|
|
- [Skills](/tools/skills) for skill load order, gating, and config
|
|
- [Tool Search](/tools/tool-search) for compact OpenClaw tool catalog discovery
|