parlant

GitHub
17.9k 1.5k 简单 1 次阅读 2天前Apache-2.0语言模型Agent开发框架
AI 解读 由 AI 自动生成,仅供参考

Parlant 是一款专为面向客户的 AI 智能体设计的对话控制层框架,旨在优化企业级 B2C 及敏感 B2B 场景下的交互质量。它通过先进的“上下文工程”技术,确保 AI 在对话中始终保持一致、合规且符合品牌调性。

在实际开发中,开发者常面临两难困境:单纯依赖系统提示词(System Prompts)会导致指令过多时 AI 注意力分散;而使用复杂的路由图(Routed Graphs)又容易因自然语言的多样性变得脆弱不堪。Parlant 巧妙解决了这一难题,它允许开发者一次性定义规则、知识库和工具,引擎则能在对话过程中实时筛选,仅将当前回合最相关的上下文注入提示词,从而避免信息过载并提升响应精准度。

这款工具特别适合需要构建高可靠性客服机器人或业务助理的软件开发者和工程师使用。其独特亮点在于动态上下文管理機制,能够像专家一样判断何时调用特定工具或遵循何种指南,例如仅在客户提及专业金融术语时才触发深度回答策略。通过 Parlant,团队可以更轻松地打造出既灵活又稳健的对话式 AI 应用,无需在复杂性与可控性之间做出妥协。

使用场景

某大型航空公司的客服团队正在部署 AI 助手,以处理从简单航班查询到复杂退改签及金融术语咨询的各类客户请求。

没有 parlant 时

  • 指令失效:随着系统提示词(System Prompts)中堆砌的规则越来越多,AI 开始忽略关键约束,导致回复偏离品牌语调或遗漏合规声明。
  • 流程脆弱:依赖硬编码的路由图谱难以应对用户自然的非线性对话,一旦用户突然切换话题,对话逻辑极易断裂或陷入死循环。
  • 上下文过载:无论用户问题简单与否,AI 都被迫加载全部知识库和工具列表,不仅响应延迟高,还常因信息噪音产生幻觉。
  • 维护噩梦:每次更新业务规则或新增工具,都需要重新调整庞大的提示词结构,测试成本极高且容易引入新漏洞。

使用 parlant 后

  • 动态精准控场:parlant 通过上下文工程,仅在检测到特定条件(如用户提及“摊销”或"DTI"等专业术语)时,才动态激活相应的专家工具和深度回复指南。
  • 自适应对话流:不再依赖僵化的路由图,parlant 实时筛选当前轮次最相关的上下文,让 AI 能灵活跟随用户跳跃的思维,保持对话连贯自然。
  • 性能与准确性双升:通过“按需注入”原则,大幅减少无效上下文干扰,显著降低延迟并杜绝了因信息过载导致的胡编乱造。
  • 规则解耦易扩展:开发人员只需定义独立的观察条件和行为准则,无需触碰核心提示词,即可快速迭代业务逻辑,确保企业级合规性。

parlant 将原本脆弱的提示词堆砌转化为智能的动态上下文控制层,让面向客户的 AI 代理在复杂多变的真实对话中始终保持一致、合规且专业。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes该工具是一个用于构建面向客户 AI 代理的对话控制层框架,通过 pip install parlant 安装。它侧重于上下文工程(Context Engineering),动态筛选与当前对话相关的规则和工具,而非依赖庞大的系统提示词。支持异步操作(async/await)。具体操作系统、GPU 及内存需求未在 README 中明确列出,通常此类纯逻辑编排框架对硬件无特殊要求,主要取决于后端调用的大模型服务。
python3.10+
parlant
parlant hero image

快速开始

Parlant

面向客户的AI智能体的对话控制层

PyPI Python 3.10+ License Discord GitHub Repo stars

官网快速入门示例Discord

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

Trending

 

Parlant简化了企业级B2C(企业对消费者)和需要保持一致性、合规性及品牌调性的敏感B2B交互中的对话上下文工程。

为什么选择Parlant?

对话上下文工程之所以困难,是因为现实世界的交互是多样、细微且非线性的。

❌ 问题:你可能已经尝试过但无法规模化落地的方法

系统提示词在生产环境复杂度较低时有效。然而,当你向提示词中添加越来越多的指令时,你的智能体会逐渐忽略这些指令。

路由图可以解决提示词过载的问题,但随着路由数量的增加,它在面对自然交互的混乱局面时会变得越来越脆弱。

🔑 解决方案:针对对话控制优化的上下文工程

Parlant通过上下文工程来解决这一难题:在恰当的时间将恰到好处的上下文注入到提示词中。你只需一次性定义规则、知识和工具;引擎会实时缩小上下文范围,使其仅包含当前对话轮次中直接相关的内容。

Parlant Demo

