{"id":24746437,"url":"https://github.com/emcie-co/parlant","last_synced_at":"2025-05-13T20:20:36.960Z","repository":{"id":266643698,"uuid":"758197374","full_name":"emcie-co/parlant","owner":"emcie-co","description":"Control GenAI interactions with power, precision, and consistency using Conversation Modeling paradigms","archived":false,"fork":false,"pushed_at":"2025-04-28T11:49:15.000Z","size":55332,"stargazers_count":2370,"open_issues_count":16,"forks_count":227,"subscribers_count":25,"default_branch":"develop","last_synced_at":"2025-04-28T12:14:02.304Z","etag":null,"topics":["ai-agents","ai-alignment","customer-service","customer-success","gemini","genai","llama3","llm","openai","python"],"latest_commit_sha":null,"homepage":"https://www.parlant.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emcie-co.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-15T20:16:15.000Z","updated_at":"2025-04-28T12:10:41.000Z","dependencies_parsed_at":"2024-12-05T10:35:54.975Z","dependency_job_id":"6065319e-6d1d-438b-9766-1d62cab01d2a","html_url":"https://github.com/emcie-co/parlant","commit_stats":null,"previous_names":["emcie-co/parlant"],"tags_count":71,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emcie-co%2Fparlant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emcie-co%2Fparlant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emcie-co%2Fparlant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emcie-co%2Fparlant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emcie-co","download_url":"https://codeload.github.com/emcie-co/parlant/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311332,"owners_count":21569009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","ai-alignment","customer-service","customer-success","gemini","genai","llama3","llm","openai","python"],"created_at":"2025-01-28T04:06:37.168Z","updated_at":"2025-05-13T20:20:36.953Z","avatar_url":"https://github.com/emcie-co.png","language":"Python","funding_links":[],"categories":["Python","A01_文本生成_文本对话","NLP","Repos","Agent Integration \u0026 Deployment Tools","App","🤖 AI \u0026 Machine Learning","4. Agentic AI \u0026 Multi-Agent Systems","Memory / context system","Open-Source LLM \u0026 Agent Projects","Agent Development Platforms","Catalog","🏆 القائمة الكاملة Top 200"],"sub_categories":["大语言对话模型及数据","Stateful Serverless Frameworks","Guardrails, Security \u0026 Governance"],"readme":"\r\n\u003cdiv align=\"center\"\u003e\r\n\u003c!--\u003cimg alt=\"Parlant Banner\" src=\"https://github.com/emcie-co/parlant/blob/develop/banner.png?raw=true\" /\u003e--\u003e\r\n\r\n\r\n  \u003cimg alt=\"Parlant Banner\" src=\"https://github.com/emcie-co/parlant/blob/develop/banner.png?raw=true\" /\u003e\r\n  \u003ch2\u003eHello, Conversation Modeling!\u003c/h2\u003e\r\n\r\nParlant is the open-source engine for controlled, compliant, and purposeful generative AI conversations. It gives you the power of LLMs without the unpredictability.\r\n\r\n  \u003ca href=\"https://trendshift.io/repositories/12768\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/12768\" alt=\"emcie-co%2Fparlant | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\r\n\r\n\r\n  \u003cp\u003e\r\n    \u003ca href=\"https://www.parlant.io/\" target=\"_blank\"\u003eWebsite\u003c/a\u003e —\r\n    \u003ca href=\"https://www.parlant.io/docs/quickstart/introduction\" target=\"_blank\"\u003eIntroduction\u003c/a\u003e —\r\n    \u003ca href=\"https://www.parlant.io/docs/tutorial/getting-started\" target=\"_blank\"\u003eTutorial\u003c/a\u003e —\r\n    \u003ca href=\"https://www.parlant.io/docs/about\" target=\"_blank\"\u003eAbout\u003c/a\u003e —\r\n    \u003ca href=\"https://www.reddit.com/r/parlant_official/\" target=\"_blank\"\u003eReddit\u003c/a\u003e\r\n  \u003c/p\u003e\r\n\r\n\r\n  \r\n  \u003cp\u003e\r\n    \u003ca href=\"https://pypi.org/project/parlant/\" alt=\"Parlant on PyPi\"\u003e\u003cimg alt=\"PyPI - Version\" src=\"https://img.shields.io/pypi/v/parlant\"\u003e\u003c/a\u003e\r\n    \u003cimg alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/parlant\"\u003e\r\n    \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg alt=\"Apache 2 License\" src=\"https://img.shields.io/badge/license-Apache%202.0-blue.svg\" /\u003e\u003c/a\u003e\r\n    \u003cimg alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/w/emcie-co/parlant?label=commits\"\u003e\r\n    \u003cimg alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/parlant\"\u003e\r\n    \u003ca href=\"https://discord.gg/duxWqxKk6J\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/1312378700993663007?style=flat\u0026logo=discord\u0026logoColor=white\u0026label=discord\"\u003e\r\n\u003c/a\u003e\r\n  \u003c/p\u003e\r\n\r\n\u003c/div\u003e\r\n\r\n## Introduction Video\r\n[![Parlant Introduction](https://github.com/emcie-co/parlant/blob/develop/yt-preview.png?raw=true)](https://www.youtube.com/watch?v=_39ERIb0100)\r\n\r\n1. Install\r\n```bash\r\npip install parlant\r\n```\r\n\r\n2. Start the server and start interact with the default agent\r\n```bash\r\nparlant-server run\r\n# Now visit http://localhost:8800\r\n```\r\n\r\n3. Add behavioral guidelines and let Parlant do the rest\r\n```bash\r\nparlant guideline create \\\r\n    --condition \"the user greets you\" \\\r\n    --action \"thank them for checking out Parlant\"\r\n# Now start a new conversation and greet the agent\r\n```\r\n\r\n## Quick Demo\r\n\u003cimg alt=\"Parlant Banner\" src=\"https://github.com/emcie-co/parlant/blob/develop/ParlantGIF.gif?raw=true\" /\u003e\r\n\r\n\r\n## What is Conversation Modeling?\r\nYou've built an AI agent—that's great! However, when you actually test it, you see it's not handling many customer interactions properly, and your business experts are displeased with it. What do you do?\r\n\r\nEnter Conversation Modeling (CM): a new powerful and reliable approach to controlling how your agents interact with your users.\r\n\r\nA conversation model is a structured, domain-specific set of principles, actions, objectives, and terms that an agent applies to a given conversation.\r\n\r\n### Why Conversation Modeling?\r\n\r\nThe problem of getting your AI agent to say what _you_ want it to say is a hard one, experienced by virtually anyone building customer-facing agents. Here's how Conversation Modeling compares to other approaches to solving this problem.\r\n\r\n- **Flow engines** _force_ the user to interact according to predefined flows. In contrast, a **CM engine** dynamically _adapts_ to a user's natural interaction patterns while conforming to your rules.\r\n\r\n- **Free-form prompt engineering** leads to _inconsistency_, frequently failing to uphold requirements. Conversely, a **CM engine** leverages structure to _enforce_ conformance to a Conversation Model.\r\n\r\n\r\n## Who uses Parlant?\r\nParlant is used to deliver complex conversational agents that reliably follow your business protocols in use cases such as:\r\n- 🏦 Regulated financial services\r\n- 🏥 Healthcare communications\r\n- 📜 Legal assistance\r\n- 🛡️ Compliance-focused use cases\r\n- 🎯 Brand-sensitive customer service\r\n- 🤝 Personal advocacy and representation\r\n\r\n## How is Parlant used?\r\nDevelopers and data-scientists are using Parlant to:\r\n\r\n- 🤖 Create custom-tailored conversational agents quickly and easily\r\n- 👣 Define behavioral guidelines for agents to follow (Parlant ensures they are followed reliably)\r\n- 🛠️ Attach tools with specific guidance on how to properly use them in different contexts\r\n- 📖 Manage their agents’ glossary to ensure strict interpretation of terms in a conversational context\r\n- 👤 Add customer-specific information to deliver personalized interactions\r\n\r\n#### How does Parlant work?\r\n```mermaid\r\ngraph TD\r\n    API(Parlant REST API) --\u003e|React to Session Trigger| Engine[AI Response Engine]\r\n    Engine --\u003e|Load Domain Terminology| GlossaryStore\r\n    Engine --\u003e|Match Guidelines| GuidelineMatcher\r\n    Engine --\u003e|Infer \u0026 Call Tools| ToolCaller\r\n    Engine --\u003e|Tailor Guided Message| MessageComposer\r\n```\r\n\r\nWhen an agent needs to respond to a customer, Parlant's engine evaluates the situation, checks relevant guidelines, gathers necessary information through your tools, and continuously re-evaluates its approach based on your guidelines as new information emerges. When it's time to generate a message, Parlant implements self-critique mechanisms to ensure that the agent's responses precisely align with your intended behavior as given by the contextually-matched guidelines.\r\n\r\n***📚 More technical docs on the architecture and API are available under [docs/](./docs)***.\r\n\r\n## 📦 Quickstart\r\nParlant comes pre-built with responsive session (conversation) management, a detection mechanism for incoherence and contradictions in guidelines, content-filtering, jailbreak protection, an integrated sandbox UI for behavioral testing, native API clients in Python and TypeScript, and other goodies.\r\n\r\n```bash\r\n$ pip install parlant\r\n$ parlant-server run\r\n$ # Open the sandbox UI at http://localhost:8800 and play\r\n```\r\n\r\n## 🙋‍♂️🙋‍♀️ Who Is Parlant For?\r\nParlant is the right tool for the job if you're building an LLM-based chat agent, and:\r\n\r\n1. 🎯 Your use case places a **high importance on behavioral precision and consistency**, particularly in customer-facing scenarios\r\n1. 🔄 Your agent is expected to undergo **continuous behavioral refinements and changes**, and you need a way to implement those changes efficiently and confidently\r\n1. 📈 You're expected to maintain a **growing set of behavioral guidelines**, and you need to maintain them coherently and with version-tracking\r\n1. 💬 Conversational UX and user-engagmeent is an important concern for your use case, and you want to easily **control the flow and tone of conversations**\r\n\r\n## ⭐ Star Us: Your Support Goes a Long Way!\r\n[![Star History Chart](https://api.star-history.com/svg?repos=emcie-co/parlant\u0026type=Date)](https://star-history.com/#emcie-co/parlant\u0026Date)\r\n\r\n## 🤔 What Makes Parlant Different?\r\n\r\nIn a word: **_Guidance._** 🧭🚦🤝\r\n\r\nParlant's engine revolves around solving one key problem: How can we _reliably guide_ customer-facing agents to behave in alignment with our needs and intentions?\r\n\r\nHence Parlant's fundamentally different approach to agent building: [Managed Guidelines](https://www.parlant.io/docs/concepts/customization/guidelines):\r\n\r\n```bash\r\nparlant guideline create \\\r\n  --condition \"the customer wants to return an item\" \\\r\n  --action \"get the order number and item name and then help them return it\"\r\n```\r\n\r\nBy giving structure to behavioral guidelines, and _granularizing_ guidelines (i.e. making each behavioral guideline a first-class entity in the engine), Parlant's engine is able to offer unprecedented control, quality, and efficiency in building LLM-based agents:\r\n\r\n1. 🛡️ **Reliability:** Running focused self-critique in real-time, per guideline, to ensure it is actually followed\r\n1. 💡 **Explainability:** Providing feedback around its interpretation of guidelines in each real-life context, which helps in troubleshooting and improvement\r\n1. 🔧 **Maintainability:** Helping you maintain a coherent set of guidelines by detecting and alerting you to possible contradictions (gross or subtle) in your instructions\r\n\r\n## 🤖 Works with all major LLM providers\r\n- [OpenAI](https://platform.openai.com/docs/overview) (also via [Azure](https://learn.microsoft.com/en-us/azure/ai-services/openai/))\r\n- [Gemini](https://ai.google.dev/)\r\n- [Meta Llama 3](https://www.llama.com/) (via [Together AI](https://www.together.ai/) or [Cerebras](https://cerebras.ai/))\r\n- [Anthropic](https://www.anthropic.com/api) (also via [AWS Bedrock](https://aws.amazon.com/bedrock/))\r\n- And more are added regularly\r\n\r\n## 📚 Learning Parlant\r\n\r\nTo start learning and building with Parlant, visit our [documentation portal](https://parlant.io/docs/quickstart/introduction).\r\n\r\nNeed help? Ask us anything on [Discord](https://discord.gg/duxWqxKk6J). We're happy to answer questions and help you get up and running!\r\n\r\n## 💻 Usage Example\r\nAdding a guideline for an agent—for example, to ask a counter-question to get more info when a customer asks a question:\r\n```bash\r\nparlant guideline create \\\r\n    --condition \"a free-tier customer is asking how to use our product\" \\\r\n    --action \"first seek to understand what they're trying to achieve\"\r\n```\r\n\r\n## 👋 Contributing\r\nWe use the Linux-standard Developer Certificate of Origin ([DCO.md](DCO.md)), so that, by contributing, you confirm that you have the rights to submit your contribution under the Apache 2.0 license (i.e., that the code you're contributing is truly yours to share with the project).\r\n\r\nPlease consult [CONTRIBUTING.md](CONTRIBUTING.md) for more details.\r\n\r\nCan't wait to get involved? Join us on [Discord](https://discord.gg/duxWqxKk6J) and let's discuss how you can help shape Parlant. We're excited to work with contributors directly while we set up our formal processes!\r\n\r\nOtherwise, feel free to start a discussion or open an issue here on GitHub—freestyle 😎.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femcie-co%2Fparlant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femcie-co%2Fparlant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femcie-co%2Fparlant/lists"}