NestJS + YAML + React Frontend
TypeScript for custom logic, YAML for orchestration and the built-in frontend for control.
Blocks are a central component for all Loopstack automations: providing structure, injecting tools & documents and
utilizing configuration templates for optimal modularity.
@Injectable()
@BlockConfig({
configFile: './classifier.template.yaml',
})
@WithArguments(z.object({
message: z.string(),
}))
@WithState(z.object({
classification: z.string(),
}))
export class ClassificationWorkflow extends WorkflowBase {
@Tool() aiGenerateObject: AiGenerateObject;
@Document() classificationDocument: ClassificationDocument;
}Key Features
AI agents that loop and adapt autonomously within predefined safe execution paths. Get AI efficiency with enterprise governance and compliance.
Define control flows visually in YAML for auditability, while building custom AI logic in NestJS TypeScript services. Best of both worlds.
Pause and resume workflows at any point for human approval. Run AI processes for days, weeks, or months with built-in checkpoints.
Every workflow is version-controlled YAML that compliance teams can review. Track execution paths, decisions, and state changes visually.
100% free under the BSL license with full self-hosting options. No vendor lock-in, no usage fees. Your infrastructure, your rules.
Start with pre-built workflows and tools for advanced AI patterns, customize or build from scratch.
How it works
transitions:
- id: load
from: start
to: document_loaded
call:
- tool: loadDocument
args:
id: ${ args.document_id }
- id: classify
from: document_loaded
to: classified
call:
- tool: aiGenerateObjectTool
args:
responseDocument: classificationDocument
prompt: |
Classify the following message:
{{ args.message }}Build
Orchestrate workflows and agents using intuitive and flexible patterns such as Pipelines and State Machines.
Do not reinvent the wheel for common best practices and tools. Extend where custom functionality is needed.
@Block({
configFile: './chat.template.yaml',
})
@WithArguments(z.object({
issue: z.string(),
}))
@WithState(z.object({
solution: z.string(),
}))
export class InteractiveHelpWorkflow extends WorkflowBase {
@Tool() aiGenerateText: AiGenerateText;
}Extend
Build custom Blocks to integrate workflows with your business processes: APIs, Databases, Models, Algorithms
Validation, Sanitation and Error Handling is a core principle built-in to executing custom Blocks built for Loopstack.

Interact
The built-in React Frontend is a powerful interface to execute, interact and monitor all your workflows and agent executions.
Use the well documented API to directly access Loopstack automations from your custom frontends. Use our TypeScript SDK for convenient integration.
Supported by:

