pi-learning-agent0.1.0
Structured learning interactions for Pi Coding Agent
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
Pi Learning Agent
在 Pi 中开启一门课,把讲解、练习和反馈放进同一个学习工作台。
Pi Learning Agent 是 Pi Coding Agent 的社区学习扩展。导师根据课程和主题讲解、出题,你在浏览器或终端中作答;答案作为结构化工具结果返回导师,评估后更新知识点掌握度。
界面预览

数据库设计学习示例:左侧回顾导师讲解,右侧完成当前练习;顶栏可展开知识点进度。
可以怎样学习
- 指定方向:用
/learn <课程> <主题>开始学习,导师从简短诊断切入。 - 理解与练习:阅读讲解,在当前题目中选择答案、描述思路或编写代码。
- 获得反馈:提交后由导师评阅,再根据表现继续讲解和出题。
- 查看进度:按知识点查看掌握度、尝试次数和正确次数。
支持的题型
| 作答形式 | 适合的练习 | 交互方式 |
|---|---|---|
| 单选题 | 概念辨析、判断正误、预测代码输出 | 选择一个答案后提交 |
| 多选题 | 规则判断、选择所有满足条件的情况 | 选择多个答案后提交 |
| 单行简答 | 短答案、简单填空 | 输入文本,按 Enter 提交 |
| 多行自由回答 | 解释概念、分析场景、描述解题思路 | 输入多段文本,支持 Ctrl/Cmd+Enter 提交 |
| 代码题 | 函数实现、代码补全、修改错误 | 在 Monaco 编辑器中作答,支持 Ctrl/Cmd+Enter 提交 |
单行与多行回答共用自由回答工具。选择题可以由导师配置是否允许跳过;多空填空、拖拽排序和连线题尚无专用组件。
为专注学习设计
- 可调双栏:拖动分隔条分配讲解与作答空间,也支持方向键调整;手机端自动切换为上下布局。
- 阅读不被打断:在底部时跟随导师输出;向上翻阅后暂停跟随,通过“有新内容”回到最新讲解。
- 按需查看进度:顶栏显示阶段和掌握度摘要,详细概念进度在侧栏展开,支持 Escape 关闭。
- 清晰的内容展示:区分导师讲解与个人回答,支持流式文本、Markdown、代码块和 KaTeX 公式。
- 保留作答草稿:自由回答和代码题的草稿保存在当前浏览器本地,刷新后可以继续编辑。
- 浏览器与终端衔接:浏览器连接时优先使用 Web 工作台;没有浏览器或等待作答时断开连接,可回退到终端界面(TUI)。
快速开始
最低要求为 Node.js 22.19.0。已验证的环境基线是 Node.js 24、npm 11、Pi Coding Agent 0.84.0;CI 覆盖 Windows/Linux 与 Node.js 22/24。开始学习前,请确保 Pi 已配置可用模型。
从源码运行
git clone https://github.com/marskim1130/pi-learning.git
cd pi-learning
npm ci
npm run build:web
npm run pi
在启动的 Pi 会话中输入:
/learn 数据库设计 如何设计出一个好的数据库
也可以尝试:
/learn rust ownership and borrowing
/learn 算法 二分查找的边界条件
第一个词是课程,其余文本是主题。扩展会打开浏览器工作台;如果窗口未自动出现,在同一个 Pi 会话中运行 /learn-open。工作台链接带有会话 token,请勿公开分享。
安装为 Pi 扩展包
完成源码构建后,可将本地目录安装到 Pi:
pi install /absolute/path/to/pi-learning
将示例路径替换为本机项目目录;路径含空格时使用引号。
从 npm 安装预构建版本:
pi install npm:pi-learning-agent@0.1.0
本项目采用 Pi 官方包格式。当前支持预构建 npm 包与源码构建流程;Pi 0.84.0 的 Git 安装默认省略开发依赖,因此直接使用 pi install git:... 无法获得完整的 Web 工作台。
常用命令
| 命令 | 用途 |
|---|---|
/learn <课程> <主题> |
开始学习并启动导师教学 |
/learn-open |
打开当前浏览器工作台 |
/learn-status |
查看课程、主题、阶段和等待中的题目 |
/learn-stop |
停止学习模式,取消等待中的交互 |
/learn-reset |
确认后清空当前学习进度和题目资格,保留课程与主题 |
工作原理与使用边界
扩展向导师提供以下工具,四个作答工具顺序执行:
| 工具 | 作用 |
|---|---|
learning_ask_single_choice |
单选题,返回 optionId 或结构化跳过结果 |
learning_ask_multi_choice |
多选题,返回 optionIds 或结构化跳过结果 |
learning_ask_free_response |
单行或多行文本回答 |
learning_ask_code |
代码作答,返回 language 和 code |
learning_record_attempt |
记录导师评估与必填讲解,在工作台显示判定和讲解,更新知识点掌握度 |
回答直接结束对应的工具调用,不会被伪装成新的用户消息。跳过的题目不能计分,已完成评分的题目不能重复评分;重置、停止学习和切换 Pi 分支会释放旧交互。
- 代码评阅:默认把代码交给导师评阅,不在主机执行。只有宿主显式注入 runner 时才开放支持语言的本地自测;该 runner 不构成沙箱。
- 编辑器能力:Monaco 提供代码编辑界面,目前没有 Language Server。
- 进度保存:学习状态保存在当前 Pi 分支,尚无跨会话长期学习档案;题目完成凭据保存在进程内,重新加载后不恢复未评分旧题的资格。
- 连接切换:Web/TUI 断连切换采用轮询。
完整的安全范围见 SECURITY.md。
开发与验证
| 目录或文件 | 职责 |
|---|---|
web/ |
React 工作台、作答组件、草稿和事件状态 |
shared/ |
Extension 与 Web 共用的协议和学习状态类型 |
extension/learning-session.ts |
评分资格、重置与会话生命周期 |
extension/server/ |
题目等待、HTTP/SSE、token 与静态资源 |
extension/tools/ |
Pi 工具及 Web/TUI 呈现 |
npm run check # 两端类型检查与日常测试
npm run test:workspace # 真实 Edge 工作台回归,虚构 API,不调用模型
npm run build:web # 构建浏览器工作台
npm run check:package # 构建、归档离线安装与 Pi/资源验收
npm run smoke # 真实 Pi RPC 加载,不调用模型
npm run check:release # 完整本地发布验收
npm run release:prepare # 验收后生成可发布 .tgz
真实模型端到端测试单独运行,会消耗模型额度:
npm run e2e -- a --timeout 540
npm run e2e:browser
浏览器端到端测试当前要求 Microsoft Edge。历史端到端报告记录的是对应阶段的验证结果。
test:workspace 独立验证真实 Monaco 的只读区移动、刷新恢复和重置后提交一致性,只启动临时本地服务,不需要模型配置。
更多说明:架构设计 · 贡献指南 · 发布流程 · 更新记录。
许可证
MIT。这是 Pi Coding Agent 的社区扩展。