Skip to content

项目概览与快速开始 ​

本文引用的源码文件

本文引用的文件

目录 ​

  1. 引言
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能与运行时约束
  8. 安装指南与系统要求
  9. 快速开始
  10. 基本使用示例
  11. 扩展端与 Agent 端通信机制
  12. 版本同步策略
  13. 常见故障排查
  14. 开源协议、贡献方式与社区支持
  15. 结论

引言 ​

AI Helper 是一个让大语言模型真正操作网页的开源浏览器扩展。它不只是聊天,还能点击、填写表单、拖拽、上传文件、执行终端命令,并通过 MCP 协议动态扩展工具;可选本地 Agent 服务进一步提供文件读写、命令执行、长期记忆与知识库检索能力。

项目的核心价值可以概括为:

  • 可操作的 AI 助手:从“读网页”升级到“亲手操作网页”。
  • 双进程架构:Chrome 扩展端负责用户界面、页面交互与任务编排;独立 Node.js Agent 服务负责本地文件系统、命令执行、RAG 知识库和外部工具集成。
  • 可控且可扩展:内置 40+ 工具、Skill 技能系统、MCP 协议、多智能体协作、定时任务、审计日志与回收站等生产级能力。
  • 数据本地优先:知识库索引和本地文件操作运行在用户本机,便于隐私控制和离线场景。

当前文档以版本 2.3.1 为准,对应扩展端 package.json、Agent 包 ai-helper-agent、Manifest 版本号以及构建产物中的版本信息保持一致。

章节来源

项目结构 ​

仓库采用“扩展端 + Agent 子工程”的组织方式:

  • 根目录是 Chrome 扩展工程,包含 Manifest V3 配置、Vite 构建脚本、背景脚本、内容脚本、侧边栏、选项页、共享模块和测试。
  • agent/ 是独立的 Node.js 代理服务工程,暴露 HTTP/WebSocket API,并提供 MCP、Skill、RAG、命令执行、文件管理、安全策略和日志子系统。
  • docs/ 存放产品文档、架构图、商店素材、文章和演示资源。
  • scripts/ 包含构建、打包、主题审计、图标生成等工程脚本。
  • test/ 是扩展端的单元测试与端到端测试;Agent 端测试位于 agent/test/。
graph TB
Root["仓库根目录<br/>Chrome 扩展工程"] --> Src["src/<br/>扩展源代码"]
Root --> Docs["docs/<br/>文档与素材"]
Root --> Scripts["scripts/<br/>构建与发布脚本"]
Root --> Test["test/<br/>扩展端测试"]
Root --> Agent["agent/<br/>Node.js 代理服务"]
Agent --> AgentSrc["agent/src/<br/>HTTP 服务器、MCP、Skill、RAG、安全、日志"]
Agent --> AgentTest["agent/test/<br/>代理端测试"]

图表来源

章节来源

核心组件 ​

本项目由两个主要进程组成:

组件职责关键入口或文件技术要点
Chrome 扩展端用户界面、页面注入、工具调用、会话管理、调度、通知、主题与国际化manifest.json、src/background/index.js、src/side_panel.html、src/options.htmlManifest V3 Service Worker、Side Panel、Content Script、MV3 生命周期保活
本地 Agent 服务文件读写、命令执行、MCP 工具注册、Skill 执行、RAG 知识库、认证与日志agent/src/server.js、agent/package.jsonNode.js HTTP/WebSocket、CORS 白名单、Bearer Token、路径与命令安全分级

扩展端通过本地 HTTP 和 WebSocket 调用 Agent 提供的能力;Agent 修改源码后必须重启进程,新接口才会生效。

章节来源

架构总览 ​

AI Helper 的双进程架构可以理解为“浏览器内的智能助手 + 本机上的可信代理”:

graph TB
User["用户"] --> SidePanel["侧边栏界面<br/>side_panel.html"]
SidePanel --> Background["Background Service Worker<br/>src/background/index.js"]
Background --> ContentScript["Content Script<br/>src/content/index.js"]
Background --> LocalAgentClient["本地 Agent 客户端<br/>src/background/local-agent-client.js"]
LocalAgentClient --> AgentServer["Agent HTTP/WebSocket 服务器<br/>agent/src/server.js"]
AgentServer --> FileSystem["本地文件系统"]
AgentServer --> Shell["系统命令执行"]
AgentServer --> RAG["RAG 知识库"]
AgentServer --> MCP["MCP 工具注册与调用"]
AgentServer --> Skill["Skill 技能系统"]

图表来源

该架构的关键设计原则包括:

  • 扩展端专注浏览器上下文、UI 和任务编排。
  • Agent 端专注本地资源和外部系统能力。
  • 两端通过明确的 API 契约通信,而不是直接共享内存。
  • 安全边界由 CORS、Origin 校验、Bearer Token、路径白名单和命令安全检查共同构成。

章节来源

详细组件分析 ​

Chrome 扩展端 ​

扩展端基于 Manifest V3,核心职责包括:

  • 定义扩展权限、内容脚本、Service Worker、选项页和侧边栏。
  • 管理用户会话、消息流、工具调用、截图、调试器、调度器和通知。
  • 通过 local-agent-client.js 封装与 Agent 的 HTTP/WebSocket 通信。
  • 提供内置 Agent 模板和多 Agent 调度能力。
classDiagram
class BackgroundService {
+启动服务Worker
+处理扩展消息
+管理会话状态
+协调工具执行
+触发通知
}
class LocalAgentClient {
+pairWithAgent()
+agentRequest()
+agentGet()
+uploadFile()
+execCommand()
+createExecWebSocket()
+getMcpTools()
+callMcpTool()
}
class AgentDispatcher {
+executeDispatchSubAgent()
+loadAgent()
+buildSubAgentPrompt()
}
class SharedAgentDefaults {
+BUILTIN_AGENTS
+AGENT_TEMPLATES
+generateAgentId()
}
BackgroundService --> LocalAgentClient : "调用"
BackgroundService --> AgentDispatcher : "派生子任务"
AgentDispatcher --> SharedAgentDefaults : "读取内置Agent"

图表来源

章节来源

本地 Agent 服务 ​

