BlueTeamBardiel/VIRGIL-Second-Brain
GitHub: BlueTeamBardiel/VIRGIL-Second-Brain
基于 Obsidian 和 Claude Code 构建的网络安全学习型知识库,自动整合威胁情报并通过费曼教学法和间隔重复帮助学习者高效备考安全认证。
Stars: 1 | Forks: 0
# VIRGIL — 面向网络安全学习者的 AI 驱动第二大脑
    
## 它的功能
VIRGIL 每天提取威胁情报,让你针对薄弱主题进行测验,追踪你的知识掌握情况,并随着时间的推移自动积累知识。通过 [Ollama](https://ollama.com) 在你自己的硬件上运行。无需订阅。数据不会离开你的设备。
## 第一天你能得到什么
- **1,500+ 知识笔记** — Security+、CySA+、CCNA、MITRE ATT&CK,以及 350+ 个带有费曼解释的 CVE
- **每日威胁情报** — 22 个 RSS 订阅源 + NVD CVE 流水线,每天早晨自动执行
- **学习命令** — `/cysa`、`/ccna`、`/secplus`、`/aplus` — 领域映射的费曼学习课程
- **间隔重复** — `virgil-review` 根据你的测验分数提取需要复习的内容
- **对话捕获** — 一键将任何 Claude.ai 会话保存到你的知识库中
## 安装
```
bash <(curl -fsSL https://raw.githubusercontent.com/BlueTeamBardiel/VIRGIL-Second-Brain/main/scripts/install.sh)
```
**前提条件:** Linux / macOS / WSL2 · [Ollama](https://ollama.com) · [Obsidian](https://obsidian.md) · [Claude Code](https://claude.ai/code)
### 哪种设置适合你?
| 情况 | 推荐方案 |
|-----------|-----------------|
| 有 API key | 在 `.env` 中设置 `ANTHROPIC_API_KEY` — 最快的配置方式 |
| 拥有 8 GB 以上显存的 GPU | 安装 Ollama,拉取 `qwen2.5:14b` |
| 笔记本电脑 / 无 GPU | 使用 API key — Ollama 会太慢 |
| 只是想试一试 | 使用 API key,免费额度即可满足 |
无需 API key。二十分钟即可完成设置。
## 快速开始
安装后:
1. 打开 Obsidian → 将其指向 `~/VIRGIL/notes`
2. 在 `~/VIRGIL` 中运行 `claude` — VIRGIL 会自我介绍
3. 输入 `/cysa` 或 `/secplus` 开始学习课程
4. 输入 `/virgil-quiz "topic"` 对任何主题进行测验
5. 结束课程时输入 `/handoff` 以保存上下文
## 界面预览
### 学习课程(在 Claude Code 中输入 `/cysa`)
```
VIRGIL Session — 2026-04-29
Weakest topics: Kerberoasting, Lateral Movement, SIEM Architecture
Topic 1: Kerberoasting
─────────────────────────────────────────────────────
Analogy: Imagine a bouncer who hands out wristbands (tickets)
to prove you're allowed in. Kerberoasting is when an attacker
steals those wristband templates and forges their own offline,
without ever needing to talk to the bouncer again.
In a real attack: attacker requests a Kerberos service ticket
for any SPN, extracts the ticket, and cracks it offline with
hashcat to recover the service account password.
Q: What makes a service account vulnerable to Kerberoasting?
A) It uses NTLM authentication
B) Its password hash is embedded in the Kerberos ticket
C) It has local admin rights
D) It uses LDAP for authentication
Your answer: _
```
### 知识库健康检查(运行 `virgil-review`)
```
══════════════════════════════════════════
VIRGIL Review Session — 2026-04-29
══════════════════════════════════════════
Due today (3 topics):
1. kerberoasting last: 2/5 overdue: 8 days
2. lateral movement last: 3/5 overdue: 3 days
3. SIEM Architecture last: 4/5 due: today
Coming up:
4. SQL Injection due in: 2 days
5. Active Directory due in: 5 days
══════════════════════════════════════════
Quiz the top overdue topic now? (y/N):
```
### 系统状态(每次课程开始时运行)
```
══════════════════════════════════════════
VIRGIL Status — 2026-04-29 09:00
══════════════════════════════════════════
Bridge (ChromaDB): ✅ running — 7868 chunks
Ollama: ✅ running — llama3.2
OpenWebUI: ✅ running (port 3000)
Conversation ingest: ✅ running (port 5002)
Promote.sh: ✅ ran today
Vault: ✅ 5030 notes
Ghost-fill: ✅ complete (4664/4664)
Health check: ✅ today
══════════════════════════════════════════
```
## 斜杠命令
在 Claude Code 中运行(在你的 VIRGIL 目录下运行 `claude`)。
| 命令 | 功能 |
|---------|-------------|
| `/cysa` | CySA+ CS0-003 学习课程 — 费曼提示,基于 quiz-scores.json 的薄弱主题倾向 |
| `/secplus` | Security+ SY0-701 学习课程 — 根据 SY0-701 目标进行领域映射的费曼提示 |
| `/aplus` | A+ Core 1/Core 2 学习课程 — 将主题映射到 220-1101/1102 考试领域 |
| `/ccna` | CCNA 学习课程 — 主题解释器、实验生成器或测验模式 |
| `/reflect` | 课程结束时的记忆提炼 — 填写每日日志摘要,标记已完成的任务 |
| `/handoff` | 关闭前将课程上下文保存到知识库 — 让你可以在新的聊天中恢复 |
| `/research` | 对任何主题进行结构化研究 → 在知识库中生成格式化的 Obsidian 笔记 |
| `/challenge` | 挑战提议的决策或架构 — 扮演魔鬼代言人 |
| `/day` | 大脑倾倒处理器 — 记录零散笔记,根据你的提及创建主题存根 |
| `/week` | 将过去 7 天的每日日志综合成每周摘要笔记 |
| `/task` | 捕获任务并将其归档到相应的记忆部分 |
| `/job` | 求职跟踪器 — 添加招聘信息,起草求职信,记录后续跟进 |
| `/lab` | 生成实时集群状态快照 |
| `/focus` | 为特定模式加载上下文:`lab`、`study [cert]` 或 `jobsearch` |
| `/sync` | 将外部项目进度同步到知识库 — 更新每日日志和记忆 |
| `/enrich` | 运行增强流水线 — 通过 LLM 填充存根笔记 |
| `/ingest-chat` | 将 Claude.ai 对话导出文件提取到知识库中 |
| `/deploy` | 通过 SSH 将 VIRGIL 部署到集群机器 |
| `/start` | 欢迎新学生或返校学生 — 构建上下文,显示你上次学到哪里 |
| `/diagnose` | 学生摸底:记录你的动机、背景和学习风格,运行诊断测验以找到你的起始章节。运行 `/diagnose update` 以刷新你的档案 |
| `/plan` | 制定逐周学习路线图,包含章节复选框和切合实际的考试时间表 |
| `/teach` | 基于知识库内容逐章教学 — 根据你的背景调整费曼类比,直到你理解才会继续 |
| `/burnout` | 倦怠恢复:真实的谈话,一个问题,尽可能小的重新切入点 |
| `/imposter` | 冒名顶替综合征:分解你遇到的具体障碍,运行轻松的测验以展示你已经掌握的知识 |
| `/absence` | 中断后返回:根据你离开的时间提供分层响应 |
## 学习引擎
VIRGIL 不仅仅是一个笔记库 — 它是一个了解你是谁并据此进行教学的学伴。
### 入门
```
/diagnose — Tell VIRGIL who you are and where you're going.
Builds your profile, runs a diagnostic quiz,
finds your starting point.
/plan — Generates your week-by-week study roadmap.
Realistic timelines, chapter checkboxes,
exam day prep.
/teach — Chapter-by-chapter teaching from vault content.
Feynman analogies tuned to your background.
Won't move on until you understand it.
```
### 认证路径
```
A+ → Network+ → Security+ → CCNA → CySA+
```
每项认证都建立在前一项的基础之上。VIRGIL 为所有这四项认证提供了预构建的内容。你不需要教科书 — 知识库里什么都有。
### 导入你自己的材料
```
# 导入 PDF 教科书
virgil-cert-ingest pdf ~/books/ccna-guide.pdf "CCNA"
# 导入视频转录文本
virgil-cert-ingest transcript ~/transcripts/sec-plus.txt "Security+"
# 导入学习指南 URL
virgil-cert-ingest url https://example.com/ccna-notes "CCNA"
```
VIRGIL 以费曼风格改写原始材料 — 它不会一字不差地复制原文。你的笔记,你的知识库,你的语言。
## 运作原理

**VIRGIL 是一个 Obsidian 知识库 + 自动化系统。**
核心循环:
1. **提取** — 威胁情报订阅源、CVE、ATT&CK 技术每天早晨送达
2. **连接** — wikilink 脚本每晚运行,将 CVE → ATT&CK → NIST 控制措施链接起来
3. **学习** — 费曼式学习课程会提出反驳,发现盲点,并记录你做错的地方
4. **提炼** — 通过每晚的 AI 提炼,将会话日志 → 永久记忆事实
5. **重复** — 测验分数显示薄弱主题;系统知道该强化什么
经过六个月的实际使用:不再是 500 个互不相关的文件,而是一个知识图谱 — CVE 链接到 ATT&CK 技术,链接到 NIST 控制措施,再链接到你在实践中看到它的实验室配置。
### 架构
| 层 | 功能 |
|-------|-------------|
| Obsidian 知识库 | Markdown 笔记,图谱视图,搜索 |
| Claude Code | AI 会话,学习命令,记忆 |
| 提取流水线 | RSS,CVE,URL,PDF → 笔记 |
| Ollama | 本地推理,无 API 成本 |
| ChromaDB (可选) | 对你的知识库进行向量搜索 |
| OpenWebUI (可选) | 浏览器和移动端访问 |
完整详情:[`ARCHITECTURE.md`](ARCHITECTURE.md)
## 理念
*Nel mezzo del cammin di nostra vita — 在我们生命旅途的中途,我发觉自己身处一片幽暗的森林,因为笔直的道路已迷失。*
但丁在 1308 年写下了这句话。维吉尔 — 这位罗马诗人 — 被派去引导他走过接下来的一切。不是为了让他绕过。不是为了让他舒适。而是为了让他能够存活。向他展示他所穿过的结构,这样他就不再对错误的事物感到恐惧。
这个项目以他的名字命名。这个领域就是那片幽暗的森林。VIRGIL 是向导。
你正在为认证考试学习。或者在搭建一个家庭实验室。或者试图吸收那些降落速度快于你处理速度的威胁情报。
网上的建议无处不在且相互矛盾。每个路线图都有一个推广链接。你在求职空隙中学习,但什么都记不住 — 因为没有一个系统将这一切串联起来。
这是一个结构性问题,而不是个人问题。VIRGIL 就是解决它的方法。
它正是诞生于这种煎熬之中 — 不是由某个在成功后将课程打包成商品的人创建的 — 而是实打实地在压力下,在为 CySA+ 学习、运行家庭实验室以及在严峻的就业市场中摸索时开发出来的。你不必从零开始构建。使用现有的成果吧。
VIRGIL 不会因为你的出现而祝贺你。工作就是工作。VIRGIL 是你让它产生复利的方式。
## 安全
欢迎社区审计和贡献 — 参见 [CONTRIBUTING.md](CONTRIBUTING.md)
此版本中已知的缓解措施:提取脚本中的输入净化,url-ingest 上的 SSRF 防护,仅从 `.env` 获取 API key(绝不嵌入 crontab 或代码中)。
*"我来是为了引导你到达彼岸;进入永恒的黑暗;进入火与冰之中。"*
*— 维吉尔,《地狱篇》第三首*
道路是真实的。它并不舒适,也不会变得更轻松。你会变得更有能力 — 这是截然不同的事情。
标签:AI助手, AI辅导, AI风险缓解, CCNA, Claude, Cloudflare, Cutter, CVE, CVE检测, CySA+, Feynman学习法, LLM评估, Markdown笔记, meg, MITRE ATT&CK, Obsidian, Ollama, RSS, Ruby, Security+, 个人知识管理, 信息安全, 威胁情报, 安全教育, 安全认证, 开发者工具, 数字签名, 本地大模型, 本地部署, 每日摘要, 知识库, 知识管理, 知识管道, 第二大脑, 网络安全, 网络安全, 网络安全学习, 网络调试, 自动化, 间隔重复, 防御加固, 隐私保护, 隐私保护