AI Newsletter Digest improvements: fixed QP soft line break decoding, URL extraction, and content cleaning
This commit is contained in:
107
skills/vibesurf/references/browser-use.md
Normal file
107
skills/vibesurf/references/browser-use.md
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
name: browser-use
|
||||
description: Use when task requires multiple steps, unknown UI, form filling, or parallel automation across multiple tabs. This launches autonomous AI agents that figure out the steps themselves.
|
||||
---
|
||||
|
||||
# Browser-Use Agent - Autonomous Automation
|
||||
|
||||
## Overview
|
||||
|
||||
Launch AI sub-agents that complete multi-step browser tasks autonomously. **Most powerful VibeSurf capability.**
|
||||
|
||||
## When to Use
|
||||
|
||||
**browser-use is a high-level, task-oriented sub-agent approach:**
|
||||
- Complex tasks where you describe the **goal** and desired **output**, let the agent figure out the steps
|
||||
- Long workflows that would require many manual browser operations
|
||||
- Unknown or dynamic UI that needs autonomous exploration
|
||||
- Parallel automation across multiple tabs
|
||||
|
||||
**Note:** browser-use and `browser` skill are complementary, not mutually exclusive. Both can accomplish the same tasks - browser-use is higher-level automation, while `browser` gives you precise control.
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `execute_browser_use_agent` | Execute browser-use agent tasks. Specify tab_id to work on specific tab. Each tab_id must be unique during parallel execution. |
|
||||
|
||||
## How It Works
|
||||
|
||||
Describe the **goal**, agent figures out the **steps**:
|
||||
- Navigate to URLs
|
||||
- Find and interact with elements
|
||||
- Fill forms
|
||||
- Extract data
|
||||
- Return structured results
|
||||
|
||||
## Task-Oriented Thinking
|
||||
|
||||
**Good task descriptions:**
|
||||
- ✅ "Fill out the registration form with these details"
|
||||
- ✅ "Search for Python tutorials and summarize top 3"
|
||||
- ✅ "Go to login page, authenticate, then check dashboard"
|
||||
|
||||
**Bad task descriptions:**
|
||||
- ❌ "Click button" (too vague, use `browser`)
|
||||
- ❌ "Extract prices" (use `js_code` instead)
|
||||
- ❌ "Step 1: navigate, Step 2: click..." (let agent figure it out)
|
||||
|
||||
## Working with Existing Tabs
|
||||
|
||||
> **🎯 Important: tab_id Selection**
|
||||
>
|
||||
> **When user refers to their already-opened pages** (e.g., "the current page", "from my open tabs", "the second tab"):
|
||||
>
|
||||
> 1. **FIRST** call `get_browser_state` to get all open tabs and their IDs
|
||||
> 2. **THEN** use the correct `tab_id` from the response
|
||||
> 3. **NEVER** use `tab_id: null` or omit it - that creates a NEW tab
|
||||
>
|
||||
> **Key distinction:**
|
||||
> - `tab_id: "existing_id"` → Work on user's existing tab
|
||||
> - `tab_id: null` or omitted → Create a brand new tab
|
||||
|
||||
## Parallel Execution
|
||||
|
||||
Provide multiple tasks to run agents in parallel. Each task needs a unique `tab_id` for parallel execution.
|
||||
|
||||
## Best Practices
|
||||
|
||||
| Practice | Why |
|
||||
|----------|-----|
|
||||
| Describe goal, not steps | Agent figures out navigation |
|
||||
| Use parallel for independent tasks | Much faster |
|
||||
| One task per agent | Clear responsibilities |
|
||||
| Unique tab_id per task | Required for parallel execution |
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
| Mistake | Fix |
|
||||
|---------|-----|
|
||||
| Over-specifying steps | Describe goal, let agent figure it out |
|
||||
| Using for single click | Use `browser` instead |
|
||||
| Using for simple extraction | Use `js_code` or `crawl` instead |
|
||||
| Duplicate tab_id in parallel | Each agent needs unique tab_id |
|
||||
|
||||
## Fallback Strategy
|
||||
|
||||
> **🔄 When browser-use Fails or Needs Manual Control**
|
||||
>
|
||||
> If `execute_browser_use_agent` fails, gets stuck, or you need more precise control:
|
||||
>
|
||||
> **Seamlessly fallback to manual `browser` operations:**
|
||||
> 1. `get_browser_state` - Inspect current page state and available elements
|
||||
> 2. `browser.{action}` - Perform specific action (click, input, navigate, etc.)
|
||||
> 3. `get_browser_state` - Verify result and determine next action
|
||||
> 4. Repeat this cycle until task completes
|
||||
>
|
||||
> **This is the recommended recovery pattern** - browser-use and browser are complementary tools.
|
||||
|
||||
## Choosing the Right Approach
|
||||
|
||||
| Approach | Best For | Characteristics |
|
||||
|----------|----------|-----------------|
|
||||
| **browser-use** | Complex, long tasks | Task-oriented, autonomous, describe goal + output |
|
||||
| **browser** | Precise control needed | Step-by-step, explicit actions, full control |
|
||||
| **Hybrid** | Best of both | Start with browser-use, fallback to browser if needed |
|
||||
|
||||
**Principle:** Choose based on task complexity and control needs, not step count. Both can handle multi-step workflows and form filling.
|
||||
130
skills/vibesurf/references/browser.md
Normal file
130
skills/vibesurf/references/browser.md
Normal file
@@ -0,0 +1,130 @@
|
||||
---
|
||||
name: browser
|
||||
description: Use when user needs direct browser control like navigating to URLs, clicking elements, typing text, scrolling, switching tabs, taking screenshots, or inspecting page state.
|
||||
---
|
||||
|
||||
# Browser - Direct Browser Control
|
||||
|
||||
## Overview
|
||||
|
||||
Direct control of browser interactions. Use for simple, single actions.
|
||||
|
||||
## When to Use
|
||||
|
||||
**browser provides low-level, precise control over browser operations:**
|
||||
- When you need explicit control over each action
|
||||
- When you want to verify results at each step
|
||||
- As a fallback when `browser-use` agent fails or gets stuck
|
||||
- Any browser automation task (navigation, clicking, form filling, etc.)
|
||||
|
||||
**Note:** browser and `browser-use` are complementary. Both can accomplish the same tasks - browser gives precise step-by-step control, while browser-use provides high-level task automation.
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `get_browser_state` | Get current browser state including tabs, DOM content, and highlighted screenshot |
|
||||
| `browser.get_element_info` | Get element details by index (xpath, position, attributes, visibility) |
|
||||
| `browser.search` | Google search |
|
||||
| `browser.navigate` | Navigate to URL |
|
||||
| `browser.go_back` | Go back |
|
||||
| `browser.wait` | Wait for condition |
|
||||
| `browser.click` | Click element |
|
||||
| `browser.input` | Input text into field |
|
||||
| `browser.switch` | Switch to another tab by tab_id |
|
||||
| `browser.close` | Close a tab by tab_id |
|
||||
| `browser.extract` | LLM extracts structured data from page markdown |
|
||||
| `browser.scroll` | Scroll page |
|
||||
| `browser.send_keys` | Send keyboard keys |
|
||||
| `browser.find_text` | Scroll to and find text |
|
||||
| `browser.dropdown_options` | Get dropdown options |
|
||||
| `browser.select_dropdown` | Select dropdown option |
|
||||
| `browser.evaluate` | Execute JavaScript in browser |
|
||||
| `browser.hover` | Hover on element |
|
||||
| `browser.download_media` | Download media from URL |
|
||||
| `browser.get_html_content` | Get HTML content and save to file |
|
||||
| `browser.reload_page` | Refresh current page |
|
||||
| `browser.start_console_logging` | Start monitoring console logs (console.log/warn/error) |
|
||||
| `browser.stop_console_logging` | Stop console logging and retrieve all logs |
|
||||
| `browser.start_network_logging` | Start monitoring network traffic (requests/responses) |
|
||||
| `browser.stop_network_logging` | Stop network logging and get HAR file |
|
||||
|
||||
## Key Actions
|
||||
|
||||
### Getting Started
|
||||
- `get_browser_state` - Always call first to see current state
|
||||
|
||||
### Navigation
|
||||
- `browser.navigate` - Go to URL
|
||||
- `browser.go_back` - Go back
|
||||
- `browser.reload_page` - Refresh page
|
||||
|
||||
### Interaction
|
||||
- `browser.click` - Click element
|
||||
- `browser.input` - Type text
|
||||
- `browser.send_keys` - Send keyboard keys
|
||||
- `browser.hover` - Hover on element
|
||||
|
||||
### Data & Info
|
||||
- `browser.get_element_info` - Inspect element details (xpath, position, attributes)
|
||||
- `browser.extract` - LLM extracts structured data from page
|
||||
- `browser.get_html_content` - Get full HTML
|
||||
- `browser.find_text` - Find and scroll to text
|
||||
|
||||
### Tabs
|
||||
- `browser.switch` - Switch to tab by tab_id (last 4 chars of target_id)
|
||||
- `browser.close` - Close tab by tab_id
|
||||
|
||||
### Advanced
|
||||
- `browser.evaluate` - Execute custom JavaScript
|
||||
|
||||
### Debugging & Testing
|
||||
- `browser.start_console_logging` - Start monitoring console logs
|
||||
- `browser.stop_console_logging` - Stop and retrieve console logs (saved to file)
|
||||
- `browser.start_network_logging` - Start monitoring network traffic
|
||||
- `browser.stop_network_logging` - Stop and retrieve network logs as HAR file
|
||||
|
||||
**Use case**: Website testing, local frontend/backend debugging, reverse engineering
|
||||
**Workflow**: Call `start_*` first, perform actions, then call `stop_*` to get logs
|
||||
|
||||
## Relationship with browser-use
|
||||
|
||||
**browser and browser-use are complementary, not exclusive:**
|
||||
- **browser-use**: High-level, task-oriented sub-agent (describe goal, agent figures out steps)
|
||||
- **browser**: Low-level, precise control (explicit step-by-step operations)
|
||||
|
||||
**When to prefer browser-use:**
|
||||
- Complex tasks with long workflows
|
||||
- When describing the goal is easier than specifying steps
|
||||
|
||||
**When to prefer browser:**
|
||||
- Need precise control over each action
|
||||
- Want to verify intermediate results
|
||||
- browser-use failed or got stuck (use as fallback)
|
||||
|
||||
**Best practice:** Try browser-use for complex tasks first, fallback to browser for manual control if needed.
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. Call `get_browser_state` first to see available elements
|
||||
2. Use `browser.get_element_info` to inspect element details (xpath, attributes, etc.)
|
||||
3. Use element indices/IDs from browser state
|
||||
4. Tab IDs are last 4 characters of target_id
|
||||
5. Use `browser.extract` for LLM-based extraction from page markdown
|
||||
6. Use `browser.evaluate` for custom JavaScript operations
|
||||
|
||||
## Manual Control Pattern (Fallback from browser-use)
|
||||
|
||||
> **🎯 Iterative Control Loop**
|
||||
>
|
||||
> Use this pattern when browser-use fails or you need precise control:
|
||||
>
|
||||
> ```
|
||||
> 1. get_browser_state → See page state, available elements
|
||||
> 2. browser.{action} → Perform action (click, input, navigate...)
|
||||
> 3. get_browser_state → Verify result, plan next step
|
||||
> 4. Repeat until complete
|
||||
> ```
|
||||
>
|
||||
> **This pattern works for any task** - form filling, navigation, data extraction, etc.
|
||||
> It's the manual alternative to browser-use's autonomous approach.
|
||||
135
skills/vibesurf/references/config-composio.md
Normal file
135
skills/vibesurf/references/config-composio.md
Normal file
@@ -0,0 +1,135 @@
|
||||
---
|
||||
name: config-composio
|
||||
description: Use when user asks to configure Composio API key, enable or disable Composio toolkits (Gmail, GitHub, Slack, etc.), manage app integrations, or authenticate with external services.
|
||||
---
|
||||
|
||||
# Config Composio - Composio Integration Management
|
||||
|
||||
## Overview
|
||||
|
||||
Manage Composio API key and toolkit configurations. Enable/disable app integrations like Gmail, GitHub, Slack, and more.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User needs to set up Composio API key
|
||||
- User wants to enable a toolkit (Gmail, GitHub, Slack, etc.)
|
||||
- User needs to disable a toolkit
|
||||
- User wants to check which toolkits are available
|
||||
- User needs to manage toolkit authentication (OAuth)
|
||||
- User wants to configure toolkit tools selection
|
||||
|
||||
## API Endpoints
|
||||
|
||||
Base path: `$VIBESURF_ENDPOINT/api/composio`
|
||||
|
||||
### API Key Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| Check Status | GET | `/api/composio/status` | Get Composio connection status |
|
||||
| Verify Key | POST | `/api/composio/verify-key` | Verify and store API key |
|
||||
|
||||
### Toolkit Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| List Toolkits | GET | `/api/composio/toolkits` | Get all available toolkits |
|
||||
| Toggle Toolkit | POST | `/api/composio/toolkit/{slug}/toggle` | Enable/disable toolkit |
|
||||
| Get Tools | GET | `/api/composio/toolkit/{slug}/tools` | Get tools for a toolkit |
|
||||
| Update Tools | POST | `/api/composio/toolkit/{slug}/tools` | Update selected tools |
|
||||
| Connection Status | GET | `/api/composio/toolkit/{slug}/connection-status` | Check OAuth connection |
|
||||
|
||||
## Request Examples
|
||||
|
||||
### Verify API Key
|
||||
```json
|
||||
POST /api/composio/verify-key
|
||||
{
|
||||
"api_key": "your-composio-api-key"
|
||||
}
|
||||
```
|
||||
|
||||
### Enable Toolkit
|
||||
```json
|
||||
POST /api/composio/toolkit/gmail/toggle
|
||||
{
|
||||
"enabled": true,
|
||||
"force_reauth": false
|
||||
}
|
||||
```
|
||||
|
||||
### Disable Toolkit
|
||||
```json
|
||||
POST /api/composio/toolkit/gmail/toggle
|
||||
{
|
||||
"enabled": false
|
||||
}
|
||||
```
|
||||
|
||||
### Update Tool Selection
|
||||
```json
|
||||
POST /api/composio/toolkit/gmail/tools
|
||||
{
|
||||
"selected_tools": {
|
||||
"GMAIL_SEND_EMAIL": true,
|
||||
"GMAIL_FETCH_EMAILS": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Common Toolkits
|
||||
|
||||
| Toolkit | Description |
|
||||
|---------|-------------|
|
||||
| `gmail` | Send and receive emails |
|
||||
| `github` | Repository management, PRs, issues |
|
||||
| `slack` | Send messages, manage channels |
|
||||
| `google_calendar` | Event management |
|
||||
| `google_sheets` | Spreadsheet operations |
|
||||
| `notion` | Page and database management |
|
||||
| `trello` | Card and board management |
|
||||
| `asana` | Task management |
|
||||
| `jira` | Issue tracking |
|
||||
|
||||
## OAuth Flow
|
||||
|
||||
When enabling a toolkit that requires OAuth:
|
||||
|
||||
1. **Enable toolkit** → `POST /api/composio/toolkit/{slug}/toggle` with `enabled: true`
|
||||
2. **Check response** → If `requires_oauth: true`, an `oauth_url` is provided
|
||||
3. **User authenticates** → Open `oauth_url` in browser to complete OAuth
|
||||
4. **Verify connection** → `GET /api/composio/toolkit/{slug}/connection-status`
|
||||
|
||||
## Using Composio Tools
|
||||
|
||||
Once toolkits are enabled, their tools become available through the `integrations` skill:
|
||||
|
||||
```
|
||||
1. List available tools → GET /api/tool/search?keyword=composio
|
||||
2. Execute tool → POST /api/tool/execute
|
||||
{
|
||||
"action_name": "execute_extra_tool",
|
||||
"parameters": {
|
||||
"tool_name": "cpo.{toolkit}.{action}",
|
||||
"tool_arguments": {...}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Tool Naming Convention
|
||||
|
||||
Composio tools follow the pattern: `cpo.{toolkit_slug}.{action_name}`
|
||||
|
||||
Examples:
|
||||
- `cpo.gmail.GMAIL_SEND_EMAIL`
|
||||
- `cpo.github.GITHUB_CREATE_PULL_REQUEST`
|
||||
- `cpo.slack.SLACK_SEND_MESSAGE`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Check API key status** → `GET /api/composio/status`
|
||||
2. **Set up API key** (if needed) → `POST /api/composio/verify-key`
|
||||
3. **List available toolkits** → `GET /api/composio/toolkits`
|
||||
4. **Enable desired toolkit** → `POST /api/composio/toolkit/{slug}/toggle`
|
||||
5. **Complete OAuth** (if required) → Use provided `oauth_url`
|
||||
6. **Use tools** → Execute via `integrations` skill
|
||||
95
skills/vibesurf/references/config-llm.md
Normal file
95
skills/vibesurf/references/config-llm.md
Normal file
@@ -0,0 +1,95 @@
|
||||
---
|
||||
name: config-llm
|
||||
description: Use when user asks to configure LLM profiles, manage AI model settings, add/update/remove LLM configurations, or switch between different LLM providers like OpenAI, Anthropic, Google, etc.
|
||||
---
|
||||
|
||||
# Config LLM - LLM Profile Management
|
||||
|
||||
## Overview
|
||||
|
||||
Manage LLM (Large Language Model) profiles for VibeSurf. Configure different AI providers, models, and their parameters.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User wants to add a new LLM profile
|
||||
- User needs to switch default LLM
|
||||
- User wants to update LLM settings (temperature, max_tokens, etc.)
|
||||
- User needs to see available LLM providers and models
|
||||
- User wants to list or manage existing LLM profiles
|
||||
|
||||
## API Endpoints
|
||||
|
||||
Base path: `$VIBESURF_ENDPOINT/api/config`
|
||||
|
||||
### Profile Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| List Profiles | GET | `/api/config/llm-profiles?active_only=true` | List all LLM profiles |
|
||||
| Get Profile | GET | `/api/config/llm-profiles/{profile_name}` | Get specific profile details |
|
||||
| Create Profile | POST | `/api/config/llm-profiles` | Create new LLM profile |
|
||||
| Update Profile | PUT | `/api/config/llm-profiles/{profile_name}` | Update existing profile |
|
||||
| Set Default | POST | `/api/config/llm-profiles/{profile_name}/set-default` | Set profile as default |
|
||||
| Get Default | GET | `/api/config/llm-profiles/default/current` | Get current default profile |
|
||||
|
||||
### Provider Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| List Providers | GET | `/api/config/llm/providers` | Get available LLM providers |
|
||||
| Get Models | GET | `/api/config/llm/providers/{provider_name}/models` | Get models for a provider |
|
||||
|
||||
## Provider Notes
|
||||
|
||||
> **Tip:** Use `GET /api/config/llm/providers` to see all available providers and their supported models.
|
||||
>
|
||||
> **For OpenAI-compatible APIs:** If using a third-party provider that offers OpenAI-compatible endpoints (like local models, DeepSeek, or other proxies), use the `openai_compatible` provider and set the custom `base_url`.
|
||||
|
||||
## Request Examples
|
||||
|
||||
### Create Profile
|
||||
```json
|
||||
POST /api/config/llm-profiles
|
||||
{
|
||||
"profile_name": "my-openai",
|
||||
"provider": "openai",
|
||||
"model": "gpt-4",
|
||||
"api_key": "sk-...",
|
||||
"temperature": 0.7,
|
||||
"max_tokens": 4096,
|
||||
"is_default": false
|
||||
}
|
||||
```
|
||||
|
||||
### Update Profile
|
||||
```json
|
||||
PUT /api/config/llm-profiles/my-openai
|
||||
{
|
||||
"temperature": 0.5,
|
||||
"max_tokens": 2048
|
||||
}
|
||||
```
|
||||
|
||||
## Profile Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
|-------|------|----------|-------------|
|
||||
| profile_name | string | Yes | Unique profile identifier |
|
||||
| provider | string | Yes | Provider name |
|
||||
| model | string | Yes | Model name |
|
||||
| api_key | string | Yes | API key for the provider |
|
||||
| base_url | string | No | Custom base URL |
|
||||
| temperature | float | No | Sampling temperature (0-2) |
|
||||
| max_tokens | int | No | Maximum tokens to generate |
|
||||
| top_p | float | No | Nucleus sampling |
|
||||
| frequency_penalty | float | No | Frequency penalty (-2 to 2) |
|
||||
| seed | int | No | Random seed |
|
||||
| description | string | No | Profile description |
|
||||
| is_default | bool | No | Set as default profile |
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Get available providers** → `GET /api/config/llm/providers`
|
||||
2. **Choose provider and model** → `GET /api/config/llm/providers/{provider}/models`
|
||||
3. **Create profile** → `POST /api/config/llm-profiles`
|
||||
4. **Set as default** (optional) → `POST /api/config/llm-profiles/{name}/set-default`
|
||||
112
skills/vibesurf/references/config-mcp.md
Normal file
112
skills/vibesurf/references/config-mcp.md
Normal file
@@ -0,0 +1,112 @@
|
||||
---
|
||||
name: config-mcp
|
||||
description: Use when user asks to configure MCP (Model Context Protocol) profiles, add MCP servers, manage MCP integrations, or enable/disable MCP tools for extended functionality.
|
||||
---
|
||||
|
||||
# Config MCP - MCP Profile Management
|
||||
|
||||
## Overview
|
||||
|
||||
Manage MCP (Model Context Protocol) profiles for VibeSurf. MCP allows integrating external tools and data sources with the AI.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User wants to add a new MCP server
|
||||
- User needs to configure MCP integrations
|
||||
- User wants to update MCP server parameters
|
||||
- User needs to list or manage existing MCP profiles
|
||||
- User wants to enable/disable MCP tools
|
||||
|
||||
## API Endpoints
|
||||
|
||||
Base path: `$VIBESURF_ENDPOINT/api/config`
|
||||
|
||||
### MCP Profile Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| List Profiles | GET | `/api/config/mcp-profiles?active_only=true` | List all MCP profiles |
|
||||
| Get Profile | GET | `/api/config/mcp-profiles/{mcp_id}` | Get specific profile details |
|
||||
| Create Profile | POST | `/api/config/mcp-profiles` | Create new MCP profile |
|
||||
| Update Profile | PUT | `/api/config/mcp-profiles/{mcp_id}` | Update existing profile |
|
||||
|
||||
## Request Examples
|
||||
|
||||
### Create MCP Profile
|
||||
```json
|
||||
POST /api/config/mcp-profiles
|
||||
{
|
||||
"display_name": "My MCP Server",
|
||||
"mcp_server_name": "server-name",
|
||||
"mcp_server_params": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-name"],
|
||||
"env": {
|
||||
"API_KEY": "..."
|
||||
}
|
||||
},
|
||||
"description": "Description of what this MCP server does"
|
||||
}
|
||||
```
|
||||
|
||||
### Update MCP Profile
|
||||
```json
|
||||
PUT /api/config/mcp-profiles/{mcp_id}
|
||||
{
|
||||
"display_name": "Updated Name",
|
||||
"mcp_server_params": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-name"],
|
||||
"env": {
|
||||
"API_KEY": "new-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Profile Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
|-------|------|----------|-------------|
|
||||
| display_name | string | Yes | Human-readable name |
|
||||
| mcp_server_name | string | Yes | MCP server identifier |
|
||||
| mcp_server_params | object | Yes | Server configuration |
|
||||
| description | string | No | Profile description |
|
||||
| is_active | bool | No | Enable/disable profile |
|
||||
|
||||
## MCP Server Params
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| command | string | Command to run (e.g., npx, uvx, docker) |
|
||||
| args | array | Arguments for the command |
|
||||
| env | object | Environment variables |
|
||||
|
||||
## Using MCP Tools
|
||||
|
||||
Once MCP profiles are configured, their tools become available through the `integrations` skill:
|
||||
|
||||
```
|
||||
1. List available tools → GET /api/tool/search?keyword=mcp
|
||||
2. Execute MCP tool → POST /api/tool/execute
|
||||
{
|
||||
"action_name": "execute_extra_tool",
|
||||
"parameters": {
|
||||
"tool_name": "mcp.{server_name}.{tool_name}",
|
||||
"tool_arguments": {...}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Common MCP Servers
|
||||
|
||||
- `@modelcontextprotocol/server-filesystem` - File system access
|
||||
- `@modelcontextprotocol/server-github` - GitHub integration
|
||||
- `@modelcontextprotocol/server-postgres` - PostgreSQL access
|
||||
- `@modelcontextprotocol/server-puppeteer` - Browser automation
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Identify MCP server** → Choose from available MCP servers
|
||||
2. **Create profile** → `POST /api/config/mcp-profiles` with server params
|
||||
3. **Verify tools** → Use `integrations` skill to list and use MCP tools
|
||||
97
skills/vibesurf/references/config-schedule.md
Normal file
97
skills/vibesurf/references/config-schedule.md
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
name: config-schedule
|
||||
description: Use when user asks to schedule workflows, manage cron jobs for automated workflow execution, enable/disable schedule triggers, or view workflow execution schedules.
|
||||
---
|
||||
|
||||
# Config Schedule - Workflow Schedule Management
|
||||
|
||||
## Overview
|
||||
|
||||
Manage scheduled workflow executions using cron expressions. Schedule workflows to run automatically at specified times.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User wants to schedule a workflow to run automatically
|
||||
- User needs to set up cron-based workflow triggers
|
||||
- User wants to enable/disable existing schedules
|
||||
- User needs to view or update workflow schedules
|
||||
- User wants to see which workflows have schedules configured
|
||||
|
||||
## API Endpoints
|
||||
|
||||
Base path: `$VIBESURF_ENDPOINT/api/schedule`
|
||||
|
||||
### Schedule Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| List Schedules | GET | `/api/schedule` | Get all workflow schedules |
|
||||
| Get Schedule | GET | `/api/schedule/{flow_id}` | Get schedule for specific workflow |
|
||||
| Create Schedule | POST | `/api/schedule` | Create new schedule for a workflow |
|
||||
| Update Schedule | PUT | `/api/schedule/{flow_id}` | Update existing schedule |
|
||||
|
||||
## Request Examples
|
||||
|
||||
### Create Schedule
|
||||
```json
|
||||
POST /api/schedule
|
||||
{
|
||||
"flow_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
||||
"cron_expression": "0 9 * * 1-5",
|
||||
"is_enabled": true,
|
||||
"description": "Run every weekday at 9 AM"
|
||||
}
|
||||
```
|
||||
|
||||
### Update Schedule
|
||||
```json
|
||||
PUT /api/schedule/{flow_id}
|
||||
{
|
||||
"cron_expression": "0 12 * * *",
|
||||
"is_enabled": true,
|
||||
"description": "Run daily at noon"
|
||||
}
|
||||
```
|
||||
|
||||
### Enable/Disable Schedule
|
||||
```json
|
||||
PUT /api/schedule/{flow_id}
|
||||
{
|
||||
"is_enabled": false
|
||||
}
|
||||
```
|
||||
|
||||
## Schedule Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
|-------|------|----------|-------------|
|
||||
| flow_id | string | Yes | Workflow/Flow ID to schedule |
|
||||
| cron_expression | string | No | Cron expression (e.g., '0 9 * * 1-5') |
|
||||
| is_enabled | bool | No | Whether the schedule is active |
|
||||
| description | string | No | Description of the schedule |
|
||||
|
||||
## Cron Expression Format
|
||||
|
||||
Standard cron format: `minute hour day_of_month month day_of_week`
|
||||
|
||||
| Expression | Description |
|
||||
|------------|-------------|
|
||||
| `0 9 * * 1-5` | Every weekday at 9:00 AM |
|
||||
| `0 12 * * *` | Every day at 12:00 PM |
|
||||
| `0 */6 * * *` | Every 6 hours |
|
||||
| `0 0 * * 0` | Every Sunday at midnight |
|
||||
| `0 8,20 * * *` | At 8:00 AM and 8:00 PM daily |
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Get workflow ID** → From existing workflows or import
|
||||
2. **Create schedule** → `POST /api/schedule` with cron expression
|
||||
3. **Verify schedule** → `GET /api/schedule/{flow_id}` to confirm
|
||||
4. **Update as needed** → `PUT /api/schedule/{flow_id}` to modify
|
||||
|
||||
## Notes
|
||||
|
||||
- Each workflow can only have one schedule
|
||||
- Schedules are automatically reloaded after creation/update
|
||||
- The schedule manager must be running for schedules to execute
|
||||
- `next_execution_at` is automatically calculated from the cron expression
|
||||
79
skills/vibesurf/references/config-vibesurf.md
Normal file
79
skills/vibesurf/references/config-vibesurf.md
Normal file
@@ -0,0 +1,79 @@
|
||||
---
|
||||
name: config-vibesurf
|
||||
description: Use when user asks to configure VibeSurf API key, import or export workflows, manage workflow skills, or execute custom workflows.
|
||||
---
|
||||
|
||||
# Config VibeSurf - VibeSurf Configuration
|
||||
|
||||
## Overview
|
||||
|
||||
Manage VibeSurf API key and workflow configurations. Import, export, and execute custom workflows.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User needs to set up VibeSurf API key
|
||||
- User wants to import a workflow from JSON
|
||||
- User needs to export a workflow to JSON
|
||||
|
||||
## API Endpoints
|
||||
|
||||
Base path: `$VIBESURF_ENDPOINT/api/vibesurf`
|
||||
|
||||
### API Key Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| Check Status | GET | `/api/vibesurf/status` | Get VibeSurf connection status |
|
||||
| Verify Key | POST | `/api/vibesurf/verify-key` | Verify and store API key |
|
||||
|
||||
### Workflow Management
|
||||
|
||||
| Action | Method | Endpoint | Description |
|
||||
|--------|--------|----------|-------------|
|
||||
| Import Workflow | POST | `/api/vibesurf/import-workflow` | Import workflow from JSON |
|
||||
| Export Workflow | GET | `/api/vibesurf/export-workflow/{flow_id}` | Export workflow to JSON file |
|
||||
|
||||
## Request Examples
|
||||
|
||||
### Verify API Key
|
||||
```json
|
||||
POST /api/vibesurf/verify-key
|
||||
{
|
||||
"api_key": "vs-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||
}
|
||||
```
|
||||
|
||||
### Import Workflow
|
||||
```json
|
||||
POST /api/vibesurf/import-workflow
|
||||
{
|
||||
"workflow_json": "{\"name\": \"My Workflow\", \"description\": \"...\", \"data\": {...}}"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## API Key Format
|
||||
|
||||
VibeSurf API keys must:
|
||||
- Start with `vs-`
|
||||
- Be 51 characters total length
|
||||
- Example: `vs-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
|
||||
|
||||
## Workflow Import/Export
|
||||
|
||||
### Import
|
||||
- Accepts Langflow-compatible JSON format
|
||||
- Requires valid VibeSurf API key
|
||||
- Returns `workflow_id` and `edit_url`
|
||||
|
||||
### Export
|
||||
- Exports workflow to JSON file
|
||||
- Removes sensitive data (API keys) automatically
|
||||
- Returns file path to exported JSON
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Check API key status** → `GET /api/vibesurf/status`
|
||||
2. **Set up API key** (if needed) → `POST /api/vibesurf/verify-key`
|
||||
3. **Import workflows** → `POST /api/vibesurf/import-workflow`
|
||||
4. **Export workflows** → `GET /api/vibesurf/export-workflow/{flow_id}`
|
||||
27
skills/vibesurf/references/crawl.md
Normal file
27
skills/vibesurf/references/crawl.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: crawl
|
||||
description: Use when user asks to extract main content, structured data, or specific information from a webpage using LLM-powered crawling.
|
||||
---
|
||||
|
||||
# Crawl - LLM-Powered Page Extraction
|
||||
|
||||
## Overview
|
||||
|
||||
Crawl or scrape a webpage with LLM analysis.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Extract main article content
|
||||
- Get specific information from a page
|
||||
- Parse structured data
|
||||
- Analyze page content
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_crawl` | Crawl or scrape a web page with tab_id |
|
||||
|
||||
## How It Works
|
||||
|
||||
Call VibeSurf API with `skill_crawl` and prompt describing what to extract. Returns LLM-parsed structured data.
|
||||
31
skills/vibesurf/references/fetch.md
Normal file
31
skills/vibesurf/references/fetch.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: fetch
|
||||
description: Use when user asks to fetch URL content, read documentation from a URL, get webpage content as markdown, or extract structured content from any web page URL.
|
||||
---
|
||||
|
||||
# Fetch - Get Structured Content from URLs
|
||||
|
||||
## Overview
|
||||
|
||||
Fetch and extract structured markdown content from any URL without opening a browser.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Fetch documentation from a URL
|
||||
- Read webpage content as markdown
|
||||
- Get structured content from any web page
|
||||
- Extract article or blog post content
|
||||
- Parse HTML content into clean markdown format
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_fetch` | Fetch URL and return structured markdown content |
|
||||
|
||||
|
||||
## When NOT to Use
|
||||
|
||||
- For AI-powered web search → use `search` skill instead
|
||||
- For interactive browser control → use `browser` skill instead
|
||||
- For complex data extraction → use `crawl` or `js_code` skill instead
|
||||
32
skills/vibesurf/references/finance.md
Normal file
32
skills/vibesurf/references/finance.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
name: finance
|
||||
description: Use when user asks for stock data, financial information, company details, historical prices, earnings, dividends, or analyst recommendations from Yahoo Finance.
|
||||
---
|
||||
|
||||
# Finance - Stock Data & Financial Information
|
||||
|
||||
## Overview
|
||||
|
||||
Get comprehensive financial data for stocks from Yahoo Finance.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Get stock information
|
||||
- Historical prices
|
||||
- News and earnings
|
||||
- Dividends and analyst recommendations
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_finance` | Retrieve company info, historical prices, news, earnings, dividends, analyst recommendations |
|
||||
|
||||
## Data Available
|
||||
|
||||
- Company information
|
||||
- Historical prices
|
||||
- News
|
||||
- Earnings
|
||||
- Dividends
|
||||
- Analyst recommendations
|
||||
105
skills/vibesurf/references/integrations.md
Normal file
105
skills/vibesurf/references/integrations.md
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
name: integrations
|
||||
description: Use when user asks to interact with external apps like Gmail, GitHub, Slack, Google Calendar, Notion via Composio or MCP integrations. Direct API is faster than browser automation.
|
||||
---
|
||||
|
||||
# Integrations - External App Automation
|
||||
|
||||
## Overview
|
||||
|
||||
Direct API access to 100+ external apps via Composio and MCP integrations.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User needs Gmail, GitHub, Slack, etc.
|
||||
- Service has Composio/MCP support
|
||||
- Want faster, more reliable than browser automation
|
||||
|
||||
**Why use over browser?**
|
||||
- Direct API = 10-100x faster
|
||||
- More reliable (no UI changes)
|
||||
- Better for bulk operations
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Purpose |
|
||||
|--------|---------|
|
||||
| `get_all_toolkit_types` | See all available apps |
|
||||
| `search_extra_tool` | Find specific app actions |
|
||||
| `get_extra_tool_info` | See action parameters |
|
||||
| `execute_extra_tool` | Run app action |
|
||||
|
||||
## The Pattern
|
||||
|
||||
1. **List** available apps
|
||||
2. **Search** for specific actions
|
||||
3. **Get** parameter schema
|
||||
4. **Execute** with parameters
|
||||
|
||||
## Tool Naming Convention
|
||||
|
||||
```
|
||||
cpo.{service}.{action} # Composio tools
|
||||
mcp.{server}.{action} # MCP tools
|
||||
```
|
||||
|
||||
## Configuration Required
|
||||
|
||||
Before using Composio or MCP tools, you must configure them first:
|
||||
|
||||
| Integration | Configuration Skill | What to Configure |
|
||||
|-------------|---------------------|-------------------|
|
||||
| Composio (Gmail, GitHub, etc.) | `config-composio` | API key + enable toolkits |
|
||||
| MCP servers | `config-mcp` | Add MCP server profiles |
|
||||
|
||||
**Workflow:**
|
||||
1. Configure using appropriate `config-*` skill
|
||||
2. Then use `integrations` skill to execute tools
|
||||
|
||||
For example:
|
||||
1. First: `config-composio` → verify API key + enable `gmail` toolkit
|
||||
2. Then: `integrations` → execute `cpo.gmail.GMAIL_SEND_EMAIL`
|
||||
|
||||
## Common Integrations
|
||||
|
||||
| Service | Common Actions |
|
||||
|---------|----------------|
|
||||
| Gmail | Send, read, organize emails |
|
||||
| GitHub | Create PRs, issues, releases |
|
||||
| Slack | Send messages, manage channels |
|
||||
| Google Calendar | Create events, manage scheduling |
|
||||
| Notion | Create pages, update databases |
|
||||
|
||||
## Best Practices
|
||||
|
||||
| Practice | Why |
|
||||
|----------|-----|
|
||||
| Search before execute | Find exact tool name and parameters |
|
||||
| Use search filters | Reduce noise in results |
|
||||
| Check authentication | Configure credentials in VibeSurf |
|
||||
| Prefer integrations for API tasks | Faster than browser automation |
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Error | Solution |
|
||||
|-------|----------|
|
||||
| Tool not found | Use `search_extra_tool` to find correct name |
|
||||
| Auth failed | Configure credentials in VibeSurf |
|
||||
| Invalid params | Use `get_extra_tool_info` to see schema |
|
||||
|
||||
## Integration vs Browser Automation
|
||||
|
||||
| Task | Use Integration | Use Browser |
|
||||
|------|----------------|-------------|
|
||||
| Send Gmail | ✅ Direct API | ❌ Slow |
|
||||
| GitHub PR | ✅ Direct API | ❌ Overkill |
|
||||
| Custom form | ❌ Not supported | ✅ `browser-use` |
|
||||
|
||||
**Rule:** If Composio/MCP supports the app, use integration.
|
||||
|
||||
## Common Toolkit Types
|
||||
|
||||
- `gmail`, `github`, `slack`
|
||||
- `google_calendar`, `google_sheets`
|
||||
- `notion`, `trello`, `asana`, `jira`
|
||||
- Many more available via `get_all_toolkit_types`
|
||||
36
skills/vibesurf/references/js_code.md
Normal file
36
skills/vibesurf/references/js_code.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: js_code
|
||||
description: Use when user asks to extract structured data from a webpage like lists, tables, products, posts, or items with the same structure. This auto-generates JavaScript code and executes it to return parsed results.
|
||||
---
|
||||
|
||||
# JS Code - Structured Data Extraction
|
||||
|
||||
## Overview
|
||||
|
||||
Automatically generates and executes JavaScript to extract structured data from webpages. **Best for extracting multiple items with the same structure.**
|
||||
|
||||
## When to Use
|
||||
|
||||
- Extract all products/prices from a page
|
||||
- Get all posts/articles/listings
|
||||
- Pull table data
|
||||
- Extract repeated elements with same structure
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_code` | Generate and execute JavaScript from functional requirements with iterative retry logic |
|
||||
|
||||
## How It Works
|
||||
|
||||
Call VibeSurf API with `skill_code` and a prompt describing what to extract. The system generates optimized JavaScript and returns parsed results.
|
||||
|
||||
## Best For
|
||||
|
||||
| Use Case | Why |
|
||||
|----------|-----|
|
||||
| All product prices | Repeated structure |
|
||||
| All article titles | List extraction |
|
||||
| Table data | Structured parsing |
|
||||
| All links of a type | Pattern matching |
|
||||
23
skills/vibesurf/references/screenshot.md
Normal file
23
skills/vibesurf/references/screenshot.md
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: screenshot
|
||||
description: Use when user asks to take a screenshot of a webpage or capture visual state of the browser.
|
||||
---
|
||||
|
||||
# Screenshot - Page Capture
|
||||
|
||||
## Overview
|
||||
|
||||
Take screenshots of webpages.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Need visual inspection of page
|
||||
- Debugging UI issues
|
||||
- Verifying page state
|
||||
- Capturing layout
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_screenshot` | Take screenshot on a web page with tab_id |
|
||||
27
skills/vibesurf/references/search.md
Normal file
27
skills/vibesurf/references/search.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: search
|
||||
description: Use when user asks to search the web for information, research a topic, find latest news, or get AI-powered search results with summaries.
|
||||
---
|
||||
|
||||
# Search - AI-Powered Web Search
|
||||
|
||||
## Overview
|
||||
|
||||
Advanced search using AI (Gemini) for intelligent results.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Search the web for information
|
||||
- Research a topic
|
||||
- Find latest news/information
|
||||
- Get AI-curated search results
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_search` | Advanced search by using Gemini AI search |
|
||||
|
||||
## How It Works
|
||||
|
||||
Call VibeSurf API with `skill_search` and search query. Returns AI-generated summary with sources.
|
||||
27
skills/vibesurf/references/summary.md
Normal file
27
skills/vibesurf/references/summary.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: summary
|
||||
description: Use when user asks to summarize a webpage's content, get the main points, or understand what a page is about.
|
||||
---
|
||||
|
||||
# Summary - Webpage Summarization
|
||||
|
||||
## Overview
|
||||
|
||||
AI-powered summarization of webpage content.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User asks what a page is about
|
||||
- Need a quick summary of content
|
||||
- Get main points from an article
|
||||
- Understand page purpose
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_summary` | Summarize a web page with tab_id |
|
||||
|
||||
## How It Works
|
||||
|
||||
Call VibeSurf API with `skill_summary` on the current tab. Returns AI-generated summary of the page content.
|
||||
27
skills/vibesurf/references/trend.md
Normal file
27
skills/vibesurf/references/trend.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: trend
|
||||
description: Use when user asks for trending news, real-time news, or hot topics from NewsNow.
|
||||
---
|
||||
|
||||
# Trend - Trending News
|
||||
|
||||
## Overview
|
||||
|
||||
Get trending and real-time news via NewsNow.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Need trending/hot topics
|
||||
- Real-time news updates
|
||||
- Current events
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `skill_trend` | Get trending/real-time news via NewsNow. Leave keywords EMPTY for general hot searches. Only set keywords for specific topics. |
|
||||
|
||||
## Usage Notes
|
||||
|
||||
- Leave keywords EMPTY for general hot searches (avoids over-filtering)
|
||||
- Only set keywords when searching for specific topics
|
||||
36
skills/vibesurf/references/website-api.md
Normal file
36
skills/vibesurf/references/website-api.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: website-api
|
||||
description: Use when user asks to interact with Social media platforms like Xiaohongshu, Weibo, Zhihu, Douyin, or YouTube via their unified APIs.
|
||||
---
|
||||
|
||||
# Website API - Platform APIs
|
||||
|
||||
## Overview
|
||||
|
||||
Unified API handling for specific website platforms.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Interact with Chinese social platforms
|
||||
- Need platform-specific API access
|
||||
- Xiaohongshu, Weibo, Zhihu, Douyin, YouTube
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `get_website_api_params` | Get API parameters and available methods for platforms: "xiaohongshu", "weibo", "zhihu", "douyin", "youtube" |
|
||||
| `call_website_api` | Call website platform API with unified handling |
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
- xiaohongshu (小红书)
|
||||
- weibo (微博)
|
||||
- zhihu (知乎)
|
||||
- douyin (抖音)
|
||||
- youtube
|
||||
|
||||
## Usage Pattern
|
||||
|
||||
1. Get API params for platform
|
||||
2. Call API with parameters
|
||||
83
skills/vibesurf/references/workflows.md
Normal file
83
skills/vibesurf/references/workflows.md
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
name: workflows
|
||||
description: Use when user asks to execute, find, or run pre-built VibeSurf automation workflows like video downloads, auto-login, or data collection templates.
|
||||
---
|
||||
|
||||
# Workflows - Pre-Built Automations
|
||||
|
||||
## Overview
|
||||
|
||||
Execute pre-configured VibeSurf workflows for common automation tasks.
|
||||
|
||||
## When to Use
|
||||
|
||||
- You know a workflow exists for your task
|
||||
- You want reusable automation sequences
|
||||
- Task has a known pattern (video download, auto-login, etc.)
|
||||
|
||||
**Examples:**
|
||||
- Video download workflows
|
||||
- Auto-login sequences
|
||||
- Data collection templates
|
||||
- Social media posting
|
||||
|
||||
## Available Actions
|
||||
|
||||
| Action | Purpose |
|
||||
|--------|---------|
|
||||
| `search_workflows` | Find workflows by keyword |
|
||||
| `get_workflow_params` | See required parameters |
|
||||
| `execute_workflow` | Run with custom values |
|
||||
|
||||
## The Pattern
|
||||
|
||||
1. **Search** for workflow with keyword
|
||||
2. **Check** parameters required
|
||||
3. **Execute** with tweak parameters (custom values)
|
||||
|
||||
## Tweak Parameters
|
||||
|
||||
Workflows have adjustable components called "tweaks". Provide custom values to customize workflow behavior without modifying the workflow itself.
|
||||
|
||||
## Best Practices
|
||||
|
||||
| Practice | Why |
|
||||
|----------|-----|
|
||||
| Search before executing | Confirm workflow exists and see parameters |
|
||||
| Use tweaks for customization | Don't modify workflow directly |
|
||||
| Check results | Returns file paths and detailed output |
|
||||
|
||||
## Common Workflow Types
|
||||
|
||||
| Type | Description |
|
||||
|------|-------------|
|
||||
| Video Download | Download from YouTube, etc. |
|
||||
| Auto-Login | Authenticate to sites |
|
||||
| Data Collection | Scrape structured data |
|
||||
| Social Post | Post to platforms |
|
||||
|
||||
## Workflow vs Browser-Use
|
||||
|
||||
| Factor | Workflows | Browser-Use |
|
||||
|--------|-----------|-------------|
|
||||
| Reusability | Pre-built, reusable | Custom, one-off |
|
||||
| Setup | None (already exists) | Describe task each time |
|
||||
| Use when | Known pattern exists | Custom automation needed |
|
||||
|
||||
**Decision:** Known pattern → workflows. Unique task → browser-use.
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Error | Solution |
|
||||
|-------|----------|
|
||||
| Workflow not found | Use `search_workflows` to find correct ID |
|
||||
| Invalid tweak params | Check `get_workflow_params` for correct IDs |
|
||||
| Execution failed | Verify all required params provided |
|
||||
|
||||
## Finding Workflows
|
||||
|
||||
Common search keywords:
|
||||
- `video download`, `youtube`
|
||||
- `auto login`
|
||||
- `data collection`, `scrape`
|
||||
- `social media`
|
||||
Reference in New Issue
Block a user