开始使用

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",
    )

    # 在特定条件下评估并调用工具
    expert_customer = await agent.create_observation(
        condition="customer uses financial terminology like DTI or amortization",
        tools=[research_deep_answer],
    )

    # 当专家观察成立时,始终以深度回应
    # 将指南设置为自动匹配
    # 只要其依赖的观察成立...
    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",
    )

    # 当两者同时匹配时,优先执行初学者指南。无论是专家级别的工具数据还是指令,都不会进入智能体的上下文。
    await beginner_answers.exclude(expert_customer)

请参阅**5分钟快速入门**以获取完整教程。

Parlant概览

你通过代码而非提示词来定义智能体的行为,引擎会在每一回合动态缩小上下文范围,只保留与当前对话直接相关的内容,从而使大模型保持专注,确保你的智能体始终如一地遵循既定目标。

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]

与先向模型发送一个庞大的系统提示词,再附上原始对话内容不同,Parlant会首先构建一个聚焦的上下文——仅匹配与每一轮对话相关的指令和工具——然后基于这个精简后的上下文生成响应。

%%{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 cannedNode fill:#DFE3F9,stroke:#3949AB,stroke-width:2px,color:#1a237e,stroke-width:0

这样一来,即使添加更多规则,智能体也会变得更加智能,而不会陷入混乱——因为过滤上下文相关性的主体是引擎,而不是大模型。

Parlant 适合您吗?

Parlant 专为需要在真实客户面前保持可靠表现的团队打造。如果您符合以下情况,Parlant 就是理想选择:

  • 您正在构建面向客户的智能助手——例如客服、销售、用户引导或咨询服务——其中语气、准确性和合规性至关重要。
  • 您拥有数十甚至数百条行为规则,而系统提示词已不堪重负。
  • 您所在的行业属于受监管或高风险领域(如金融、保险、医疗、电信),要求每一条回复都可解释且可审计。

Parlant 已在包括银行在内的最严格机构中投入生产环境使用。

Parlant 不仅仅是一个框架,它是一款高层次的软件,直面解决对话式建模难题。Sarthak Dalabehera,Slice Bank 首席工程师

迄今为止,我遇到过的最优雅的对话式 AI 框架。Vishal Ahuja,摩根大通应用 AI 高级主管

Parlant 极大地减少了对提示工程和复杂流程控制的需求,使智能助手的构建更接近领域建模。Diogo Santiago,Oracle AI 工程师

核心功能

  • 指南 — 行为规则以条件-动作对的形式定义;引擎仅匹配当前轮次相关的规则。

  • 关系 — 指南之间的依赖与排除关系,确保上下文始终聚焦且不冗余。

  • 旅程 — 多轮次标准操作流程,可根据客户的实际交互方式动态调整。

  • 预设回复 — 经过批准的回复模板,在关键场景下彻底避免幻觉问题。

  • 工具 — 外部 API 和工作流仅在观察结果匹配时才会触发。

  • 术语表 — 领域专属词汇表,帮助智能助手理解客户的语言。

  • 可解释性 — 全链路 OpenTelemetry 跟踪——每次规则匹配及决策都会被完整记录。

指南

行为规则以条件-动作对的形式定义:当条件满足时,动作即被激活并纳入上下文。

与将所有指南塞入单一提示词不同,引擎会在每一轮对话中评估哪些指南适用,并仅将相关部分注入大模型的上下文中。

这种方式允许您定义数百条指南,而不会降低执行一致性。

await agent.create_guideline(
    condition="客户使用 DTI 或摊销等金融术语",
    action="以技术深度回应,省略基础解释",
)

关系

元素间的关系有助于精确控制最终上下文,使其既紧凑又聚焦。

排除关系可在存在冲突的指南被匹配时,将某些指南排除在模型关注范围之外。

for_experts = await agent.create_guideline(
    condition="客户使用金融术语",
    action="以技术深度回应",
)

for_beginners = await agent.create_guideline(
    condition="客户似乎对该主题较为陌生",
    action="简化表达并使用具体示例",
)

# 在客户表述存在冲突时,设定优先级
await for_beginners.exclude(for_experts)

依赖关系则确保某条指南仅在另一条指南先行设置前提后才会生效,从而帮助您构建基于主题的指南层级结构。

suspects_fraud = await agent.create_observation(
    condition="客户怀疑其银行卡存在未经授权的交易",
)

await agent.create_guideline(
    condition="客户希望就该笔交易采取行动",
    action="询问客户是希望对交易提出异议还是锁定卡片",
    # 仅在确认欺诈嫌疑后才会触发
    dependencies=[suspects_fraud],
)

旅程

多轮次标准操作流程。您可以为预订、故障排除或用户引导等流程定义一套完整的对话流程。智能助手会遵循该流程,但同时具备自适应能力——它能够跳过某些步骤、返回之前的状态,或根据客户的互动方式调整节奏。

journey = await agent.create_journey(
    title="预订航班",
    description="引导客户完成航班预订",
    conditions=["客户希望预订航班"],
)

t0 = await journey.initial_state.transition_to(
    # 该状态下的指令(可能持续多轮)
    chat_state="先了解客户是否对特价机票感兴趣",
)

# 分支 A - 不感兴趣
t1 = await t0.target.transition_to(
    chat_state="确定客户的出发地和出行时间",
    condition="客户表示不感兴趣",
)

# 分支 B - 对特价机票感兴趣
t2 = await t0.target.transition_to(
    tool_state=加载最新特价机票,
    condition="客户表示感兴趣",
)

t3 = await t1.target.transition_to(
    chat_state="列出特价机票并询问客户是否感兴趣",
)

预设回复

在关键对话时刻或特定事件发生时,限制智能助手仅使用预先批准的回复模板。

在完成规则匹配并生成初步回复后,智能助手会从预设模板中挑选最匹配的一项,而非直接发送生成内容,从而完全消除幻觉风险,并确保措辞精准无误。

await agent.create_guideline(
    condition="客户谈论与我们业务无关的话题",
    action="告知客户无法提供帮助",
    # 当此指南匹配时,将触发严格组合模式——其余部分仍保持灵活
    composition_mode=p.CompositionMode.STRICT,
    canned_responses=[
        await agent.create_canned_response(
            "很抱歉,这件事我帮不上忙。",
        )
    ],
    priority=100,  // 最高优先级,使智能助手专注于此任务
)

工具

工具仅在观察结果匹配时才会被激活,而不会一直保留在上下文中。这有效避免了传统大模型工具调用中常见的误触发问题。

@p.tool
async def query_docs(context: p.ToolContext, user_query: str) -> p.ToolResult:
    results = search_knowledge_base(user_query)
    return p.ToolResult(results)

await agent.create_observation(
    condition="客户询问服务功能",
    tools=[query_docs],
)

此外,工具还可以向预设回复模板注入自定义值。

术语表

为您的智能体定义领域特定的词汇。将日常用语和同义词映射到精确的业务定义,以便智能体能够理解客户的语言。

await agent.create_term(
    name="Ocean View",
    description="Room category with direct view of the Atlantic",
    synonyms=["sea view", "rooms with a view to the Atlantic"],
)

可解释性

每个决策都会通过 OpenTelemetry 进行追踪。Parlant 开箱即用地提供了详尽的日志、指标和追踪信息。

框架集成

Parlant 负责对话治理;它不会取代您现有的技术栈。

您可以将其与 LangGraph、Agno、LlamaIndex 等框架一起使用,以实现工作流自动化和知识检索。Parlant 负责行为控制层,而您选择的框架则负责智能体其余的处理逻辑。

任何外部工作流或智能体都可以成为 Parlant 的工具,仅在相关时才会被触发:

from my_workflows import refund_graph  # 已编译的 LangGraph StateGraph

@p.tool
async def run_refund_workflow(
  context: p.ToolContext,
  order_id: str
) -> p.ToolResult:
    result = await refund_graph.ainvoke({"order_id": order_id})

    # 图结果可以将数据和指令注入到智能体中。
    # 指令会被转换为指导原则,并参与上下文相关的指导原则解析(包括优先级排序)。

    return p.ToolResult(
        data=result["data"],
        # 从工作流结果中注入动态指导原则
        guidelines=[
            {"action": inst, "priority": 3} for inst in result["instructions"]
        ],
    )

await agent.create_observation(
    condition="customer wants to process a refund",
    tools=[run_refund_workflow],
)

同样的模式也适用于 LlamaIndex 查询引擎、Agno 智能体,或任何异步 Python 函数。

与大模型无关

Parlant 可以与大多数大模型提供商合作。推荐使用 Emcie,因为它专为 Parlant 打造,能够提供理想的成本效益比;不过,OpenAI 和 Anthropic 也能输出高质量的结果。您也可以通过 LiteLLM 使用任何模型和提供商,但需要确保模型质量足够好——过于小型的现成模型往往会产生不一致的结果。

通常,您可以在不更改行为配置的情况下切换不同的模型。

官方 React 聊天组件

即插即用的聊天组件,可让您快速搭建前端界面。

了解更多

社区

如果您觉得 Parlant 帮助您构建了更优秀的智能体,请为它点个赞——这有助于更多人发现这个项目。

许可证

Apache 2.0 — 免费用于商业用途。


立即试用加入 Discord阅读文档

Emcie 团队打造

版本历史

v3.3.02026/03/15
v3.2.12026/02/17
v3.2.02026/02/09
v3.1.02026/01/05
v3.0.42025/11/18
v3.0.32025/10/24
v3.0.22025/08/27
v3.0.12025/08/16
v2.2.02025/05/20
v2.1.22025/05/07
v2.1.12025/04/30
v2.1.02025/04/29
v2.0.02025/04/09
v1.6.72025/02/23
v1.6.62025/02/23
v1.6.52025/02/20
v1.6.42025/02/20
v1.6.32025/02/18
v1.6.22025/01/29
v1.6.12025/01/20

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架