Page cover image

AI Generations in Agent Catalyst

Agent Catalyst integrates powerful AI models into workflows, enabling seamless text generation, structured data extraction, and reasoning tasks. This functionality empowers users to create dynamic, AI-driven processes tailored to their needs.


Text Generation

Text generation allows users to create various types of content, such as summaries, narratives, or creative texts, using large language models (LLMs).

Example: Generating a Scientific Abstract

yaml <GenText  
  as="abstract"  
  model="openai:gpt-4"  
  message="Based on the following research paper, create a concise and detailed scientific abstract summarizing the findings: {research}" />  

Attributes for <GenText />

Attribute

Type

Description

Required

as

string

Unique variable name to store the result.

model

string

AI provider and model name.

stream

boolean

Enables response streaming (default: true).

tools

array

List of tools the LLM can use.

options

object

LLM-specific options for fine-tuning.

The generated text is stored in the specified variable (e.g., abstract) and can be reused in later steps.


Structured Data Generation

Structured data generation ensures that AI outputs conform to specific formats, making it ideal for extracting reliable, programmatic data.

Example: Extracting Conference Speakers

yaml <GenObject  
  as="speakers"  
  model="openai:gpt-4"  
  output="array"  
  schema={{  
    $.z.object({  
      name: $.z.string().describe('Full name of the speaker'),  
      company: $.z.string().describe('Company name'),  
      twitter: $.z.string().describe('Twitter profile').optional(),  
    })  
  }}  
  message="Extract all conference speakers and their details from the given webpage: {url}" />  

Attributes for <GenObject />

Attribute

Type

Description

Required

as

string

Unique variable name to store the result.

model

string

AI provider and model name.

output

string

Type of output: object, array, enum, or no-schema.

schema

ZodType

Schema defining the data structure.

✅ (if output is object or array)

enum

array

List of possible values (if output is enum).

✅ (if output is enum)

schemaDescription

string

Additional guidance for the AI model.

tools

array

List of tools the LLM can use.

Schema Validation: Ensures the output adheres to the specified structure, making it reliable for automated workflows.


Example Workflow: Generate Tweets for Conference Speakers

yaml <Loop  
  as="messages"  
  until={$.index === speakers.filter(s => !!s.twitter).length}  
  provide={{ speaker: speakers.filter(s => !!s.twitter)[$.index] }}>  

  Write a tweet thanking the speaker for their presentation. Make it fun, humorous, and use plenty of emojis.  

  Speaker: {speaker.name}  
  Company: {speaker.company}  
  Twitter: {speaker.twitter}  

  <GenText as="tweet" model="openai:gpt-4" />  
</Loop>

AI Providers

Agent Catalyst supports multiple AI providers through integrations with SDKs like OpenAI, Anthropic, and Google. It also works with local open-source models using tools like Ollama.

Provider Configuration Example

javascript import { defineConfig } from '@agentsystem/core';  
import { openai } from '@ai-sdk/openai';  
import { anthropic } from '@ai-sdk/anthropic';  

export default defineConfig({  
  providers: {  
    openai,  
    anthropic,  
  },  
});

Custom Provider Setup

For custom configurations, you can create provider instances:

javascript import { createOpenAI } from '@ai-sdk/openai';  

export default defineConfig({  
  providers: {  
    openai: createOpenAI({  
      apiKey: process.env.OPENAI_API_KEY,  
      compatibility: 'strict',  
    }),  
    anotherProvider: createOpenAI({  
      apiKey: process.env.ANOTHER_API_KEY,  
      baseURL: 'https://api.example.com',  
    }),  
  },  
});

Specifying Models

When using <GenText /> or <GenObject />, the model must be specified in the format providerId:modelId.

Example

yaml <GenText  
  as="outline"  
  model="openai:gpt-4"  
  message="Write an outline for a futuristic space adventure novel." />  

Last updated