omp packages

pi-learning-agent0.1.0

Structured learning interactions for Pi Coding Agent

qiliangjin Published 1 month ago MIT ~217 downloads/mo

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.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

Pi Learning Agent

在 Pi 中开启一门课,把讲解、练习和反馈放进同一个学习工作台。

Pi Learning Agent 是 Pi Coding Agent 的社区学习扩展。导师根据课程和主题讲解、出题,你在浏览器或终端中作答;答案作为结构化工具结果返回导师,评估后更新知识点掌握度。

界面预览

Pi Learning 学习工作台:左侧是数据库设计讲解,右侧是自由回答练习

数据库设计学习示例:左侧回顾导师讲解,右侧完成当前练习;顶栏可展开知识点进度。

可以怎样学习

  1. 指定方向:用 /learn <课程> <主题> 开始学习,导师从简短诊断切入。
  2. 理解与练习:阅读讲解,在当前题目中选择答案、描述思路或编写代码。
  3. 获得反馈:提交后由导师评阅,再根据表现继续讲解和出题。
  4. 查看进度:按知识点查看掌握度、尝试次数和正确次数。

支持的题型

作答形式 适合的练习 交互方式
单选题 概念辨析、判断正误、预测代码输出 选择一个答案后提交
多选题 规则判断、选择所有满足条件的情况 选择多个答案后提交
单行简答 短答案、简单填空 输入文本,按 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 的社区扩展。