SenWeaver IDE
开源多智能体协同 AI 编程平台 — 自主在线强化学习驱动
官网 • GitHub • 功能特性 • 多智能体 • 强化学习 • 快速开始 • 贡献指南
📸 功能预览
🤖 智能对话助手 自然语言对话,获取实时信息,执行复杂任务 |
📝 智能文档生成 一键生成报告、论文、周报、简历等专业文档 |
🌐 内置浏览器 无需切换窗口,直接在 IDE 中预览和调试网页 |
⚙️ 多模型配置 灵活配置多种 AI 模型,支持自定义 API |
🛡️ 代码安全助手 AI 驱动的代码安全检测与智能修复建议 |
🎨 UI 设计模式 通过 AI 对话快速生成精美的 UI 界面 |
📖 简介
SenWeaver IDE 是一款开源的、基于 VS Code 深度定制的智能代码编辑器平台。它不仅继承了 VS Code 的全部优秀特性,更创新性地融合了多智能体协同架构与**自主在线强化学习(RL)**能力 — 系统会持续从用户交互中学习和优化,使 AI 编程助手越用越智能。
🚀 完全开源:SenWeaver IDE 客户端与后端管理系统均已正式开源!企业用户可完全自主部署和管理 AI 编程平台。
核心亮点
| 亮点 | 说明 |
|---|---|
| 🧠 多智能体协同 | 13 个内置 Agent + 11 个域子智能体,复杂任务自动分解并行执行 |
| 📈 自主在线强化学习 | 从用户反馈中实时学习,自动优化 Prompt 策略,越用越精准 |
| 🔧 50+ 内置工具 | 文件、终端、搜索、文档、浏览器、视觉、测试、部署、安全、性能分析一应俱全 |
| 🌐 远程协作 | WebRTC P2P 直连,App 端远程控制 AI 助手 |
| 🔒 隐私安全 | 支持本地模型部署(Ollama/LM Studio),数据不出本地 |
| 🎯 完全开源 | MIT 协议,客户端 + 后端全栈开源,自由定制 |
✨ 功能特性
🤖 AI 智能编程
-
智能对话 (Ctrl+L) - 与 AI 进行自然语言对话,获取代码建议、解释和优化方案
- 支持多轮对话,保持上下文连贯性
- 自动识别当前文件和选中代码作为上下文
- 支持 @ 引用文件、文件夹、代码符号
- 对话历史持久化存储,支持历史记录管理
-
快速编辑 (Ctrl+K) - 选中代码后快速调用 AI 进行修改、重构或解释
- 内联 Diff 显示,直观对比修改前后差异
- 一键接受/拒绝单个或全部修改
- 支持跨文件批量编辑
- 智能代码重构和优化建议
-
智能补全 - 基于上下文的智能代码补全
- 实时代码补全建议
- 支持多行代码补全
- 自动学习项目代码风格
- Tab 键快速接受建议
-
代码预测 - 预测下一步编辑操作
- 基于编辑历史预测下一步操作
- 智能光标位置建议
- 连续编辑流程优化
📈 自主在线强化学习(APO)
SenWeaver IDE 内置了业界领先的自主在线强化学习引擎,让 AI 助手在使用过程中持续自我进化。这不是传统的离线微调,而是端侧实时学习 — 每一次交互都在让系统变得更智能。
-
多维度奖励信号采集
- 自动采集 9 个维度的奖励信号:用户反馈、任务完成度、工具成功率、工具可靠性、工具效率、工具耗时、响应效率、Token 效率、对话效率
- 按 chatMode 自适应阈值(Agent 模式 vs 普通模式使用不同评判标准)
- 加权聚合计算综合奖励值(
finalReward),用户反馈权重最高
-
自动 Prompt 优化(APO)
- 基于 Textual Gradient(文本梯度)自动分析 Prompt 缺陷并生成优化建议
- Beam Search 候选提示词搜索,保留 Top-K 最优策略
- 6 种问题模式自动检测:错误频发、工具失败、Token 浪费、多轮重试、长对话、慢工具
- 优化规则自动注入 System Prompt(带 2000 字符预算控制,防止上下文溢出)
-
数据闭环流水线
- Phase 1 - 数据采集:TraceCollectorService 异步记录每轮对话的完整轨迹(Span),零性能影响
- Phase 2 - 智能优化:APOService 分析轨迹数据,生成并管理 Prompt 优化建议
- 支持本地分析 + 后端深度优化双模式
- 优化建议支持一键应用 / 拒绝 / 回滚,用户始终掌握控制权
-
技术参考
- 参考 agent-lightning 框架的 Textual Gradient & Apply Edit 思路
- Beam Search 状态管理参考 APO._update_best_prompt
- 所有 RL 数据和状态持久化存储,IDE 重启不丢失
🛡️ 安全小助手
AI 驱动的代码安全检测与修复:
-
漏洞检测
- 自动扫描代码中的安全漏洞
- 识别 SQL 注入、XSS、CSRF 等常见风险
- 检测敏感信息泄露(API Key、密码硬编码)
- 依赖库漏洞预警
-
智能修复
- 一键生成安全修复建议
- 自动修复常见安全问题
- 提供最佳安全实践指导
-
代码质量预测
- 预测潜在的运行时错误
- 识别性能瓶颈和内存泄漏风险
- 代码复杂度分析和优化建议
🤖 多模型支持
支持 19+ 主流 AI 模型提供商,灵活切换,覆盖国际云服务、国内大模型、本地部署三大场景:
| 提供商 | 支持模型 | 特点 |
|---|---|---|
| OpenAI | GPT-4o, GPT-4, o1/o3 系列 | 综合能力强 |
| Anthropic | Claude 系列 | 长上下文、代码能力强 |
| Google Gemini | Gemini Pro | 多模态、大上下文窗口 |
| DeepSeek | DeepSeek-V3, DeepSeek-R1 | 代码专精、高性价比 |
| Groq | Llama, Mixtral 等 | 超低延迟推理 |
| xAI | Grok 系列 | 实时信息、多模态 |
| Mistral | Mistral Large/Medium | 欧洲开源模型领先 |
| OpenRouter | 100+ 模型聚合 | 统一 API、智能路由 |
| 阿里百炼 | 通义千问系列 | 国产大模型、中文优化 |
| 智谱 AI | GLM-4 系列 | 国产大模型、多模态 |
| Moonshot AI | Kimi 系列 | 超长上下文 (128K+) |
| Google Vertex | Gemini Pro (企业版) | 企业级、高可用 |
| Microsoft Azure | Azure OpenAI 服务 | 企业合规、全球部署 |
| AWS Bedrock | Claude, Titan 等 | AWS 生态集成 |
| Ollama | Llama, Qwen, CodeLlama 等 | 本地部署、隐私安全 |
| vLLM | 各类开源模型 | 高性能本地推理引擎 |
| LM Studio | 各类开源模型 | 本地运行、图形界面 |
| LiteLLM | 100+ 提供商代理 | 统一代理网关 |
| OpenAI-Compatible | 任意兼容 API | 灵活扩展(llama.cpp 等) |
还支持自定义提供商配置,兼容任意 OpenAI/Anthropic 格式的 API 端点。
🛠️ 开发工具集成
-
内置浏览器
- 无需切换窗口即可预览网页
- 支持反向代理绑过 X-Frame-Options 限制
- 自动同步地址栏 URL
- 支持开发者工具
-
终端集成
- AI 可直接在终端执行命令
- 命令执行结果自动反馈给 AI
- 支持多终端管理
- 命令历史记录
-
文件快照
- 自动保存文件修改历史
- 支持任意时间点回滚
- 可视化文件变更对比
- 快照装饰器显示修改状态
-
SCM 集成
- AI 自动生成 Git 提交信息
- 基于 Diff 内容智能总结
- 支持自定义提交信息模板
-
MCP 协议支持
- 支持 Model Context Protocol 扩展工具能力
- 可配置多个 MCP 服务器
- 自动发现和调用 MCP 工具
🌐 远程协作
通过 WebRTC P2P 连接实现远程协作,让远程 App 客户端可以连接到 IDE 并实时交互:
-
P2P 连接
- 基于 WebRTC 的点对点直连,数据传输不经过服务器
- 使用官方信令服务器
wss://ide-api.senweaver.com/ws/signaling进行连接建立 - 自动获取 ICE 服务器配置,支持 NAT 穿透
- 单设备连接限制,确保每个 IDE 同时只允许一台 App 连接
-
远程控制
- App 端可以向 IDE 的 AI 助手发送提问和任务
- 实时同步聊天界面状态到远程 App
- 异步数据传输,不影响 IDE 本地性能和操作
- 支持流式输出同步,实时显示 AI 响应
-
连接管理
- 可开启/关闭远程连接开关
- 显示设备码供 App 端输入连接
- 显示已连接的设备信息
- 支持主动断开连接
-
安全特性
- 设备码验证机制
- 连接状态实时监控
- 自动重连和心跳保活
🔌 API 调用能力
AI 可直接调用 HTTP API,实现与外部服务的交互:
-
HTTP 请求
- 支持 GET、POST、PUT、DELETE 等方法
- 自定义请求头和请求体
- 支持多种认证方式:Basic、Bearer Token、API Key
- 超时控制和错误处理
-
应用场景
- 调用 RESTful API 获取数据
- 与第三方服务集成
- 自动化测试 API 接口
- 数据采集和处理
📚 Skills 技能系统
专业化技能体系,通过渐进式加载和智能匹配让 AI 在正确的时机获取正确的领域知识,无需人工干预。
架构特性
- 3 级渐进式加载 — 精确控制上下文窗口开销
- Level 1 — 元数据:技能名称 + 描述(含关键词),始终注入系统提示(~100 词/技能)
- Level 2 — 指令正文:AI 识别到匹配需求后调用
skill(name)按需加载 SKILL.md 全文 - Level 3 — 捆绑资源:脚本、参考文档、模板等,通过
skill(name, resource_name)按需加载
- 自动关键词触发 — 每个技能描述包含
关键词:字段,LLM 根据用户请求自动匹配并加载 - 多目录扫描 — 项目级
.senweaver/skill/+ 全局配置目录,兼容.opencode/和.claude/格式 - 文件监听热更新 — 修改 SKILL.md 后自动刷新,无需重启
- 使用统计追踪 — 记录每个技能的调用次数、成功率、用户反馈
19 个内置专业技能
| 领域 | 技能 | 能力 |
|---|---|---|
| 文档处理 | pdf |
PDF 全功能处理:读取/提取、合并/拆分、水印、表单填写、OCR |
docx |
Word 文档创建/编辑:docx-js 库、XML 精确编辑、跟踪修改 | |
xlsx |
Excel 表格处理:数据分析、公式验证、财务模型色彩规范 | |
pptx |
PPT 演示文稿:专业配色方案、排版规范、视觉 QA 检查 | |
doc-coauthoring |
三阶段文档协作:上下文收集 → 迭代完善 → 读者测试 | |
| 开发专家 | react-expert |
React 19 全栈:Server Components、Hooks、Zustand、TanStack Query |
typescript-pro |
TypeScript 高级类型:泛型、条件类型、Branded Types、tsconfig | |
frontend-design |
高质量前端设计:生产级 UI、避免 AI 审美通病、美学指南 | |
api-designer |
API 设计:OpenAPI 3.1 规范、RESTful 最佳实践、版本策略 | |
| 质量保障 | code-reviewer |
系统化代码审查:正确性/安全性/性能/可维护性四维检查 |
test-master |
全面测试:单元/集成/E2E/性能/安全测试,TDD 方法论 | |
security-reviewer |
安全审查:OWASP Top 10、漏洞检测、密钥扫描、CVSS 评分 | |
debugging-wizard |
科学调试:二分法/时间旅行/最小复现/Delta 调试五大策略 | |
webapp-testing |
Web 自动化测试:Playwright browser_action 完整指南 | |
| 架构与工程 | architecture-designer |
系统架构设计:模式选择、ADR 决策记录、非功能需求评估 |
mcp-builder |
MCP 服务器开发:FastMCP/TypeScript SDK、工具设计、评估框架 | |
code-documenter |
代码文档化:JSDoc/docstring/OpenAPI、文档站点、覆盖率报告 | |
| AI 工程 | prompt-engineer |
提示工程:CoT/少样本/ReAct 模式、评估框架、注入防御 |
skill-creator |
技能创建器(元技能):从零创建、评测迭代、描述优化 |
技能目录结构
.senweaver/skill/
├── pdf/ # 示例:最完整的内置技能
│ ├── SKILL.md # 必需 — YAML frontmatter + Markdown 指令
│ ├── references/ # 可选 — 参考文档(按需加载到上下文)
│ │ └── FORMS.md
│ └── scripts/ # 可选 — 可执行脚本(确定性/重复性任务)
│ └── pdf_utils.py
├── code-reviewer/
│ └── SKILL.md
├── react-expert/
│ └── SKILL.md
└── ... # 共 19 个内置技能
SKILL.md 格式规范
---
name: my-skill # 技能标识符(小写,连字符分隔)
description: "功能描述。关键词:触发词1、触发词2、trigger-word"
---
# 技能标题
## 使用内置工具
[引导 AI 使用项目已有的工具完成任务]
## 核心工作流
[分步骤的专业指导]
## 常见模式与示例
[代码示例、模板、最佳实践]
## 原则
[必须做 / 绝不做的清单]
自定义技能
支持用户在项目级或全局级创建自定义技能:
# 项目级 — 仅当前项目生效
mkdir -p .senweaver/skill/my-custom-skill
# 编写 SKILL.md(保存后自动热加载)
# 全局级 — 所有项目生效
# Windows: %APPDATA%\senweaver\skill\
# macOS: ~/Library/Application Support/senweaver/skill/
# Linux: ~/.config/senweaver/skill/
应用场景:项目编码规范、团队开发约定、框架使用指南、业务领域知识、特定工作流程自动化
🧰 内置工具集 (52 个)
AI 助手采用分层加载架构:核心工具始终可用,扩展工具按需通过域子智能体动态加载,兼顾响应速度与功能覆盖。
核心工具 (Core - 19 个,始终加载)
| 类别 | 工具 | 说明 |
|---|---|---|
| 文件读取 | read_file |
读取文件内容(支持分页和行范围) |
ls_dir |
列出目录内容(分页) | |
get_dir_tree |
获取目录树结构 | |
get_file_outline |
获取文件符号大纲(函数/类/变量) | |
read_lint_errors |
读取 Lint 和类型错误 | |
| 搜索 | search_pathnames_only |
按路径名搜索文件 |
search_for_files |
全文搜索文件内容(ripgrep) | |
search_in_file |
在指定文件内搜索 | |
| 编辑 | edit_file |
搜索替换编辑文件(多块批量) |
rewrite_file |
重写整个文件内容 | |
create_file_or_folder |
创建文件或文件夹 | |
delete_file_or_folder |
删除文件或文件夹 | |
| 终端 | run_command |
执行终端命令并获取输出 |
| 网络 | web_search |
多引擎联网搜索(10+ 搜索引擎) |
fetch_url |
获取网页内容(HTML 自动转 Markdown) | |
| 智能体调度 | spawn_subagent |
启动域子智能体执行专项任务 |
dispatch_agents |
并行调度多个子智能体协同工作 | |
edit_agent |
动态编辑智能体配置 | |
| 技能 | skill |
加载专业技能指令和捆绑资源(19 个内置 + 自定义) |
扩展工具 (Extended - 33 个,按需加载)
| 工具组 | 工具 | 说明 |
|---|---|---|
| 终端扩展 | open_persistent_terminal |
打开持久终端会话 |
run_persistent_command |
在持久终端中执行命令 | |
kill_persistent_terminal |
关闭持久终端 | |
| 浏览器自动化 | browser_action |
Playwright 浏览器自动化(导航、点击、输入、截图、DOM 查询等) |
| API 调用 | api_request |
发送 HTTP 请求(GET/POST/PUT/DELETE,支持认证) |
| 视觉分析 | analyze_image |
图片内容分析与文字识别 |
screenshot_to_code |
截图/设计稿转前端代码 | |
| 文档处理 | read_document |
读取 Word/Excel/PDF/PPT 文档 |
edit_document |
编辑现有文档内容 | |
create_document |
创建 Word/Excel/PPT 专业文档 | |
pdf_operation |
PDF 合并、拆分、添加水印 | |
document_convert |
文档格式互转 | |
document_merge |
多文档合并 | |
document_extract |
提取文档中的图片、表格等元素 | |
| 自动化测试 | test_generate |
自动生成单元/集成/E2E 测试用例 |
test_run |
运行测试并解析结构化结果 | |
test_coverage |
代码行/分支/函数覆盖率分析 | |
test_report |
生成综合测试报告 | |
| CI/CD 部署 | deploy_config |
自动生成 CI/CD 配置(Docker, GitHub Actions, K8s 等) |
deploy_run |
构建镜像、启动/停止/重启服务 | |
deploy_status |
监控服务运行状态和资源使用 | |
deploy_rollback |
快速回滚到稳定版本 | |
| 性能评估 | perf_benchmark |
基准测试(HTTP 负载、函数微基准、启动时间) |
perf_profile |
CPU/内存/堆/I/O 性能分析 | |
perf_lighthouse |
Lighthouse Web 性能审计(Core Web Vitals) | |
perf_report |
生成综合性能评估报告 | |
| 渗透测试 | pentest_scan |
端口扫描、漏洞扫描、Web 安全扫描、SQL 注入/XSS 检测 |
pentest_exploit |
漏洞验证与利用(sqlmap, metasploit 等) | |
pentest_report |
生成专业渗透测试报告 (DOCX) | |
| 长期记忆 | memory_search |
在记忆库中语义搜索 |
memory_get |
读取记忆条目完整内容 | |
memory_save |
保存、更新、删除记忆条目 | |
| 定时任务 | cron_task |
创建/管理定时任务和提醒(支持 cron 表达式) |
🔍 智能搜索
-
多引擎联网搜索
- 集成 10+ 搜索引擎:Bing、Baidu、DuckDuckGo、Brave、Jina
- 技术社区搜索:CSDN、掘金、知乎、GitHub
- 微信公众号文章搜索
- 并行搜索,结果智能去重合并
-
智能网页提取
- 自动提取网页核心内容
- HTML 转 Markdown 格式化
- 支持动态渲染页面(Playwright)
- 分页获取大型网页
-
GitHub 搜索
- 快速搜索代码仓库
- 搜索代码片段和技术方案
- 获取仓库 Stars、语言等信息
📄 文档处理
-
Office 文档支持
- 读取 Word (.docx)、Excel (.xlsx)、PDF 文档
- 创建专业 Word 文档(标题、段落、表格)
- 创建 Excel 工作簿(多 Sheet、公式)
- PDF 合并、拆分、添加水印
-
Markdown 预览
- 实时预览 Markdown 文档
- 支持 GFM 扩展语法
- 代码高亮显示
- 数学公式渲染
-
设计稿转代码
- 支持截图转代码功能
- 网页克隆工具
- 视觉识别生成 HTML/CSS
🎨 用户体验
- 中文界面 - 完整的中文本地化支持
- 深色/浅色主题 - 多种主题可选,自动跟随系统
- 快捷键自定义 - 灵活配置快捷键
- 设置面板 - 可视化配置所有选项
- 在线配置同步 - 支持从服务器获取配置更新
多智能体协同架构
SenWeaver IDE 采用多层次智能体协同架构,通过主智能体调度域子智能体实现复杂任务的自动分解与并行执行。
用户请求
│
▼
┌──────────────────────────────────────────────────────┐
│ ChatMode 模式路由 │
│ normal(对话) / agent(全能) / designer(设计) / gather │
└──────────┬───────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ 主智能体 (Primary Agent) │
│ Chat Agent / Build Agent / Designer Agent │
│ · 任务理解与分解 │
│ · 核心工具直接调用 (19 个) │
│ · spawn_subagent / dispatch_agents 调度子智能体 │
└──────────┬───────────────────────────────────────────┘
│ 并行调度
▼
┌──────────────────────────────────────────────────────┐
│ 域子智能体 (Domain Sub-Agents) x 11 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ 文件智能体│ │ 执行智能体│ │ 联网智能体│ │文档智能体│ │
│ │ 12 工具 │ │ 5 工具 │ │ 3 工具 │ │ 7 工具 │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ 视觉智能体│ │ 测试智能体│ │ 部署智能体│ │性能智能体│ │
│ │ 2 工具 │ │ 4+5 工具 │ │ 4+5 工具 │ │ 4+4 工具│ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 安全智能体│ │ 记忆智能体│ │ 调度智能体│ │
│ │ 3+3 工具 │ │ 3+2 工具 │ │ 1 工具 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└──────────────────────────────────────────────────────┘
Chat 模式与智能体组合
4 种 Chat 模式定义了不同的主智能体和可用子智能体组合:
| 模式 | 主智能体 | 可用子智能体 | 最大并行数 | 适用场景 |
|---|---|---|---|---|
| Normal | Chat Agent | explore | 1 | 日常对话、代码问答 |
| Agent | Build Agent | explore, plan, code, review, test | 3 | 全能编程、复杂开发任务 |
| Designer | Designer Agent | explore, plan, ui, api, code, review | 4 | UI 设计、全栈开发 |
| Gather | Chat Agent | explore | 1 | 只读探索、信息收集 |
域子智能体 (11 个)
主智能体通过 spawn_subagent 和 dispatch_agents 工具调度以下专业化子智能体:
| 子智能体 | ID | 核心能力 | 专属工具数 |
|---|---|---|---|
| 文件智能体 | file_agent |
文件读写、搜索、代码编辑 | 12 |
| 执行智能体 | exec_agent |
命令执行、终端管理、Playwright 浏览器自动化 | 5 |
| 联网智能体 | net_agent |
多引擎搜索、网页获取、API 调用 | 3 |
| 文档智能体 | doc_agent |
Office 文档读写、格式转换、合并拆分 | 7 |
| 视觉智能体 | vision_agent |
图像分析、截图转代码 | 2 |
| 记忆管理智能体 | memory_agent |
长期记忆的搜索、读取、保存 | 5 |
| 测试智能体 | test_agent |
自动生成测试、覆盖率分析、测试报告 | 9 |
| 部署智能体 | deploy_agent |
CI/CD 配置生成、部署执行、状态监控、回滚 | 9 |
| 性能评估智能体 | perf_agent |
基准测试、性能分析、Lighthouse 审计 | 8 |
| 渗透测试智能体 | pentest_agent |
端口/漏洞扫描、漏洞利用、安全报告 | 6 |
| 调度智能体 | scheduler_agent |
定时任务、周期性提醒 | 1 |
内置智能体 (13 个)
| 智能体 | 模式 | 说明 |
|---|---|---|
| Build Agent | 主代理 | 全能构建代理,完整读写和执行权限,最大 50 步 |
| Chat Agent | 主代理 | 对话代理,只读权限,用于代码讨论和问答 |
| Designer Agent | 主代理 | 设计代理,专注 UI 设计和全栈开发,最大 100 步 |
| Explore Agent | 子代理 | 快速探索代码库,只读操作 |
| Plan Agent | 子代理 | 分析任务并制定分步执行计划 |
| Code Agent | 子代理 | 专注代码编写和修改,无删除/终端权限 |
| Review Agent | 子代理 | 代码审查,检查质量、安全和最佳实践 |
| Test Agent | 子代理 | 编写和执行测试,验证代码正确性 |
| UI Agent | 子代理 | UI 设计和组件开发 |
| API Agent | 子代理 | 后端接口设计和开发 |
| Compaction Agent | 系统 | 会话压缩,生成对话历史摘要(隐藏) |
| Summary Agent | 系统 | 任务执行摘要生成(隐藏) |
| Title Agent | 系统 | 对话标题自动生成(隐藏) |
每个智能体都有独立的权限控制(读/写/删除/工具/网络/终端/MCP),确保安全隔离。系统采用 LLM 智能路由自动分析任务语义并选择最佳子智能体组合,LLM 路由失败时自动降级为关键词匹配,保证 100% 可用性。
强化学习架构
SenWeaver IDE 的在线强化学习系统由两大核心服务构成,形成完整的数据采集 → 奖励计算 → 分析优化 → Prompt 注入闭环:
┌─────────────────────────────────────────────────────────────────┐
│ SenWeaver IDE 客户端 │
│ │
│ ┌──────────────┐ Trace 数据 ┌──────────────────────────┐ │
│ │ 用户交互 │ ──────────────> │ TraceCollectorService │ │
│ │ (对话/反馈) │ │ · Span 记录 (7 种类型) │ │
│ └──────────────┘ │ · 9 维 Reward 计算 │ │
│ │ │ · chatMode 自适应阈值 │ │
│ │ 反馈按钮 │ · 增量上传 (去重持久化) │ │
│ ▼ └──────────┬───────────────┘ │
│ ┌──────────────┐ │ │
│ │ SidebarChat │ Trace + Reward │
│ │ (React UI) │ │ │
│ └──────────────┘ ▼ │
│ ┌──────────────────────────────┐ │
│ │ APOService │ │
│ │ · 6 种问题模式检测 │ │
│ │ · Textual Gradient 生成 │ │
│ │ · Beam Search 候选搜索 │ │
│ │ · 建议管理 (应用/拒绝/回滚) │ │
│ └──────────┬───────────────────┘ │
│ │ │
│ 优化规则 (≤2000 chars) │
│ │ │
│ ▼ │
│ ┌──────────────────────────────┐ │
│ │ ConvertToLLMMessageService │ │
│ │ System Prompt + APO Rules │ │
│ └──────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ 后端服务 (可选) ││
│ │ · /api/traces — 接收 Trace 数据用于离线训练 ││
│ │ · /api/apo/optimize — 深度优化 + Beam Search 更新 ││
│ │ · /api/apo/textual-gradient — LLM 驱动的 Prompt 批评与编辑 ││
│ └─────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘
奖励信号维度一览:
| 维度 | 权重 | 说明 |
|---|---|---|
user_feedback |
25% | 用户点赞/踩,最直接的信号 |
task_completion |
18% | 任务是否正常完成、无错误 |
tool_success_rate |
12% | 工具调用成功率 |
conversation_efficiency |
11% | 对话轮数越少越好(一次解决) |
tool_call_reliability |
8% | 工具失败次数惩罚 |
response_efficiency |
8% | LLM 调用次数越少越好 |
token_efficiency |
8% | Token 消耗越低越好 |
tool_call_efficiency |
5% | 工具调用次数是否合理 |
tool_duration_efficiency |
5% | 工具执行速度 |
所有阈值按 chatMode 自适应:Agent 模式允许更多工具调用和 Token 消耗,Normal 模式要求更高效率。
🚀 快速开始
系统要求
- Windows: Windows 10/11 (x64/ARM64)
- macOS: macOS 10.15+ (Intel/Apple Silicon)
- Linux: Ubuntu 18.04+, Debian 10+, RHEL 8+
下载安装
访问 官网下载页面 获取最新版本。
从源码构建
环境准备
- Node.js: 18.x 或更高版本
- Python: 3.x(用于 node-gyp)
- Git: 最新版本
- Visual Studio Build Tools(Windows)或 Xcode(macOS)
克隆仓库
git clone https://github.com/senweaver/senweaver-ide.git
cd senweaver-ide
安装依赖
npm install
开发运行
# Windows
./scripts/code.bat
# macOS/Linux
./scripts/code.sh
构建发布版本
Windows x64:
# 构建
npx gulp vscode-win32-x64
# 如果内存不足,可增加内存限制
npx gulp vscode-win32-x64 --max-old-space-size=8192
# 构建更新工具(首次打包需要)
npx gulp vscode-win32-x64-inno-updater
# 打包安装程序
npx gulp vscode-win32-x64-system-setup
Windows ARM64:
npx gulp vscode-win32-arm64
npx gulp vscode-win32-arm64-inno-updater
npx gulp vscode-win32-arm64-system-setup
macOS:
# Intel
npx gulp vscode-darwin-x64
# Apple Silicon
npx gulp vscode-darwin-arm64
Linux:
# x64
npx gulp vscode-linux-x64
# ARM64
npx gulp vscode-linux-arm64
# 打包 deb
npx gulp vscode-linux-x64-build-deb
# 打包 rpm
npx gulp vscode-linux-x64-build-rpm
配置 AI 模型
- 打开 SenWeaver IDE
- 点击左侧边栏的 SenWeaver 图标
- 在设置面板中配置您的 AI 模型 API Key
- 选择您偏好的模型开始使用
📁 项目结构
senweaver-ide/
├── src/ # 源代码目录
│ ├── vs/ # VS Code 核心
│ │ ├── base/ # 基础库(工具函数、UI组件)
│ │ ├── code/ # 代码模块
│ │ ├── editor/ # Monaco 编辑器核心
│ │ ├── platform/ # 平台服务层
│ │ ├── server/ # 服务端代码
│ │ └── workbench/ # 工作台
│ │ ├── api/ # 扩展 API
│ │ ├── browser/ # 浏览器端实现
│ │ ├── services/ # 服务层
│ │ └── contrib/ # 贡献点模块
│ │ └── senweaver/ # ⭐ SenWeaver AI 核心
│ │ ├── browser/ # 浏览器端代码
│ │ │ ├── chatThreadService.ts # 对话线程服务
│ │ │ ├── editCodeService.ts # 代码编辑服务
│ │ │ ├── autocompleteService.ts # AI 自动补全
│ │ │ ├── toolsService.ts # 工具调用服务
│ │ │ ├── contextGatheringService.ts # 上下文收集
│ │ │ ├── editPredictionService.ts # 编辑预测
│ │ │ ├── senweaverSettingsPane.ts # 设置面板
│ │ │ ├── senweaverBrowserEditor.ts # 浏览器编辑器
│ │ │ ├── senweaverDocumentEditor.ts # 文档编辑器
│ │ │ ├── senweaverDesignerPreviewEditor.ts # 设计预览
│ │ │ ├── senweaverCommandBarService.ts # 命令栏服务
│ │ │ ├── senweaverOnlineConfigContribution.ts # 在线配置
│ │ │ ├── remoteCollaborationService.ts # 远程协作服务
│ │ │ ├── remoteCollaborationServiceInterface.ts # 远程协作接口
│ │ │ ├── sidebarPane.ts # 侧边栏面板
│ │ │ ├── subagentToolService.ts # 子代理服务
│ │ │ ├── terminalToolService.ts # 终端工具服务
│ │ │ ├── startWebSearchServer.cjs # 网页搜索服务
│ │ │ ├── startFetchUrlServer.cjs # URL 提取服务
│ │ │ ├── startDocumentReaderServer.cjs # 文档读取服务
│ │ │ ├── startOpenBrowserServer.cjs # 浏览器自动化
│ │ │ ├── startScreenshotToCodeServer.cjs # 截图转代码
│ │ │ ├── startVisionServer.cjs # 视觉分析服务
│ │ │ └── react/ # React UI 组件
│ │ │ └── src/
│ │ │ ├── sidebar-tsx/ # 侧边栏组件
│ │ │ ├── senweaver-settings-tsx/ # 设置界面
│ │ │ ├── senweaver-editor-widgets-tsx/ # 编辑器小部件
│ │ │ ├── quick-edit-tsx/ # 快速编辑
│ │ │ ├── design-canvas/ # 设计画布
│ │ │ ├── markdown/ # Markdown 渲染
│ │ │ └── util/ # 工具函数
│ │ ├── common/ # 通用代码(跨平台)
│ │ │ ├── traceCollectorService.ts # ⭐ RL 数据采集服务(Phase 1)
│ │ │ ├── apoService.ts # ⭐ 自动 Prompt 优化服务(Phase 2)
│ │ │ ├── senweaverSettingsService.ts # 设置服务
│ │ │ ├── senweaverSettingsTypes.ts # 设置类型定义
│ │ │ ├── sendLLMMessageService.ts # LLM 消息服务
│ │ │ ├── sendLLMMessageTypes.ts # 消息类型定义
│ │ │ ├── mcpService.ts # MCP 协议服务
│ │ │ ├── mcpServiceTypes.ts # MCP 类型定义
│ │ │ ├── skillService.ts # 技能服务
│ │ │ ├── agentService.ts # Agent 服务
│ │ │ ├── agentScheduler.ts # Agent 调度器
│ │ │ ├── modelCapabilities.ts # 模型能力定义
│ │ │ ├── toolsServiceTypes.ts # 工具类型定义
│ │ │ ├── smartContextManager.ts # 智能上下文管理
│ │ │ ├── tokenOptimizationConfig.ts # Token 优化配置
│ │ │ ├── tokenUsageTracker.ts # Token 使用追踪
│ │ │ ├── tpmRateLimiter.ts # TPM 限速器
│ │ │ ├── cacheService.ts # 缓存服务
│ │ │ ├── directoryStrService.ts # 目录结构服务
│ │ │ ├── messageCompressor.ts # 消息压缩
│ │ │ ├── performanceMonitor.ts # 性能监控
│ │ │ └── helpers/ # 辅助函数
│ │ │ ├── colors.ts # 颜色工具
│ │ │ ├── extractCodeFromResult.ts # 代码提取
│ │ │ ├── languageHelpers.ts # 语言辅助
│ │ │ ├── systemInfo.ts # 系统信息
│ │ │ └── util.ts # 通用工具
│ │ └── electron-main/ # Electron 主进程
│ │ ├── llmMessage/ # LLM 消息处理
│ │ │ ├── sendLLMMessage.ts # 消息发送
│ │ │ ├── sendLLMMessage.impl.ts # 消息实现
│ │ │ └── extractGrammar.ts # 语法提取
│ │ ├── mcpChannel.ts # MCP 通道
│ │ ├── sendLLMMessageChannel.ts # 消息通道
│ │ ├── metricsMainService.ts # 指标服务
│ │ ├── senweaverSCMMainService.ts # SCM 服务
│ │ └── senweaverUpdateMainService.ts # 更新服务
│ └── vscode-dts/ # VS Code API 类型定义
├── build/ # 构建系统
│ ├── gulpfile.*.js # Gulp 构建任务
│ ├── lib/ # 构建库
│ ├── azure-pipelines/ # CI/CD 配置
│ ├── darwin/ # macOS 构建配置
│ ├── linux/ # Linux 构建配置
│ ├── win32/ # Windows 构建配置
│ └── npm/ # npm 脚本
├── extensions/ # 内置扩展
│ ├── git/ # Git 集成
│ ├── typescript-language-features/ # TypeScript 语言支持
│ ├── python-environment/ # Python 环境管理
│ └── ... # 其他语言扩展
├── cli/ # CLI 工具 (Rust)
│ ├── src/ # Rust 源码
│ ├── Cargo.toml # Rust 依赖配置
│ └── Cargo.lock # 依赖锁定
├── resources/ # 资源文件
│ ├── darwin/ # macOS 资源(图标等)
│ ├── linux/ # Linux 资源
│ ├── win32/ # Windows 资源
│ └── server/ # 服务端资源
├── remote/ # 远程开发支持
├── scripts/ # 启动和测试脚本
│ ├── code.bat / code.sh # 开发启动脚本
│ ├── test.bat / test.sh # 测试脚本
│ └── ...
├── test/ # 测试代码
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ └── smoke/ # 冒烟测试
├── senweaver_icons/ # SenWeaver 图标资源
├── .vscode/ # VS Code 开发配置
├── .github/ # GitHub 配置
├── product.json # 产品配置
├── package.json # 项目依赖
└── README.md # 项目说明
🤝 贡献指南
我们欢迎所有形式的贡献!
提交 Issue
- 使用 GitHub Issues 报告 Bug
- 提交功能建议和改进意见
提交 Pull Request
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature) - 提交您的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
开发规范
- 遵循现有代码风格
- 添加必要的测试
- 更新相关文档
📄 许可证
本项目采用 MIT 许可证 开源。
🙏 致谢
SenWeaver IDE 基于以下优秀的开源项目构建:
- Visual Studio Code - 微软开源的代码编辑器
- Void Editor - AI 编辑器参考实现
感谢所有为本项目做出贡献的开发者!
📞 联系我们
Made with ❤️ by SenWeaver Team






