diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 3b0312578..71989bd97 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -271,72 +271,45 @@ Sim Studio is built in a modular fashion where blocks and tools extend the platf ### Where to Add Your Code -- **Blocks:** Create your new block file under the `/sim/blocks/blocks` directory. -- **Tools:** Create your new tool file under the `/sim/tools` directory. +- **Blocks:** Create your new block file under the `/sim/blocks/blocks` directory. The name of the file should match the provider name (e.g., `pinecone.ts`). +- **Tools:** Create a new directory under `/sim/tools` with the same name as the provider (e.g., `/sim/tools/pinecone`). In addition, you will need to update the registries: -- **Block Registry:** Update the blocks index (usually `/sim/blocks/index.ts`) to include your new block. +- **Block Registry:** Update the blocks index (`/sim/blocks/index.ts`) to include your new block. - **Tool Registry:** Update the tools registry (`/sim/tools/index.ts`) to add your new tool. ### How to Create a New Block 1. **Create a New File:** - Create a file for your block (e.g., `newBlock.ts`) in the `/sim/blocks/blocks` directory. + Create a file for your block named after the provider (e.g., `pinecone.ts`) in the `/sim/blocks/blocks` directory. 2. **Create a New Icon:** - Create a new icon for your block in the `/sim/components/icons.tsx` file. + Create a new icon for your block in the `/sim/components/icons.tsx` file. The icon should follow the same naming convention as the block (e.g., `PineconeIcon`). 3. **Define the Block Configuration:** Your block should export a constant of type `BlockConfig`. For example: - ```typescript:/sim/blocks/blocks/newBlock.ts - import { SomeIcon } from '@/components/icons' + ```typescript:/sim/blocks/blocks/pinecone.ts + import { PineconeIcon } from '@/components/icons' + import { PineconeResponse } from '@/tools/pinecone/types' import { BlockConfig } from '../types' - // Define response type if needed - interface NewBlockResponse { - output: { - // Define expected output here - result: string - } - } - - export const NewBlock: BlockConfig = { - type: 'new', - name: 'New Block', - description: 'Description of the new block', + export const PineconeBlock: BlockConfig = { + type: 'pinecone', + name: 'Pinecone', + description: 'Use Pinecone vector database', longDescription: 'A more detailed description of what this block does and how to use it.', category: 'tools', bgColor: '#123456', - icon: SomeIcon, + icon: PineconeIcon, // If this block requires OAuth authentication - provider: 'new-service', + provider: 'pinecone', // Define subBlocks for the UI configuration subBlocks: [ - { - id: 'apiKey', - title: 'API Key', - type: 'short-input', - layout: 'full', - placeholder: 'Enter your API key', - }, - { - id: 'query', - title: 'Query', - type: 'long-input', - layout: 'full', - placeholder: 'Enter your search query', - }, - { - id: 'model', - title: 'Model', - type: 'dropdown', - layout: 'half', - options: ['model-1', 'model-2', 'model-3'], - }, + // Block configuration options ], } ``` @@ -345,16 +318,16 @@ In addition, you will need to update the registries: Import and add your block to the blocks registry (`/sim/blocks/index.ts`) in the appropriate index file so it appears in the workflow builder. ```typescript:/sim/blocks/index.ts - import { NewBlock } from './blocks/newBlock' + import { PineconeBlock } from './blocks/pinecone' export const blocks = [ // ... existing blocks - NewBlock, + PineconeBlock, ] export const blocksByType: Record = { // ... existing blocks by type - new: NewBlock, + pinecone: PineconeBlock, } ``` @@ -364,100 +337,86 @@ In addition, you will need to update the registries: ### How to Create a New Tool 1. **Create a New Directory:** - For tools with multiple related functions, create a directory under `/sim/tools` (e.g., `/sim/tools/newService`). + Create a directory under `/sim/tools` with the same name as the provider (e.g., `/sim/tools/pinecone`). 2. **Create Tool Files:** - Create files for your tool functionality (e.g., `read.ts`, `write.ts`) in your tool directory. + Create separate files for each tool functionality with descriptive names (e.g., `fetch.ts`, `generate_embeddings.ts`, `search_text.ts`) in your tool directory. -3. **Create an Index File:** - Create an `index.ts` file in your tool directory that imports and exports all tools with appropriate prefixes: +3. **Create a Types File:** + Create a `types.ts` file in your tool directory to define and export all types related to your tools. - ```typescript:/sim/tools/newService/index.ts - import { readTool } from './read' - import { writeTool } from './write' +4. **Create an Index File:** + Create an `index.ts` file in your tool directory that imports and exports all tools: - export const newServiceReadTool = readTool - export const newServiceWriteTool = writeTool + ```typescript:/sim/tools/pinecone/index.ts + import { fetchTool } from './fetch' + import { generateEmbeddingsTool } from './generate_embeddings' + import { searchTextTool } from './search_text' + + export { fetchTool, generateEmbeddingsTool, searchTextTool } ``` -4. **Define the Tool Configuration:** - Your tool should export a constant of type `ToolConfig`. For example: +5. **Define the Tool Configuration:** + Your tool should export a constant with a naming convention of `{toolName}Tool`. The tool ID should follow the format `{provider}_{tool_name}`. For example: - ```typescript:/sim/tools/newService/read.ts + ```typescript:/sim/tools/pinecone/fetch.ts import { ToolConfig, ToolResponse } from '../types' + import { PineconeParams, PineconeResponse } from './types' - interface NewToolParams { - apiKey: string - query: string - } - - interface NewToolResponse extends ToolResponse { - output: { - result: string - } - } - - export const readTool: ToolConfig = { - id: 'new_service_read', - name: 'New Service Reader', - description: 'Description for the new tool', + export const fetchTool: ToolConfig = { + id: 'pinecone_fetch', // Follow the {provider}_{tool_name} format + name: 'Pinecone Fetch', + description: 'Fetch vectors from Pinecone database', version: '1.0.0', // OAuth configuration (if applicable) - provider: 'new-service', // ID of the OAuth provider - additionalScopes: ['https://api.newservice.com/read'], // Required OAuth scopes + provider: 'pinecone', // ID of the OAuth provider params: { - apiKey: { - type: 'string', - required: true, - description: 'API key for authentication', - }, - query: { - type: 'string', - required: true, - description: 'Query to search for', - }, + // Tool parameters }, request: { - url: 'https://api.example.com/query', - method: 'POST', - headers: (params) => ({ - 'Content-Type': 'application/json', - Authorization: `Bearer ${params.apiKey}`, - }), - body: (params) => JSON.stringify({ query: params.query }), + // Request configuration }, transformResponse: async (response: Response) => { - const data = await response.json() - return { - success: true, - output: { result: data.result }, - } + // Transform response }, transformError: (error) => { - return error.message || 'An error occurred while processing the tool request' + // Handle errors }, } ``` -5. **Register Your Tool:** - Update the tools registry in `/sim/tools/index.ts` to include your new tool. Import from your tool's index.ts file: +6. **Register Your Tool:** + Update the tools registry in `/sim/tools/index.ts` to include your new tool: ```typescript:/sim/tools/index.ts - import { newServiceReadTool, newServiceWriteTool } from './newService' + import { fetchTool, generateEmbeddingsTool, searchTextTool } from './pinecone' // ... other imports export const tools: Record = { // ... existing tools - new_service_read: newServiceReadTool, - new_service_write: newServiceWriteTool, + pinecone_fetch: fetchTool, + pinecone_generate_embeddings: generateEmbeddingsTool, + pinecone_search_text: searchTextTool, } ``` -6. **Test Your Tool:** +7. **Test Your Tool:** Ensure that your tool functions correctly by making test requests and verifying the responses. +### Naming Conventions + +Maintaining consistent naming across the codebase is critical for auto-generation of tools and documentation. Follow these naming guidelines: + +- **Block Files:** Name should match the provider (e.g., `pinecone.ts`) +- **Block Export:** Should be named `{Provider}Block` (e.g., `PineconeBlock`) +- **Icons:** Should be named `{Provider}Icon` (e.g., `PineconeIcon`) +- **Tool Directories:** Should match the provider name (e.g., `/tools/pinecone/`) +- **Tool Files:** Should be named after their function (e.g., `fetch.ts`, `search_text.ts`) +- **Tool Exports:** Should be named `{toolName}Tool` (e.g., `fetchTool`) +- **Tool IDs:** Should follow the format `{provider}_{tool_name}` (e.g., `pinecone_fetch`) + ### Guidelines & Best Practices - **Code Style:** Follow the project's ESLint and Prettier configurations. Use meaningful variable names and small, focused functions. diff --git a/docs/app/(docs)/[[...slug]]/layout.tsx b/docs/app/(docs)/[[...slug]]/layout.tsx index cef81579c..a8d3c96e2 100644 --- a/docs/app/(docs)/[[...slug]]/layout.tsx +++ b/docs/app/(docs)/[[...slug]]/layout.tsx @@ -1,7 +1,7 @@ import type { ReactNode } from 'react' import Link from 'next/link' import { DocsLayout } from 'fumadocs-ui/layouts/docs' -import { GithubIcon } from 'lucide-react' +import { GithubIcon, ExternalLink } from 'lucide-react' import { source } from '@/lib/source' import { AgentIcon } from '@/components/icons' @@ -31,6 +31,13 @@ export default function Layout({ children }: { children: ReactNode }) { ), }} + links={[ + { + text: 'Visit Sim Studio', + url: 'https://simstudio.ai', + icon: , + } + ]} > {children} diff --git a/docs/components/ui/block-info-card.tsx b/docs/components/ui/block-info-card.tsx new file mode 100644 index 000000000..7120984e2 --- /dev/null +++ b/docs/components/ui/block-info-card.tsx @@ -0,0 +1,44 @@ +'use client' + +import * as React from 'react' + +interface BlockInfoCardProps { + type: string; + color: string; + icon?: boolean; + iconSvg?: string; +} + +export function BlockInfoCard({ + type, + color, + icon = false, + iconSvg +}: BlockInfoCardProps): React.ReactNode { + return ( +
+
+
+ {iconSvg ? ( +
+ ) : ( +
{type.substring(0, 2)}
+ )} +
+
+ {icon && ( + + )} +
+ ) +} \ No newline at end of file diff --git a/docs/components/ui/features.tsx b/docs/components/ui/features.tsx index 8b625fcfc..97d8595be 100644 --- a/docs/components/ui/features.tsx +++ b/docs/components/ui/features.tsx @@ -54,7 +54,7 @@ export function Features() { }, ] return ( -
+
{features.map((feature, index) => ( ))} diff --git a/docs/content/docs/connections/index.mdx b/docs/content/docs/connections/index.mdx index 020ac1b11..50b08b900 100644 --- a/docs/content/docs/connections/index.mdx +++ b/docs/content/docs/connections/index.mdx @@ -30,19 +30,19 @@ Connections are the pathways that allow data to flow between blocks in your work Sim Studio supports different types of connections that enable various workflow patterns: - + Learn how connections work and how to create them in your workflows - + Understand how to use connection tags to reference data between blocks - + Explore the output data structures of different block types - + Learn techniques for accessing and manipulating connected data - + Follow recommended patterns for effective connection management diff --git a/docs/content/docs/execution/index.mdx b/docs/content/docs/execution/index.mdx index af8893d5c..99acd2543 100644 --- a/docs/content/docs/execution/index.mdx +++ b/docs/content/docs/execution/index.mdx @@ -32,15 +32,15 @@ Sim Studio provides a powerful execution engine that brings your workflows to li ## Execution Documentation - + Learn about the fundamental execution flow, block types, and how data flows through your workflow - + Master the powerful loop functionality to create iterative processes and feedback mechanisms - + Discover advanced capabilities like error handling, environment variables, and performance optimization diff --git a/docs/content/docs/introduction/index.mdx b/docs/content/docs/introduction/index.mdx index 3a38bf3c9..b5c578f45 100644 --- a/docs/content/docs/introduction/index.mdx +++ b/docs/content/docs/introduction/index.mdx @@ -11,7 +11,65 @@ Sim Studio is a powerful platform for building, testing, and optimizing agentic ## Why Sim Studio? -Building agentic applications has traditionally required extensive coding and integration work. Developers often find themselves spending more time on infrastructure and plumbing rather than focusing on the core AI logic. Sim Studio changes this by providing a comprehensive visual workflow editor that handles the complexity while keeping you in control of what matters. +Building agentic applications requires extensive coding and integration work. Developers spend more time on infrastructure and plumbing than focusing on core AI logic. Sim Studio changes this with a comprehensive visual workflow editor that handles complexity while keeping you in control of what matters. + +## How Sim Studio Differs + +Sim Studio takes a fundamentally different approach from existing agent development solutions: + +### Focus on What Matters + +Developers waste countless hours customizing multi-agent frameworks, writing boilerplate code, creating integrations, and building tooling from scratch. By the time they've configured their environment, precious resources are consumed before any real agent work begins. + +Sim Studio eliminates this overhead. We've distilled agent development to its essence, removing boilerplate and infrastructure complexity. With Sim Studio, you can immediately start designing intelligence rather than wrestling with configuration. Your time is best spent refining agent behaviors, not writing glue code that doesn't improve the end-user experience. + +### Provider-Aligned Interfaces + +Existing frameworks abstract away provider-specific features, forcing developers to navigate layers of abstraction to access specific capabilities. The result: lost functionality, reduced flexibility, and additional code to bridge these gaps. + +Sim Studio stays close to provider definitions, directly exposing the parameters that matter: +
    +
  • System prompts and instructions with native formatting
  • +
  • Tool definitions and access patterns that match provider implementations
  • +
  • Temperature and sampling parameters with their full range of options
  • +
  • Structured output formatting that aligns with provider capabilities
  • +
  • Model selection and configuration with provider-specific optimizations
  • +
+ +This approach gives you full control over agent behavior without unnecessary complexity. You leverage each provider's full capabilities without sacrificing the convenience of a unified platform. + +### Unified Model Interface + +Most environments lock you into a specific LLM provider early in development. Changing providers later requires significant refactoring, often affecting your entire application architecture and limiting your ability to leverage advances in model capabilities. + +Our platform provides a consistent interface across different AI models, letting you switch between OpenAI, Anthropic, Claude, Llama, Gemini and others without rewriting your agent logic. This model-agnostic approach future-proofs your applications and gives you freedom to select the best model for each specific use case—optimize for cost with one agent and performance with another, all within the same workflow. + +### AI-Native Design + +Traditional development environments were designed for conventional software and later adapted for AI. These adaptations often feel like afterthoughts, with AI capabilities awkwardly grafted onto existing paradigms. + +Sim Studio is built from the ground up as an AI-native application. Every aspect—from the visual workflow editor to testing environments—is designed specifically for agent development. Common AI development patterns are first-class concepts in our platform, not workarounds. Testing prompts, adjusting parameters, or implementing complex tool calling patterns feel natural because they're core to our design philosophy. + +### Local Development Support + +Many AI platforms force you to develop against cloud APIs, creating dependencies on internet connectivity, increasing costs, and introducing privacy concerns with sensitive data. + +Sim Studio supports full local development using Ollama integration. Develop with privacy-preserving local models, then seamlessly deploy with cloud providers in production. This hybrid approach gives you the best of both worlds: privacy, cost-efficiency, and reliability during development, with scalability and performance in production. + +### Comprehensive Observability + +Existing solutions provide limited visibility into agent performance, making it difficult to identify bottlenecks, understand costs, or diagnose failures. Developers build custom instrumentation or operate in the dark. + +Sim Studio provides full visibility into agent performance with integrated observability: +
    +
  • Detailed execution logs capturing every interaction between agents and models
  • +
  • Latency tracing with span visualization to identify performance bottlenecks
  • +
  • Cost tracking and optimization to prevent budget overruns
  • +
  • Error analysis and debugging tools for complex workflows
  • +
  • Performance comparisons across different model configurations
  • +
+ +This comprehensive observability means less time investigating issues and more time resolving them—faster development cycles and more reliable agent workflows. ## Features diff --git a/docs/content/docs/tools/airtable.mdx b/docs/content/docs/tools/airtable.mdx new file mode 100644 index 000000000..6778eeb29 --- /dev/null +++ b/docs/content/docs/tools/airtable.mdx @@ -0,0 +1,194 @@ +--- +title: Airtable +description: Read, create, and update Airtable +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + + + + + + + `} +/> + +{/* MANUAL-CONTENT-START:intro */} +[Airtable](https://airtable.com/) is a powerful cloud-based platform that combines the functionality of a database with the simplicity of a spreadsheet. It allows users to create flexible databases for organizing, storing, and collaborating on information. + +With Airtable, you can: + +- **Create custom databases**: Build tailored solutions for project management, content calendars, inventory tracking, and more +- **Visualize data**: View your information as a grid, kanban board, calendar, or gallery +- **Automate workflows**: Set up triggers and actions to automate repetitive tasks +- **Integrate with other tools**: Connect with hundreds of other applications through native integrations and APIs + +In Sim Studio, the Airtable integration enables your agents to interact with your Airtable bases programmatically. This allows for seamless data operations like retrieving information, creating new records, and updating existing data - all within your agent workflows. Use Airtable as a dynamic data source or destination for your agents, enabling them to access and manipulate structured information as part of their decision-making and task execution processes. +{/* MANUAL-CONTENT-END */} + + +## Usage Instructions + +Integrate Airtable functionality to manage table records. List, get, create, + + + +## Tools + +### `airtable_list_records` + +Read records from an Airtable table + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `accessToken` | string | Yes | OAuth access token | +| `baseId` | string | Yes | ID of the Airtable base | +| `tableId` | string | Yes | ID of the table | +| `maxRecords` | number | No | Maximum number of records to return | +| `filterFormula` | string | No | Formula to filter records \(e.g., | + +#### Output + +| Parameter | Type | +| --------- | ---- | +| `records` | string | +| `metadata` | string | +| `totalRecords` | string | + +### `airtable_get_record` + +Retrieve a single record from an Airtable table by its ID + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `accessToken` | string | Yes | OAuth access token | +| `baseId` | string | Yes | ID of the Airtable base | +| `tableId` | string | Yes | ID or name of the table | +| `recordId` | string | Yes | ID of the record to retrieve | + +#### Output + +| Parameter | Type | +| --------- | ---- | +| `record` | string | +| `metadata` | string | + +### `airtable_create_records` + +Write new records to an Airtable table + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `accessToken` | string | Yes | OAuth access token | +| `baseId` | string | Yes | ID of the Airtable base | +| `tableId` | string | Yes | ID or name of the table | + +#### Output + +| Parameter | Type | +| --------- | ---- | +| `records` | string | +| `metadata` | string | + +### `airtable_update_record` + +Update an existing record in an Airtable table by ID + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `accessToken` | string | Yes | OAuth access token | +| `baseId` | string | Yes | ID of the Airtable base | +| `tableId` | string | Yes | ID or name of the table | +| `recordId` | string | Yes | ID of the record to update | +| `fields` | json | Yes | An object containing the field names and their new values | + +#### Output + +| Parameter | Type | +| --------- | ---- | +| `record` | string | +| `metadata` | string | +| `updatedFields` | string | + +### `airtable_update_multiple_records` + +Update multiple existing records in an Airtable table + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `accessToken` | string | Yes | OAuth access token | +| `baseId` | string | Yes | ID of the Airtable base | +| `tableId` | string | Yes | ID or name of the table | + +#### Output + +| Parameter | Type | +| --------- | ---- | +| `records` | string | +| `metadata` | string | +| `updatedRecordIds` | string | + + + +## Block Configuration + +### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `operation` | string | Yes | Operation | + + + +### Outputs + +| Output | Type | Description | +| ------ | ---- | ----------- | +| `response` | object | Output from response | +| ↳ `records` | json | records of the response | +| ↳ `record` | json | record of the response | +| ↳ `metadata` | json | metadata of the response | + + +## Notes + +- Category: `tools` +- Type: `airtable` diff --git a/docs/content/docs/tools/autoblocks.mdx b/docs/content/docs/tools/autoblocks.mdx new file mode 100644 index 000000000..b143d13ad --- /dev/null +++ b/docs/content/docs/tools/autoblocks.mdx @@ -0,0 +1,187 @@ +--- +title: Autoblocks +description: Manage and use versioned prompts with Autoblocks +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + + + + `} +/> + +{/* MANUAL-CONTENT-START:intro */} +[Autoblocks](https://www.autoblocks.ai/) is a comprehensive platform for managing, monitoring, and optimizing AI applications. It provides robust tools for prompt management that enable teams to collaborate effectively on AI prompts while maintaining version control and type safety. + +With Autoblocks, you can: + +- **Version and manage prompts**: Track changes, roll back to previous versions, and maintain a history of prompt iterations +- **Collaborate across teams**: Enable product, engineering, and AI teams to work together on prompt development +- **Ensure type safety**: Get autocomplete and validation for prompt variables +- **Monitor prompt performance**: Track metrics and analyze how changes affect outcomes +- **Test prompts**: Compare different versions and evaluate results before deployment + +Autoblocks integrates seamlessly with your existing AI workflows in Sim Studio, providing a structured approach to prompt engineering that improves consistency and reduces errors. +{/* MANUAL-CONTENT-END */} + + +## Usage Instructions + +Collaborate on prompts with type safety, autocomplete, and backwards-incompatibility protection. Autoblocks prompt management allows product teams to collaborate while maintaining excellent developer experience. + + + +## Tools + +### `autoblocks_prompt_manager` + +Manage and render prompts using Autoblocks prompt management system + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `promptId` | string | Yes | The ID of the prompt to retrieve | +| `version` | string | Yes | Version strategy \(latest or specific\) | +| `specificVersion` | string | No | Specific version to use \(e.g., | +| `templateParams` | object | No | Parameters to render the template with | +| `apiKey` | string | Yes | Autoblocks API key | +| `enableABTesting` | boolean | No | Whether to enable A/B testing between versions | +| `abTestConfig` | object | No | Configuration for A/B testing between versions | +| `environment` | string | Yes | Environment to use \(production, staging, development\) | + +#### Output + +| Parameter | Type | +| --------- | ---- | +| `promptId` | string | +| `version` | string | +| `renderedPrompt` | string | +| `templates` | string | + + + +## Block Configuration + +### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `promptId` | string | Yes | Prompt ID - Enter the Autoblocks prompt ID | + + + +### Outputs + +| Output | Type | Description | +| ------ | ---- | ----------- | +| `response` | object | Output from response | +| ↳ `promptId` | string | promptId of the response | +| ↳ `version` | string | version of the response | +| ↳ `renderedPrompt` | string | renderedPrompt of the response | +| ↳ `templates` | json | templates of the response | + + +## Notes + +- Category: `tools` +- Type: `autoblocks` diff --git a/docs/content/docs/tools/browser_use.mdx b/docs/content/docs/tools/browser_use.mdx new file mode 100644 index 000000000..26b214841 --- /dev/null +++ b/docs/content/docs/tools/browser_use.mdx @@ -0,0 +1,97 @@ +--- +title: Browser Use +description: Run browser automation tasks +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + + + + `} +/> + +{/* MANUAL-CONTENT-START:intro */} +[BrowserUse](https://browser-use.com/) is a powerful browser automation platform that enables you to create and run browser tasks programmatically. It provides a way to automate web interactions through natural language instructions, allowing you to navigate websites, fill forms, extract data, and perform complex sequences of actions without writing code. + +With BrowserUse, you can: + +- **Automate web interactions**: Navigate to websites, click buttons, fill forms, and perform other browser actions +- **Extract data**: Scrape content from websites, including text, images, and structured data +- **Execute complex workflows**: Chain multiple actions together to complete sophisticated web tasks +- **Monitor task execution**: Watch browser tasks run in real-time with visual feedback +- **Process results programmatically**: Receive structured output from web automation tasks + +In Sim Studio, the BrowserUse integration allows your agents to interact with the web as if they were human users. This enables scenarios like research, data collection, form submission, and web testing - all through simple natural language instructions. Your agents can gather information from websites, interact with web applications, and perform actions that would typically require manual browsing, expanding their capabilities to include the entire web as a resource. +{/* MANUAL-CONTENT-END */} + + +## Usage Instructions + +Execute browser automation tasks with BrowserUse to navigate the web, scrape data, and perform actions as if a real user was interacting with the browser. The task runs asynchronously and the block will poll for completion before returning results. + + + +## Tools + +### `browser_use_run_task` + + + + +## Block Configuration + +### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `task` | string | Yes | Task - Describe what the browser agent should do... | + + + +### Outputs + +| Output | Type | Description | +| ------ | ---- | ----------- | +| `response` | object | Output from response | +| ↳ `id` | string | id of the response | +| ↳ `task` | string | task of the response | +| ↳ `output` | any | output of the response | +| ↳ `status` | string | status of the response | +| ↳ `steps` | json | steps of the response | +| ↳ `live_url` | any | live_url of the response | + + +## Notes + +- Category: `tools` +- Type: `browser_use` diff --git a/docs/content/docs/tools/confluence.mdx b/docs/content/docs/tools/confluence.mdx new file mode 100644 index 000000000..06ba9b63f --- /dev/null +++ b/docs/content/docs/tools/confluence.mdx @@ -0,0 +1,124 @@ +--- +title: Confluence +description: Interact with Confluence +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + +