查会话记录
什么时候用
你需要排查用户对话问题、查看历史对话内容、了解模型使用情况时,查会话记录。会话记录帮你:
- 还原某个用户的对话过程
- 查看具体的消息内容和模型输出
- 统计某个用户或Agent的调用次数和Token消耗
- 定位对话中的错误或异常
普通用户只能查看自己的会话,管理员可以查看所有用户的会话。
你需要准备
- 管理员账号(查看所有用户会话需要)
- 已产生过对话(否则列表为空)
- 如需查看消息详情,注意审计模式可能会影响内容展示
操作步骤
第 1 步:进入会话记录
左侧菜单 -> 日志和统计 -> 会话记录管理。
第 2 步:按用户筛选(仅管理员可见)
如果你是管理员,页面顶部会有一个「用户」下拉框,你可以:
- 选择特定用户,只看该用户的会话
- 留空(或选择「全部用户」),查看所有用户的会话
筛选后列表会自动刷新。
第 3 步:理解会话列表字段
列表展示每一次会话的核心信息:
| 字段 | 说明 |
|---|---|
| 会话ID | 会话的唯一标识 |
| 用户 | 发起会话的用户名 |
| 模型分组 | 使用的模型组名称(如果有) |
| 供应商/模型 | 使用的模型提供商和模型名称 |
| 客户端IP | 发起请求的客户端IP地址 |
| 客户端 | 来源客户端标识(如opencode) |
| 版本 | 客户端版本号 |
| 消息数 | 会话内的消息总数 |
| 智能体 | 使用的Agent名称(如果有) |
| 调用次数 | 会话内的API调用次数 |
| Token | 消耗的总Token数 |
| 费用 | 预估费用(按当前汇率) |
| 错误 | 错误次数(有错误时会标红) |
| 创建时间 | 会话创建时间 |
| 最后更新 | 会话最后更新时间 |
第 4 步:查看会话详情
点击某一行右侧的「查看详情」按钮,会打开会话详情弹窗。
弹窗内展示该会话的完整消息流,按时间顺序排列,包含:
- 角色(user/assistant/tool)
- 消息内容
- 时间戳
- 模型推理内容(如果有)
你可以滚动查看完整对话历史。
第 5 步:翻页和调整每页条数
列表底部有分页控件,你可以:
- 点击页码或「上一页」/「下一页」翻页
- 切换每页显示20/50/100条记录
- 直接跳转到指定页码
怎么验证成功了
- 作为管理员,你能看到「用户」下拉筛选框,并且可以选择特定用户
- 作为普通用户,你看不到用户筛选框,只能看到自己的会话
- 点击「查看详情」,能打开弹窗并看到完整消息流
- 会话列表中的「错误」列在有错误时会标红显示
常见问题
1. 为什么我看不到用户筛选框?
你不是管理员。普通用户只能查看自己的会话,不需要筛选。
2. 消息内容看起来是脱敏的(如****)?
这是因为开启了审计模式。根据配置不同,内容可能在展示时脱敏或存储时就已脱敏。你可以在设置中查看当前的审计模式。
3. 会话列表里的「错误」列显示有错误,但详情里好像没问题?
可能是某次工具调用失败,但后续重试成功了,或者错误发生在中间步骤但不影响最终回复。你可以查看调用记录获取更详细的错误信息。
4. 为什么有些会话的「模型分组」或「智能体」是空的?
说明该会话没有绑定模型组或Agent,直接使用了默认模型。
5. 会话记录能保存多久?
取决于平台配置,通常会保留数月到一年。如需长期归档,请联系平台管理员。
深入
核心概念:会话、消息、调用记录的关系
一次调用通常会产生三类记录:
- ChatSession(会话):代表一个连续对话,按租户、用户、客户端会话 ID 做唯一约束
- ChatMessage(消息):保存用户输入、模型输出、工具消息,以及脱敏/哈希字段
- ai_api_call(调用记录):每次 API 调用的主记录,包含状态、错误类型、Token、成本、延迟等
审计模式影响展示
消息内容展示受租户审计模式控制:
- no_mask:不脱敏,按原文展示
- mask_on_display:存储原文,展示时脱敏
- mask_on_save:写入时即保存脱敏内容
在日志页面看到的内容可能是脱敏后内容,不一定是原始内容。
安全事件
安全事件记录租户内的敏感操作和内容安全事件,例如:
- 命中敏感内容检测
- 命中禁用内容策略
- 用户角色变更
- API Key 创建/删除
- Agent 克隆
- 技能创建/更新
- 平台管理员查看其他用户数据
- 技能跨租户代部署
权限边界
| 操作 | 谁可以 |
|---|---|
| 查看本租户会话列表 | 租户 admin |
| 查看本租户会话消息 | 租户 admin |
| 查看调用统计 | 租户 admin |
| 查看安全事件 | 租户 admin |
| 查看其他租户日志 | 不允许,平台管理员能力按具体接口控制 |
| 查看 MCP 调用日志 | 租户 admin(仅本租户) |
常见坑
看到的是脱敏内容,不一定是原文 日志页面展示的内容受审计模式影响。如果设置为 mask_on_display 或 mask_on_save,管理员看到的可能是脱敏后的内容。
调用失败不一定有 assistant 消息 请求在安全检查、模型鉴权或限流阶段被拒绝时,可能只会有调用记录,没有完整 assistant 回复。
会话去重依赖客户端会话 ID 同一个(租户 ID、用户 ID、来源客户端、来源会话 ID)会复用同一个会话。如果客户端没有传稳定的来源会话 ID,会话列表可能看起来很分散。
Token 趋势只统计成功调用 统计页面通常基于调用记录聚合。被拒绝的请求可能没有 Token 用量,因此不会显著影响 Token 图表,但会出现在调用状态和安全事件中。
MCP 工具失败不要只看聊天消息 MCP 调用失败需要同时看调用日志,聊天消息中可能只有工具失败摘要。
排错速查
| 症状 | 可能原因 | 排查路径 |
|---|---|---|
| 用户说调用失败 | 模型鉴权、限流、上游错误 | 看调用记录状态和错误类型 |
| 返回内容策略违规 | 命中禁用模式 | 看安全事件类型=policy_violation |
| 内容被脱敏 | 租户审计模式开启 | 检查审计模式、脱敏规则 |
| 客户端被白名单拦截 | 允许的 API 客户端不包含当前客户端 | 看客户端访问日志的 user_agent 和白名单快照 |
| MCP 工具失败 | 工具被拒、上游超时或限流 | 看 MCP 调用日志状态、拒绝原因 |
| 统计数和预期不一致 | 时间范围、失败调用、模型组路由 | 调整参数,查看路由轨迹 |