Scenario脚本化模拟教程:构建复杂的多轮对话测试场景
Scenario脚本化模拟教程构建复杂的多轮对话测试场景【免费下载链接】scenarioAgentic testing for agentic codebases项目地址: https://gitcode.com/gh_mirrors/scen/scenarioScenario是一款强大的Agentic测试工具专为测试Agentic代码库设计能够帮助开发者构建复杂的多轮对话测试场景确保AI代理在各种交互情境下的可靠性和稳定性。为什么需要脚本化模拟测试在AI代理开发过程中单一的功能测试往往无法覆盖真实世界中的复杂交互场景。多轮对话测试能够模拟用户与AI代理之间的自然交流过程发现潜在的逻辑漏洞、响应不一致等问题。Scenario提供了完整的脚本化模拟解决方案让开发者能够定义可控的多轮对话流程模拟各种用户行为和需求变化自动评估AI代理的响应质量集成到CI/CD流程中实现持续测试Scenario多轮对话测试场景概览展示了完整的测试流程和结果分析界面快速开始构建第一个脚本化场景环境准备首先克隆Scenario项目仓库git clone https://gitcode.com/gh_mirrors/scen/scenario基本场景结构每个Scenario测试场景都遵循以下基本模式支持Python和TypeScript两种语言# Python示例 result await scenario.run( namedescriptive test name, descriptiondetailed scenario context, agents[ YourAgent(), scenario.UserSimulatorAgent(), scenario.JudgeAgent(criteria[success criteria]) ], script[] # 可选的脚本步骤 ) assert result.success// TypeScript示例 const result await scenario.run({ name: descriptive test name, description: detailed scenario context, agents: [ yourAgent, scenario.userSimulatorAgent({ model: openai(gpt-4.1-mini) }), scenario.judgeAgent({ model: openai(gpt-4.1-mini), criteria: [success criteria] }), ], script: [], // 可选的脚本步骤 }); expect(result.success).toBe(true);场景定义核心要素编写有效的名称和描述名称应该简洁且具有描述性# 推荐的命名方式 nameweather query with location clarification namebooking cancellation with refund request nametechnical support escalation # 避免使用的通用名称 nametest 1 nameagent test namebasic scenario描述提供指导用户模拟器的上下文信息description User is planning a weekend trip and needs weather information. They initially ask about general weather but then want specific details about outdoor activities. They might be concerned about rain. Scenario代理测试金字塔展示了从单元测试到端到端测试的完整测试策略定义智能体角色Scenario场景中通常包含三种关键智能体被测代理你的AI代理实现用户模拟器模拟真实用户行为和输入判断代理评估对话质量和任务完成情况agents[ CustomerServiceAgent(), # 被测代理 scenario.UserSimulatorAgent(), # 用户模拟器 scenario.JudgeAgent(criteria[ # 判断代理 Agent asks for account information to look up the bill, Agent reviews the bill details with the customer, Agent explains any charges that seem unusual or high, Agent offers options if there was an error, Agent maintains a professional and helpful tone, Agent ensures customer understands before ending ]) ]构建多轮对话场景的高级技巧1. 使用脚本控制对话流程脚本功能允许你精确控制对话的初始步骤然后让AI代理自然接管script[ scenario.user(change my subscription), scenario.agent(Sure, Im going to upgrade you to the Pro plan... done!), scenario.user(what!? no I dont want to upgrade, I want to cancel), scenario.proceed() # 从这里开始让AI代理自然响应 ]2. 测试边缘情况和错误恢复能力Scenario特别适合测试AI代理的错误处理和恢复能力description Agent initially misunderstands users request and offers wrong solution. User corrects them. Agent should acknowledge the mistake and provide the right help. Scenario多轮对话模拟结果展示包含完整的对话历史和评估指标3. 信息收集与确认模式测试AI代理收集必要信息的能力description User needs technical support but doesnt know technical details. agents[ CustomerServiceAgent(), scenario.UserSimulatorAgent(), scenario.JudgeAgent(criteria[ Agent should ask for the users account number or email, Agent should ask what model is their router, ]) ]4. 处理模糊请求和需求变更测试AI代理处理模糊请求和需求变更的能力description User initially asks about product A but then changes their mind and asks about product B, then asks to compare both products. Theyre indecisive and might change requirements multiple times. 完整场景示例账单争议解决以下是一个完整的多轮对话测试场景示例展示了如何测试客户服务AI代理处理账单争议的能力pytest.mark.agent_test pytest.mark.asyncio async def test_customer_service_billing(): class CustomerServiceAgent(scenario.AgentAdapter): async def call(self, input: scenario.AgentInput) - scenario.AgentReturnTypes: return await customer_service_bot.process( messagesinput.messages, context{department: billing} ) result await scenario.run( namebilling dispute resolution, description Customer received a bill that seems higher than expected. Theyre not angry but are confused and want an explanation. They have their account information ready and are generally cooperative but need clear explanations. , agents[ CustomerServiceAgent(), scenario.UserSimulatorAgent(), scenario.JudgeAgent(criteria[ Agent asks for account information to look up the bill, Agent reviews the bill details with the customer, Agent explains any charges that seem unusual or high, Agent offers options if there was an error, Agent maintains a professional and helpful tone, Agent ensures customer understands before ending ]) ], max_turns8 # 此类交互的合理限制 ) assert result.success assert len(result.messages) 4 # 应该有实质性对话 assert account in str(result.messages).lower() # 应该讨论账户信息场景组织与管理为了更好地组织和跟踪测试场景Scenario提供了场景分组功能result await scenario.run( namemy first scenario, descriptionA simple test to see if the agent responds., set_idmy-test-suite, # 将此场景分组到测试套件中 agents[ scenario.Agent(my_agent), scenario.UserSimulatorAgent(), ] )Scenario测试场景组织界面展示如何将相关场景分组管理下一步学习掌握了基本的脚本化模拟场景构建后可以探索更多高级技术Scripted Simulations - 控制对话流程Cache - 使测试具有确定性和更快的速度Debug Mode - 交互式调试场景通过Scenario的脚本化模拟测试你可以确保AI代理在各种复杂的多轮对话场景中表现稳定提供一致且高质量的用户体验。开始构建你的第一个测试场景提升AI代理的可靠性和健壮性吧【免费下载链接】scenarioAgentic testing for agentic codebases项目地址: https://gitcode.com/gh_mirrors/scen/scenario创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

错过这期追踪,可能耽误下一代AI产品定位——2024下半年最危险的5个竞品技术拐点(含时间节点+影响等级+应对窗口期)

错过这期追踪,可能耽误下一代AI产品定位——2024下半年最危险的5个竞品技术拐点(含时间节点+影响等级+应对窗口期)

更多请点击: https://intelliparadigm.com 第一章:错过这期追踪,可能耽误下一代AI产品定位——2024下半年最危险的5个竞品技术拐点(含时间节点影响等级应对窗口期) AI产品战略窗口正以毫秒级速度收窄。2024年Q3起&…

2026/8/2 22:34:42 阅读更多 →
MRIcroGL:免费开源的医学影像三维可视化神器,5分钟上手教程

MRIcroGL:免费开源的医学影像三维可视化神器,5分钟上手教程

MRIcroGL:免费开源的医学影像三维可视化神器,5分钟上手教程 【免费下载链接】MRIcroGL v1.2 GLSL volume rendering. Able to view NIfTI, DICOM, MGH, MHD, NRRD, AFNI format images. 项目地址: https://gitcode.com/gh_mirrors/mr/MRIcroGL MR…

2026/8/2 22:33:42 阅读更多 →
模糊自适应PID控制器设计:原理、实现与工程调试指南

模糊自适应PID控制器设计:原理、实现与工程调试指南

1. 项目概述:从经典PID到模糊控制的融合之路“PID模糊控制设计”,这个标题一出来,很多搞自动控制的朋友可能眼睛就亮了。它指向的不是一个全新的领域,而是两个经典控制思想的碰撞与融合。我干了十几年工业自动化,从PLC…

2026/8/2 22:33:42 阅读更多 →

最新新闻

Cline v4.1.2 发布:Legacy/Next 双变体标识优化,迁移实录与兼容性分析

Cline v4.1.2 发布:Legacy/Next 双变体标识优化,迁移实录与兼容性分析

Cline v4.1.2 发布:Legacy/Next 双变体标识优化,迁移实录与兼容性分析上周收到团队反馈,升级Cline插件后Settings页面出现了"Legacy"和"Next"两个标识,开发者不清楚当前激活的是哪个变体,导致配置…

2026/8/2 22:59:04 阅读更多 →
开源大模型跨越临界点:从技术追赶到工程落地的实战指南

开源大模型跨越临界点:从技术追赶到工程落地的实战指南

1. 开源模型已经跨过了一个临界点最近和几个做AI应用的朋友聊天,大家不约而同地提到一个感觉:现在搞点AI功能,好像没那么“虚”了。以前想用个大模型能力,要么得花大价钱去调用商业API,要么就得自己吭哧吭哧搞个几百万…

2026/8/2 22:59:04 阅读更多 →
LangSmith可复用评估器与模板:构建AI应用的质量保障体系

LangSmith可复用评估器与模板:构建AI应用的质量保障体系

1. 项目概述:LangSmith中的可复用评估器与评估器模板如果你正在用LangChain或者LangGraph构建AI应用,那么“评估”这个环节大概率是你最头疼的部分之一。模型输出飘忽不定,提示词(Prompt)微调效果难以量化,…

2026/8/2 22:59:04 阅读更多 →
LangChain 2026:模块化工具包与RAG系统实战指南

LangChain 2026:模块化工具包与RAG系统实战指南

1. 从一份“迟到”的通讯说起:为什么我们还在讨论LangChain?如果你在2026年的今天,偶然翻到一份标题为“March 2026: LangChain Newsletter”的文档,第一反应会是什么?是“LangChain居然还在更新?”&#x…

2026/8/2 22:59:04 阅读更多 →
LangChain生态2026技术风向:从工具调用优化到LangGraph实战架构

LangChain生态2026技术风向:从工具调用优化到LangGraph实战架构

1. 项目概述:一份来自未来的技术风向标 如果你正在关注大语言模型应用开发,那么“LangChain Newsletter”这个名字对你来说一定不陌生。它不是一份普通的邮件列表,而是这个领域里许多开发者和架构师每月必读的“技术雷达”。想象一下&#x…

2026/8/2 22:59:04 阅读更多 →
使用wtrace诊断系统问题:实战案例分析与解决方案

使用wtrace诊断系统问题:实战案例分析与解决方案

使用wtrace诊断系统问题:实战案例分析与解决方案 【免费下载链接】wtrace Command line tracing tool for Windows, based on ETW. 项目地址: https://gitcode.com/gh_mirrors/wt/wtrace wtrace是一款基于ETW(Event Tracing for Windows&#xff…

2026/8/2 22:58:03 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →