Manmohan08/ai-cognitive-routing-rag
GitHub: Manmohan08/ai-cognitive-routing-rag
一个基于 LLM 的认知路由与 RAG 对抗系统,解决个性化内容生成与提示注入安全问题。
Stars: 0 | Forks: 0
# Grid07 认知循环
## 架构
```
┌──────────────────────────────────────────────────────────────────┐
│ Grid07 Cognitive Loop │
├──────────────────┬──────────────────┬────────────────────────────┤
│ Phase 1 │ Phase 2 │ Phase 3 │
│ Persona Router │ Content Engine │ Combat Engine │
│ │ │ │
│ ChromaDB │ LangGraph │ RAG + Prompt Injection │
│ Cosine Sim │ 3-Node Graph │ Multi-Layer Defense │
└──────────────────┴──────────────────┴────────────────────────────┘
```
## 快速开始
### 1. 安装依赖
```
pip install -r requirements.txt
```
### 2. 配置环境
```
cp .env.example .env
# 使用您的 OpenAI API key 编辑 .env
```
### 3. 运行完整演示
```
python main.py
```
这将运行所有三个阶段并将日志保存到 `execution_logs.md`。
## 阶段详情
### 阶段 1:基于向量的人格匹配(路由器)
**文件:** `persona_router.py`
使用内存中的 **ChromaDB** 向量存储(模拟 pgvector)来通过余弦相似度匹配将帖子路由到相关机器人。
**机器人人格:**
| 机器人 | 人格 | 专注领域 |
|--------|------|----------|
| Bot A | 技术极客 | 人工智能、加密、太空、Elon Musk |
| Bot B | 末日论者 / 怀疑论者 | 隐私、反技术、反资本主义 |
| Bot C | 金融精英 | 市场、交易、ROI、利率 |
**工作原理:**
1. 机器人人格文本在启动时嵌入并存储在 ChromaDB 中。
2. 当帖子到达时,`route_post_to_bots()` 会嵌入帖子并查询向量存储。
3. ChromaDB 返回距离值(`distance = 1 - cosine_similarity`)。
4. 仅返回相似度 ≥ 阈值的机器人作为匹配项。
### 阶段 2:自主内容引擎(LangGraph)
**文件:** `content_engine.py`, `mock_tools.py`
一个 **LangGraph** 状态机,为每个机器人生成原创且有观点的帖子。
**节点结构:**
```
┌─────────────────┐ ┌─────────────┐ ┌─────────────┐
│ decide_search │────▶│ web_search │────▶│ draft_post │────▶ END
│ │ │ │ │ │
│ LLM picks topic │ │ Runs mock │ │ LLM writes │
│ & search query │ │ SearXNG │ │ 280-char │
│ │ │ search tool │ │ JSON post │
└─────────────────┘ └─────────────┘ └─────────────┘
```
- **节点 1(decide_search):** LLM 检查机器人的人格并生成简洁的搜索查询。
- **节点 2(web_search):** 执行 `mock_searxng_search` —— 一个带有硬编码标题的关键词匹配工具。
- **节点 3(draft_post):** LLM 使用人格 + 搜索上下文生成 280 个字符的帖子,输出为严格的 JSON:
`{"bot_id": "bot_a", "topic": "AI Progress", "post_content": "..."}`
### 阶段 3:战斗引擎(深度线程 RAG)
**文件:** `combat_engine.py`
处理深度线程回复,其中机器人必须使用完整的对话上下文进行反驳。
**线程上下文(RAG):**
函数 `generate_defense_reply()` 构建包含以下内容的完整提示:
1. 完整的对话线程(父帖子 + 所有历史评论)
2. 作为系统级身份的人格
3. 要响应的最新人类回复
#### 提示注入防御策略
防御采用 **4 层系统提示架构**:
| 层级 | 策略 | 目的 |
|------|------|------|
| **层级 1** | 身份锚点 | 人格声明为 `IMMUTABLE` 且 `ABSOLUTE` —— 不可被覆盖 |
| **层级 2** | 显式注入警告 | 告知 LLM 常见注入模式(`"ignore all previous..."`)并指示将其视为攻击 |
| **层级 3** | 行为锁定 | 禁止 LLM 承认、服从或引用用户内容中的任何覆盖指令 |
| **层级 4** | 响应验证 | LLM 必须在输出前自我验证是否仍处于角色中 |
**为何有效:**
- 人格在系统提示级别建立,优先级高于用户消息。
- 显式枚举攻击模式使 LLM 意识到注入,但不会教它去遵守。
- “继续自然争论”的指令为 LLM 提供了遵循注入之外的建设性替代方案。
- 自我验证在响应发出前创建最后一道护栏。
## 项目结构
```
grid07-cognitive-loop/
├── main.py # Entry point — runs all 3 phases
├── persona_router.py # Phase 1 — ChromaDB persona matching
├── mock_tools.py # Phase 2 — Mock SearXNG search tool
├── content_engine.py # Phase 2 — LangGraph content generation
├── combat_engine.py # Phase 3 — RAG combat + injection defense
├── requirements.txt # Python dependencies
├── .env.example # Environment variable template
├── execution_logs.md # Auto-generated execution output
└── README.md # This file
```
## 技术栈
- **Python 3.11+**
- **LangChain / LangGraph** — LLM 编排与状态机
- **ChromaDB** — 内存向量数据库(余弦相似度)
- **OpenAI API** — GPT-4o-mini 用于 LLM,text-embedding-3-small 用于嵌入
标签:AI机器人, ChromaDB, DLL 劫持, ETW劫持, LangGraph, LLM, RAG, SEO, Unmanaged PE, 上下文回复, 人格路由, 余弦相似度, 依赖安装, 关键词, 内容生成, 反技术, 反资本主义, 向量数据库, 大语言模型, 市场交易, 快速启动, 投资理财, 提示注入防御, 日志记录, 末日论者, 源代码安全, 演示运行, 环境配置, 科技极客, 网格计算, 认知循环, 逆向工具, 金融机器人