如何修改提示词或模型后用 docsgpt-cli bench 对 DocsGPT Agent 做回归验证
如何修改提示词或模型后用 docsgpt-cli bench 对 DocsGPT Agent 做回归验证【免费下载链接】DocsGPTPrivate AI platform for agents, assistants and enterprise search. Built-in Agent Builder, Deep research, Document analysis, Multi-model support, and API connectivity for agents.项目地址: https://gitcode.com/GitHub_Trending/do/DocsGPT在 DocsGPT 里改完 Agent 的提示词、或者把 Agent 背后的模型换掉之后最直接的问题是答案质量有没有变差DocsGPT 官方文档给出的做法是从终端跑可复现的基准检查——独立 CLI 项目 docsgpt-cli 提供的bench命令。它把一个目录里的基准用例逐一发给你的 Agent并对返回的答案做断言文档称之为改动提示词、更换模型或重新摄取来源之后的快速 is everything still good? 检查对 DocsGPT Cloud 和自托管部署都适用。前提条件一个运行中的 DocsGPT 部署Cloud 或自托管均可。docsgpt-cli。本仓库文档明确说明它是独立于 DocsGPT 服务端的 CLI 项目包含bench命令架构文档中它被描述为 client 和可选的 remote device host。一个 Agent 及其 API key。在 web 应用中进入 Settings - Agents - Create New 即可创建带 API key 的 Agent每个 Agent 自动附带一个 key也可以调用/api/create_agent端点创建详见 API Keys 指南。先完成变更改提示词或换模型回归验证本身不产生变更它验证的是变更之后 Agent 是否仍按预期回答。所以下文先交代两种变更各自的入口再回到 bench 的操作。修改提示词在 web 应用中按SideBar - Settings - Active Prompt找到当前提示词点编辑图标即可修改见 Customizing Prompts。修改前需要知道两种模式的差别纯文本提示词不含{{ }}被当作 persona放进标准提示词的## Your role区块内置的回答规则、安全边界等仍然保留一旦包含{{ }}模板语法DocsGPT 按原样渲染且不再追加任何内容安全边界需要你自己写进提示词。更换模型Cloud 版在聊天界面点击当前选中的 LLM从下拉列表中改选其他模型见 How to use different LLM。自托管修改.env文件关键是LLM_PROVIDER如openai、LLM_NAME、OPENAI_BASE_URL和API_KEY模型注册表在服务启动时扫描环境变量自动注册可用模型LLM_NAME匹配到已注册模型时成为默认模型见 Local Inference。变更生效后用同一套基准用例重新跑一遍就是本文的核心操作。建立基准套件docsgpt-cli 的bench命令运行一个用例目录并可用init脚手架生成docsgpt-cli bench # run the suite in ./bench docsgpt-cli bench ./my-suite # or any directory docsgpt-cli bench init my-suite # scaffold a new suite套件是一个目录包含可选的bench.yaml全局默认值和每个用例一个目录目录内放case.yaml和附件文件bench/ bench.yaml 01-basic-answer/ case.yaml 02-with-attachment/ case.yaml report.pdfbench.yaml中的关键字段以下为官方文档示例agent: my-agent # key name from docsgpt-cli keys, or a literal API key target: v1 # v1 | stream | webhook # base_url: https://gptcloud.arc53.com # judge: # agent: judge-agent # agent used for LLM-as-judge grading concurrency: 2 timeout: 120s # repeat: 3 # run each case N times… # min_pass: 2 # …and require at least this many passesagent填docsgpt-cli keys中的 key 名称每台机器本地解析或直接填字面 API keybase_url指向你的部署地址。case.yaml定义问题与断言官方示例数值是文档示例问题与期望值需替换成你自己的业务场景description: Support agent quotes the refund window tags: [smoke, support] question: How many days do customers have to request a refund? expect: answer: contains: [30 days] # case-insensitive substrings not_contains: [I dont know] regex: [\b30\s*days?\b] sources: { min: 1 } # retrieval sources returned repeat: 3 # tolerate LLM flakiness min_pass: 2expect的每个小节都是可选的省略的小节就不检查answer支持contains/not_contains/regexjson可把答案当 JSON 解析后按字段断言tools断言 Agent 必须/禁止调用的工具judge用配置的 judge Agent 做 LLM-as-judge 评分limits限制耗时与 token 用量golden对比录制快照。用例中的repeat/min_pass用来容忍 LLM 输出的偶发不稳定。跑基线再在变更后重跑对比第一次运行也就是提示词/模型变更之前直接跑套件docsgpt-cli bench每次运行都会保存在~/.docsgpt/bench/suite/下这是后续基线对比的依据。变更提示词或模型后用--baseline last重跑同一套件docsgpt-cli bench --baseline last该命令会把本次运行与上一次运行做 diff标出回归pass → fail、修复fail → pass以及延迟/token 漂移。加--verbose可以打印具体答案和 judge 的评分理由便于定位是哪一个用例出了问题。判读标准就是文档给出的退出码0全部用例通过1存在失败2配置错误。退出码为 1 且--baseline last标出了 pass → fail 的用例说明这次提示词或模型变更引入了回归。如果你正在多个提示词版本之间迭代文档给出的最快方式是对比两个 Agentdocsgpt-cli bench --key prompt-v1 --vs prompt-v2套件会分别对两个 Agent 各跑一遍并输出并排对比prompt-v1/prompt-v2是docsgpt-cli keys中的 key 名称。如果只想跑部分用例可以用名称过滤或按 tag 过滤docsgpt-cli bench -k refund # filter by name/description docsgpt-cli bench --tags smoke # filter by tags docsgpt-cli bench --repeat 3 --concurrency 4可选录制 golden 快照与接入 CIGolden 快照docsgpt-cli bench record运行用例并把每个答案保存到用例目录的golden.json之后在用例中设置expect: {golden: true}后续运行就会与该快照对比--update可刷新快照。适合答案应当高度稳定如固定格式输出的场景。CI--json输出机器可读结果--junit输出 JUnit XML 供 CI 测试报告使用docsgpt-cli bench --json run.json docsgpt-cli bench --junit report.xml官方文档给出的 GitHub Actions 片段--key接受~/.docsgpt/config.json中的 key 名称或字面 API key因此 CI 可直接传密钥- name: Agent benchmarks # --key accepts a key name from ~/.docsgpt/config.json or a literal API key, # so CI can pass the secret directly. run: docsgpt-cli bench --key $DOCSGPT_API_KEY --junit bench.xml env: DOCSGPT_API_KEY: ${{ secrets.DOCSGPT_API_KEY }} DOCSGPT_NO_UPDATE_CHECK: 1密钥管理与目标协议的边界bench.yaml和case.yaml中的任何值都可以用${VAR}引用环境变量使套件可以安全提交到仓库而密钥留在环境里agent: ${DOCSGPT_BENCH_KEY} webhook_url: ${DOCSGPT_WEBHOOK_URL} judge: agent: ${DOCSGPT_JUDGE_KEY}解析顺序shell 环境变量然后是套件目录下的.env再是./.env简单KEYvalue格式的 dotenv 文件建议加入 gitignore。变量未设置时加载会直接以清晰错误失败而不是用空 key 跑基准只有带花括号的${VAR}形式会被展开$$转义字面美元符号YAML 注释行永不展开。不想改 YAML 时--key和--webhook-url标志也能传入字面密钥与 webhook 令牌。三个目标协议的能力边界不同选错会影响断言是否可用TargetProtocolAttachmentsToken usagev1默认POST /v1/chat/completionsBearer key✅✅ 有上报streamPOST /streamSSE 事件✅—webhookAgent 入站 webhook /api/task_status轮询——webhook 目标是异步的CLI 把{question: ...}发到 Agent 的 webhook URL 后轮询任务直至完成需要审批的工具在 webhook 运行中会被自动拒绝附件也不支持。另外limits.max_total_tokens只在v1目标下生效写断言时注意目标与协议要匹配。完整字段参考见 Benchmarking Agents。回归判断的闭环是变更 -docsgpt-cli bench --baseline last- 退出码为 0 且 diff 中无 pass → fail 即通过出现失败时用--verbose看具体答案与 judge 理由再决定回滚还是继续调整提示词。【免费下载链接】DocsGPTPrivate AI platform for agents, assistants and enterprise search. Built-in Agent Builder, Deep research, Document analysis, Multi-model support, and API connectivity for agents.项目地址: https://gitcode.com/GitHub_Trending/do/DocsGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Mastra xAI Grok 实时语音集成指南:使用 @mastra/voice-xai-realtime 构建低延迟双向语音 Agent

