Liman AgentOps
Project description
Liman
High-level AgentOps package for building and running conversational AI agents using YAML manifests and node-based workflows.
Purpose
liman is the main entry point package that provides production-ready tools for orchestrating multi-turn AI conversations. Built on top of liman_core, it offers:
- Agent orchestration: Manages complex conversational flows with state persistence
- Executor engine: Handles sequential and parallel node execution workflows
- YAML-based configuration: Load and compose agent definitions from declarative manifests
- State management: Built-in persistence for conversation history and execution state
- Error handling: Comprehensive logging and recovery mechanisms
Installation
Requires Python 3.10+
# with pip
pip install liman
# with uv
uv pip install liman
# with poetry
poetry add liman
Quick Start
Step 1: Create a directory for your agent specifications:
mkdir agents
Step 2: Create a YAML file for your agent node, e.g., agents/llm.yaml:
# agents/llm.yaml
kind: LLMNode
name: assistant
description: A conversational AI assistant
prompts:
system: You are a helpful assistant.
Step 3: Create a Python script to run the agent:
from langchain_openai.chat_models import ChatOpenAI
from liman import Agent, Registry, load_specs_from_directory
llm = ChatOpenAI(model="gpt-4o")
# Create conversational agent
agent = Agent(
"./agents", # directory with YAML specs
start_node="assistant"
llm=llm, # Langchain LLM instance
)
respones = agent.step("Hello! Can you help me with a math problem?")
print(response)
Architecture
Agent → Executor → NodeActor → Node (from liman_core)
↓ ↓ ↓ ↓
Queue Workflow Execution Specification
- Agent: Manages conversation queues and multi-turn interactions
- Executor: Orchestrates node execution with state persistence
- State storage: Handles conversation and execution state across sessions
vs liman_core
| liman | liman_core |
|---|---|
| High-level Agent class | Low-level Node/NodeActor |
| Multi-turn conversations | Single node execution |
| YAML configuration loading | Node specifications |
| State persistence | Stateless building blocks |
| Production error handling | Core primitives |
Use liman for building complete conversational agents, liman_core for low-level components that allow you to build your own orchestration.
Development
# Run tests
poe test
# Type checking
poe mypy
# Linting
poe lint
# Format code
poe format
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file liman-0.1.0a4.tar.gz.
File metadata
- Download URL: liman-0.1.0a4.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dd38faaf632e2fd7cc4b64cc476931cc8c866f03d76e4b371d0ccaf98b3f05a
|
|
| MD5 |
4c3d944872e254a0779df977fb57b20c
|
|
| BLAKE2b-256 |
21a34b7b5b37f229cfbaef0ebd2bf590610c522b80283a9d85409c2ee14c1645
|
Provenance
The following attestation bundles were made for liman-0.1.0a4.tar.gz:
Publisher:
release.yaml on gurobokum/liman
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
liman-0.1.0a4.tar.gz -
Subject digest:
6dd38faaf632e2fd7cc4b64cc476931cc8c866f03d76e4b371d0ccaf98b3f05a - Sigstore transparency entry: 409573924
- Sigstore integration time:
-
Permalink:
gurobokum/liman@2ca4bdc2d60a737d6bea2f72e4d419f42474d109 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/gurobokum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@2ca4bdc2d60a737d6bea2f72e4d419f42474d109 -
Trigger Event:
push
-
Statement type:
File details
Details for the file liman-0.1.0a4-py3-none-any.whl.
File metadata
- Download URL: liman-0.1.0a4-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9c4404bd3ef615764c206d2e9206c7b9c9fc68b92baf6dbb8cb6ca7141b0a16
|
|
| MD5 |
8278fc5b8da3816ad28b31a3792bcaf9
|
|
| BLAKE2b-256 |
ce6356721f06dacfda61c9d06868896214b0ad88479ecf77180751aeeec06bbd
|
Provenance
The following attestation bundles were made for liman-0.1.0a4-py3-none-any.whl:
Publisher:
release.yaml on gurobokum/liman
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
liman-0.1.0a4-py3-none-any.whl -
Subject digest:
a9c4404bd3ef615764c206d2e9206c7b9c9fc68b92baf6dbb8cb6ca7141b0a16 - Sigstore transparency entry: 409573927
- Sigstore integration time:
-
Permalink:
gurobokum/liman@2ca4bdc2d60a737d6bea2f72e4d419f42474d109 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/gurobokum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@2ca4bdc2d60a737d6bea2f72e4d419f42474d109 -
Trigger Event:
push
-
Statement type: