Agent 问数
用中文问当前项目的数。模型不写 SQL,只能调用和图表相同的查询,回答里的每个数字都能在查询卡片里找到,也能点回原图。


怎么问
工作台顶栏切到 Agent,左边是这个项目下你自己的对话,右边提问。新对话会给出几个可以直接点的问题,带上当前的日期范围,例如:
- 这段时间的 PV、UV 相对上一段变化了多少?主要是哪些来源带来的变化?
$pageview→ 注册 → 付费卡在哪一步?- 新访客的次日留存怎么样?
- 哪些页面的退出率最高?
- 主要渠道是哪些,哪个渠道的转化最好?
问得越具体越好:写明日期、事件和想比较的对象。提到的事件名,Agent 会先查一遍事件列表对齐成真实的名字。
查询卡片
Agent 每调用一次查询,对话里就出现一张卡片:
- 卡片上写着查的是哪个模块、什么条件,里面画的是同一次查询的小图。
- 卡片的数据和 Stats 页面走同一个接口、命中同一份缓存,所以数字一定一致。
- 每张卡片都有「在 Stats 打开」,跳到对应的分析页,条件原样带上。
- 回答结束时,末尾也有一个「在 Stats 打开」,打开这一轮最主要的那次查询。
回答里的每个数字都应当能在卡片的表里找到。对不上时,以卡片和 Stats 页面为准,并请把 request_id 报给维护者。
从图表发问
任何一张 Stats 图表的「⋯」菜单里有「问 Agent」:它新建一个对话,把这张图的模块和条件作为上下文带过去,输入框预填「解释一下这张图:模块名」,你确认后发送。Agent 会先替你执行一次这张图的查询,回答从你看到的那张图出发。
对话
- 对话按项目分开,只有你自己能看到自己的对话。
- 左侧按「今天 / 近 7 天 / 更早」分组,可以新建、删除。
- 回答是流式的,逐字出现;过程中可以「停止」,已经输出的部分会保留并标「已停止」。
- 本期没有对话重命名、分享链接,也不能在一个对话里换项目。
能做什么,不能做什么
| 能 | 不能 |
|---|---|
| 问区间指标、趋势、事件、页面、渠道、终端、地域 | 自己写 SQL |
| 问漏斗、留存、路径、某个用户、新老、流失、归因、实验 | 看回放内容 |
| 基于查询结果做对比、解释波动 | 查看其它项目、用户列表、密钥、系统配置 |
| 结尾带上查询条件,点回 Stats | 在没配模型时假装在回答 |
几条写死的规则:
- 只能通过查询取数,禁止编造数字;只有表头时就说没有查到。
- 结论里写明项目、日期和筛选条件。
- 一次查询交给模型的结果最多 200 行,超过时截断,并在卡片上写明「只给了模型前 200 行」,请到 Stats 看全量。
- 一次提问最多调用 8 轮查询,带进模型的历史最多 20 条消息;整次提问最长 120 秒。
- 查询的项目由对话决定,模型改不了。即使问题里或事件文案里要求「查别的项目」,也不会生效。
次数限制
| 用户 | 每人每天的提问次数 |
|---|---|
| 普通用户、管理员 | ai.user_daily_limit,默认 200;填 0 不限 |
| 演示账号 | demo.agent_daily_limit,默认 20 |
用完之后输入框会禁用,写明次日恢复。这个上限用来控制模型费用。
配置模型
在「系统配置 → AI」里填三项,或者在首次引导时填:
| 配置键 | 说明 |
|---|---|
ai.base_url | 兼容 OpenAI 的地址,写到 /v1 为止,例如 https://api.example.com/v1 |
ai.model | 模型名 |
ai.api_key | 模型服务的密钥,界面上遮盖显示 |
要求:兼容 OpenAI Chat Completions,支持工具调用(tools)和流式输出(stream)。可以用任意厂商,也可以用本地部署的模型。点「测试」会发一条最小的补全验证连通,密钥不会写进日志。
没配模型时,图表和看板都正常;打开 Agent 只显示一页说明和去设置的按钮,不会出现一个发了也没反应的输入框。模型服务连不上或返回错误时,提示 50301。
数据会发给你配置的模型服务
提问时,查询结果(带表头的表格,最多 200 行)和你的问题会发送到 ai.base_url。事件名和属性值也在其中。对数据出境有要求时,请选择合适的模型服务或本地模型。evstats 不会把这些数据发给作者。
反向代理
Agent 的回答走 SSE,反向代理必须对 /dash/agent/ 关掉缓冲(Nginx 的 proxy_buffering off),见 反向代理与 HTTPS。