Mastra xAI Grok 实时语音集成指南:使用 @mastra/voice-xai-realtime 构建低延迟双向语音 Agent

Mastra xAI Grok 实时语音集成指南:使用 mastra/voice-xai-realtime 构建低延迟双向语音 Agent 【免费下载链接】mastra Mastra is the modern TypeScript framework for AI-powered applications and agents. 项目地址: https://gitcode.com/GitHub_Trending/ma/…

2026/11/13 18:47:36 阅读更多 →
Flame 键盘输入完全指南:KeyboardEvents、KeyboardHandler 与 KeyboardListenerComponent 实战

Flame 键盘输入完全指南:KeyboardEvents、KeyboardHandler 与 KeyboardListenerComponent 实战

Flame 键盘输入完全指南:KeyboardEvents、KeyboardHandler 与 KeyboardListenerComponent 实战 【免费下载链接】flame A Flutter based game engine. 项目地址: https://gitcode.com/GitHub_Trending/fl/flame 本篇指南聚焦于 Flutter 游戏引擎 Flame 的键盘…

2026/11/6 18:24:33 阅读更多 →
可逆列网络RCN改进YOLOv7实现头盔细粒度检测

可逆列网络RCN改进YOLOv7实现头盔细粒度检测

简介:本资源是一个基于Reversible-Column-Networks(RCN)改进YOLOv7的电动车头盔佩戴检测系统,面向计算机、电子信息、人工智能等专业的本科生与研究生,适用于课程设计、期末大作业及毕业设计项目。项目聚焦交通安全管理…

2026/11/1 12:27:07 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