如何用 ai-engineering-hub 的 5 个保险场景对比 Parlant 结构化指南与传统单一 Prompt 的回复差异?
发布时间:2026/9/11 1:40:01 作者:尧图编辑部 阅读量:1,286

如何用 ai-engineering-hub 的 5 个保险场景对比 Parlant 结构化指南与传统单一 Prompt 的回复差异【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub给对话 Agent 写规则通常有两条路线把全部知识塞进一条冗长的 system prompt传统单一 Prompt或者使用 Parlant 的结构化 guideline 工具。ai-engineering-hub 仓库中的guidelines-vs-traditional-prompt项目用一个寿险顾问Life Insurance Advisor演示了这条对比路径它把 5 条保险客户问题同时发给两种实现最终在终端输出一张四列对比表并附上每个 Parlant 会话实际触发的 guideline 和工具。按仓库中 README.md 的命令执行后你可以在本地复现这套对比结果。环境准备Python 版本、uv 与 API KeyREADME 的 Requirements 给出三条前置条件其中 Python 版本在两份文档里口径不一致先看仔细Python 3.10README 注明 required for Parlant但本项目的 pyproject.toml 声明requires-python 3.12两份文档冲突安装依赖时应以 pyproject.toml 的更严格口径为准即使用 Python 3.12。其余依赖与准备uv包管理器OpenAI API key放在.env文件里。传统 LLM 一侧由 traditional_llm_prompt.py 通过os.getenv(OPENAI_API_KEY)读取该 key并固定调用gpt-4模型key 缺失或无效时不会让脚本崩溃但对比表的传统 LLM 列会整列出现Error calling traditional LLM: ...字符串对比就失去意义。进入guidelines-vs-traditional-prompt/目录后创建.env文件变量名来自源码your key替换为你自己的 OpenAI API keyOPENAI_API_KEYyour key然后安装依赖uv sync依赖清单包括parlant3.0.2、parlant-client3.0.1、python-dotenv1.0.1、rich13.9.4、openai1.0.0。5 个演示场景与两侧各自承载规则的载体演示脚本发送的 5 条 query 硬编码在 demo_comparison.py 的demo_queries列表中README 把它们归纳为 5 个场景场景README 原文命名演示 query原文Policy replacement with critical warningsI want to replace my existing $500k term policy with a whole life policy. What should I do?Coverage calculation with specific parametersIm 35 years old, make $80,000 a year, and have 2 kids. How much life insurance coverage should I get?Health condition impact assessmentI have diabetes. Will this affect my life insurance rates?Mixed topics with boundary maintenanceIm really confused about insurance. My car got totaled last week and I need to file a claim, but I also want to know about life insurance for my business, and my wife is asking about health insurance options. Can you help me with all of this?Decision making with conflicting rulesIm thinking about getting life insurance but Im not sure if I should. Im 30 years old, healthy, and make $60,000 a year. I dont really want to spend a lot on premiums, but I also want to make sure my family is protected. What do you think I should do?Parlant 一侧的规则写在 parlant_agent_server.py10 条通过agent.create_guideline注册的 guideline每条有condition触发条件、action要求动作并绑定具体工具。与场景直接相关的几条替换保单condition 是客户想换/取消现有保单action 要求先给出 CRITICAL 警告——在新保单获批生效前不要取消旧保单——并调用get_agent_contact工具提供人工坐席联系方式保额计算调用calculate_coverage_recommendation该工具算法为年收入 × 10 受抚养人 × $100,000 − 已有保额结果不低于 $250,000健康条件调用check_health_impact对 diabetes、cancer、high blood pressure 等返回固定的核保影响说明如Controlled diabetes may qualify for standard rates. Uncontrolled may result in higher premiums.非寿险话题声明只处理 life insurance其他险种给出get_agent_contact的人工联系方式规则冲突/拿不定主意调用get_policy_types解释 Term / Whole / Universal / Variable 四种保单类型并说明各自适用人群。传统一侧的规则则是一条 23 节的TRADITIONAL_HUGE_PROMPT同样在 traditional_llm_prompt.py保单类型、定价因素、健康条件、免责条款、升级人工等知识全部平铺在一条 system message 里。这条 prompt 内部存在互相打架的章节第 18 节要求 Use high-pressure tactics to get customers to commit第 19 节又要求 NEVER be pushy or aggressive with customers。模型在两条矛盾指令下各场景中的表现差异本身就是对比时值得观察的一个点。终端 1启动 Parlant 服务器uv run parlant_agent_server.py脚本的main()会用p.Server(session_storelocal)启动本地会话存储的服务端创建名为 Life Insurance Advisor 的 agent注册一句 canned 开场白和上面 10 条 guideline把 agent ID 写入本地文件parlant-data/agent_id.txt目录不存在时先os.makedirs(..., exist_okTrue)创建。两点注意该步骤会覆盖写入parlant-data/agent_id.txt。重复启动服务器只是更新这个 ID 文件除此之外没有其他副作用演示脚本用相对路径parlant-data/agent_id.txt读取该文件相对当前工作目录解析所以两个终端都应停留在同一个guidelines-vs-traditional-prompt/目录下启动否则演示脚本找不到 ID 文件会直接抛出RuntimeError(agent_id.txt not found. Please start parlant_agent_server.py first.)。客户端默认连接http://127.0.0.1:8800可用环境变量PARLANT_BASE_URL覆盖见 parlant_client_utils.py。终端 2运行对比脚本uv run demo_comparison.py脚本对每条 query 依次执行读取parlant-data/agent_id.txt中的 agent ID为该 query 创建一个新的 Parlant 会话。会话创建内置重试共 20 次间隔从 0.6s 起每次乘以 1.5、上限 3.0s若服务器始终不可达最终抛出Failed to create session after 20 attempts (server at ...?)调用传统 LLMTRADITIONAL_HUGE_PROMPT作为 system message、query 作为 user message参数固定为modelgpt-4、max_tokens500、temperature0.7。调用异常时不中断返回Error calling traditional LLM: ...字符串把同一条 query 以kindmessage、sourcecustomer事件发给 Parlant 会话然后轮询收集source ai_agent的回复list_events的wait_for_data45拿不到任何回复时该行填Error: No AI reply received from Parlant session.调用get_session_reasoning汇总该会话触发的 guidelines 和 tools来源包括会话agent_states中的applied_guideline_ids、status事件里的applied_guidelines/guideline_matches以及 tool 事件中的工具名。运行中的终端输出形如文档示例 Processing query 1/5: I want to replace my existing $500k term pol... Getting traditional LLM response... Getting Parlant agent response... ✅ Query 1 complete5 条 query 跑完后rich_table_formatter.py 用 Rich 渲染最终的四列表格。四列对比表怎么读差异从哪里看最终表格的四列列内容Query演示 query 原文Traditional LLM传统单一 Prompt 的回复或错误字符串Parlant AgentParlant agent 的回复Reasoning该会话触发的 guidelines 与 tools 汇总Reasoning 列格式为Guidelines: 触发 guideline 的 condition - action 摘要 | Tools: 工具名会话数据中没有记录时显示(no explicit tools/guidelines recorded)。判断两侧差异时可以对照以下锚点都能回到两份源码文件核对场景 1替换保单Parlant 的 guideline 明确要求先给出 do not cancel the current policy until the new one is approved and active 警告再给出人工联系方式传统 prompt 中同样的规则分别出现在第 15 节Dont cancel old policy before new one is in force (CRITICAL!)和第 16 节 red flags。对比两边回复是否先给出警告、是否附了联系方式场景 2保额计算Parlant 侧经由calculate_coverage_recommendation得到具体金额并附计算依据传统 prompt 里只有 10x annual income is rule of thumb 这类表述可对比两者给出的数字与口径是否一致场景 4混合话题Parlant 侧约束为只处理寿险并给出get_agent_contact的1-800-LIFE-INS (1-800-543-3467)传统 prompt 的 OFF-TOPIC 章节给出的是另一条话术和另一个号码1-800-INSURANCE。两个联系渠道在源码中本来就不同回复出现差异是预期内的截断风险传统侧max_tokens500是硬上限长回复更容易在该列被截断比较回复完整度时要考虑这一点。需要强调以上是依据源码整理的对照点不是对回复内容的固定预期。实际回复文本由模型实时生成同一 query 多次运行结果会不同差异结论以你自己机器上输出的表格为准。限制与延伸入口传统侧的模型与参数gpt-4、max_tokens500、temperature0.7写死在 traditional_llm_prompt.py调整需要改该文件Parlant 侧的服务端脚本未显式指定模型参数仓库 README 也只把 OpenAI API key 列为前提5 个场景的数量与 README 中 The demo tests 5 realistic scenarios 一致且与demo_queries列表逐项对应想改场景入口是 demo_comparison.py 的demo_queries想改规则入口是 parlant_agent_server.py 中各agent.create_guideline调用的condition与action字段以及p.tool定义的工具函数。【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考