Student Autocomplete Lab 是一个中文优先的 VS Code 算法学习助手。
少写了一行输入,它可以帮你补上;思路卡住了,它先给一个小提示;反复在同类问题上出错,它会把这些线索整理成一份只留在本地的学习画像。
它不会默认给出整题答案。代码依然由你完成,AI 只在合适的时候向前推一步。
🧪 Beta 状态: 核心流程已经可用,细节仍在持续完善。目前建议从源码启动体验。
你需要 VS Code 1.125.0 或更新版本,以及 Node.js 20+ 和 npm。
git clone https://github.com/Kaiserunix/student-autocomplete-lab.git
cd student-autocomplete-lab
npm ci
npm test
npm run compile然后用 VS Code 打开项目,按 F5,选择 Run Student Autocomplete Extension。
项目目前主要在 Windows + PowerShell 上开发和验证。macOS、Linux 用户也欢迎试用并反馈兼容性问题。
- 打开活动栏里的
AI 做题陪练。 - 在
AI 配置里选好 Provider 和模型。 - 导入一道洛谷题,或选择一份 Markdown。
- 创建练习文件,开始写代码。
- 看到 Ghost Text 就按需接受;卡住了再去问教练。
- 做完后复盘一下,再看看学习画像记录得是否准确。
如果补全没有响应,可以尝试命令:AI 做题陪练:立即补全一次(备用)。
| 你正在…… | 它会…… |
|---|---|
| 重复输入模板代码 | 补一小段 Ghost Text,通常只有 1–3 行 |
| 遇到 WA 或思路停滞 | 从边界、状态或反例里挑一个方向提醒你 |
| 需要更明确的提示 | 逐步增加细节,同时尽量保留思考空间 |
| 完成一道题 | 陪你找错、评分、复盘,看看是否还有更好的写法 |
| 反复卡在同类问题 | 把证据记进可查看、可纠正的 Student Skill |
| 不知道下一题练什么 | 给出推荐题目,也解释推荐理由 |
一句话总结:短补全减少重复输入,AI 教练推动思考,学习画像沉淀长期线索。
支持 Python、C、C++、Rust 等常见算法语言。停下输入约 350 ms,编辑器会尝试给出一小段灰色续写;想立刻再来一次,也可以手动触发。
它会尽量顺着现有代码继续写,而不是接管整个解题过程。
侧栏里的 AI 教练 可以:
- 给一个小提示;
- 再具体一点;
- 接着追问;
- 放弃后看讲解;
- 做完后找错、评分和复盘;
- 推荐下一道练习题。
AI 找错和评分都只是辅助判断。最终结果仍以编译器、样例和官方 OJ 为准。
在线题库可以切换洛谷、LeetCode、牛客、Codeforces 和 AtCoder,也可以直接导入一份 Markdown。项目还能帮你创建 Python、C、C++、Rust 练习文件。
洛谷和 AtCoder 可以直接读取公开题面;LeetCode、牛客需要本地适配器;Codeforces 当前读取公开元数据,完整题面可以通过 Competitive Companion 或 Markdown 导入。连接不可用时,Markdown 仍是一条可靠的备用通道。
Student Skill 会记录反复出现的痛点、可能有用的习惯和最近证据。它提供的是可回看的学习线索,而不是一份替你定义“是否学会”的成绩单。
判断不准确时可以纠正,不想继续使用的结论可以禁用,也可以查看历史版本并回滚。
| 方式 | 适合什么情况 |
|---|---|
| OpenAI API Key | 直接使用 OpenAI 模型 |
| Codex OAuth(实验性) | 使用本地 Codex CLI 的 ChatGPT 登录会话 |
| OpenAI-compatible | 接入 DeepSeek、MiMo 或其他兼容服务 |
| Anthropic Messages | 使用 Anthropic 原生接口 |
Codex OAuth 风险提示: 这条接入方式可能存在账号风险,也可能受到 Codex 服务调整的影响。作者自测期间暂未遇到封号,但这只是个人测试结果,不代表零风险或官方保证。介意的话,建议改用 API Key。
教学和补全可以使用不同模型:高频补全更看重速度,复杂复盘则可以交给更擅长推理的模型。
在侧栏 AI 配置 或 VS Code Settings 中填写:
- Provider 模式;
- Base URL;
- 教学模型;
- 自动补全模型;
- 补全请求格式;
- API Key,或 Codex OAuth。
从侧栏保存的 API Key 会进入 VS Code SecretStorage。secrets/models.env 只用于本地开发备用,并已被 Git 忽略。请不要把密钥提交到仓库。
实验性 Codeforces / AtCoder 提交
当前版本可以调用你自己安装的 online-judge-tools/oj,向 Codeforces 或 AtCoder 提交已经保存的活动代码文件。
每次提交前,你都要亲自检查题目链接、文件、语言和代码大小,再生成一次性确认。确认两分钟后失效,代码一改也会失效。
提交始终需要用户显式确认。扩展不会自动重试,也不会读取浏览器凭据或保存带源码的原始 CLI 输出。
只想看看流程,可以启动不会真的提交代码的本地演示:
npm run prototype:oj它只监听 127.0.0.1,默认演示模式不会访问真实 OJ。
默认都在本机:题库、做题记录、学习画像、Teacher Pack 和模型用量记录。
这些东西不会进 Git:
- API Key 和 OAuth 会话;
.runtime/里的运行记录;.student-autocomplete/里的个人学习数据;practice/里的练习文件;- 本地生成的 VSIX。
因为“看懂一份答案”和“自己能写出来”中间,通常还隔着几次尝试。
所以项目把补全和教学分成了两条路:
| 短补全能看到 | 短补全看不到 |
|---|---|
| 光标附近的学生代码 | 完整题面 |
| 当前语言与文件信息 | 标准答案 |
| 允许使用的代码习惯 | Teacher Pack |
| 教练对话、讲解报告和学习结论 |
题面和隐藏参考材料只会进入你主动发起的教学流程,不会被自动补全用来生成整题答案。
src/
├─ autocomplete/ 短补全:上下文、触发、请求、过滤
├─ skills/ 语言策略、个人习惯与模型渲染
├─ sidebar/ VS Code 侧栏与交互
├─ problemBank/ 洛谷和 Markdown 题库
├─ teaching/ 提示、讲解、评分与 Student Skill
├─ recommendation/ 下一题推荐
├─ models/ 模型客户端
├─ codex/ Codex OAuth 与 app-server
├─ oj/ 五平台题库连接、契约与状态
├─ submission/ 实验性 OJ 提交
└─ storage/ 本地 JSON / JSONL 数据
常用命令:
| 命令 | 用途 |
|---|---|
npm test |
运行全部测试 |
npm run compile |
编译扩展 |
npm run smoke:oj-read |
实测五平台搜索与只读导题 |
npm run prototype:oj |
启动本地 OJ Console |
npm run package:beta |
生成完整本地测试包 |
npm run package:beta-release |
生成清理后的公开候选包 |
npm run check:hygiene |
检查发行包是否包含本地数据或敏感内容 |
想了解更深的设计、实验和评测,可以从 docs/ 开始。Live trial 可能消耗付费模型额度,运行前请确认模型配置和预算。
核心功能已经可用,但还不是稳定发行版:
- 英文界面只覆盖主要路径;
- LeetCode、牛客的在线导题需要另装本地适配器;
- Codeforces 完整题面仍需要 Competitive Companion 或 Markdown;
- Codeforces、AtCoder 提交还是实验功能;
- C、C++、Rust 的补全仍在持续打磨;
- 推荐和学习画像需要更多真实练习来校准;
- macOS、Linux 还需要更多兼容性反馈。
接下来会把当前题目、代码、教练对话和复盘连成更自然的一条线,再逐步接入更多题库和 OJ。
详细进度记录在 docs/current-gaps-and-next-steps.md。
欢迎提交 Issue,尤其是这些反馈:
- 补全过长或偏离当前代码;
- 提示过于直接,已经接近完整答案;
- 某个边界条件没有得到提醒;
- 题目无法导入;
- 学习画像记录不准确;
- 配置完成后没有正常响应。
提交问题前,请删除 API Key、OAuth 信息、个人代码和未公开题面。
MIT © 2026 kaiserunix
第三方组件与许可见 THIRD_PARTY_NOTICES.md。