Skip to content
Conduit

skill

personalized-learning-agent

私人技术学习助教Agent

SUERYET/personalized_learning_agentcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/SUERYET/personalized_learning_agent itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 26, 2026

StudyAgent · 私人技术学习助教

自研通用智能体 —— 对标 Claude Code 的交互体验与可扩展性,但不局限于代码编写。 覆盖计算机科学与技术的学习、CV/深度学习、数学建模、编程开发、网络安全实验、Obsidian 知识库管理等场景。

设计哲学:核心极小化 + Skill 插件化 —— 一切能力通过 Tool / Skill 插件扩展,新增能力不改核心代码。


✨ 核心特性

领域能力
🧠 推理ReAct 循环 · 流式输出 · 工具并行执行 · 同工具失败熔断 · 迭代上限防死循环
💾 记忆短期记忆(前缀冻结 + 分块压缩 + LLM 压缩摘要,长会话不失忆)· 长期记忆(SQLite 知识点/偏好/会话存档)· 任务进度记录
🧩 Skill 系统Python Skill 插件 + SKILL.md 渐进式披露(25 个生态 Skill 按需加载,不占上下文预算)
🔌 MCPstdio + Streamable HTTP 双传输 · Playwright 浏览器自动化开箱即用
📚 知识库Obsidian 关键词 + 语义向量混合检索(numpy + bge-m3,失败自动回退)
🖼 多模态SiliconFlow Qwen-VL 图片分析 · CLI Alt+V / Web Ctrl+V 粘贴图片
🔒 安全危险操作分级确认:Shell/删除/笔记写入逐次确认(CLI 弹窗 / Web 确认卡片 / API 待确认队列)
🚀 双端终端 CLI(prompt-toolkit + rich)+ Web 深色界面(FastAPI)

Web 前端:Markdown + LaTeX(KaTeX) + 代码高亮 · 斜杠命令补全 · 思考/工具/确认卡片 · 停止生成 · 会话分组/历史 · CherryStudio 式图片附件(悬停预览)· 计划模式横幅


🚀 快速开始

环境要求

安装

pip install -e .
cp .env.example .env   # Windows: copy .env.example .env

编辑 .env,至少填写:

LLM_API_KEY=sk-...                # 主模型 Key(DeepSeek / 任何 OpenAI 兼容服务)
LLM_API_KEY_BACKUP=sk-...         # 备用 Key(可选)
WEB_SEARCH_API_KEY=               # 火山引擎豆包搜索 Key(可选)
SILICONFLOW_API_KEY=              # 多模态图片分析 Key(可选)

启动 CLI

study

启动 Web

study serve        # 自动打开浏览器 → http://127.0.0.1:8600

端口可在 .env 修改:API_PORT=8600。设置 API_TOKEN 后 API 请求需携带 X-API-Token 头。


🖥 使用指南

界面预览

