version: "0.1"agents: assistant: model: "openai:gpt-4o-mini" system: "You are a helpful assistant. Answer questions clearly and concisely."nodes: answer: agent: assistant writes: output.replyinput: message: "What is the capital of France?"
{ "workflow": { "version": "0.1" }, "input": { "message": "What is the capital of France?" }, "nodes": [ { "id": "answer", "agent": "assistant", "prompt_sent": "What is the capital of France?", "response_received": "Paris is the capital of France.", "writes": "output.reply", "guardrails_passed": ["InjectionGuardrail.check_input", "InjectionGuardrail.check_output"], "tokens": 24, "duration_ms": 312.5, "error": null } ], "output": { "reply": "Paris is the capital of France." }, "summary": { "total_tokens": 24, "total_duration_ms": 312.5, "status": "success" }}
SirenSpec ships with runnable examples. Clone the repo and try:
# Sequential pipeline: classify → replysirenspec run examples/sequential-pipeline.yaml --input "I need help with my order"# Conditional branching: triage → handle_refund or handle_generalsirenspec run examples/conditional-pipeline.yaml --input "I want a refund"