# localAgent **Repository Path**: ereddate2017/local-agent ## Basic Information - **Project Name**: localAgent - **Description**: 本地运行的智能AI助手,集成国内大模型、Web界面、文件操作、定时任务、搜索、应用管理、地理位置等丰富功能 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-10 - **Last Updated**: 2026-02-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LocalAgent ## 项目概述 LocalAgent是一个本地运行的智能AI助手,专为国内用户打造。它集成了国内大语言模型(百度ERNIE Bot、阿里通义千问)、Web界面、文件操作、定时任务、搜索、应用管理、地理位置、知识库等丰富功能,作为Telegram的国内替代方案,提供安全、私密、高效的AI助手体验。 ## 核心功能 ### 🤖 AI对话 - **多模型支持**:集成百度ERNIE Bot和阿里通义千问 - **上下文记忆**:支持多轮对话,保持对话连贯性 - **回复质量评估**:当AI无法回答时自动搜索并生成回复 - **动态参数调整**:根据问题复杂度自动调整模型参数 ### 💬 Web界面 - **实时通信**:基于Socket.io的实时双向通信 - **响应式设计**:自适应不同屏幕尺寸 - **深色模式**:支持深色/浅色主题切换 - **消息搜索**:快速搜索历史消息 - **导出功能**:导出对话记录为Markdown - **设置面板**:自定义界面和行为 - **对话管理**:创建、切换、删除对话 ### 📁 文件操作 - **基本操作**:创建、读取、删除、复制、移动文件 - **批量操作**:支持批量文件操作 - **文件搜索**:按名称搜索文件 - **文件预览**:预览文件内容 - **操作历史**:记录操作历史,支持撤销 - **文件链接**:创建文件后提供访问链接 ### ⏰ 定时任务 - **任务创建**:支持多种时间格式(每5/15/30分钟、每小时、每天、工作日等) - **优先级管理**:支持low/normal/high/urgent四个优先级 - **执行历史**:记录任务执行历史 - **失败重试**:任务失败时自动重试 - **任务模板**:快速创建常用任务 - **暂停/恢复**:支持暂停和恢复任务 ### 🔍 搜索功能 - **多搜索引擎**:支持百度、搜狗、360、Bing、Google等 - **搜索历史**:记录搜索历史 - **结果缓存**:缓存搜索结果,提高响应速度 - **综合搜索**:合并多个搜索引擎的结果 ### 📱 应用管理 - **打开应用**:支持打开本地应用 - **关闭应用**:关闭指定应用或所有应用 - **应用列表**:列出已安装应用,支持搜索过滤 - **应用状态**:检查应用运行状态 - **快捷方式**:创建和管理应用快捷方式 - **使用历史**:记录应用使用历史 - **发送消息**:支持向微信等应用发送消息 ### 📍 地理位置 - **IP定位**:通过IP地址获取位置信息 - **多服务支持**:支持多个IP定位服务,自动选择最佳服务 - **逆地理编码**:将经纬度转换为地址 - **天气信息**:获取当前位置的天气信息(当前/今日/明日) - **地点搜索**:搜索附近的地点 - **位置历史**:记录位置历史 - **位置分享**:生成多地图链接分享位置 ### 📚 知识库 - **Markdown存储**:使用Markdown文件存储知识 - **智能检索**:基于相关性评分的智能检索 - **自动分类**:自动为知识添加分类 - **标签提取**:自动提取关键词标签 - **模糊匹配**:支持模糊搜索 - **知识更新**:支持更新和删除知识 ### 🚀 项目创建 - **多种项目类型**:支持React、Vue、Node.js、Python、Java、PHP、Ruby等12种项目类型 - **自动依赖安装**:自动安装项目依赖 - **创建流程优化**:先创建目录再初始化项目 - **快速启动**:提供快速启动指南 ### 🔧 Shell命令 - **命令执行**:执行本地Shell命令 - **浏览器打开**:在浏览器中打开URL - **通知发送**:发送系统通知 ### 🔌 插件系统 - **可扩展架构**:支持自定义插件 - **热加载**:支持插件热加载 - **插件管理**:管理已加载的插件 ### 🛡️ 安全系统 - **角色权限管理**:支持admin、user、guest三种角色 - **细粒度权限控制**:精确控制每个功能的访问权限 - **审计日志**:记录所有操作,支持按用户、操作类型、日期范围查询 - **安全事件监控**:检测并记录安全事件 - **可疑活动检测**:自动检测多次失败登录等可疑行为 - **输入验证**:防止SQL注入、XSS、命令注入等攻击 - **令牌管理**:生成和验证安全令牌 - **速率限制**:防止API滥用 ### 🧠 记忆分层系统 - **会话上下文**:短期记忆,保持对话连贯性 - **每日日志**:记录每日对话历史 - **情景记忆**:记录重要事件和经历 - **语义记忆**:存储知识和事实 - **记忆压缩**:自动压缩和总结历史记忆 - **混合召回**:根据上下文智能召回相关记忆 - **记忆统计**:查看记忆使用情况 ### 🔄 守护进程模式 - **7x24小时运行**:支持后台守护进程 - **自动重启**:进程崩溃时自动重启 - **日志记录**:记录守护进程运行日志 - **状态监控**:实时监控守护进程状态 ### 💓 Heartbeat机制 - **主动检查**:定期检查系统健康状态 - **定时提醒**:支持设置定时提醒 - **每日问候**:每日首次使用时发送问候 - **健康报告**:生成系统健康报告 ### 🤖 多智能体协作 - **任务分解**:将复杂任务分解为子任务 - **并行执行**:多个子智能体并行处理任务 - **智能调度**:根据任务类型智能分配子智能体 - **超时控制**:防止子智能体无限等待 - **结果聚合**:聚合多个子智能体的结果 ### 🎨 多模态支持 - **语音识别**:将语音转换为文本 - **语音合成**:将文本转换为语音 - **图片生成**:根据文本生成图片 - **图片分析**:分析图片内容、提取文字、检测人脸 - **音频处理**:合并音频、调整语速 - **图片处理**:调整尺寸、转换格式 ### 🌐 Browser Relay - **浏览器自动化**:自动化浏览器操作 - **页面导航**:导航到指定URL - **元素交互**:点击、输入、滚动等 - **截图功能**:截取页面截图 - **会话管理**:保存和恢复浏览器会话 - **无头模式**:支持无头浏览器运行 ## 测试 项目使用Jest进行单元测试和集成测试。 ### 运行测试 ```bash # 运行所有测试 npm test # 运行测试并监听文件变化 npm run test:watch # 运行测试并生成覆盖率报告 npm run test:coverage ``` ### 测试覆盖 - ✅ 守护进程测试 (11个测试用例) - ✅ Heartbeat机制测试 (21个测试用例) - ✅ 多智能体系统测试 (24个测试用例) - ✅ 多模态支持测试 (30个测试用例) - ✅ Browser Relay测试 (41个测试用例) - ✅ 记忆分层系统测试 (32个测试用例) - ✅ 安全系统测试 (49个测试用例) **总计:208个测试用例,全部通过 ✅** ## 技术架构 - **核心系统**:Node.js运行时 - **聊天平台**:Web界面(可扩展) - **记忆系统**:会话上下文 + 每日日志 + 情景记忆 + 语义记忆 - **工具系统**:文件操作、shell命令、定时任务、搜索、应用管理、地理位置 - **插件系统**:可自定义扩展功能 - **安全系统**:角色权限、审计日志、安全事件监控 - **守护进程**:7x24小时后台运行 - **Heartbeat**:主动健康检查和提醒 - **多智能体**:复杂任务分解和并行处理 - **多模态**:语音、图片、TTS支持 - **Browser Relay**:浏览器自动化 - **LLM集成**:百度ERNIE Bot、阿里通义千问、Coze智能体 ## 快速开始 ### 安装依赖 ```bash npm install ``` ### 配置环境变量 复制 `.env.example` 文件为 `.env` 并填写相应的配置: ```bash cp .env.example .env # 编辑 .env 文件 ``` 配置示例: ```env # 百度ERNIE Bot配置 BAIDU_API_KEY=your_baidu_api_key BAIDU_SECRET_KEY=your_baidu_secret_key # 阿里通义千问配置 ALI_API_KEY=your_ali_api_key ALI_MODEL_ID=qwen-plus # Web服务器配置 PORT=3000 ``` ### 启动服务 ```bash npm start ``` 启动成功后,在浏览器中访问 `http://localhost:3000` 即可使用Web界面。 ## 目录结构 ``` localagent/ ├── core/ # 核心系统模块 │ ├── config.js # 配置管理 │ ├── memory.js # 记忆系统 │ ├── memoryLayers.js # 记忆分层系统 │ ├── tools.js # 工具管理 │ ├── platforms.js # 平台管理 │ ├── plugins.js # 插件管理 │ ├── daemon.js # 守护进程 │ ├── heartbeat.js # Heartbeat机制 │ ├── multiAgent.js # 多智能体协作 │ ├── multimodal.js # 多模态支持 │ ├── browserRelay.js # Browser Relay │ └── security.js # 安全系统 ├── platforms/ # 聊天平台集成 │ └── web.js # Web平台 ├── tools/ # 工具实现 │ ├── app.js # 应用管理 │ ├── file.js # 文件操作 │ ├── location.js # 地理位置 │ ├── schedule.js # 定时任务 │ ├── search.js # 搜索功能 │ └── shell.js # Shell命令 ├── plugins/ # 插件目录 │ └── random.js # 示例插件 ├── __tests__/ # 测试目录 │ ├── daemon.test.js │ ├── heartbeat.test.js │ ├── multiAgent.test.js │ ├── multimodal.test.js │ ├── browserRelay.test.js │ ├── memoryLayers.test.js │ └── security.test.js ├── memory/ # 记忆存储目录 │ ├── knowledge.js # 知识库管理 │ └── knowledge/ # 知识库文件 ├── web/ # Web界面 │ └── index.html # Web界面文件 ├── config/ # 配置文件目录 ├── logs/ # 日志目录 ├── .env.example # 环境变量示例 ├── jest.config.js # Jest配置 ├── package.json # 项目配置 ├── index.js # 主入口文件 └── README.md # 项目说明 ``` ## 功能使用示例 ### 文件操作 ``` 创建文件:创建一个名为test.txt的文件,内容是Hello World 读取文件:读取test.txt的内容 删除文件:删除test.txt 复制文件:将test.txt复制到backup目录 移动文件:将test.txt移动到documents目录 ``` ### 定时任务 ``` 创建任务:每天早上8点提醒我喝水 创建任务:每5分钟检查一次邮件 创建任务:工作日早上9点提醒我开会 查看任务:有哪些定时任务? 取消任务:取消每天早上8点的提醒 ``` ### 搜索功能 ``` 搜索:搜索最新的AI技术 搜索:百度搜索 Python教程 搜索:搜索附近的咖啡馆 ``` ### 应用管理 ``` 打开应用:打开微信 关闭应用:关闭微信 应用列表:列出所有应用 应用状态:微信在运行吗? 快捷方式:创建快捷方式 work 微信 ``` ### 地理位置 ``` 我的位置:我在哪里? 天气:今天天气怎么样? 地点搜索:附近的咖啡馆 ``` ### 知识库 ``` 记住:记住我的生日是1990年1月1日 查询:我的生日是什么时候? 更新:更新我的生日为1990年1月2日 删除:删除关于我生日的记忆 ``` ### 项目创建 ``` 创建项目:创建一个React项目 创建项目:创建一个Node.js API项目 创建项目:创建一个Python爬虫项目 ``` ## 与Clawdbot对比 | 特性 | LocalAgent | Clawdbot | |------|-----------|-----------| | **国内LLM** | ✅ 百度、阿里、Coze | ❌ 主要国外模型 | | **国内搜索** | ✅ 百度、搜狗、360 | ❓ | | **Web界面** | ✅ 深色模式、搜索、导出 | ✅ | | **文件操作** | ✅ 批量、搜索、预览、历史 | ✅ | | **定时任务** | ✅ 优先级、历史、模板 | ✅ | | **应用管理** | ✅ 列表、状态、快捷方式 | ✅ | | **地理位置** | ✅ 多服务、天气、分享 | ✅ | | **知识库** | ✅ 智能检索、自动分类 | ✅ | | **记忆分层** | ✅ 会话、日志、情景、语义 | ❓ | | **安全系统** | ✅ 角色权限、审计日志 | ❓ | | **守护进程** | ✅ 7x24小时运行 | ❓ | | **Heartbeat** | ✅ 主动检查、提醒 | ❓ | | **多智能体** | ✅ 任务分解、并行执行 | ❓ | | **多模态** | ✅ 语音、图片、TTS | ❓ | | **Browser Relay** | ✅ 浏览器自动化 | ❓ | | **测试覆盖** | ✅ 单元测试、集成测试 | ✅ | | **技能生态** | ~10个工具 | 700+ Skills | | **部署难度** | ⭐⭐ 简单 | ⭐⭐⭐ 中等 | | **适用场景** | 国内用户、快速部署 | 海外用户、深度定制 | ## 插件开发 详见 [PLUGIN_GUIDE.md](docs/PLUGIN_GUIDE.md) ## 贡献 欢迎提交Issue和Pull Request! ## 许可证 MIT ## 致谢 - 感谢Clawdbot项目提供的灵感和参考 - 感谢百度ERNIE Bot和阿里通义千问提供的AI服务 - 感谢所有开源贡献者的支持