OJ-Agent
在 VSCode 里刷题,从此告别"浏览器 / IDE / 终端"之间来回切窗口。
OJ-Agent 是一个面向多个 OJ 平台的 VSCode 扩展。它把 浏览题库 → 一键拉题 → 本地评测 → 在线提交 → AI 解题答疑 整合到编辑器内,让你专注于"思考与写代码"本身。
为什么选择 OJ-Agent
- 🌐 6 大平台统一工作流 —— LeetCode 中国站、HDOJ、Codeforces、洛谷、POJ、蓝桥云课,一个插件全搞定
- 🚀 一键拉题,本地编码 —— 题面、示例用例、源码模板自动落地,离开浏览器也能刷
- 🧪 本地评测先行 —— 提交前先在本地把所有用例跑一遍,看清楚哪个 case 错在哪里
- 🤖 AI 解题助手 —— 卡题时让 AI 解释错因、给思路、给题解;不靠它写答案,靠它讲清思路
- 🔐 凭证与隐私安全 —— Cookie 与 API Key 仅存系统钥匙串,AI 上下文默认脱敏
- 🌍 多语言支持 —— C / C++ / Python3 / Java / JavaScript
核心功能
📚 题库浏览
打开活动栏的 OJ-Agent 图标,左侧出现题库视图:
- 平台 → 题目两层结构,登录后按平台展开
- 顶部工具栏:搜索关键词 / 按难度筛选 / 按标签筛选 / 上下翻页 / 跳页
- 右键题目可拉取到本地、在浏览器中打开、复制题目 ID、在资源管理器中显示
- 每道题展开后挂载本地源码与所有测试用例,自定义用例随手增删
📖 题面 Webview
拉题后自动打开题面面板,内嵌 markdown-it + KaTeX 渲染:
- 完整题目描述、公式、示例用例离线渲染
- 顶部按钮:运行 / 提交 / 刷新 / 打开代码 / 浏览器中打开
- 支持单题语言切换——同一道题可以用 C++ 试一版,再用 Python 试一版
- 一键唤起 AI:解释错因 / 解题思路 / 完整题解 / 解释代码
🧪 本地评测
写完代码点 运行,所有官方示例 + 自定义用例自动跑:
- 顶部 summary:
3 / 5 AC, total 240ms,一键重跑
- 每个用例分别展示:判定结果、耗时、期望输出、实际输出、unified diff
- 失败用例一键点击 AI · 解释错因,自动把题面、你的代码、错误信息打包给 AI
☁️ 在线提交
本地通过后点 提交,状态栏实时显示进度:
🚀 OJ-Agent → ⟳ 提交中... → Judging... → ✅ AC 120ms
提交记录会保留,可随时通过 打开最近一次提交结果 重新查看。
🤖 AI 解题助手
不止是"对话框",而是贴合刷题场景的四种能力:
| 能力 |
用法 |
| 解释错因 |
WA 时点失败用例旁的按钮,AI 看完题面、代码、错误用例后给出诊断 |
| 生成思路 |
卡题时拿到分析方向,而不是直接给代码 |
| 生成题解 |
想对照标准做法时,要一份完整题解 |
| 解释代码 |
阅读他人或老代码时,让 AI 逐行讲清 |
自由接入任何模型:
- 同时支持 OpenAI Chat Completions 与 Anthropic Messages 协议
- 兼容 Azure OpenAI、DeepSeek、OpenRouter、Ollama 等任意兼容端点
- 多 Profile 切换:日常题用便宜模型,难题切大模型,一条命令搞定
- 独立 AI 助手面板,支持多会话、对话历史持久化
🔐 登录与凭证
支持两种登录方式:
- 浏览器自动登录(推荐):扩展拉起系统 Chrome / Edge / Brave,你在浏览器内手动登录,Cookie 自动回传
- 手动粘贴 Cookie:附带详细的 Cookie 获取指引
所有凭证仅存 VSCode SecretStorage,绝不写入设置文件。OJ Cookie 与 AI Key 命名空间隔离。
快速开始
第 1 步:打开命令面板(Cmd+Shift+P / Ctrl+Shift+P),运行 OJ-Agent: 设置工作区根目录,选一个本地文件夹
第 2 步:运行 OJ-Agent: 登录 OJ 平台(浏览器自动),选你想登录的平台,在弹出的浏览器中完成登录
第 3 步:点击活动栏的 OJ-Agent 图标 → 展开题库 → 找一道题 → 右键 拉取到本地
第 4 步:题面打开后,编辑器侧自动出现 solution.cpp(或你选的语言),开始写代码
第 5 步:题面工具栏点 运行,看本地评测结果
第 6 步:通过后点 提交,等待最终判定
(可选)配置 AI:命令面板 → OJ-Agent: 打开 AI 模型设置 → 选预设或填自定义端点 → 填 API Key → 测试连接
支持的平台
| 平台 |
登录方式 |
| LeetCode 中国站 |
浏览器自动 / Cookie 粘贴 |
| HDOJ(杭电 OJ) |
账号密码 / 浏览器自动 |
| Codeforces |
浏览器自动 / Cookie 粘贴 |
| 洛谷 Luogu |
浏览器自动 / Cookie 粘贴 |
| POJ(北大 OJ) |
账号密码 |
| 蓝桥云课 |
JWT |
各平台能力略有差异——例如 LeetCode 中国站因 HttpOnly Cookie 限制无法在 Webview 内直接登录,扩展会自动选择最合适的登录方式。
隐私与安全
- 所有 OJ 平台 Cookie / 账号密码、AI API Key 均仅存于 VSCode SecretStorage,从不落到
settings.json 或仓库
- OJ 凭证与 AI 凭证使用独立命名空间,互不可读
- 发送给 AI 的上下文默认脱敏(剥离
username / submissionId / Cookie / Authorization),可在设置中关闭
- 浏览器自动登录使用临时配置目录,结束后自动清理,不会污染你日常用的浏览器配置
- Cookie 值不写入任何日志
常用配置
在 VSCode 设置中搜索 ojAgent.,可调整:
- 工作区:题库根目录、启用的平台、默认语言
- 网络:HTTP 代理、请求超时、各平台限速
- 评测:单 case 超时、自定义编译 / 运行模板
- 提交:提交间隔、轮询超时、提交前是否二次确认
- AI:当前 Profile、限速、是否脱敏
反馈与贡献
欢迎到 GitHub 仓库 提 Issue 或 PR:
- 想接入新的 OJ 平台?参考仓库内的平台适配器接入文档
- 遇到 bug 或想提建议?直接开 Issue
- 喜欢这个项目?欢迎给个 Star ⭐
许可
MIT