Skip to main content
Changes made in Hardcore Mode take effect immediately on the next incoming message. Edit with care.
Hardcore Mode gives you direct access to the raw files that define your agent’s behavior. Instead of the visual designer, you edit YAML and Markdown files in a file tree.

File structure

Every agent is a folder with the following layout:
agent.yaml and flow.yaml are system files managed by the platform — they are not available in Hardcore Mode. Never edit them.
All .md files under skills/ use the same format: a YAML settings header and a system prompt body. The same file type covers agent prompts, sub-agent prompts, and skills — one consistent format for all three.

workflows/

main.yaml is the entry point — the engine runs it for every incoming message. You can have multiple workflow files; additional ones are called via run_workflow actions from main.yaml or other workflows. Each workflow file is a list of steps executed in order. Steps share a WorkflowState — a key-value store you can write to and read from across steps.

Minimal example

Step types

Run an LLM using the config and prompt defined in a skill file.
The LLM receives the system prompt from the skill file, the full conversation history, and any messages accumulated by earlier steps (e.g. previous tool results).

Actions


skills/{name}.md

A skill file has two parts separated by ---:
1

YAML settings header

Between --- markers — configures the LLM, tools, and iteration limits.
2

System prompt

Everything after the closing --- — the instructions sent to the LLM.

Full example

Settings header fields

Injecting workflow state into prompts

Use {values.key} anywhere in the system prompt body to inject a value from workflow state:

Models

Recommended for most use cases.Use llm.thinking_budget to enable extended thinking (tokens budget, e.g. 8000).

Tools


Rules & gotchas

workflows/main.yaml is required. Without it the agent returns no response.
id values must be unique within a workflow file. Duplicate IDs cause unpredictable behavior.
skill: must exactly match skills/{skill}.md — the match is case-sensitive.
respond, do_nothing, transfer_to_human, and run_workflow stop execution immediately. Any steps listed after them in the workflow do not run.
Unlike other actions, set_value writes a value to workflow state and moves on to the next step — it never stops the workflow.
Fields produced by evaluate are stored in workflow state and can be read by any later if branch or respond placeholder.
These are system files managed by the platform. Editing them directly may break your agent in unexpected ways.