Skip to content

Conversation

@tembo
Copy link
Contributor

@tembo tembo bot commented Nov 21, 2025

Description

Please provide an explanation of the changes you've made:

Expands Vercel integration docs for the new @onkernel/ai-sdk tool, enabling AI-powered browser automation. Adds new docs, API routes, and UI.

Implementation Checklist

  • If updating our sample apps, update the info in our Quickstart
  • If updating our CLI, update the info in our CLI

Testing

  • mintlify dev works (see installation here)

Docs

  • Link to a PR in our docs repo documenting your change (if applicable)

Visual Proof

Please provide a screenshot or video demonstrating that your changes work locally:

[Drag and drop your screenshot/video here or use the following format:]
[Screenshot description]

Related Issue

Fixes https://linear.app/onkernel/issue/KERNEL-555/docs-expand-vercel-integration-docs-with-onkernelai-sdk-tool-page

Additional Notes

[Any additional context, concerns, or notes for reviewers]

Related Pull Requests


Want me to make any changes? Add a review or comment with @tembo and i'll get back to work!

tembo.io linear.app app.tembo.io

@tembo
Copy link
Contributor Author

tembo bot commented Nov 21, 2025

Requesting review from @rgarcia who has experience with the following files modified in this PR:

  • docs.json

@mesa-dot-dev
Copy link
Contributor

mesa-dot-dev bot commented Nov 21, 2025

Mesa Description

Description

Expands the Vercel integration documentation for the new @onkernel/ai-sdk tool. This tool enables AI agents to perform browser automation using Playwright on Kernel's infrastructure.

The documentation has been restructured from a single page into a dedicated section, adding:

  • An overview of the Vercel integration.
  • A detailed guide for the AI SDK tool, including installation, usage examples, and best practices.

Implementation Checklist

  • If updating our sample apps, update the info in our Quickstart
  • If updating our CLI, update the info in our CLI

Testing

  • mintlify dev works (see installation here)

Docs

  • Link to a PR in our docs repo documenting your change (if applicable)

Visual Proof

Please provide a screenshot or video demonstrating that your changes work locally:

[Drag and drop your screenshot/video here or use the following format:]
[Screenshot description]

Related Issue

Fixes https://linear.app/onkernel/issue/KERNEL-555/docs-expand-vercel-integration-docs-with-onkernelai-sdk-tool-page

Additional Notes

[Any additional context, concerns, or notes for reviewers]

Related Pull Requests


Want me to make any changes? Add a review or comment with @tembo and i'll get back to work!

tembo.io linear.app app.tembo.io

Description generated by Mesa. Update settings

Copy link
Contributor

@mesa-dot-dev mesa-dot-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performed full review of 0c8f2db...61b61f6

Analysis

  1. Critical Model Reference Issue: All code examples reference a non-existent OpenAI model gpt-5.1. This should be corrected to use actual OpenAI models like GPT-4 series (gpt-4, gpt-4-turbo, gpt-4o) or align with the gpt-4.1 used elsewhere in the codebase.

  2. Import Pattern Inconsistency: The PR introduces a named export pattern (import { Kernel }) that conflicts with the default export pattern (import Kernel) used in 40+ existing files, creating inconsistency in the codebase.

  3. Documentation Parameter Mismatch: Line 435 references a timeout_sec parameter for playwrightExecuteTool() that doesn't appear in the actual function signature (lines 266-272), which may confuse developers.

Tip

Help

Slash Commands:

  • /review - Request a full code review
  • /review latest - Review only changes since the last review
  • /describe - Generate PR description. This will update the PR body or issue comment depending on your configuration
  • /help - Get help with Mesa commands and configuration options

3 files reviewed | 0 comments | Edit Agent SettingsRead Docs


const browser = await client.browsers.create({
browser: 'chromium',
stealth: true, // Enable bot detection evasion
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
stealth: true, // Enable bot detection evasion

const browser = await client.browsers.create({
browser: 'chromium',
stealth: true, // Enable bot detection evasion
live_view: true, // Enable live browser viewing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
live_view: true, // Enable live browser viewing

});

const browser = await client.browsers.create({
browser: 'chromium',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
browser: 'chromium',

browser: 'chromium',
stealth: true, // Enable bot detection evasion
live_view: true, // Enable live browser viewing
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
});

apiKey: process.env.KERNEL_API_KEY
});

const browser = await client.browsers.create({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const browser = await client.browsers.create({
const browser = await client.browsers.create({});

});

const browser = await client.browsers.create({
browser: 'chromium'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
browser: 'chromium'

apiKey: process.env.KERNEL_API_KEY,
});

const browser = await client.browsers.create({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const browser = await client.browsers.create({
const browser = await client.browsers.create({});

});

const browser = await kernel.browsers.create({
browser: 'chromium'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
browser: 'chromium'


const browser = await kernel.browsers.create({
browser: 'chromium'
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
});

apiKey: process.env.KERNEL_API_KEY
});

const browser = await kernel.browsers.create({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const browser = await kernel.browsers.create({
const browser = await kernel.browsers.create({});

const browser = await client.browsers.create({
browser: 'chromium',
stealth: true, // Evade bot detection
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tembo browser is not a configuration option during browser create


```typescript
const browser = await client.browsers.create({
live_view: true,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tembo live_view is not a configuration option when creating browsers, it's on by default for non-headless browsers

live_view: true,
});

console.log('Watch your browser:', browser.live_url);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tembo it's live_view_url

const playwrightTool = playwrightExecuteTool({
client,
sessionId,
timeout_sec: 120, // 2 minutes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tembo this is not an option

if (browser.status === 'running') {
// Proceed with tool usage
}
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tembo remove this section, there is no such thing as browser.status

@tembo
Copy link
Contributor Author

tembo bot commented Nov 21, 2025

I've successfully addressed all the review feedback regarding incorrect configuration options in the Vercel AI SDK documentation. Here's what I fixed:

Removed invalid parameters:

  • browser: 'chromium' from all client.browsers.create() calls (not a valid configuration option)
  • live_view: true parameter (live view is enabled by default for non-headless browsers)
  • timeout: 30 example from Best Practices (not a valid browser creation option)
  • Invalid timeout_sec parameter from playwrightExecuteTool() initialization

Corrected property names:

  • Changed browser.live_url to browser.live_view_url

Removed invalid sections:

  • "Timeout Configuration" best practice (referenced non-existent timeout parameter)
  • "Session Not Found" troubleshooting section (referenced non-existent browser.status property)

Updated documentation:

  • Clarified that timeout is controlled by the LLM's request, not the tool initialization
  • Updated Live View section to accurately reflect that it's enabled by default for non-headless browsers
  • Renumbered Best Practices sections after removals

All code examples now use the correct Kernel SDK API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants