{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Universal Hello-Agents 智能体系统\n", "\n", "## 📝 项目简介\n", "\n", "这是一个基于 **Hello-Agents** 框架的通用智能体系统,采用 **单智能体 + 多工具** 设计。\n", "智能体通过 ToolRegistry 注册并调用多个工具实现复杂任务处理。\n", "\n", "### 核心功能\n", "- ✅ **智能网络搜索**:支持多引擎搜索和内容提取\n", "- ✅ **安全终端执行**:受限命令执行,带白名单策略\n", "- ✅ **记忆功能**:支持用户偏好和重要信息记忆(未来)\n", "- ✅ **多引擎支持**:DuckDuckGo、Brave、Ecosia、Searx\n", "\n", "## 👤 作者信息\n", "- **项目名称**: UniversalAgent\n", "- **作者**: haoye2\n", "- **日期**: 2025-11-30\n", "- **框架版本**: Hello-Agents >= 0.2.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 🛠️ 第2部分:环境配置" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 安装依赖(如果需要)\n", "# !pip install -q hello-agents[all] requests beautifulsoup4 python-dotenv\n", "\n", "# 导入必要的库\n", "import os\n", "import sys\n", "from dotenv import load_dotenv\n", "\n", "# 加载环境变量\n", "load_dotenv()\n", "\n", "# 添加项目根目录到Python路径\n", "sys.path.append('.')\n", "\n", "print(\"✅ 环境配置完成\")\n", "print(f\"📁 当前工作目录: {os.getcwd()}\")\n", "print(f\"🐍 Python版本: {sys.version}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 🧰 第3部分:工具定义\n", "\n", "本项目使用预定义的工具,位于 `tools/` 目录下:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 导入工具定义\n", "from src.tools.browser_tool import BrowserTool\n", "from src.tools.terminal_tool import TerminalTool\n", "\n", "# 创建工具实例\n", "browser_tool = BrowserTool()\n", "terminal_tool = TerminalTool()\n", "\n", "print(\"📋 可用工具列表:\")\n", "print(f\"1. {browser_tool.name}: {browser_tool.description}\")\n", "print(f\"2. {terminal_tool.name}: {terminal_tool.description}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 🤖 第4部分:智能体构建" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 导入智能体类\n", "from src.agents.agent_universal import UniversalAgent\n", "\n", "# 创建智能体实例\n", "agent = UniversalAgent()\n", "\n", "print(\"🚀 智能体创建成功!\")\n", "print(f\"📛 智能体名称: {agent.name}\")\n", "print(f\"🔧 已注册工具数量: {len(agent.tool_registry.tools)}\")\n", "\n", "# 显示已注册的工具\n", "print(\"\\n📋 已注册的工具:\")\n", "for tool_name, tool in agent.tool_registry.tools.items():\n", " print(f\" - {tool_name}: {tool.description}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 🎯 第5部分:功能演示\n", "\n", "### 示例1:基础搜索功能" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 演示搜索功能\n", "query = \"Python人工智能最新发展\"\n", "print(f\"🔍 搜索查询: {query}\")\n", "print(\"=\" * 50)\n", "\n", "try:\n", " result = agent.run(query)\n", " print(\"\\n📋 搜索结果:\")\n", " print(result)\n", "except Exception as e:\n", " print(f\"❌ 搜索失败: {e}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 示例2:终端命令执行" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 演示终端功能(安全命令)\n", "command = \"pwd\"\n", "print(f\"💻 执行命令: {command}\")\n", "print(\"=\" * 50)\n", "\n", "try:\n", " result = agent.run(f\"执行 {command}\")\n", " print(\"\\n📋 执行结果:\")\n", " print(result)\n", "except Exception as e:\n", " print(f\"❌ 命令执行失败: {e}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 示例3:复杂任务处理" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 演示复杂任务\n", "complex_task = \"搜索LangChain框架的最新版本信息,然后查看当前目录的文件列表\"\n", "print(f\"🎯 复杂任务: {complex_task}\")\n", "print(\"=\" * 50)\n", "\n", "try:\n", " result = agent.run(complex_task)\n", " print(\"\\n📋 处理结果:\")\n", " print(result)\n", "except Exception as e:\n", " print(f\"❌ 任务处理失败: {e}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 📊 第6部分:性能评估(可选)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import time\n", "\n", "# 简单的性能测试\n", "test_queries = [\n", " \"Python基础语法\",\n", " \"当前目录文件列表\",\n", " \"人工智能发展趋势\"\n", "]\n", "\n", "print(\"📊 性能测试开始...\")\n", "print(\"=\" * 50)\n", "\n", "for i, query in enumerate(test_queries, 1):\n", " print(f\"\\n🧪 测试 {i}: {query}\")\n", " \n", " start_time = time.time()\n", " try:\n", " result = agent.run(query)\n", " end_time = time.time()\n", " \n", " response_time = end_time - start_time\n", " result_length = len(result) if result else 0\n", " \n", " print(f\"✅ 成功 - 响应时间: {response_time:.2f}秒, 结果长度: {result_length}字符\")\n", " print(f\"📝 结果预览: {result[:100]}...\" if len(result) > 100 else f\"📝 结果: {result}\")\n", " except Exception as e:\n", " end_time = time.time()\n", " response_time = end_time - start_time\n", " print(f\"❌ 失败 - 响应时间: {response_time:.2f}秒, 错误: {e}\")\n", "\n", "print(\"\\n📊 性能测试完成\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 📝 第7部分:总结与展望" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 项目总结\n", "\n", "#### ✅ 实现的功能\n", "- 多工具智能体系统构建\n", "- 安全的网络搜索功能\n", "- 受限的终端命令执行\n", "- 灵活的工具注册机制\n", "- 完整的Jupyter Notebook演示\n", "\n", "#### 🎯 遇到的挑战\n", "- **API密钥管理**: 通过.env文件安全配置\n", "- **工具安全策略**: 实现白名单机制限制危险操作\n", "- **多引擎兼容**: 处理不同搜索引擎的响应格式\n", "- **错误处理**: 完善异常捕获和用户友好的错误提示\n", "\n", "#### 🚀 未来改进方向\n", "- [ ] 添加更多工具(文件操作、数据库查询等)\n", "- [ ] 实现真正的记忆功能集成\n", "- [ ] 优化搜索引擎的响应速度\n", "- [ ] 添加Web界面支持\n", "- [ ] 实现多智能体协作\n", "- [ ] 添加更多安全策略\n", "\n", "#### 💡 技术亮点\n", "- **模块化设计**: 工具和智能体分离,易于扩展\n", "- **安全优先**: 多层安全策略保护系统安全\n", "- **容错机制**: 智能降级和错误恢复策略\n", "- **标准兼容**: 符合Hello-Agents框架标准\n", "\n", "---\n", "\n", "🎓 **恭喜!您已经成功运行了UniversalAgent智能体系统!**\n", "\n", "📚 **更多学习资源**:\n", "- [Hello-Agents官方文档](https://github.com/datawhalechina/Hello-Agents)\n", "- 项目配置指南: [CONFIG_GUIDE.md](./CONFIG_GUIDE.md)\n", "- 快速开始指南: [QUICK_START.md](./QUICK_START.md)\n", "\n", "🙏 **感谢Datawhale社区和Hello-Agents项目!**" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }