| Agent Node | Streamline tool calling with automatic schema handling and loop logic |
| Prompt Node | Invoke LLMs with your prompts, optionally using variables from other nodes |
| Prompt Deployment Node | Execute deployed prompts in your workflows |
| Templating Node | Apply Jinja templating to perform lightweight data transformations |
| Search Node | Search against a Document Index, great for RAG |
| API Node | Make an HTTP request to an API endpoint |
| Code Execution Node | Run custom Python or Typescript code |
| Subworkflow Node | Makes Workflows reusable and more maintainable as they get more complex |
| Map Node | Iterate over an array, executing a sub-workflow for each item |
| Guardrail Node | Run an inline evaluation using a pre-defined Metric |
| Conditional Node | Branch your workflow based on a condition, also useful for error handling |
| Merge Node | Wait for one or multiple branches to complete before continuing |
| Final Output Node | Exposes values you can use in your application, you may have more than one! |
| Error Node | Stop workflow execution and raise an error |
| Note Node | A simple node that displays text to help annotate your Workflow |