iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
自我挑戰組

攔截記憶碼:每日一小時記錄技術學習系列 第 19

Day 17 - parlant:給 AI Agent 用的對話框架

  • 分享至 

  • xImage
  •  

攔截源頭

  • 發現管道:Threads
  • 攔截原因:最近在玩各種 Agent SDK(Claude Agent SDK、semtools…),常常要自己處理對話邏輯。看到 parlant 這個專案,主打「對話框架」,專門幫助構建 AI Agent 的多輪對話,就決定攔截下來記錄。

parlant 的優勢是「專注於對話本身」,而不是一個龐大的生態系統。

技術初探

  • 官方定義:parlant is a framework for building conversational AI agents. It provides tools for managing dialogues, prompts, and responses in a structured way.
  • 核心賣點
    • 專注在「對話管理」:Prompt、角色、上下文都有結構化 API
    • Agent 可以有多角色設計(system / user / assistant / 自訂角色)
    • 支援多種 LLM(不限於某一家供應商)
    • 強調「可測試性」與「組合性」,方便拆解成模組
  • 適用場景
    • 建立多輪對話的 AI 應用(客服、助理、遊戲 NPC)
    • 需要角色扮演或多角色互動的 Agent
    • 想要在 Agent SDK 基礎上增加對話控制

實戰使用

快速安裝

pip install parlant

Hello World

from parlant import Conversation, User, Assistant

conv = Conversation()
user = User("Alice")
assistant = Assistant("HelperBot")

conv.add(user, "你好,可以幫我總結這段文字嗎?")
conv.add(assistant, "當然可以,請提供文字內容。")

print(conv.to_dict())

輸出會是結構化的對話紀錄:

{
  "messages": [
    {"role": "user", "name": "Alice", "content": "你好,可以幫我總結這段文字嗎?"},
    {"role": "assistant", "name": "HelperBot", "content": "當然可以,請提供文字內容。"}
  ]
}

實際應用

結合 LLM 使用:

from parlant.llms import OpenAI
from parlant import Conversation, User, Assistant

llm = OpenAI(model="gpt-4o-mini")

conv = Conversation()
conv.add(User("Alice"), "請幫我寫一個 quicksort 的 Python 範例")
reply = llm.generate(conv)

print(reply)

記憶碼摘要

技術:parlant
分類:對話框架 / AI Agent 開發
難度:⭐⭐⭐☆☆(1–5 顆星)
實用度:⭐⭐⭐⭐☆(1–5 顆星)
一句話:專注於對話管理的框架,讓 AI Agent 更好地處理多輪互動。
關鍵指令:pip install parlant
適用情境:需要結構化管理對話、角色與上下文的 AI Agent 專案。

結語

parlant 對我來說是一個「輕量級的 Agent 對話核心」,它不像 LangChain 或 LlamaIndex 那樣包山包海,而是專注解決對話結構管理這個痛點。對做 AI Agent 的人來說,這是個不錯的基礎元件。
接下來我想試試看,把 parlant + Claude Agent SDK + semtools 組合起來,看看能不能做出一個「多角色、能調用工具」的智慧 Agent。


上一篇
Day 17 - localias:本地開發的服務別名管理器
下一篇
Day 18 - mise:統一開發環境的現代化 asdf 替代方案
系列文
攔截記憶碼:每日一小時記錄技術學習20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言