当前位置: 首页 > news >正文

AgenticSeek:完全本地的AI助手,保护隐私的智能代理

AgenticSeek:完全本地的AI助手

项目概述

AgenticSeek是一个100%本地运行的AI助手,作为Manus AI的完全替代品。这个支持语音的AI助手能够自主浏览网页、编写代码、规划任务,同时将所有数据保留在您的设备上。专为本地推理模型设计,完全在您的硬件上运行,确保隐私无忧,无需云端依赖。

功能特性

  • :locked: 完全本地 & 私有 - 所有内容都在您的电脑上运行,无云端、无数据共享。您的文件、对话和搜索都保持私密。

  • 🌐 智能网页浏览 - AgenticSeek可自主浏览互联网:搜索、阅读、提取信息、填写网页表单,全程免手动。

  • :laptop: 自动化编程助手 - 支持编写、调试并运行Python、C、Go、Java等程序,无需监督。

  • 🧠 智能代理选择 - 自动判断最合适的代理来完成任务,就像拥有专家团队随时待命。

  • 📋 规划并执行复杂任务 - 从旅行规划到复杂项目,可将大任务拆分为步骤,调用多个AI代理协作完成。

  • 🎙️ 语音支持 - 提供干净、快速、未来感的语音与语音转文本功能(开发中)。

安装指南

前置要求

  • Git: 用于克隆仓库
  • Python 3.10.x: 强烈推荐使用Python 3.10.x版本

安装步骤

  1. 克隆项目
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
  1. 运行自动安装脚本
./install.sh

该脚本会自动检测操作系统(Linux或macOS)并运行相应的安装脚本。

  1. 手动安装依赖
pip3 install --upgrade packaging
pip3 install --upgrade pip setuptools
curl -fsSL https://ollama.com/install.sh | sh
pip3 install -r requirements.txt
  1. 配置环境
    复制并配置环境文件:
cp .env.example .env
# 编辑.env文件设置您的配置

使用说明

启动服务

基础模式(仅前端和搜索服务):

./start_services.sh

完整模式(包含后端所有服务):

./start_services.sh full

基本使用

启动后,您可以通过以下方式与AgenticSeek交互:

  1. 语音交互:启用语音功能后,直接与助手对话
  2. 文本输入:通过界面输入您的问题或指令
  3. 任务委托:让助手执行复杂任务,如网页搜索、代码编写等

API使用示例

from sources.llm_provider import Provider
from sources.interaction import Interaction# 初始化提供者
provider = Provider(provider_name="ollama", model="your-model")# 创建交互实例
interaction = Interaction(agents=[...], tts_enabled=True, stt_enabled=True)# 处理用户查询
response = await interaction.process("搜索最新的AI技术发展")

核心代码

主要代理系统

class Agent():"""所有代理的抽象基类"""def __init__(self, name, prompt_path, provider, verbose=False, browser=None):self.agent_name = nameself.browser = browserself.role = Noneself.type = Noneself.llm = providerself.memory = Noneself.tools = {}self.blocks_result = []self.success = Trueasync def process(self, prompt, speech_module) -> str:"""处理用户提示的核心方法"""self.memory.push('user', prompt)answer, reasoning = await self.llm_request()return answer, reasoning

代码执行代理

class CoderAgent(Agent):"""代码编写和执行代理"""def __init__(self, name, prompt_path, provider, verbose=False):super().__init__(name, prompt_path, provider, verbose, None)self.tools = {"bash": BashInterpreter(),"python": PyInterpreter(),"c": CInterpreter(),"go": GoInterpreter(),"java": JavaInterpreter(),"file_finder": FileFinder()}self.role = "code"self.type = "code_agent"async def process(self, prompt, speech_module) -> str:"""处理编程任务"""prompt = self.add_sys_info_prompt(prompt)self.memory.push('user', prompt)answer, reasoning = await self.llm_request()# 执行检测到的代码块exec_success, feedback = self.execute_modules(answer)return self.remove_blocks(answer), reasoning

网页浏览代理

class BrowserAgent(Agent):"""自主网页浏览代理"""def __init__(self, name, prompt_path, provider, verbose=False, browser=None):super().__init__(name, prompt_path, provider, verbose, browser)self.tools = {"web_search": searxSearch(),}self.role = "web"self.type = "browser_agent"self.browser = browserself.current_page = ""self.search_history = []def extract_links(self, search_result: str) -> List[str]:"""从搜索结果中提取链接"""pattern = r'(https?://\S+|www\.\S+)'matches = re.findall(pattern, search_result)return [link.rstrip('.,!?;:)') for link in matches]

任务规划代理

class PlannerAgent(Agent):"""复杂任务规划代理"""def __init__(self, name, prompt_path, provider, verbose=False, browser=None):super().__init__(name, prompt_path, provider, verbose, None)self.tools = {"json": Tools()}self.agents = {"coder": CoderAgent(name, "prompts/base/coder_agent.txt", provider),"file": FileAgent(name, "prompts/base/file_agent.txt", provider),"web": BrowserAgent(name, "prompts/base/browser_agent.txt", provider, browser=browser),"casual": CasualAgent(name, "prompts/base/casual_agent.txt", provider)}self.role = "planification"self.type = "planner_agent"def get_task_names(self, text: str) -> List[str]:"""从文本中提取任务名称"""lines = text.strip().split('\n')return [line.strip('- ').strip() for line in lines if line.strip()]

语言工具类

class LanguageUtility:"""多语言支持和翻译工具"""def __init__(self, supported_language: List[str] = ["en", "fr", "zh"]):self.translators_tokenizer = None self.translators_model = Noneself.supported_language = supported_languageself.load_model()def detect_language(self, text: str) -> str:"""检测文本语言"""langid.set_languages(self.supported_language)lang, score = langid.classify(text)return langdef translate(self, text: str, origin_lang: str) -> str:"""翻译文本到英语"""if origin_lang == "en":return texttokenizer = self.translators_tokenizer[origin_lang]inputs = tokenizer(text, return_tensors="pt", padding=True)model = self.translators_model[origin_lang]translation = model.generate(**inputs)return tokenizer.decode(translation[0], skip_special_tokens=True)

AgenticSeek通过模块化的代理系统,为各种任务提供专业的AI助手服务,同时确保所有处理都在本地完成,保护用户隐私。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.zskr.cn/news/39023.html

相关文章:

  • CSP-S 2025 题解
  • 洛谷 P11190
  • linux报错
  • 高级语言程序设计作业3
  • P14359 [CSP-J 2025 T3] 异或和 ← 前缀异或和
  • 第14天(中等题 滑动窗口、哈希表)
  • Office 2024 专业增强版下载安装教程:安装/下载/激活/全流程教程
  • fhq treap笔记
  • 11/3
  • ICPC2025 武汉站 游记
  • 基于Blocking queue的生产消费模型
  • React中useContext的基本使用和原理解析
  • JDK的安装过程
  • File文件操作
  • 越南航空数据泄露事件深度解析
  • redux-thunk和createAsyncThunk
  • 【AI说Rust 01】Rust 的学习路线
  • P11771 题解
  • CSP-S 2025 饭堂寄
  • 如何在github上使用github免费域名下预览自己的项目
  • 在ROS中安装PX4依赖实现Gazebo仿真
  • Windows 路由表详解
  • 如何启用cycloneDDS的iceoryx
  • 老化车
  • 在Fiddler中模拟网络中断,返回500错误的过程
  • 构建企业级AI提示词攻击防御体系的实战指南-2025年
  • 矩阵的秩
  • Python列表推导式完全指南
  • 如何启用cycloneDDS的iceoryx共享内存?(转载)
  • Rockchip RK3588 - Mali-G610 GPU驱动(mesa+Panthor)