Learn Portal 是一个轻量级 Web 门户,用于浏览 headless Hermes Agent 服务器上的 /teach 学习工作区并与之交互。它扫描工作区目录,把每个主题列为一张卡片,并在浏览器中提供经过包装的课程视图。它为每节课增加了一个 💬 Ask 助手,使用户可以在课程停下的地方继续学习对话。该门户不使用数据库,也不依赖外部服务,只依赖文件系统和 Hermes CLI。 每次请求时,门户会扫描 /mnt/data/Workspace/Learning/*/MISSION.md 来发现教学工作区。它从每个 MISSION.md 中提取显示标题和简短预览,并列出每个工作区的课程和参考文档。所有状态都存放在文件系统中,因此无需维护数据库。课程页面保留其原始内容、样式和交互脚本,仅做三处精确的 DOM 注入:一个 base 标签、限定作用域的导航栏样式,以及一个固定导航栏。 💬 Ask 面板由与门户之间的 WebSocket 支撑。用户发送消息时,门户会找到该主题已有的 Hermes 会话,并为每条消息针对该主题的工作区启动一个一次性、非交互的 hermes chat -Q 子进程。它捕获流式回复,把 Hermes CLI 的界面装饰剥离、只留下教学文字,并以增量 delta 的形式通过 socket 推回。该设计在服务器端是无状态的,不保持长期运行的智能体或活跃的模型连接。
用户用 Learn Portal 在首页以卡片形式浏览所有 /teach 学习工作区。
用户用 Learn Portal 阅读带导航和参考文档的包装后的课程页面。
用户用 Learn Portal 通过 💬 Ask 聊天面板在课程内提出后续问题。
用户用 Learn Portal 继续某个主题的 Hermes /teach 会话。
用户用 Learn Portal 在页面加载时自动发现新的教学工作区。
用户用 Learn Portal 通过创建包含 MISSION.md 和课程的子目录来添加新工作区。