Upgrade Alias-Agent to 0.2.0 (#51)

Upgrade Alias-Agent to 0.2.0

---------

Co-authored-by: ZiTao-Li <zitao.l@alibaba-inc.com>
Co-authored-by: xieyxclack <yuexiang.xyx@alibaba-inc.com>
Co-authored-by: Zexi Li <tomleeze@qq.com>
Co-authored-by: SSSuperDan <dlaura2218@gmail.com>
Co-authored-by: lalaliat <78087788+lalaliat@users.noreply.github.com>
Co-authored-by: jinli.yl <jinli.yl@alibaba-inc.com>
Co-authored-by: Dengjiaji <dengjiaji.djj@alibaba-inc.com>
Co-authored-by: 于南 <zengtianjing.ztj@alibaba-inc.com>
Co-authored-by: JustinDing <166603159+sleepy-bird-world@users.noreply.github.com>
Co-authored-by: y1y5 <269557841@qq.com>
Co-authored-by: 柳佚 <yly287738@alibaba-inc.com>
Co-authored-by: LiangguiWeng <347185100@qq.com>
Co-authored-by: 潜星 <zhijian.mzj@alibaba-inc.com>
Co-authored-by: StCarmen <1106135234@qq.com>
Co-authored-by: LuYi <yilu_2000@outlook.com>
Co-authored-by: 刺葳 <ciwei.cy@alibaba-inc.com>
This commit is contained in:
Yue Cui
2025-12-03 20:58:25 +08:00
committed by GitHub
parent 8af2dc6477
commit cb87558efe
430 changed files with 49058 additions and 3471 deletions

View File

@@ -1,109 +1,354 @@
<p align="center">
<img
src="assets/alias.png"
alt="Alias-Agent 徽标"
width="500"
height="auto"
/>
</p>
<h2 align="center">Alias-Agent即刻启动随需定制轻松部署</h2>
<div align="center">
<img src="assets/alias.png" alt="Alias-Agent Logo" width="500" height="250" style="vertical-align: middle; margin-right: 20px;">
<h1 style="text-decoration: none; border-bottom: none; display: inline; vertical-align: middle; margin: 0;">Alias-Agent: 即开即用,自由扩展,轻松部署</h1>
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/agentscope-ai/agentscope-samples/blob/main/LICENSE)
[![Python](https://img.shields.io/badge/python-%3E%3D3.10-blue)](https://www.python.org/)
[![Docs](https://img.shields.io/badge/built--on-AgentScope-blue)](https://doc.agentscope.io/)
[![Runtime Docs](https://img.shields.io/badge/built--on-AgentScope%20Runtime-red)](https://runtime.agentscope.io/)
[![Last Commit](https://img.shields.io/github/last-commit/agentscope-ai/agentscope-samples)](https://github.com/agentscope-ai/agentscope-samples)
</div>
## 项目介绍
*Alias-Agent*(简称 *Alias*)是一个基于 [AgentScope](https://github.com/agentscope-ai/agentscope) 和 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 构建的LLM驱动的智能体旨在作为响应用户查询的智能助手。Alias擅长分解复杂问题、构建路线图并应用适当的策略来处理各种现实世界的任务。
具体而言Alias提供了三种操作模式以实现灵活的任务执行
- **Simple React简单React模式**:采用经典的推理-行动循环来迭代解决问题和执行工具调用。
- **Planner-Worker规划者-工作者模式)**:使用智能规划将复杂任务分解为可管理的子任务,由专门的工作者智能体独立处理每个子任务。
- **Built-in Agents内置智能体**:利用针对特定领域定制的专业智能体,包括用于全面分析的*深度研究智能体*和用于基于网络交互的*浏览器使用智能体*。更多详细信息可参考下面的"基本使用"部分。
*Alias-Agent*(简称 *Alias*)是一个基于 [AgentScope](https://github.com/agentscope-ai/agentscope) 和 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 构建的、由大语言模型驱动的智能体旨在作为通用智能助手响应用户查询。Alias 擅长分解复杂问题、构建解决路径,并应用合适的策略来处理多样化的现实世界任务。
我们的目标是让Alias成为一个开箱即用的解决方案用户可以随时部署以处理各种任务
Alias 采用多模式运行机制,实现灵活的任务执行,包括 `通用General模式``浏览器使用Browser Use模式``深度研究Deep Research模式``金融分析Financial Analysis模式``数据科学Data Science模式`。在不同运行模式间切换时Alias 配备了定制化的指令、专业工具集以及协调各类专家智能体的能力。这使得 Alias 能够更好地适应不同下游任务的具体需求。例如在处理金融分析时Alias 采用可追溯的推理链并生成可解释的结果以增强用户对其决策的信任同时优化报告可视化效果在解决数据科学任务时Alias 可以访问用户关联的数据库,并旨在促进高效的数据分析、处理和预测
## 即将推出
我们的目标是让 Alias 成为一个开箱即用的解决方案,用户可以轻松部署以应对各种任务,并得到基于 AgentScope 生态系统的完整智能体开发、测试和部署流程的支持。除了作为一个即用型智能体,我们还希望 Alias 成为一个基础模板,能够适应多样化场景。我们鼓励开发者在工具、提示词和智能体层面扩展和定制 Alias以满足特定需求。
除了作为现成的智能体我们还设想Alias作为一个基础模板可以迁移适配到不同的场景。开发者可以在工具、提示词和智能体级别扩展和自定义Alias以满足他们的特定需求
我们欢迎更多开发者加入社区,共同推动持续创新
我们正在积极开发以下领域的专业增强和适配:
- **商业智能BI** 场景
- **金融**分析应用
- **问答QA** 系统
## 📢 最新动态
- **[2025-12]** 提供五种运行模式通用General模式、浏览器使用Browser Use模式、深度研究Deep Research模式、金融分析Financial Analysis模式和数据科学Data Science模式。
敬请期待即将发布的版本!
- **[2025-12]** 记忆系统升级:提供用于持久化工具调用追踪的 Tool Memory 服务,以及用于个性化用户体验的 User Profiling 服务。
- **[2025-12]** 前端 UI 使用 [Spark Design](https://sparkdesign.agentscope.io/) 进行设计,具备中断控制和工件编辑功能。
- **[2025-12]** 后端基于 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 重构:轻量级单节点部署、简化的用户管理以及特定模式的启动引导。
## 安装
## ✨ 特性
以开发模式安装Alias包
### 🤖 适用于多样化场景的多运行模式
提供五种运行模式以应对多样化的现实世界任务:
- **通用General模式**元规划器Meta Planner能够根据任务上下文在简单任务、规划执行、浏览器使用、深度研究和数据科学模式之间自动切换。
- **浏览器使用Browser Use模式**具备多模态能力的增强型Browser Use智能体。
- **深度研究Deep Research模式**:采用树状结构问题/假设探索并具备以用户为中心特性的深度研究智能体。
- **金融分析Financial Analysis模式**: 基于假设驱动的金融分析智能体。
- **数据科学Data Science模式**:专用于数据科学工作流(如机器学习、数值计算和探索性数据分析)的智能体。
#### 通用General模式
通用模式以元规划器Meta Planner为特色通过自动模式切换和全面的中断支持来编排任务执行。Meta Planner根据上下文智能地将任务路由到合适的专业智能体同时在整个执行生命周期中保持稳健的状态保存。这使得在不同运行模式如深度研究和数据科学之间能够实现无缝切换并确保即使在任务被中断或重定向时也能保持连续性。
通用模式还提供了一个开箱即用的、特定于 AgentScope 的问答智能体([更多详情](docs/qa_agent.md)),预先配置了高频的 AgentScope 相关问答对。通过集成 RAG 和 GitHub MCP 工具,问答智能体可以动态检索最新的源代码结构、官方教程和社区讨论,并结合从私有知识库中灵活匹配的相关信息,以提供准确的答案。
#### 浏览器使用Browser Use模式
<p align="center">
<img
src="assets/browser_agent.png"
alt="浏览器使用模式"
width="600"
height="auto"
/>
</p>
浏览器使用Browser Use模式扩展了原Browser Use智能体使其具备全面的多模态能力能够对视觉内容进行细粒度理解并与网页元素进行智能交互。该智能体具备高级的图像理解能力可以从图表、图形和视觉内容中提取语义信息包括坐标轴标签、趋势和异常值。视频理解能力使得智能体能够提取视频内容并进行推理而自动表格填写和智能文件下载工具则简化了表单交互和文档管理。
为了处理网页浏览的动态特性Browser Use模式实现了复杂的动态子任务管理。系统会在网页发生变化时自动更新子任务以适应新的内容、弹窗或导航事件。这确保了即使浏览环境发生变化智能体也能保持上下文并继续执行任务使其对于需要持续关注和适应的复杂多步骤网页交互特别有效。
#### 深度研究Deep Research模式
<p align="center">
<img
src="assets/deep_research.png"
alt="深度研究模式"
width="600"
height="auto"
/>
</p>
深度研究Deep Research模式引入了以用户为中心user-centric的增强功能将研究任务转变为协作、透明的过程。对于研究型问题该智能体采用预搜索模块在生成后续问题之前收集专业、详细的信息确保提出的问题更有价值且信息充分。这种方法通过将问题建立在全面的背景知识之上显著提高了研究交互的质量。
该模式还采用了树状结构的研究流程,通过不断深入的信息收集来驱动研究。用户还可以动态中断深度研究过程并引导研究方向。统一的执行路径提供了一个具有可配置提示词、标准操作程序和工具集的统一代码库,使得深度研究智能体能够适应不同领域,同时保持一致的、可扩展的架构。
#### 金融分析Financial Analysis模式 ([详细文档](docs/financial_analysis.md))
<p align="center">
<img
src="docs/figures/finance_overview.png"
alt="金融分析模式"
width="600"
height="auto"
/>
</p>
在金融分析场景中,复杂的推理和可追溯的逻辑链对于建立用户对模型结论的信任至关重要。为了实现 *可解释性*、*可追溯性* 和 *可干预性*Alias-Agent 采用了假设驱动的智能体架构,明确地将任务执行转化为“提出假设 → 收集证据 → 验证假设 → 更新状态”的循环,作为通用深度研究流程的一种变体。这种架构使得分析逻辑能够被记录、检查和迭代,系统地解决了金融领域对透明证据链和清晰、可控逻辑的需求。
金融分析模式支持树状结构搜索,通过深度层次探索将复杂的金融研究问题分解为可验证的子假设。该模式集成了金融 MCP 工具(可配置 API 密钥以便使用)并优化了报告可视化。除了生成全面的最终报告外,系统还支持可视化整个树状搜索过程,并生成优化的、用于演示的交互式 HTML 文件,使复杂的金融分析更易于理解和解释。
#### 数据科学Data Science模式 ([详细文档](docs/data_science.md))
<div align="center" style="margin: 20px 0;">
<img src="docs/figures/alias-ds-overall.png" width="80%" style="max-width: 800px; height: auto;">
</div>
在数据科学Data Science模式下Alias-Agent 作为一个自主的、端到端的助手,将高层次的分析问题转化为可执行的数据科学工作流。它无缝处理从数据获取、清洗到建模、可视化和叙述性报告的全流程,只需最少的人工干预,使用户能够在现实场景中高效地从意图转向洞察。
启动时,数据科学模式使用智能路由器将用户任务分配给三个核心场景之一:探索性数据分析、预测建模或精确数据计算。每个场景都由专门定制的、符合其分析意图的提示词模板驱动。在此基础上,它具备可扩展的文件过滤流水线,以快速在海量数据湖中定位相关文件。它能够稳健地将不规则的电子表格(包括合并单元格、多级标题和嵌入式注释)解析为结构化表格或语义化 JSON。它还支持多模态理解能够对视觉内容进行总结和自然语言问答。对于探索性数据分析任务它会自动生成交互式 HTML 报告,结合了洞察、可视化和可执行代码,以确保透明度和可复现性。
### 🧠 增强的记忆系统
- **工具记忆(长期)**:通过 ReMe 持久化存储工具调用痕迹,实现自动化的总结和使用指导。
- **用户画像(长期)**: 通过动态候选评分捕获并精炼用户行为,并通过 mem0 提升为稳定画像,与前端交互无缝集成。
### 🖥️ 提供 CLI 和全栈部署方案
#### CLI 部署
- **命令行界面**:通过 `alias_agent run` 命令直接执行,支持模式选择和配置选项。
#### 全栈部署
- **前端**:基于 [Spark Design](https://sparkdesign.agentscope.io/) 的 React 应用程序,具备运行时中断控制、工件检查器和可编辑输出。
- **后端**:基于 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 的轻量级单节点部署,具有简化的用户管理和特定模式的启动引导。
## 🚀 快速开始
### 💻 安装
> Alias 需要 **Python 3.10** 或更高版本。
首先,以开发模式安装包
```bash
# From the project root directory
pip install -e .
```
这将安装 `alias_agent` 命令行工具。
### 🐳 沙盒设置(可选)
```bash
pip install -e .
# 如果使用 colima
export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock
# 设置沙箱环境
# 如果您使用的是colima则需要运行以下命令
# export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock
# 更多详细信息可参考 https://runtime.agentscope.io/en/sandbox.html
# 方式1从registry拉取
# 选项 1从企业镜像仓库拉取
export RUNTIME_SANDBOX_REGISTRY=agentscope-registry.ap-southeast-1.cr.aliyuncs.com
docker pull agentscope-registry.ap-southeast-1.cr.aliyuncs.com/agentscope/runtime-sandbox-alias:latest
# 方式2docker hub拉取
# 选项 2 Docker Hub 拉取
docker pull agentscope/runtime-sandbox-alias:latest
```
这将安装 `alias` 命令行工具
更多详情请参考 [AgentScope Runtime 文档](https://runtime.agentscope.io/en/sandbox.html)
## 基本使用
### 🔑 API 密钥配置
`alias` CLI提供了一个终端界面来运行AI智能体以处理各种任务。
### 运行命令
首先设置API密钥
```bash
# 模型API密钥
# 必需:模型 API 密钥默认DashScope
export DASHSCOPE_API_KEY=your_dashscope_api_key_here
# 使用其他模型:前往 src/alias/agent/run.py将您的模型添加到 MODEL_FORMATTER_MAPPING然后运行bash来设置您的模型和API密钥。例如
#export MODEL=gpt-5
#export OPENAI_API_KEY=your_openai_api_key_here
# 搜索API密钥深度研究所需
# 必需:搜索 API 密钥(用于深度研究模式)
export TAVILY_API_KEY=your_tavily_api_key_here
# 可选:金融 MCP 工具 API 密钥(用于金融分析模式)。在以下地址激活 MCP 工具:
# https://bailian.console.aliyun.com/tab=app#/mcp-market/detail/Qieman
# https://bailian.console.aliyun.com/tab=app#/mcp-market/detail/tendency-software
export DASHSCOPE_MCP_API_KEY=your_dashscope_api_key_here
# 可选GitHub token用于问答智能体访问 GitHub 仓库)
# export GITHUB_TOKEN=your_github_token
# 可选:使用其他模型(例如 OpenAI
# 首先,在 alias/agent/run.py 的 MODEL_FORMATTER_MAPPING 中添加你的模型
# export MODEL=gpt-4
# export OPENAI_API_KEY=your_openai_api_key_here
```
执行智能体任务:
### 📝 基础用法 -- CLI 部署
使用不同模式执行智能体任务:
```bash
alias_agent run --task "Your task description here"
```
# 通用General模式
alias_agent run --mode general --task "Analyze Meta stock performance in Q1 2025"
### 示例
#### 使用所有智能体运行(元规划者与工作者):
```bash
alias_agent run --task "Analyze Meta stock performance in Q1 2025"
```
#### 仅使用Browser-use Agent运行
```bash
# 浏览器使用Browser Use模式
alias_agent run --mode browser --task "Search five latest research papers about browser-use agent"
# 深度研究Deep Research模式
alias_agent run --mode dr --task "Research the impact of AI on healthcare"
# 金融分析Financial Analysis模式
alias_agent run --mode finance --task "Analyze Tesla's Q4 2024 financial performance"
# 数据科学Data Science模式
alias_agent run --mode ds \
--task "Analyze the distribution of incidents across categories in 'incident_records.csv' to identify imbalances, inconsistencies, or anomalies, and determine their root cause." \
--files ./docs/data/incident_records.csv
```
#### 上传文件到沙箱工作区:
**注意**:使用 `--files` 上传文件会自动复制到沙盒中的 `/workspace`。生成的文件可在 `sessions_mount_dir` 的子目录中找到。
### 基础用法 -- 全栈部署
要运行具有全栈部署(前端 + 后端)的 Alias-Agent请按照以下步骤操作
#### 前提条件
1. **安装前端依赖**
```bash
# 上传单个文件
alias_agent run --task "Analyze this data" --files data.csv
# 上传多个文件
alias_agent run --task "Process these files and create a summary report" --files report.txt data.csv notes.md
# 使用简短形式 (-f)
alias_agent run --task "Review the documents" -f document1.pdf document2.txt
# 与其他选项结合使用
alias_agent run --mode all --task "Analyze the data and generate insights" --files dataset.csv --verbose
# 从项目根目录
cd frontend
npm install
```
**注意**:使用 `--files` 上传的文件会自动复制到沙箱中的 `/workspace` 目录,并保留其原始文件名,使其立即可供智能体访问。
2. **配置环境变量**
```bash
# 从项目根目录,复制示例环境文件
cp .env.example .env
### 获取智能体生成的文件
在您运行 `alias_agent` 的目录中,您应该会找到一个 `sessions_mount_dir` 目录,其中包含子目录,每个子目录都包含来自沙箱挂载文件系统的 `/workspace` 的内容。所有生成的文件都应位于该处。
# 编辑 .env 并配置以下关键变量:
# - USER_PROFILING_BASE_URL: 记忆服务 URL (例如, http://localhost:6380/alias_memory_service)
# - REDIS_HOST: Redis 主机 (默认: localhost)
# - REDIS_PORT: Redis 端口 (默认: 6379)
# - BACKEND_PORT: 后端服务器端口 (默认: 8000)
# - FIRST_SUPERUSER_EMAIL: 初始管理员邮箱 (默认: alias@agentscope.com)
# - FIRST_SUPERUSER_USERNAME: 初始管理员用户名 (默认: alias)
# - FIRST_SUPERUSER_PASSWORD: 初始管理员密码 (默认: alias)
```
3. **启动 Redis**(缓存和会话管理所需):
```bash
# 使用 Docker (推荐)
docker run -d -p 6379:6379 --name alias-redis redis:7-alpine
# 或使用本地 Redis 安装
redis-server
```
#### 启动沙盒服务器(可选但推荐)
为了获得包括代码执行和文件操作在内的完整功能,请在另一个终端中启动沙盒服务器:
```bash
# 从项目根目录
runtime-sandbox-server --extension src/alias/runtime/alias_sandbox/alias_sandbox.py
```
沙盒服务器能够在隔离的容器中安全地执行代码,这对于数据科学模式和其他需要代码执行的功能至关重要。
#### 启动后端服务器
在一个终端中,首先导出所有必需的 API 密钥(请参阅上面的 [API 密钥配置](#-api-密钥配置) 部分),然后启动后端 API 服务器:
```bash
python -m uvicorn alias.server.main:app --host 0.0.0.0 --port 8000 --reload
```
后端服务器将:
- 自动初始化数据库(默认 SQLite或如果配置了则使用 PostgreSQL
- 创建初始超级用户账户(如果不存在)
-`http://localhost:8000` 启动(或 `.env` 中指定的端口)
通过访问 `http://localhost:8000/api/v1/monitor/health` 来验证服务器是否正在运行。
#### 启动前端
在另一个单独的终端中,启动前端开发服务器:
```bash
# 从项目根目录
cd frontend
npm run dev
```
前端将在 `http://localhost:5173` 启动(或在 `vite.config.ts` 中指定的端口)。前端配置为将 API 请求代理到 `http://localhost:8000` 的后端服务器。
#### 启动记忆服务服务器
首先,以开发模式安装 Memory Service 包
```bash
# 从项目根目录
cd src/alias/memory_service
pip install -e .
```
要使用记忆服务,您有两种部署选项:
**选项 1命令行启动**
1. 首先,将以下环境变量添加到您的 `.env` 文件中:
```bash
# Redis 配置
USER_PROFILING_REDIS_SERVER=localhost
USER_PROFILING_REDIS_PORT=6379
# Qdrant 配置
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_EMBEDDING_MODEL_DIMS=1536
# DashScope 配置
DASHSCOPE_EMBEDDER=text-embedding-v4
DASHSCOPE_MODEL_4_MEMORY=qwen3-max
DASHSCOPE_API_KEY=your_dashscope_api_key_here
DASHSCOPE_API_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# User Profiling 配置
USER_PROFILING_BASE_URL=http://localhost:6382
USER_PROFILING_SERVICE_PORT=6382
```
2. 然后运行启动脚本:
```bash
# 从项目根目录
bash script/start_memory_service.sh
```
该脚本将在启动记忆服务之前自动检查并启动 Redis 和 Qdrant 服务(如果 Docker 可用则通过 Docker 启动)。
**选项 2Docker 部署**
有关基于 Docker 的部署,请参阅 [alias/memory_service/docker/README.md](memory_service/docker/README.md) 中的详细文档。
#### 访问应用程序
一旦两个服务器都运行起来:
- **前端 UI**:在浏览器中打开 `http://localhost:5173`
- **后端 API**:可在 `http://localhost:8000` 访问
- **API 文档**:可在 `http://localhost:8000/docs` (Swagger UI) 或 `http://localhost:8000/api/v1/openapi.json` (OpenAPI JSON) 访问
- **健康检查**`http://localhost:8000/api/v1/monitor/health`
#### 默认登录凭据
首次启动后,您可以使用在 `.env` 中配置的超级用户凭据登录:
- **邮箱**:如 `FIRST_SUPERUSER_EMAIL` 所指定 (默认: `alias@agentscope.com`)
- **用户名**:如 `FIRST_SUPERUSER_USERNAME` 所指定 (默认: `alias`)
- **密码**:如 `FIRST_SUPERUSER_PASSWORD` 所指定
## ⚖️ 许可证
Alias-Agent 根据 **Apache 2.0 许可证**发布 - 详情请参阅 [LICENSE](https://github.com/agentscope-ai/agentscope-samples/blob/main/LICENSE) 文件。