SimpleAgents is a YAML workflow engine for AI products. Define nodes, routing, schemas, and workers in one config. Run it in Python or TypeScript. Ship today.
Every agentic SaaS is a config.
docs/WORKFLOW_QUICKSTART.md for your first working workflow.docs/BINDINGS_PYTHON.md.docs/BINDINGS_NODE.md.docs/QUICKSTART.md.docs/EXAMPLES.md.pip install simple-agents-py # Python
npm install simple-agents-node # TypeScript / Node
Every email classifier, document processor, intake system, interview bot, and support agent is the same pattern: LLM nodes with structured outputs and deterministic routing. SimpleAgents makes that pattern a config file.
If you only need one prompt call and no workflow, use the lower-level bindings directly.
workflow.yaml
id: classifier
version: 1.0.0
entry_node: classify
nodes:
- id: classify
node_type:
llm_call:
model: gpt-4.1-mini
messages_path: input.messages
heal: true
config:
output_schema:
type: object
properties:
category:
type: string
enum: [billing, support, sales]
required: [category]
additionalProperties: false
user_input_prompt: |
Classify the user message. Return JSON only.
edges: []
run.py
import json, os
from pathlib import Path
from dotenv import load_dotenv
from simple_agents_py import Client
from simple_agents_py.workflow_request import (
WorkflowExecutionRequest, WorkflowMessage, WorkflowRole,
)
load_dotenv()
client = Client(os.environ["WORKFLOW_PROVIDER"], api_base=os.environ["WORKFLOW_API_BASE"], api_key=os.environ["WORKFLOW_API_KEY"])
req = WorkflowExecutionRequest(
workflow_path=str(Path("workflow.yaml").resolve()),
messages=[WorkflowMessage(role=WorkflowRole.USER, content="I need a refund for order #1234")],
)
result = client.run_workflow(req)
print(json.dumps(result, indent=2))
SimpleAgents Builder Skills
npx skills add CraftsMan-Labs/SimpleAgents --skill simpleagents-builder
That's it. Your agentic SaaS is a config.
pip install / npm install, run with 10 lineshuman_input nodes (choice, text, form) and resume safelydocs/WORKFLOW_QUICKSTART.md -- install, create YAML, run in Python/TypeScriptdocs/EXAMPLES.mddocs/YAML_WORKFLOW_SYSTEM.mddocs/BINDINGS_PYTHON.mddocs/BINDINGS_NODE.mddocs/BINDINGS_WASM.mddocs/TRACING_ARCHITECTURE.mddocs/QUICKSTART.mddocs/USAGE.mddocs/TROUBLESHOOTING.mddocs/DEVELOPMENT.mddocs/DOCS_MAP.mdCONTRIBUTING.md and docs/DEVELOPMENT.md.TODO.md (and SUBAGENT_TODO.md for larger parallel workstreams).LICENSE (Apache License 2.0 text).MIT OR Apache-2.0 for crates/bindings where declared.For redistribution/compliance-sensitive usage, verify root license files and per-package metadata.
$ claude mcp add SimpleAgents \
-- python -m otcore.mcp_server <graph>