{
 "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
}
