parlant is a free, open source miscellaneous project written in Python and released under Apache-2.0. It has 18,290 GitHub stars, 1,555 forks and 41 open issues, and was last pushed 2 months ago. On this registry it ranks #7 of 25 tracked projects in Miscellaneous, with 5 head-to-head comparisons available. It gained 4 stars over the last 6 tracked days.

parlant — null

What is parlant?

What it is

Parlant is a Python project licensed under Apache 2.0, and it presents itself as an interaction control harness for customer-facing AI agents. It lives in the open-source large language model ecosystem, with topic tags for ai-agents, llm, openai, gemini, llama3, genai, python, customer-service, customer-success, and ai-alignment. The README describes a server-based Python SDK for creating agents, observations, and guidelines.

It addresses a concrete problem in conversational context engineering: plain system prompts become unreliable as instruction volume grows, while routed graphs can become fragile when real conversations are non-linear. Parlant narrows the prompt at each turn to the rules, knowledge, and tools that are immediately relevant. The stated target is enterprise-grade business-to-consumer and sensitive business-to-business interactions that need consistency, compliance, brand voice, and traceability.

Key capabilities

  • Define a customer-facing agent through a Python SDK by starting a server and creating an agent with a name and description.
  • Attach observations that evaluate conversational conditions and call tools only when those conditions hold, such as financial terminology.
  • Create guidelines that depend on observations and shape response behavior, such as deeper answers when an expert observation is active.
  • Apply constraints and control points to how the language model is used, rather than relying only on output guardrails.
  • Configure tone, timing, edge cases, policy constraints, and brand voice.
  • Incorporate ongoing product feedback without manual graph rewiring or model fine-tuning.

Who uses it and how

  • Customer support teams can model agents for routine consumer inquiries, such as airline customer support.
  • Sensitive business-to-business teams can use the framework when compliance, on-brand behavior, and traceability matter.
  • Product owners and engineers can define observations and guidelines so feedback can change agent behavior without deep engineering work for every adjustment.
  • Teams evaluating open-source alternatives to Ada, Decagon, or Sierra can use Parlant for controlled, consistent, and predictable language model interactions.

Getting started

The README shows installation with pip install parlant and a Python SDK quick start that imports parlant.sdk as p, starts an async server, creates an agent, and defines observations and guidelines.

When to use it — and when not to

Parlant fits projects where conversational governance, behavioral consistency, and traceable customer-facing behavior are primary requirements, and where the added control model is worth the complexity that the README acknowledges. It is less suitable when a team only needs simple prompt templating, pure workflow automation, or low-level prompt optimization, because the README positions those needs as better served by LangGraph or DSPy. The provided facts do not describe required databases, storage, SMTP, or other self-hosting dependencies, so teams should verify operational needs before deployment.

project readme (upstream, from github) — read inline
Parlant

The interaction control harness for customer-facing AI agents

PyPI Python 3.10+ License Discord GitHub Repo stars

WebsiteQuick StartExamplesDiscord

Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

Trending

 

Looking for an open-source alternative to Ada, Decagon, or Sierra?

Parlant is production-ready. It streamlines the development and maintenance of enterprise-grade B2C (business-to-consumer) and sensitive B2B interactions that need to be consistent, compliant, on-brand, and comprehensively traceable.

Why Parlant?

Conversational context engineering is hard because real-world interactions are diverse, nuanced, and non-linear.

❌ The Problem: What you've probably tried and couldn't get to work at scale

System prompts work until production complexity kicks in. The more instructions you add to a prompt, the faster your agent stops paying attention to any of them.

Routed graphs solve the prompt-overload problem, but the more routing you add, the more fragile it becomes when faced with the chaos of natural interactions.

🔑 The Solution: Context engineering, optimized for conversational control

Parlant is an agentic harness offering optimized context engineering for conversational use cases: getting the right context, no more and no less, into the prompt at the right time. You define rules, knowledge, and tools once, while the engine narrows the context down in real-time to what's immediately relevant to each turn of the conversation.

Parlant Demo

How is Parlant different from LangGraph or DSPy?

Parlant focuses on conversational governance and behavioral control and consistency, while LangGraph is ideal for workflow automation, and DSPy is ideal for low-level prompt optimization.

Design goals

Parlant is built around three goals that shape every decision in the framework:

1. Maximum control over the conversation experience

Parlant was designed around a simple idea: developers should be able to control the agent's behavior with precision. In customer-facing conversations, small details matter, like tone, timing, edge cases, policy constraints, and brand voice. So we chose a design that makes these aspects easily configurable and manageable. That approach adds complexity, but it gives teams tighter control over how the agent behaves in real conversations.

