AI Agents as ManifestsDefine the Graph. Any Language Runs It.
See How It Works
Define your agent in YAML. Run it with the SDK.
kind: LLMNode
name: assistant
prompts:
system:
en: |
You are a helpful assistant.
Always be polite and provide clear answers.from liman import Agent
from langchain_openai import ChatOpenAI
agent = Agent(
"./specs",
start_node="assistant",
llm=ChatOpenAI(model="gpt-5.4-mini"),
)
response = await agent.step("Hello!")
print(response)Designed for What Comes After Hello World
From OpenAPI tool generation to distributed execution and cost tracking, each feature comes from a real production pain point.
YAML-First Manifests
Define agents as declarative YAML manifests, similar to Kubernetes. The spec is the source of truth - any language can run it.
Dynamic Prompt Localization
Multi-language support with automatic system prompt generation. Increase function calling accuracy across languages.
Kustomize Overlays
Layer configurations using Kustomize-like overlays. Perfect for multi-environment deployments and language variants.
Suspension and Restoration
Fully async design - suspend or stop execution at any point and restore it from saved state. Built for multi-turn conversations and human approval gates.
Lazy Initialization
Executors and actors are created only when the graph reaches them. Only the active path lives in memory, so restoring a large tree stays cheap.
Condition Expression Language
Custom DSL for intelligent flow control between nodes. Express complex routing decisions declaratively without repetitive conditional logic.
Service Account Authorization
Built-in authorization with service accounts. State isolation, credential provisioning, and minimal permissions with least privilege principles.
OpenAPI → Tools Generation
Automatically generate LLM tools from OpenAPI specifications. Transform any API into agent tools without writing MCP servers.
OTel & FinOps Out-of-Box
Built-in OpenTelemetry integration with cost tracking. Monitor performance, token usage, and financial metrics automatically.
Distributed Edges
Connect nodes via MCP, A2A, HTTP, WebSocket, or shared memory. Run one graph across processes, containers, and cloud functions.
Atomic State Management
External state with pre_hook, invoke, post_hook phases. Persistent state survives restarts, ephemeral context lives only for the call.
Plugin Ecosystem
Extensible plugin system with built-in and custom plugins. Auto-context stitching, evaluation agents, and anomaly detection.
Stay Updated
Get the latest updates on Liman development, new features, and best practices delivered to your inbox.
No spam, unsubscribe at any time. We respect your privacy.
Get Involved
Participate in specification development and share experiences with other developers