Robi · 《智能机器人编程》课程知识问答智能体
面向《智能机器人编程》课程(68 学时 / 4 学分,AiNex Pro 人形机器人 + 树莓派), 将课程标准、基础课件、实验指导书与机器人 Python 源码构建为课程知识库, 通过 检索增强生成 + 工具调用 + 多轮记忆 提供带出处引用的智能问答、实验指导、 代码讲解、故障排查、随堂小测与学习规划服务。
每一项都可以在验收现场直接演示、当场验证。
| 能力 | 实现方式 | 现场如何验证 |
|---|---|---|
| 知识库检索 | 课程资料自动抽取 → 中文分词 → BM25 相关度排序 → 知识块加权召回;知识库含课件、实验指导(PDF)、SDK 源码与结构化知识卡 | 提问后查看右侧「执行轨迹」的命中数与相关度;或访问 /api/kb/search?q=颜色识别阈值 |
| 工具调用 | 7 个工具:search_course、get_course_outline、lookup_code_api、find_troubleshooting、make_quiz、make_study_plan、get_student_profile;由认知引擎自主决定调用顺序与参数,最多 4 轮 |
问「给我出 3 道计算机视觉的练习题」→ 轨迹中可见 make_quiz 被自主调用并生成题目 |
| 意图理解与规划 | 先判定问题类型(概念 / 实验 / 代码 / 故障 / 出题 / 规划 / 课程信息),再规划检索与工具链 | 对比提问「课程考核怎么算分」与「巡线代码怎么写」,轨迹中的意图与工具链不同 |
| 多轮记忆 | 会话上下文 + 知识点关注分布 + 薄弱环节记录,参与下一轮回答生成 | 先问「颜色识别」,再问「那巡线呢」;右侧「学习画像」显示关注方向累积,追问能续接上下文 |
| 出处溯源 | 回答末尾给出「参考出处」,侧栏提供引用卡:资料名称、章节、相关度、原文片段 | 在侧栏「引用出处」展开一条,核对答案是否来自课程资料 |
| 过程可观测 | 服务端通过 SSE 实时推送每一步(理解 → 检索 → 工具 → 生成 → 记忆)与耗时 | 右侧「执行轨迹」逐步点亮,可看到每步耗时与结果摘要 |
| 降级与容错 | 在线认知引擎不可用时自动切换为本地知识库模式,检索与工具链仍完整工作 | 离线时提问仍能得到带出处的回答,界面顶部显示「离线」 |
四层结构,零第三方依赖,单进程即可运行与演示。
前端交互层
项目主页、对话工作台、项目说明页;Markdown 与代码渲染、轨迹面板、引用与画像面板。
智能体编排层
意图识别 → 工具规划 → 工具执行(带结果去重)→ 生成回答 → 记忆更新;在线函数调用循环 / 离线规则规划器。
知识检索层
资料抽取 → 清洗分块 → 知识卡合并 → BM25 索引(中文分词 + 驼峰拆词 + 类型加权)。
服务运行层
Node.js 原生 HTTP 服务、SSE 流式接口、静态资源与 API 同端口;监听 0.0.0.0 支持局域网访问。
用户提问
│
├─ ① 意图识别(本地规则,0ms) 判定问题类型
├─ ② 知识库预检索(BM25,约 5-10ms) 召回课程资料并作为回答锚点
├─ ③ 工具规划与调用(最多 4 轮) 由认知引擎自主决定
│ search_course / get_course_outline / lookup_code_api
│ find_troubleshooting / make_quiz / make_study_plan / get_student_profile
├─ ④ 生成回答(流式,SSE 逐字推送) 以课程资料为唯一依据
└─ ⑤ 出处引用 + 追问建议 + 学习画像更新
由 scripts/extract_knowledge.py 与 scripts/build_kb.py 从课程资料自动构建,可一键重建。
课程规范类
课程标准:学时学分、6 个学习情境与单元、教学目标、考核评价、实训条件。
实验指导类
认识机器人、首次开机、远程连接、颜色识别、智能巡线、自动踢球、上下台阶、跌倒起立、定向巡航、色块追踪、标签识别、十字路口、上位机与动作编辑、镜像烧录、舵机调试。
代码与接口类
HiwonderSDK 与 Functions 源码整理为接口卡(签名、参数、示例代码)与实战配方卡,覆盖舵机、动作组、传感器、语音、视觉与相机标定。
一键启动(推荐)
双击项目目录下的 启动Robi.bat:检查运行环境 → 构建知识库(首次)→ 放行防火墙 → 启动服务并打开浏览器。
如需评委用自己设备访问,请右键以管理员身份运行该脚本以添加防火墙入站规则。
命令行启动
cd 项目目录
node server.js
:: 离线模式(不调用在线认知引擎)
set ROBI_OFFLINE=1 && node server.js
:: 更换端口
set ROBI_PORT=9000 && node server.js
访问地址
按顺序演示,可完整体现检索、工具调用、记忆与溯源能力。
| 步骤 | 提问 / 操作 | 预期结果与讲解要点 |
|---|---|---|
| 1 | 打开项目主页,点击「进入 Robi」 | 展示项目主页与跳转入口;顶部显示智能体在线状态与知识库规模 |
| 2 | 「这门课多少学时?考核怎么算分?」 | 轨迹显示意图=课程信息查询,自主调用 get_course_outline;回答给出 68 学时 / 4 学分与 10%+40%+50% 的考核构成 |
| 3 | 「颜色识别的阈值怎么调?」 | 检索命中课件《第1课 颜色识别》与故障排查卡;回答指出课程实际使用 Lab 颜色空间并给出 LAB_Tool 操作步骤 |
| 4 | 「BusServo.setPosition 怎么用?」 | 自主调用 lookup_code_api,返回接口签名、参数与可运行示例代码 |
| 5 | 「给我出 3 道计算机视觉的练习题」 | 自主调用 make_quiz,生成选择题并附答案解析 |
| 6 | 点击侧栏「引用出处」并展开一条 | 核对回答来源:资料名称、章节、相关度与原文片段 |
| 7 | 追问「我基础比较弱,帮我制定 4 周学习计划」 | 调用 get_student_profile + make_study_plan,结合前面提问记录输出分周计划 |
不是。每条回答都必须经过「课程知识库检索 → 工具调用 → 依据资料生成 → 附加出处」的链路,并在界面上完整展示执行轨迹与引用来源;脱离课程资料的问题会被明确告知资料不足,而不是自由发挥。
知识库全部来自本课程真实资料(课程标准、课件、实验指导书、SDK 源码),每条回答都附出处引用与原文片段,可当场点开核对;系统提示词要求资料不足时明确说明,避免编造参数与实验。
可以。系统提供「本地知识库模式」:检索、工具链、出处引用与全部界面功能照常工作,仅把生成式改写替换为基于检索结果的要点组织;在线引擎不可用时会自动降级,无需人工切换。
工具调用(7 个工具由模型自主决策)、多轮记忆与学习画像、意图识别与任务规划、失败降级策略,以及全过程可观测的执行轨迹。
可以。知识库构建脚本对 docx / pptx / pdf / 源码通用,替换资料目录并运行 重建知识库.bat 即可复用;工具集也可按课程需要扩展。