- 智能体。教师在本班创建、修改、启停智能体,并为每个智能体绑定技能与本班材料;班内名称唯一,绑定他班的技能或材料一律按不存在处理。
- 会话选定智能体。新建会话时必须选定本班一个已启用的智能体,此后该会话一直用它,换智能体要新开会话。
- 一次回答的输入。角色提示词取自该智能体;技能只在该智能体绑定且已启用的集合里路由,至多命中一个;检索只在该智能体绑定的材料里进行。
- 消息组装。系统消息只放智能体提示词、技能说明与边界句;编号资料放在用户消息里——它与技能描述都来自上传,属于数据而不是指令。
- 流式与引用。以 SSE 逐段返回;引用列表随第一个事件先行到达,正文随后逐段到达。
- 接口文档。用代码注解生成 OpenAPI 描述,并提供 Swagger 页面,可对照文档试调主要接口。
本课重点
本课做一个解题助手:教师在本班建好智能体,为它配角色提示词、绑定技能与本班材料;学生选定一个智能体后连续追问,助手按该智能体作答并给出出处。下面三节依次说明本课要做的六件事、谁能操作什么、做完怎样算通过。
1本课要做的六件事
2谁能操作什么
| 对象 | 学生 | 教师 |
|---|---|---|
| 智能体 | 列出本班已启用的并从中选用 | 创建、修改、启停;绑定技能与材料 |
| 技能 | 可列出本班技能 | 编写或上传技能文件,绑定到智能体 |
| 材料 | 可列出本班材料 | 上传入库、重建索引,绑定到智能体 |
| 会话 | 只看到自己的;新建时选定智能体 | 只看到自己的 |
| 检索 | 只限所选智能体绑定的材料;班级取自登录用户 | |
授权判定在服务端强制执行(server-side enforcement),前端不承担访问控制职责。隐藏页面入口不构成隔离:学生调用教师专属接口得到 403;按编号访问未启用、他班或不存在的智能体,得到与「不存在」完全一致的 404。
3验收标准与验证方法
| 验收标准(DoD) | 验证方法 |
|---|---|
| 智能体可管理 | 教师建两个智能体,各绑不同技能与材料;学生的列表只见已启用的;按编号访问他班或未启用的,与不存在返回完全一致 |
| 只在绑定集合内作答 | 给某智能体只绑数学技能与数学材料,再问语文题:不命中技能,引用里也不出现未绑定的材料 |
| 会话锁定智能体 | 新建会话时选定 A;此后消息体里再带 B 的编号,回答仍按 A 的提示词与技能 |
| 引导技能不给最终答案,停用后行为明显变化 | 用适用条件里的词提问,命中「解题引导」时只指出错在哪一步并带 [1],不写得数;把该技能停用(或解绑)再问同一句,改为直接给结论 |
| 检索落空仍作答 | 问材料里没有的内容:仍按智能体提示词作答,引用为空,回答里不出现 [n],也不整段回「资料中未找到相关内容」 |
| 回答可引用知识库 | 引用列表含材料标题与切片序号;回答中的编号与之对应 |
| 流式输出正常 | 浏览器里文字逐段出现;抓包可见多次 delta 且每次是新增文本 |
| 接口文档可对照 | 浏览器打开 Swagger 页面,能按文档试调主要接口 |