GenSX ⚡️
GenSX is a framework for building LLM workflows and AI agents with TypeScript. Every GenSX component is a pure function, and thus easily shareable by default.
Getting started
📦 Installing
pnpm install @gensx/core
yarn add @gensx/core
npm install @gensx/core
Building a workflow
import * as gensx from "@gensx/core";
import { openai } from "@ai-sdk/openai";
import { generateText } from "@gensx/vercel-ai";
interface WriteDraftInput {
research: string[];
prompt: string;
}
const WriteDraft = gensx.Component(
"WriteDraft",
async ({ prompt, research }: WriteDraftInput) => {
const systemMessage = `You're an expert technical writer.
Use the information when responding to users: ${research.join("\n")}`;
const result = await generateText({
messages: [
{
role: "system",
content: systemMessage,
},
{
role: "user",
content: `Write a blog post about ${prompt}`,
},
],
model: openai("gpt-4.1-mini"),
});
return result.text;
},
);
Components can be composed together to create more complex agents and workflows:
import * as gensx from "@gensx/core";
import { OpenAIProvider } from "gensx/openai";
import { Research, WriteDraft, EditDraft } from "./writeBlog";
interface WriteBlogInput {
title: string;
description: string;
}
const WriteBlog = gensx.Workflow(
"WriteBlog",
async ({ title, description }: WriteBlogInput) => {
const queries = await GenerateQueries({
title,
description,
});
const research = await ResearchBlog({ queries });
const draft = await WriteDraft({ title, context: research });
const final = await EditDraft({ title, content: draft });
return final;
},
);
const result = await WriteBlog({
title: "How AI broke modern infra",
description: "Long-running workflows require a new approach to infra",
});