2. Maximum prevention of unwanted behaviors

Parlant treats misalignment as a core design problem. It builds on research into model accuracy and consistency so that it is structurally harder for the agent to behave outside its intended boundaries, and easier to detect and correct when it does. Rather than bolting guardrails onto the output, Parlant applies constraints and control points into how your LLMs are used in the first place to produce safe and correct output.

3. Fastest path from product feedback to implementation

Parlant seeks to allow those responsible for the agent's conversational experience to shape its behavior in an intuitive manner, enabling a rapid feedback cycle that engineers can accomodate. Parlant is designed to allow you to incorporate ongoing product feedback as quickly as possible, without manual rewiring of graphs or fine-tuning of models, ensuring that valuable engineering time is only needed for deeper changes, not minor adjustments.

Getting started

pip install parlant
import parlant.sdk as p

async with p.Server():
    agent = await server.create_agent(
        name="Customer Support",
        description="Handles customer inquiries for an airline",
    )

    # Evaluate and call tools only under the right conditions
    expert_customer = await agent.create_observation(
        condition="customer uses financial terminology like DTI or amortization",
        tools=[research_deep_answer],
    )

    # When the expert observation holds, always respond
    # with depth. Set the guideline to automatically match
    # whenever the observation it depends on holds...
    expert_answers = await agent.create_guideline(
        matcher=p.MATCH_ALWAYS,
        action="respond with technical depth",
        dependencies=[expert_customer],
    )

    beginner_answers = await agent.create_guideline(
        condition="customer seems new to the topic",
        action="simplify and use concrete examples",
    )

    # When both match, beginners wins. Neither expert-level
    # tool-data nor instructions can enter the agent's context.
    await beginner_answers.exclude(expert_customer)

Follow the 5-minute quickstart for a full walkthrough.

Parlant at a glance

You define your agent's behavior in code (not prompts), and the engine dynamically narrows the context on each turn to only what's immediately relevant, so the LLM stays focused and your agent stays aligned.

graph TD
    O[Observations] -->|Events| E[Contextual Matching Engine]
    G[Guidelines] -->|Instructions| E
    J["Journeys (SOPs)"] -->|Current Steps| E
    R[Retrievers] -->|Domain Knowledge| E
    GL[Glossary] -->|Domain Terms| E
    V[Variables] -->|Memories| E
    E -->|Tool Requests| T[Tool Caller]
    T -.->|Results + Optional Extra Matching Iterations| E
    T -->|**Key Result:**<br/>Focused Context Window| M[Message Generation]

Instead of sending a large system prompt followed by a raw conversation to the model, Parlant first assembles a focused context — matching only the instructions and tools relevant to each conversational turn — then generates a response from that narrowed context.

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#e8f5e9', 'primaryTextColor': '#1b5e20', 'primaryBorderColor': '#81c784', 'lineColor': '#66bb6a', 'secondaryColor': '#fff9e1', 'tertiaryColor': 'transparent'}}}%%
flowchart LR
    A(User):::outputNode

    subgraph Engine["Parlant Engine"]
        direction LR
        B["Match Guidelines and Resolve Journey States"]:::matchNode
        C["Call Contextually-Associated Tools and Workflows"]:::toolNode
        D["Generated Message"]:::composeNode
        E["Canned Message"]:::cannedNode
    end

    A a@-->|💬 User Input| B
    B b@--> C
    C c@-->|Fluid Output Mode?| D
    C d@-->|Strict Output Mode?| E
    D e@-->|💬 Fluid Output| A
    E f@-->|💬 Canned Output| A

    a@{animate: true}
    b@{animate: true}
    c@{animate: true}
    d@{animate: true}
    e@{animate: true}
    f@{animate: true}

    linkStyle 2 stroke-width:2px
    linkStyle 4 stroke-width:2px
    linkStyle 3 stroke-width:2px,stroke:#3949AB
    linkStyle 5 stroke-width:2px,stroke:#3949AB

    classDef composeNode fill:#F9E9CB,stroke:#AB8139,stroke-width:2px,color:#7E5E1A,stroke-width:0
    classDef can

readme truncated — read the full docs on github

Frequently asked questions

Is parlant free to use?

parlant is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does parlant do?

Build reliable customer-facing AI agents with Parlant: an interaction control harness optimized for controlled, consistent, and predictable LLM interactions.

What is parlant written in?

parlant is primarily written in Python. Its source is publicly available at https://github.com/emcie-co/parlant, and it has 18,290 GitHub stars.