-
Notifications
You must be signed in to change notification settings - Fork 9
Add bots and agents overview page (/docs/bots) #455
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| --- | ||
| title: "Bots and agents" | ||
| description: "Kernel's bots and agents, their purposes, and how to verify them with Web Bot Auth" | ||
| --- | ||
|
|
||
| Kernel identifies its bots and agents with [Web Bot Auth](https://datatracker.ietf.org/doc/html/draft-meunier-web-bot-auth-architecture). Each identity serves its own key directory from its own authority, so site owners can allow or block each one **independently by purpose** — for example, allow search indexing while blocking user-directed agents (or vice versa). | ||
|
|
||
| Kernel is listed in [Cloudflare's bots and agents directory](https://radar.cloudflare.com/bots/directory/kernel) and [Vercel's public directory](https://bots.fyi/?query=kernel). | ||
|
|
||
| ## Kernel Agent | ||
|
|
||
| User-directed browser automation. Kernel Agent visits pages on behalf of an end user's request; it is not an automatic crawler. Requests are signed with Web Bot Auth rather than a dedicated crawler user-agent token. | ||
|
|
||
| | Field | Value | | ||
| | --- | --- | | ||
| | Purpose | Agent | | ||
| | Operator | Intermediary (end-user directed) | | ||
| | Signature-Agent | `https://www.kernel.sh` | | ||
| | Key directory | `https://www.kernel.sh/.well-known/http-message-signatures-directory` | | ||
|
|
||
| ## Kernel Search | ||
|
|
||
| Crawls pages to build search indexes and retrieval databases. Kernel Search identifies itself with the `KernelSearchBot` user-agent token and follows `robots.txt` directives for that token, including crawl-delay preferences. | ||
|
|
||
| | Field | Value | | ||
| | --- | --- | | ||
| | Purpose | Search | | ||
| | Operator | Direct (Kernel-operated) | | ||
| | User-Agent | `KernelSearchBot` | | ||
| | Signature-Agent | `https://search.bot.kernel.sh` | | ||
| | Key directory | `https://search.bot.kernel.sh/.well-known/http-message-signatures-directory` | | ||
|
|
||
| ## Verifying Kernel traffic | ||
|
|
||
| Each identity publishes its public key set (JWKS) at its key directory. To verify a request: | ||
|
|
||
| 1. Read the `Signature-Agent` header to determine which Kernel identity signed the request. | ||
| 2. Fetch the public key set from that identity's key directory and cache it per the `Cache-Control` header. | ||
| 3. Verify the `Signature` and `Signature-Input` headers per [RFC 9421](https://datatracker.ietf.org/doc/html/rfc9421). | ||
|
|
||
| Most major bot-detection services, CDNs, and WAFs verify Web Bot Auth automatically. See [Web Bot Auth](/browsers/bot-detection/web-bot-auth) for how Kernel signs requests. | ||
|
|
||
| ## Contact | ||
|
|
||
| For questions about Kernel bot or agent traffic, contact [support@kernel.sh](mailto:support@kernel.sh). |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -145,18 +145,49 @@ The directory should contain your public keys in JWKS format: | |
| kernel extensions build-web-bot-auth \ | ||
| --to ./web-bot-auth-ext \ | ||
| --key ./my-key.jwk \ | ||
| --url https://yourdomain.com/.well-known/http-message-signatures-directory \ | ||
| --url https://yourdomain.com \ | ||
| --signature-agent https://yourdomain.com \ | ||
| --upload my-web-bot-auth | ||
| ``` | ||
|
|
||
| ### 4. Register with Vercel and other Web Bot Auth-aware directories (optional) | ||
| ### 4. Kernel Search configuration | ||
|
|
||
| If you want Vercel-protected sites to recognize your agent, you can register your key directory with [Vercel](https://bots.fyi/new-bot). Kernel is officially listed in the Vercel directory. | ||
| Kernel Search uses a distinct Web Bot Auth identity from Kernel's user-driven | ||
| agent traffic: | ||
|
|
||
| - User-Agent: `KernelSearchBot` | ||
| - Signature-Agent: `https://search.bot.kernel.sh` | ||
| - Key directory: | ||
| `https://search.bot.kernel.sh/.well-known/http-message-signatures-directory` | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Duplicate bot identity listingLow Severity Section 4 repeats Kernel Search’s User-Agent, Signature-Agent, and key directory URLs in prose bullets even though this PR adds Additional Locations (1)Triggered by learned rule: Single source of truth — no deep content duplication across pages Reviewed by Cursor Bugbot for commit c11afab. Configure here. |
||
|
|
||
| To build a browser extension for Kernel Search, use the Kernel Search Ed25519 | ||
| private key (JWK) and upload it under a distinct extension name: | ||
|
|
||
| ```bash | ||
| kernel extensions build-web-bot-auth \ | ||
| --to ./web-bot-auth-search-ext \ | ||
| --key ./kernel-search.jwk \ | ||
| --url https://www.kernel.sh \ | ||
| --signature-agent https://search.bot.kernel.sh \ | ||
| --upload web-bot-auth-search | ||
| ``` | ||
|
|
||
| For host-proxy based signing, configure the Search crawler's host-proxy | ||
| environment with: | ||
|
|
||
| ```bash | ||
| HOST_PROXY_WEB_BOT_AUTH_ENABLED=true | ||
| HOST_PROXY_WEB_BOT_AUTH_KEY_PATH=/path/to/kernel-search-private-key.pem | ||
| HOST_PROXY_WEB_BOT_AUTH_DIRECTORY_URL=https://search.bot.kernel.sh | ||
| ``` | ||
|
|
||
| The signing key must correspond to the public key hosted by | ||
| `search.bot.kernel.sh`. | ||
|
|
||
| ### 5. Register with Vercel and other Web Bot Auth-aware directories (optional) | ||
|
|
||
| If you want Vercel-protected sites to recognize your agent, you can register your key directory with [Vercel](https://bots.fyi/new-bot). Kernel is officially listed in the Vercel directory. | ||
|
|
||
|
|
||
| ## References | ||
|
|
||
| - [Vercel's Public Directory](https://bots.fyi/?query=kernel) | ||
|
|
||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CLI reference missing new flags
Medium Severity
This PR documents required
build-web-bot-authflags--urland--signature-agentin the Web Bot Auth guide, but the canonicalreference/cli/extensions.mdxentry still lists only--to,--key, and--upload.Triggered by learned rule: Single source of truth — no deep content duplication across pages
Reviewed by Cursor Bugbot for commit c11afab. Configure here.