Agent 服务是扩展端能力的延伸,核心职责包括:

  • 启动 HTTP 服务器并路由 /api/* 请求。
  • 实现配对认证、健康检查、心跳、重启、更新和关闭。
  • 提供文件读写、目录列表、搜索、ZIP 打包、流式上传。
  • 执行系统命令,支持异步、等待、停止、分离模式。
  • 注册 MCP 工具、Skill 技能、RAG 知识库。
  • 输出结构化日志,支持审计与安全事件记录。
flowchart TD
Start["Agent 进程启动"] --> LoadConfig["加载配置"]
LoadConfig --> InitSearch["初始化搜索工具检测"]
InitSearch --> InitRAG["检测 RAG 可用性"]
InitRAG --> CreateServer["创建 HTTP 服务器"]
CreateServer --> HandleRequest["处理 /api/* 请求"]
HandleRequest --> PairCheck{"是否配对接口?"}
PairCheck --> |是| PairHandler["处理 /api/pair"]
PairCheck --> |否| AuthCheck{"是否需要认证?"}
AuthCheck --> |否| PublicHandler["公开接口:status、pair 等"]
AuthCheck --> |是| TokenVerify["验证 Bearer Token"]
TokenVerify --> RouteHandler["路由到具体功能"]
RouteHandler --> FileOps["文件操作"]
RouteHandler --> ExecOps["命令执行"]
RouteHandler --> McpOps["MCP 工具"]
RouteHandler --> SkillOps["Skill 技能"]
RouteHandler --> RagOps["RAG 知识库"]

图表来源

章节来源

子代理调度与内置 Agent ​

扩展端支持主 Agent 派生子 Agent,用于分工完成复杂任务。调度器会:

  • 限制嵌套深度,防止 ReAct 循环无限递归。
  • 加载内置或自定义 Agent 定义。
  • 根据 Agent 的工具集合和技能提示词构建系统提示。
  • 使用派生 sessionId 隔离子 Agent 的信令与日志。
  • 对返回结果进行 token 预算截断。
sequenceDiagram
participant Main as "主 Agent"
participant Dispatcher as "AgentDispatcher"
participant Model as "大模型 API"
participant Tools as "工具集合"
Main->>Dispatcher : 调用 dispatch_task
Dispatcher->>Dispatcher : 检查嵌套深度
Dispatcher->>Dispatcher : 加载子 Agent 定义
Dispatcher->>Tools : 获取子 Agent 工具
Dispatcher->>Model : 发送带系统提示的消息
Model-->>Dispatcher : 工具调用或最终答案
Dispatcher->>Tools : 执行工具如有
Tools-->>Dispatcher : 工具结果
Dispatcher-->>Main : 返回子 Agent 执行结果

图表来源

章节来源

依赖关系分析 ​

扩展端与 Agent 端的依赖关系不是代码导入关系,而是运行时通信契约:

graph LR
Extension["Chrome 扩展<br/>manifest_version=3"] --> Client["LocalAgentClient<br/>HTTP/WebSocket 客户端"]
Client --> Server["Agent 服务器<br/>/api/* 路由"]
Server --> Security["安全策略<br/>路径/命令校验"]
Server --> Memory["长期记忆"]
Server --> RAG["RAG 知识库"]
Server --> MCP["MCP 工具"]
Server --> Skill["Skill 技能"]
Server --> Logger["日志与审计"]

图表来源

需要注意:

  • 扩展端不直接访问 Agent 的内部模块,只通过 API 调用。
  • Agent 内部模块之间耦合较高,例如 server.js 同时引入安全、日志、MCP、Skill、RAG、命令执行等。
  • 扩展端与 Agent 端的版本号应保持一致,避免契约不一致。

章节来源

性能与运行时约束 ​

  • Service Worker 生命周期:Chrome MV3 的 Service Worker 可能被空闲终止,需要保活机制;background 与 side panel 的消息传递是常见故障点。
  • Agent 进程重启:Agent 源码修改后必须重启进程,新接口才生效;服务端提供 /api/agent/restart 和 /api/agent/update 接口。
  • 请求超时:扩展端对 HTTP 请求设置默认超时,WebSocket 连接空闲超时由调用方统一管理,避免双重超时冲突。
  • Token 预算管理:扩展端按 Token 数而非消息数截断上下文,避免拆分 tool_calls 与 tool 消息。
  • 文件大小限制:Agent 对 JSON body、流式上传、文件读取分别设置大小上限,防止内存爆炸。

章节来源

安装指南与系统要求 ​

官方安装渠道以 GitHub Releases 自动构建产物为主:

  • 从 Chrome Web Store 或 Microsoft Edge Add-ons 商店安装。
  • Chromium 用户可从 GitHub Releases 下载 ai-helper-*.zip,解压后在开发者模式下加载已解压扩展程序。
  • 开发者可从源码构建,但推荐普通用户直接使用官方构建产物。

系统要求:

  • Chrome / Edge / Chromium 114+,因为需要使用 Side Panel API。
  • 若启用本地 Agent 能力,需要 Node.js 环境安装 ai-helper-agent。

章节来源

快速开始 ​

推荐的新手流程如下:

  1. 安装扩展:从应用商店或 GitHub Releases 安装。
  2. 打开侧边栏:使用快捷键或扩展图标打开侧边栏。
  3. 配置大模型厂商:在选项页添加 OpenAI 兼容端点和密钥,保存多个厂商配置。
  4. 可选:启动本地 Agent:一键安装代理端或使用命令行启动,将配对码填入选项页 → Agent。

章节来源

基本使用示例 ​

以下是几个适合入门的典型场景:

场景说明相关能力
网页信息提取让 AI 读取当前标签页内容,总结长文、表格或链接列表页面内容、元素查询、数据提取
任务自动化自动点击、填表、滚动、上传文件,甚至处理弹窗页面交互、表单填充、文件上传
知识检索导入 PDF、Word、Excel、PPT、Markdown、HTML、CSV,构建本地知识库并提问RAG、混合检索、引用溯源
本地文件与命令让 AI 读取本地文件、列出目录、执行终端命令Agent 文件 API、命令执行、安全分级
定时任务每天固定时间针对某个 URL 重跑指令,结果写入指定会话调度器、通知、会话管理

这些场景在 README 中都有明确描述,可作为上手起点。

章节来源

扩展端与 Agent 端通信机制 ​

扩展端通过 local-agent-client.js 封装与 Agent 的通信,核心契约包括:

类别端点或行为用途
配对与会话/api/pair、/api/status、/api/status/detail配对认证、健康检查、平台信息
文件系统/api/fs/read、/api/fs/write、/api/fs/list、/api/fs/delete、/api/files/upload文件读写、目录操作、上传
命令执行/api/exec、/api/exec/stop异步执行、等待结果、停止进程
MCP/api/mcp/tools、/api/mcp/call、/api/mcp/servers/*工具发现与调用
Skill/api/skill/list、/api/skill/run、/api/skill/import*技能管理与执行
实时输出WebSocket命令执行的实时流式输出

通信安全机制包括:

  • 仅允许 Chrome 扩展来源跨域访问。
  • 需认证的接口使用 Authorization: Bearer <token>。
  • 配对码一次性使用,已配对后不再下发敏感信息。
  • 心跳接口仅刷新在线状态,不泄露宿主敏感信息。
sequenceDiagram
participant UI as "扩展侧边栏"
participant Client as "LocalAgentClient"
participant Server as "Agent 服务器"
UI->>Client : 发起配对请求
Client->>Server : POST /api/pair
Server-->>Client : 返回 token
Client->>Server : GET /api/status
Server-->>Client : 返回版本与平台信息
UI->>Client : 调用文件/命令/MCP/Skill/RAG
Client->>Server : 带 Bearer Token 的 HTTP 请求
Server-->>Client : 返回结构化结果
Client-->>UI : 渲染结果或错误提示

图表来源

章节来源

版本同步策略 ​

项目采用“扩展端与 Agent 端版本号保持同步”的策略:

  • 扩展端版本定义在根 package.json 和 manifest.json 中。
  • Agent 端版本定义在 agent/package.json 中。
  • 构建产物中的版本信息来自 src/config/version.json。
  • CI 通过 .github/workflows/release.yml 构建扩展 zip 并发布到 GitHub Releases。

建议维护者:

  • 升级版本时同步更新扩展端与 Agent 端版本号。
  • 发布前确认 npm run build:silent 能成功构建。
  • 用户安装时应优先选择与扩展版本匹配的 Agent 版本。

章节来源

常见故障排查 ​

现象可能原因处理建议
侧边栏打不开Service Worker 被终止或消息未正确传递重新打开侧边栏,检查 background 与 side panel 消息
Agent 显示未配对未输入配对码或 Agent 未启动启动 Agent,复制配对码到选项页 → Agent
文件操作失败路径不在允许范围或 Agent 不可达检查工作目录、允许路径、Agent 是否运行
命令执行无输出WebSocket 连接断开或超时查看命令执行日志,确认 Agent 进程存活
知识库不可用RAG 依赖未安装或 Node 版本不满足检查 Node.js 版本,按提示恢复 RAG 依赖
主题异常样式未使用 CSS 变量 Token 体系遵循主题 Token 规范,避免硬编码色值

章节来源

开源协议、贡献方式与社区支持 ​

  • 开源协议:MIT License。
  • 贡献方式:欢迎提交 PR,建议在动手前阅读架构总览文档。
  • 社区支持:GitHub Discussions 和 Issues,每个 Issue 会在 24 小时内回复。
  • 文档渠道:中文文档、英文文档、Wiki、文档站和产品介绍文档。

章节来源

结论 ​

AI Helper 的核心价值在于把“聊天型 AI”升级为“可操作、可编排、可审计”的浏览器智能助手。其双进程架构清晰分离了浏览器上下文和本地系统能力,既降低了扩展端的权限风险,又保留了强大的本地执行能力。对于初学者,可以从网页信息提取和表单自动化入手;对于有经验的开发者,可以深入 MCP、Skill、RAG、多 Agent 协作和 Agent 安全策略。

在使用时,请始终注意:

  • 优先通过官方渠道安装扩展和 Agent。
  • 保持扩展端与 Agent 端版本一致。
  • 理解 Service Worker 生命周期和 Agent 进程重启约束。
  • 使用内置的安全策略、回收站和审计日志保护本地数据。