Install
$ agentstack add mcp-xiweicheng-ai-helper Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Destructive filesystem operation.
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
AI Helper - 网页智能助手
> 基于大语言模型(LLM)的 Chrome 浏览器智能助手扩展。采用 ReAct(Reasoning + Acting)推理循环架构,支持自然语言对话、浏览器自动化操作、网页内容处理等 50+ 项内建工具 + MCP 动态扩展。可搭配本地代理服务实现文件系统操作、终端命令执行、Skill 技能系统和 MCP 协议扩展,同时具备多模态文件问答、图片识别与标注、长期记忆系统、会话导入/导出等高级能力。
为什么选择 AI Helper
AI Helper 是一个深度集成浏览器能力的智能助手,相比于普通的 Chat 类工具,它有几个关键差异化优势:
- 真正的浏览器操控能力:不仅读取网页内容,还能点击、填表、拖拽、滚动、等待元素、上传文件——LLM 可以像人类一样操作网页。
- 三级质量保障体系:创新的预筛选 → 工具级反思 → 子任务反思 → 后置反思多级机制,确保输出质量而非简单返回 LLM 原始结果。
- Agent 多助手协作:支持将复杂任务拆解为子任务,分派给不同专业 Agent 并行处理,实现真正的多 Agent 协作。
- 工具预筛选:50+ 个工具定义会消耗大量 Token,AI Helper 在每次调用主力模型前用一次轻量 API 预判,将工具缩减为 5-10 个相关项,大幅节省成本。
- Token 预算管理:按模型上下文窗口动态计算可用 Token 预算,按 Token 数而非消息数进行智能截断,确保 tool_calls/tool 消息配对完整性。
- 上下文压缩:长引用内容自动摘要压缩,避免无关信息永久占据上下文空间,保证对话质量不下滑。
| 特性 | 说明 | |------|------| | 平台 | Chrome / Edge / Chromium 系浏览器 | | 扩展协议 | Manifest V3 | | Chrome 版本要求 | 114+(需要 Side Panel API) | | API 协议 | OpenAI Chat Completions 兼容(支持 Vision) | | 构建工具 | Vite + @crxjs/vite-plugin | | 本地 Agent | Node.js 18+ 独立进程,提供文件/命令/MCP/Skill 能力 | | 多模态输入 | 图片识别(Vision API)+ 文件提取(PDF/Word/Excel) | | Skill 系统 | Workflow + Agent 两种技能类型,支持对话中沉淀技能 | | MCP 协议 | Model Context Protocol,支持动态工具注册与多 Server 管理 | | 多助手管理 | 自定义 Agent,内置 5 种角色模板,支持子任务分派 |
功能预览
架构总览
项目采用 五层架构,通过 Chrome Extension API 的消息通道进行通信:
┌──────────────────────────────────────────────────────────────┐
│ Side Panel (UI 层) │
│ side_panel.html + src/side_panel/*.js │
│ 对话管理 | 多会话标签页 | Markdown/Mermaid 渲染 | 工具面板 │
│ 提示词管理 | 划词问答 | 输入历史 | 执行日志 | 澄清/确认对话框 │
│ UI 原型预览 | 质量评估展示 | 消息目录 (TOC) | 会话归档 │
│ 多助手管理 | Token 统计面板 | Agent 选择器 | @ Agent 切换 │
│ 图片识别输入 | 图片标注编辑 | 文件上传提取 | 会话导出/导入 │
│ 技能选择器 (Skill Tab) | MCP 服务选择器 (MCP Tab) │
└──────────────┬──────────────────────────────┬────────────────┘
│ chrome.runtime.sendMessage │
▼ ▼
┌──────────────────────────┐ ┌──────────────────────────────┐
│ Background Service │ │ Options Page (配置层) │
│ Worker (核心逻辑层) │ │ options.html + src/options/ │
│ │ │ API Key/模型/工具/ReAct参数 │
│ src/background/ │ │ 反思系统/对话配置/工具栏 │
│ ├── index.js (消息路由) │ │ Agent 配对连接管理 │
│ ├── react-loop.js (ReAct) │ │ 工具箱 (MCP服务 + Skill管理) │
│ ├── tool-executor.js │ └──────────────────────────────┘
│ ├── tool-preselector.js │
│ ├── local-agent-client.js │ ┌──────────────────────────────┐
│ ├── config.js │ │ 代理服务 (可选层) │
│ ├── state.js │ │ agent/ (Node.js 独立进程) │
│ ├── agent-dispatcher.js │ │ HTTP REST + WebSocket │
│ ├── stream-controller.js │ │ 文件读写 | 命令执行 | 搜索 │
│ └── token-recorder.js │ │ Skill 系统 | MCP 协议扩展 │
└──────────────┬─────────────┘ │ 路径沙箱 | 安全分级 │
│ │ 文件上传 API │
│ chrome.tabs.sendMessage │
▼ └──────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ Content Script (页面工具执行层) │
│ src/content/*.js (注入到用户浏览网页) │
│ ├── index.js (消息路由, 页面工具) │
│ ├── page-tools.js (页面内容提取, 无障碍树, Markdown 转换) │
│ ├── interaction-tools.js (交互操作, 语音合成, 取色器) │
│ ├── advanced-tools.js (视频控制, 性能审计, Shadow DOM, 截图) │
│ └── selection-toolbar.js (划词浮动工具栏,类比豆包设计) │
└──────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────┐
│ Offscreen Document (辅助能力层) │
│ src/offscreen/ (剪贴板操作支持) │
│ ├── offscreen.html + offscreen.js (copy_to_clipboard / │
│ │ paste_from_clipboard 的 MV3 兼容实现) │
└──────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ Storage (数据持久化层) │
│ src/storage/ │
│ ├── db.js (IndexedDB 封装,事务重试、自动迁移) │
│ ├── session-store.js (会话存储适配器) │
│ └── token-store.js (Token 统计存储) │
└──────────────────────────────────────────────────────────────┘
核心数据流
用户输入 → Side Panel (选择 Agent, 可选图片/文件附件, 可选 Skill/MCP)
→ chrome.runtime.sendMessage('CALL_API')
→ Background: MCP 工具注入 → 工具预筛选 → ReAct 推理循环
→ Token 预算管理 → 上下文压力监测 → Token 统计记录
→ LLM API 调用 (OpenAI 兼容, 带重试和指数退避, 流式响应)
→ 如需工具: 工具确认检查(敏感操作)→ 执行工具
├── Background 直接执行(标签页管理、书签搜索等)
├── 委派 Content Script(页面交互、内容提取等)
├── 委派本地 Agent(文件读写、命令执行、MCP 工具等)
└── Offscreen 文档(剪贴板读写)
→ 工具级反思 → 结果缓存 → 反馈给 LLM
→ 子任务拆解与并行执行(plan_task 集成,支持 Agent 子任务分派)
→ 后置反思:多维度质量评估 → 合格/修订/重试
→ chrome.runtime.sendMessage('API_COMPLETE')
→ Side Panel: Markdown 渲染, Mermaid 图表渲染, 质量评估展示, Token 统计更新
项目结构
ai-helper/
├── agent/ # 代理服务(Node.js 独立进程)
│ ├── bin/agent.js # CLI 启动脚本
│ ├── src/
│ │ ├── server.js # HTTP + WebSocket 服务端
│ │ ├── executor.js # 命令执行引擎(流式/阻塞)
│ │ ├── security.js # 路径沙箱 + 命令安全分级
│ │ ├── config.js # Agent 配置(磁盘持久化)
│ │ ├── auth.js # 配对认证(4 位动态码)
│ │ ├── search.js # 文件/内容搜索(fd/rg 加速)
│ │ ├── logger.js # 结构化日志
│ │ ├── skill/ # Skill 系统
│ │ │ ├── loader.js # Skill 加载器(JSON/YAML/SKILL.md)
│ │ │ ├── registry.js # Skill 注册表
│ │ │ ├── executor.js # Workflow Skill 执行器
│ │ │ ├── markdown-loader.js # Agent Skill 加载器(SKILL.md)
│ │ │ └── template.js # Skill 模板
│ │ └── mcp/ # MCP 协议支持
│ │ ├── client.js # MCP Client(JSON-RPC 2.0)
│ │ ├── registry.js # MCP Server 注册表
│ │ ├── transport.js # Stdio 传输层
│ │ └── mcp-config.js # MCP 配置管理
│ └── package.json
├── icons/ # 扩展图标
│ ├── icon16.png / icon48.png / icon128.png
│ └── README.md
├── libs/ # 第三方依赖(CDN/local 引入)
│ ├── marked.min.js # Markdown 渲染引擎
│ ├── mermaid.min.js # Mermaid 图表渲染引擎
│ ├── qrcode.min.js # 二维码生成库
│ ├── pdf.worker.min.js # PDF.js Worker (PDF 提取)
│ └── github-markdown-light.min.css # GitHub 风格 Markdown 样式
├── scripts/ # 构建工具脚本
│ ├── fix-build.js # 修复 @crxjs/vite-plugin 打包产物
│ ├── silent-build.js # 静默构建(CI 友好,仅失败输出)
│ ├── generate-icons.js # 图标生成脚本
│ └── deploy-pages.sh # Pages 部署脚本
├── styles/
│ └── styles.css # Content Script 浮框样式
├── src/ # 扩展源码
│ ├── background/ # Background Service Worker
│ │ ├── index.js # 入口:消息路由、会话管理、Agent 健康监测
│ │ ├── react-loop.js # ReAct 推理循环(核心引擎,含三级反思系统)
│ │ ├── tool-executor.js # 工具定义注册、执行调度、MCP 动态注入
│ │ ├── tool-preselector.js # 工具预筛选(轻量 API 提前过滤)
│ │ ├── local-agent-client.js # 本地 Agent HTTP/WebSocket 通信
│ │ ├── agent-dispatcher.js # Agent 子任务分发器
│ │ ├── stream-controller.js # 流式响应控制器
│ │ ├── token-recorder.js # Token 使用统计记录器
│ │ ├── config.js # 配置读写
│ │ ├── constants.js # 默认配置、50+ 个内建工具定义、分类映射
│ │ ├── state.js # 多会话取消控制、API 计数器
│ │ └── tools/ # 工具定义分目录
│ │ ├── browser-tools.js # 页面交互 + 表单操作 + 内容提取 (17)
│ │ ├── tab-tools.js # 标签页管理 + 书签历史 (8)
│ │ ├── storage-tools.js # 存储管理 + 网络请求 (4)
│ │ ├── media-tools.js # 媒体输出 + 调试开发 (7)
│ │ ├── ai-tools.js # AI 协作 (6)
│ │ ├── agent-tools.js # 本地代理 (9)
│ │ └── memory-tools.js # 长期记忆 (3)
│ ├── content/ # 页面注入脚本
│ │ ├── index.js # 入口:消息路由分发
│ │ ├── page-tools.js # 页面内容工具(提取、搜索、无障碍树等)
│ │ ├── interaction-tools.js # 交互工具(点击、填表、语音合成等)
│ │ ├── advanced-tools.js # 高级工具(视频、性能审计、Shadow DOM 等)
│ │ └── selection-toolbar.js # 划词浮动工具栏(类比豆包设计)
│ ├── offscreen/ # Offscreen 文档(剪贴板操作)
│ │ ├── offscreen.html # Offscreen 页面
│ │ └── offscreen.js # Clipboard API 桥接
│ ├── side_panel/ # 侧边栏 UI
│ │ ├── index.js # 入口:事件绑定、配置管理、键盘快捷键
│ │ ├── chat-manager.js # 对话管理(发送/接收、执行日志、导出/导入)
│ │ ├── markdown-render.js # Markdown/Mermaid 渲染与交互控制
│ │ ├── tool-panel.js # 工具选择弹窗(分类筛选、搜索)
│ │ ├── prompt-manager.js # 提示词管理(CRUD、快速选择、拖拽排序)
│ │ ├── agent-manager.js # Agent 多助手管理 UI
│ │ ├── agent-store.js # Agent 数据持久化存储
│ │ ├── agent-at-selector.js # Agent @ 选择器
│ │ ├── token-stats-panel.js # Token 统计面板
│ │ ├── session-manager.js # 多会话存储 API
│ │ ├── session-manager-ui.js # 会话标签页 UI(切换、重命名、归档)
│ │ ├── clarify-dialog.js # 澄清对话框(倒计时、音频提醒)
│ │ ├── confirm-dialog.js # 敏感操作确认对话框
│ │ ├── ui-prototype.js # UI 原型预览与管理(缩放、下载、库)
│ │ ├── message-toc.js # 消息目录(自动生成导航栏)
│ │ ├── input-history.js # 输入历史(上下箭头回填)
│ │ ├── image-preview.js # 图片预览、压缩、多图切换、标注编辑
│ │ ├── file-extract.js # 文件提取(PDF/Word/Excel/Text)、Agent 上传
│ │ ├── skill-selector.js # 技能/MCP 服务快捷选择器
│ │ ├── export-import.js # 会话导出/导入(批量选择、格式校验)
│ │ ├── execution-log-render.js # 执行日志渲染(任务组、实时模式)
│ │ ├── icons.js # 共享 SVG 图标常量
│ │ ├── state.js # 全局状态管理(Proxy 双导出模式)
│ │ ├── utils.js # 工具函数(Toast、系统提示词构建等)
│ │ └── constants.js # 温度预设、工具分类名
│ ├── options/ # 扩展选项页
│ │ ├── index.js # 入口:标签页切换、表单事件、Agent 配对
│ │ ├── config-manager.js # 配置读写管理
│ │ ├── config-io.js # 配置导入/导出
│ │ ├── toolbar-config.js # 工具栏配置(拖拽排序、域名屏蔽)
│ │ ├── toolbox-config.js # 工具箱配置(MCP 服务 + Skill 管理)
│ │ └── constants.js # 默认系统提示词与配置常量
│ ├── storage/ # IndexedDB 持久化层
│ │ ├── db.js # IndexedDB 封装(事务重试、自动迁移)
│ │ ├── session-store.js # 会话存储适配器
│ │ └── token-store.js # Token 统计存储
│ ├── config/
│ │ └── constants.js # Storage 键名、消息类型等
│ └── shared/ # 共享模块
│ ├── tools.js # 工具分类、温度预设
│ ├── utils.js # 通用工具函数
│ ├── token-counter.js # Token 计数、预算管理、上下文压缩、消息摘要
│ └── agent-defaults.js # 内置 Agent 定义和模板
├── manifest.json # Chrome 扩展配置
├── side_panel.html # 侧边栏 HTML
├── options.html # 选项页 HTML
├── vite.config.js # Vite 构建配置
├── package.json
└── README.md
核心功能
1. 多模态输入
图片识别输入
支持在对话中附加图片,通过 Vision API(OpenAI 兼容)进行多模态理解和问答:
- 图片压缩:自动压缩大图(1024px + JPEG 65%),减少 Token 消耗
- 独立 API 配置:支持为图片识别配置独立的 API Base / API Key / 模型
- 全局开关:可随时开启/关闭图片输入功能
- 多图上传:同时附加多张图片进行对比分析
文件上传问答
在浏览器端直接上传文件并提取内容,无需依赖 Agent 服务也可使用:
- 支持格式:
| 格式 | 提取引擎 | 说明 | |------|----------|------| | PDF | PDF.js (pdfjs-dist) | 完整文本提取,支持多页 | | Word (.docx) | mammoth.js | 富文本转纯文本 | | Excel (.xlsx/.xls) | SheetJS (xlsx) | 多 Sheet CSV 导出 | | 纯文本 | FileReader API | 50+ 扩展名自动识别 |
- Agent 优先上传:连接 Agent 后自动上传至工作目录,支持大模型直接操作原始文件
- 浏览器降级:Agent 不可用时自动切换为浏览器端提取
- 文件预览栏:显示文件名、大小、提取状态、支持删除
图片标注编辑器
内建完整的图片标注能力,可直接在预览中编辑图片后发送:
- 6 种标注工具:画笔 (B)、矩形 (R)、椭圆 (E)、箭头 (A)、直线 (L)、橡皮擦
- 颜色/粗细/透明度可调
- Undo 支持(最多 20 步,Ctrl+Z)
- 键盘快捷键:Enter 确认、Esc 取消
- 编辑后自动更新:标注结果立即更新到附件列表
2. 多助手管理(Agent 系统)
支持创建和管理多个自定义 AI 助手,每个助手拥有独立的系统提示词和工具权限:
- 内置模板:默认助手、代码审查专家、网页自动化助手、数据分析师、文档撰写助手
- 自定义 Agent:创建专属助手,设置图标、名称、系统提示词、模型、温度和工具权限
- Agent 选择器:侧边栏顶部快速切换,支持
@Agent名称快速切换 - 工具过滤:每个助手可配置独立的工具集,避免上下文膨胀
- 子任务分派:
dispatch_sub_agent支持并行分派,子 Agent 独立执行并返回结果 - Agent 持久化:基于
chrome.storage.local,跨重启保持
3. ReAct 推理循环
项目采用 ReAct(Reasoning + Acting)模式作为核心推理引擎:
- MCP 工具动态注入:每次推理前自动从 Agent 拉取最新的 MCP 工具列表,注入到 RAW_TOOLS 中
- 工具预筛选:正式调用主力模型前,用一次轻量 API 调用判断需要哪些工具,将 50+ 个工具缩减为 5-10 个相关工具,大幅减少 Token 消耗。简单问题可直接回答跳过推理循环
- 推理循环:LLM 思考 → 决定调用工具 → 执行工具 → 结果反馈 → 继续推理
- Token 预算管理:按模型上下文窗口动态计算可用 Token 预算(80%),按 Token 数截断,保留 tool_calls/tool 消息配对完整性
- 上下文压力监测:三级监测(safe / warning / critical),自动触发摘要压缩
- 上下文智能压缩:对长引用内容自动生成摘要压缩,避免永久占据上下文空间
- 工具结果缓存:并行工具结果自动缓存(上限 30 条)
- 并行工具执行:同一轮中标记为可并行的工具通过
Promise.all并发执行 - 任务拆解:
plan_task支持顺序、并行、条件三种执行策略,子任务失败支持重试/回滚/继续 - 子任务分发:
dispatch_sub_agent支持将子任务委派给其他 Agent 并行执行 - 流式响应:支持 OpenAI 流式响应,可配置字符间延迟(模拟打字效果)
- 澄清机制:信息不完整时弹出澄清对话框,循环计时自动暂停,支持推荐选项
- 多级超时控制:API 超时 5min、工具超时 10min、整体循环超时 30min
- 取消控制:用户可随时取消推理循环,按会话隔离
- SW 重启恢复:Keepalive 端口监测 SW 静默重启,自动通知 Side Panel 恢复。后台任务状态持久化到
chrome.storage.session
4. 反思系统(多级质量保障)
| 级别 | 说明 | 触发条件 | |------|------|----------| | 工具级反思 | 工具执行后快速评估结果是否有用 | 工具返回错误 / 空结果 / 结果过大(>50000字符) / 连续 3 次失败 | | 子任务反思 | 评估子任务结果完整性和相关性 | 仅标记为 complex 的子任务(可配置) | | 后置反思 | 最终答案 7 维度质量评分 | 每轮推理完成后自动执行 |
后置反思评分维度:完整性、准确性、相关性、工具使用、清晰度、安全性、效率。根据评分阈值自动决定:通过 (≥7)、修订 (5-7)、或重新执行 (= 114,低版本不支持 Side Panel API。
Q: 工具调用不生效? 检查选项页中工具是否启用,部分工具需要特定网站权限。Agent 工具需要先完成配对连接。
Q: 构建后文件名带有 hash? scripts/fix-build.js 会自动将 hash 文件名重命名为固定文件名,无需重新加载。
Q: 如何开启图片识别? 在选项页「图片识别」Tab 中开启全局开关,可选配独立的 Vision API Base/Key/Model。
Q: 如何上传文件进行问答? 直接粘贴或拖拽文件到输入区域,支持 PDF/Word/Excel/文本等格式。有 Agent 时优先上传至工作目录。
Q: 如何连接本地 Agent?
cd agent && npm install && npm start
然后在扩展选项页「Agent」标签页中输入终端显示的 4 位配对码。
Q: 如何添加 MCP 工具? 选项页 →「工具箱」Tab → 添加 MCP 服务器 → 填写命令和参数 → 连接。工具会自动注册到系统中。
Q: 如何导入/导出对话? 侧边栏输入框下方点击「导出」按钮,可选择多个会话批量导出。导入通过文件选择器完成。
Q: Agent 命令执行失败? 确认代理服务正在运行(npm start),检查 ~/.ai-helper-agent/config.json 中的 allowedPaths 是否包含目标路径。
License
MIT License
Copyright (c) 2026 AI Helper
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: xiweicheng
- Source: xiweicheng/ai-helper
- License: MIT
- Homepage: https://xiweicheng.github.io/ai-helper/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.