Web 端(study serve → http://127.0.0.1:8600)

Web 界面

终端 CLI(study)

CLI 界面

CLI 键位

键位功能
Enter发送
Alt+Enter / Ctrl+J换行
Alt+V粘贴图片(剪贴板 → 文件选择 → 输入框三级回退)
Ctrl+O展开本轮思考过程
↑ / ↓历史输入
Tab补全斜杠指令
Ctrl+D退出

斜杠指令

指令功能
/help查看所有指令
/plan on|off计划模式:先出计划待确认再执行
/think on|off思考过程显隐
/memorize <知识点> [掌握度]标记已掌握
/forget <知识点>移除记忆
/memory list|search <词>查看/搜索长期记忆
/resume [id|#序号|last]恢复历史会话(/resume delete #2 删除)
/save [标题]保存并命名会话
/usage上下文占用与缓存命中率
/model [名称]查看/切换模型(含 @backup 备用渠道)
/skills /tools查看技能与工具
/clear清空会话上下文

Web 界面

  • 侧边栏:会话按「今天/昨天/更早」分组,hover 删除
  • 输入框:/ 命令补全(↑↓ 选择 / Enter 应用)、Ctrl+V / Alt+V 粘贴图片(附件块 + 悬停预览)
  • 消息区:思考折叠块、工具卡片(参数/耗时/结果)、⚠️ 危险操作确认卡片(在线批准/拒绝)、■ 停止 按钮、代码块复制、整条回答复制
  • 历史消息显示真实时间(今天 HH:MM,更早 MM-DD HH:MM)

🧩 Skill 能力矩阵

分类Skill说明
基础utility当前时间 / 安全表达式计算
代码code_executorPython 沙箱(超时 + 密钥窃取检测)/ Shell(每次确认)
文件file_operations读写删列,路径锁定工作区
知识库obsidian_knowledge搜索/读取/双链/反向链接,写入需确认
检索vector_index语义检索(numpy + bge-m3),与关键词混合
笔记note_generator网课/知识点笔记模板
联网web_search火山引擎豆包搜索(网页/图片/时间过滤)+ 网页抓取
多模态multimodal图片分析(本地路径 / URL / base64)
自测self_test出题/批改指令模板
进度progress_tracker任务进度记录,自动注入会话
并行subagents派发独立子任务(独立记忆 + 循环,危险操作自动拒绝)
按需加载skill_loaderread_skill 渐进式披露入口
MCPmcp外部 MCP 服务器接入(.mcp.json 配置)

生态 Skill(来自 Claude Code,纯 SKILL.md)

  • superpowers 方法论 ×14:systematic-debugging、test-driven-development、writing-plans、verification-before-completion、brainstorming 等
  • planning-with-files:Manus 风格文件规划系统(24 脚本 + 模板)
  • ui-ux-pro-max ×7:banner-design、brand、design、design-system、slides、ui-styling 等
  • officecli:Office 文档(.docx/.xlsx/.pptx)处理
  • sillytavern-web:SillyTavern 生态集成
  • 通用对话归档总结:会话归档

所有 MD Skill 默认只注入一行路由描述,正文经 read_skill 按需加载 —— 几十个 Skill 共存不撑爆上下文预算。


🔌 MCP(Playwright 浏览器自动化)

.mcp.json 已内置配置,首次使用需全局安装:

npm install -g @playwright/mcp

启动后自动注册 24 个浏览器工具(导航/点击/填表/截图/网络请求等),browser_navigate 等真实调用已验证。

自定义 MCP 服务器:编辑 .mcp.json(Claude Code 兼容格式),支持 stdio(command+args)与 HTTP(url,可选 command 自启服务器)两种传输。


🏗 架构概览

┌─────────────────────────────────────────────────────┐
│ 交互层                                               │
│   CLI(prompt-toolkit + rich)    Web(FastAPI + JS) │
└────────────────────────┬────────────────────────────┘
┌────────────────────────▼────────────────────────────┐
│ 核心层 agent_core                                    │
│   runtime(门面)→ ReAct 循环 → LLM 客户端 → 工具调度 │
│   短期记忆(压缩+摘要) 长期记忆(SQLite) 确认队列   │
└────────────────────────┬────────────────────────────┘
┌────────────────────────▼────────────────────────────┐
│ 扩展层                                               │
│   skills/(Python + SKILL.md 渐进式披露)  MCP 服务器 │
└─────────────────────────────────────────────────────┘
agent_core/   核心:runtime / agent_loop / llm_client / memory / tool_registry / skill_manager
skills/       扩展:12 个内置 Skill + 25 个生态 MD Skill + skill_md 解析器
cli/          CLI 交互层
server/       Web:FastAPI + 静态前端(vendor 本地化,离线可用)
memory/       长期记忆 SQLite
data/         运行时数据(上传图片、向量索引)

⚙️ 配置参考(.env)

分组变量说明
LLMLLM_PRIMARY_MODEL / LLM_API_BASE / LLM_API_KEY主模型(OpenAI 兼容)
LLM_API_KEY_BACKUP / LLM_MAX_RETRIES / LLM_TIMEOUT备用 Key / 重试 / 超时
LLM_MODELS可切换模型列表(/model),@backup 后缀走备用渠道
路径OBSIDIAN_VAULT_PATH / MEMORY_DB_PATH / LOG_DIR知识库 / 记忆库 / 日志
安全SECURITY_CONFIRM_SHELL / SECURITY_CONFIRM_DELETE / SECURITY_OBSIDIAN_READONLY危险操作确认开关
SECURITY_PYTHON_TIMEOUT / SECURITY_CONFIRM_TIMEOUT沙箱超时 / 确认等待
AgentAGENT_MAX_ITERATIONS / AGENT_CONTEXT_TOKEN_BUDGET / AGENT_COMPACT_RATIO循环上限 / 预算 / 压缩比例
AGENT_SUMMARIZE_ON_COMPACT压缩时 LLM 摘要
CLICLI_SHOW_THINKING / CLI_THEME思考显隐 / 主题
搜索WEB_SEARCH_API_KEY火山引擎豆包搜索
多模态SILICONFLOW_API_KEY / MULTIMODAL_MODELSiliconFlow 视觉模型
向量VECTOR_ENABLED / VECTOR_EMBEDDING_MODEL语义检索开关(默认关)
APIAPI_HOST / API_PORT / API_TOKEN / API_CONFIRM_TIMEOUTWeb 服务 / 鉴权 / 确认超时

📡 HTTP API

端点功能
POST /api/v1/chat单轮对话 {message, session_id?}
POST /api/v1/chat/streamSSE 流式(thinking/delta/tool_call/tool_result/confirmation/done)
GET /api/v1/sessions · DELETE /api/v1/sessions/{id}会话管理
GET /api/v1/sessions/{id}/messages历史消息(含 created_at)
GET /api/v1/confirmations · POST /api/v1/confirmations/{id}待确认操作列表/裁决
POST /api/v1/command斜杠指令(/help /memorize /plan 等)
POST /api/v1/images图片上传(base64 → data/uploads/)
GET /api/v1/health健康检查

鉴权:配置 API_TOKEN 后,请求需带 X-API-Token: <token> 或 Authorization: Bearer <token>。


🧪 开发指南

测试

pytest                    # 397 个测试,全部离线可跑(FakeLLM 注入,不烧 token)

覆盖:ReAct 循环、记忆压缩/摘要、缓存前缀稳定性、LLM 重试/降级、Skill 加载、MCP 双传输、HTTP API、Web E2E(Playwright 真浏览器:LaTeX 渲染、确认卡片、图片粘贴、命令补全)。

新增一个 Skill

# skills/my_skill/skill.py
from agent_core.tool_spec import SafetyLevel, ToolDefinition, ToolResult
from skills.base_skill import BaseSkill

class MySkill(BaseSkill):
    name = "my_skill"
    description = "触发词密集的路由描述"

    @property
    def tools(self) -> list[ToolDefinition]:
        return [ToolDefinition(name="my_tool", description="...",
                               parameters={...}, safety_level=SafetyLevel.SAFE)]

    async def execute(self, tool_name: str, params: dict) -> ToolResult:
        return ToolResult.success("结果")

在 skills/my_skill/__init__.py 导出后重启即可自动发现。纯指令型 Skill 只需放一个 SKILL.md(支持 YAML frontmatter 与折叠块),经 read_skill 按需加载。


🗺 路线图

  • 阶段 0-5:核心循环 / Skill 系统 / 知识库 / 代码执行 / 长期记忆 / Web 体验打磨
  • 阶段 6:AgentRuntime 门面 · HTTP API · Web 前端 · 待确认队列 · 语义检索
  • NoneBot(QQ)渠道 —— API 已就绪,可直接对接
  • P2:ruff + mypy + CI · README 配图 · 版本 bump · Web 深浅色切换

📄 License

MIT © 2026 SUERYET

↑↓ navigate openesc close