阿里Page Agent:基于视觉大模型的网页自动化实践与部署指南

阿里Page Agent:基于视觉大模型的网页自动化实践与部署指南
这次我们来看一个来自阿里的开源项目 Page Agent它最近在 GitHub 上热度很高。这个项目的核心是让 AI 能够像人一样通过鼠标点击、键盘输入等交互方式自动操作网页完成任务。与此同时围绕 GPT-5.6 的发布也出现了一些新的变数引发了社区的广泛讨论。对于开发者、测试工程师和希望自动化网页操作的用户来说这两个动态都值得关注。Page Agent 最吸引人的地方在于它试图解决传统 RPA机器人流程自动化或基于 DOM 解析的自动化工具难以应对的复杂、动态网页交互问题。它结合了视觉理解和动作规划让 AI 能“看懂”网页并执行任务。而 GPT-5.6 的发布波折则反映了当前大模型在能力、安全与商业化之间的复杂平衡。本文将重点拆解 Page Agent 的核心能力、部署方式、应用场景并分析 GPT-5.6 的最新动态对 AI 应用开发可能带来的影响。如果你关心如何用 AI 实现真正的“所见即所得”的网页自动化或者想了解最新大模型动态背后的技术趋势这篇文章会提供清晰的路径。我们将从 Page Agent 是什么、怎么跑起来、能做什么、效果如何这几个维度展开并穿插对 GPT-5.6 事件的解读。1. 核心能力速览首先我们通过一个表格快速了解 Page Agent 和 GPT-5.6 这两个关键话题的核心信息。项目/事件类型核心特点硬件/环境门槛启动/使用方式关键能力/影响阿里 Page Agent开源 AI Agent 项目基于视觉的网页理解与交互支持点击、输入、滚动等操作任务驱动无需精确 DOM 定位。依赖大模型 API如 GPT-4V或本地视觉语言模型需要 Python 环境对 GPU 无硬性要求若使用本地模型则需相应算力。通过 Python 脚本调用提供示例任务定义需配置 API 密钥或本地模型端点。自动化网页测试、数据抓取、表单填写、跨平台操作流编排。GPT-5.6 发布再生变数大模型发布事件原定发布计划出现调整涉及多款模型定价策略引发对模型能力边界、安全审核和商业化节奏的讨论。与开发者无关主要影响 API 服务使用者。关注官方公告和 API 文档更新。可能影响依赖特定模型版本的 AI 应用成本与稳定性提示技术选型需考虑风险。从表格可以看出Page Agent 是一个偏应用层的工具其能力上限很大程度上取决于背后“大脑”视觉语言模型的强弱。而 GPT-5.6 的动态则属于基础设施层的变化会间接影响所有基于其构建的应用。2. 适用场景与使用边界2.1 Page Agent 适合谁能解决什么问题Page Agent 的目标用户和场景非常明确软件测试工程师自动化端到端E2E测试尤其是针对 UI 频繁变动、传统脚本维护成本高的 Web 应用。Page Agent 通过视觉理解可能降低对前端代码结构的依赖。数据分析师/业务人员需要从多个网站定期抓取数据但网站没有开放 API 或反爬机制复杂。Page Agent 可以模拟真人操作绕过一些简单的交互验证。RPA 开发者希望为现有的自动化流程引入更强的感知和决策能力处理非结构化的网页元素。个人效率追求者自动化重复性的网页操作如每日签到、信息填报、报告生成等。它能解决的核心痛点是在无法或难以通过 API 和稳定 DOM 选择器进行编程交互的网页上实现自动化任务。2.2 Page Agent 不适合什么场景了解边界同样重要高性能、高并发的爬虫场景Page Agent 的交互基于模拟浏览器如通过 Playwright 或 Selenium速度远低于直接 HTTP 请求不适合大规模、高速的数据采集。强验证码或高级反爬网站对于图形验证码、滑块验证、行为检测等复杂反爬措施单纯的视觉模型可能无法可靠破解。对操作精度和确定性要求极高的生产流程AI 决策存在一定的不确定性在涉及资金交易、关键业务审批等场景需谨慎评估或加入人工复核环节。完全离线的环境如果依赖云端大模型 API如 GPT-4V则无法在无网络环境下运行。2.3 GPT-5.6 变数的影响边界GPT-5.6 发布计划的调整主要影响的是计划使用其最新 API 的服务开发商可能需要调整产品上线时间或临时寻找替代模型。关注前沿模型能力的研发人员需要重新评估技术路线图中对新能力的依赖。所有 AI 应用开发者这是一个提醒即依赖单一外部大模型 API 存在服务稳定性、成本突变和策略调整的风险。构建应用时考虑模型抽象层和多后备方案变得更重要。2.4 合规与安全提醒使用 Page Agent 时必须严格遵守法律法规和网站服务条款尊重robots.txt在抓取数据前检查目标网站的robots.txt文件遵守其爬虫协议。避免对目标网站造成负担合理设置请求间隔避免高频访问导致对方服务器压力过大。个人信息与版权不得抓取和滥用个人隐私信息不得侵犯网站内容版权。授权原则自动化操作涉及登录或个人账户的必须确保已获得相关账户所有者的明确授权。3. 环境准备与前置条件要运行 Page Agent你需要准备以下环境。请注意由于它是一个较新的开源项目具体细节请以 GitHub 仓库的最新README为准。3.1 基础软件环境操作系统支持 Windows 10/11, macOS, Linux (如 Ubuntu 20.04)。Linux 环境通常依赖问题最少。Python需要 Python 3.8 或更高版本。建议使用虚拟环境如venv或conda隔离项目依赖。包管理工具pip是最基本的。项目可能提供requirements.txt或pyproject.toml。浏览器与驱动Page Agent 很可能基于 Playwright 或 Selenium。如果使用 Playwright需要安装其对应的浏览器二进制文件。大模型访问权限这是核心。你需要准备以下之一OpenAI GPT-4V (Vision) 的 API Key这是效果可能最好的选择但需要付费。其他支持视觉理解的云端大模型 API如 Anthropic Claude 3支持视觉、Google Gemini Pro Vision 等。本地部署的视觉语言模型 (VLM)如 LLaVA、Qwen-VL 等。这需要你拥有足够的 GPU 资源并能成功部署其 API 服务。3.2 硬件资源考量CPU/内存运行 Python 脚本和浏览器实例需要一定的 CPU 和内存。建议至少 4 核 CPU 和 8GB 内存。GPU可选但推荐如果你选择在本地运行视觉语言模型那么 GPU 是必需的。显存需求取决于具体模型例如运行量化版的 LLaVA-7B 可能需要 6GB 以上显存而更大的模型则需要 12GB 或更多。网络稳定访问目标网站和所选大模型 API如果使用云端的网络环境。3.3 账号与密钥准备大模型 API 密钥在对应平台如 OpenAI注册账号并获取 API Key。可选代理设置如果你的网络环境需要请提前配置好。4. 安装部署与启动方式假设我们已经克隆了 Page Agent 的 GitHub 仓库到本地。以下是一个通用的安装和启动流程示例具体命令请根据项目实际结构调整。4.1 克隆项目与创建环境# 1. 克隆项目代码 (请将 repository-url 替换为实际地址) git clone repository-url cd page-agent # 2. 创建并激活 Python 虚拟环境 (以 venv 为例) python -m venv venv # Windows venv\Scripts\activate # Linux/macOS source venv/bin/activate # 3. 升级 pip pip install --upgrade pip4.2 安装项目依赖通常项目会提供依赖列表文件。# 方式一使用 requirements.txt pip install -r requirements.txt # 方式二如果项目使用 poetry pip install poetry poetry install安装过程中可能会遇到 Playwright 浏览器安装的步骤按照提示操作即可。# 如果项目基于 Playwright可能需要单独安装浏览器 playwright install chromium4.3 配置模型访问这是关键一步。你需要在项目的配置文件或环境变量中设置大模型的访问方式。示例通过环境变量配置 OpenAI API (推荐)# Linux/macOS export OPENAI_API_KEY你的-sk-xxx密钥 # Windows (PowerShell) $env:OPENAI_API_KEY你的-sk-xxx密钥 # Windows (CMD) set OPENAI_API_KEY你的-sk-xxx密钥示例通过配置文件config.yaml或.env文件如果项目使用配置文件其内容可能类似# config.yaml model: provider: openai # 或 local, anthropic, google api_key: ${OPENAI_API_KEY} # 或直接写密钥不推荐 base_url: https://api.openai.com/v1 # 如果使用代理或自定义端点 model_name: gpt-4-vision-preview # 指定视觉模型或者使用.env文件OPENAI_API_KEY你的-sk-xxx密钥 MODEL_PROVIDERopenai VISION_MODELgpt-4-vision-preview4.4 启动与运行示例任务Page Agent 很可能以库Library或脚本Script的形式提供你需要编写或运行一个定义任务的 Python 脚本。一个极简的任务脚本示例 (demo_task.py):import asyncio from page_agent import PageAgent, Task async def main(): # 1. 初始化 Agent它会自动读取环境变量或配置文件 agent PageAgent() # 2. 定义一个任务 task Task( nameGitHub 搜索 Page Agent, instruction打开 GitHub 官网在搜索框输入 Page Agent 并搜索然后点击第一个仓库链接。, start_urlhttps://github.com ) # 3. 执行任务 await agent.run(task) # 4. 任务执行完成后可以获取结果或截图 print(f任务 {task.name} 执行完毕。) # agent.save_screenshot(final_page.png) if __name__ __main__: asyncio.run(main())运行这个脚本python demo_task.py如果一切配置正确你应该能看到一个浏览器窗口自动打开并逐步执行你定义的任务。5. 功能测试与效果验证部署成功后我们需要系统地测试 Page Agent 的各项能力。以下测试旨在验证其核心功能是否如预期工作。5.1 测试一基础导航与点击测试目的验证 Agent 能否理解简单指令完成打开网页、识别元素并点击的操作。输入指令“访问百度首页 (https://www.baidu.com)点击‘新闻’链接。”操作步骤在任务脚本中设置start_url为https://www.baidu.com。设置instruction为上述指令。运行脚本。预期结果浏览器打开百度首页页面成功跳转到百度新闻页面。判断成功最终 URL 包含news.baidu.com或页面标题/内容显示为新闻。常见失败原因网络问题导致页面加载超时。模型未能正确识别“新闻”链接在屏幕上的位置可能因为页面布局差异、广告遮挡。Playwright 浏览器上下文配置问题。5.2 测试二表单识别与输入测试目的验证 Agent 能否在复杂的表单中找到输入框并输入文本。输入指令“打开 GitHub 登录页面 (https://github.com/login)在用户名输入框里输入 ‘test_user’。”操作步骤设置start_url为 GitHub 登录页。设置对应的instruction。运行脚本。预期结果登录页打开“Username or email address” 输入框中出现了 “test_user” 文本。判断成功通过 Playwright 选择器检查输入框的value属性或通过视觉模型确认截图中的输入框有文字。常见失败原因模型将指令输入到了密码框。页面加载了不同的语言版本元素标签变化。5.3 测试三多步骤复杂任务测试目的验证 Agent 的任务规划和状态保持能力。输入指令“在豆瓣电影 Top 250 页面 (https://movie.douban.com/top250)找到排名第 10 的电影记住它的名字然后搜索这个名字。”操作步骤设置起始页面为豆瓣 Top250。运行包含此复杂指令的任务。预期结果Agent 应能滚动页面定位到第 10 部电影提取其名称然后可能在当前页面或新标签页的搜索框中进行搜索。判断成功最终页面内容与第 10 部电影名强相关。常见失败原因模型在长指令下丢失上下文或误解步骤顺序。提取文本时出错。未能成功从列表页导航到搜索页。5.4 测试四动态内容与等待测试目的验证 Agent 对需要等待的异步加载内容的处理能力。输入指令“打开一个单页应用例如某个使用 React/Vue 的仪表盘点击一个会触发数据加载的按钮然后等数据加载完成后找到显示‘总计’的数字。”操作步骤找一个你知道的、有异步加载行为的演示网站进行测试。预期结果Agent 在点击后应能等待一段时间直到目标数字出现并识别它。判断成功成功输出或高亮显示“总计”数字。常见失败原因缺乏明确的等待策略在元素出现前就尝试交互导致失败。模型无法判断“数据加载完成”这一状态。效果验证小结Page Agent 的效果高度依赖于背后视觉语言模型的能力。在简单、结构清晰的网页上成功率会很高。面对复杂、动态、反爬意识强的网站则需要更精细的任务拆解、提示词工程和可能的后处理逻辑。6. 接口 API 与批量任务虽然 Page Agent 本身可能更侧重于单任务脚本执行但我们可以将其封装成服务以实现 API 化和批量任务处理。这对于集成到现有系统或处理任务队列非常有用。6.1 将 Page Agent 封装为 HTTP API 服务我们可以使用 FastAPI 或 Flask 快速搭建一个服务。以下是一个高度简化的概念示例# app.py (FastAPI 示例) from fastapi import FastAPI, BackgroundTasks from pydantic import BaseModel import asyncio from typing import Optional from page_agent import PageAgent, Task import uuid app FastAPI() agent_pool {} # 简单的 Agent 池实际生产环境需要更复杂的管理 class TaskRequest(BaseModel): instruction: str start_url: str task_id: Optional[str] None class TaskResponse(BaseModel): task_id: str status: str message: str app.post(/run_task, response_modelTaskResponse) async def create_task(request: TaskRequest, background_tasks: BackgroundTasks): task_id request.task_id or str(uuid.uuid4()) # 将任务放入后台执行避免阻塞请求 background_tasks.add_task(execute_page_task, task_id, request.instruction, request.start_url) return TaskResponse(task_idtask_id, statusaccepted, messageTask is queued for execution.) async def execute_page_task(task_id: str, instruction: str, start_url: str): 实际执行任务的异步函数 try: agent PageAgent() # 这里应考虑复用或池化 Agent 实例 task Task(namefAPI_Task_{task_id}, instructioninstruction, start_urlstart_url) await agent.run(task) # 这里可以更新数据库标记任务成功存储结果或截图路径 print(fTask {task_id} completed successfully.) except Exception as e: # 处理异常更新任务状态为失败 print(fTask {task_id} failed: {e}) app.get(/task_status/{task_id}) async def get_task_status(task_id: str): 查询任务状态 # 这里应该从数据库或缓存中查询真实状态 return {task_id: task_id, status: running/completed/failed, result_url: None} if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)启动服务python app.py服务启动后就可以通过POST /run_task接口提交任务并通过GET /task_status/{task_id}查询进度。6.2 批量任务处理对于批量任务核心是任务队列和调度。我们可以使用Celery、RQ或简单的asyncio队列。简单的asyncio队列示例# batch_processor.py import asyncio import csv from page_agent import PageAgent, Task async def worker(task_queue: asyncio.Queue): 工作协程从队列中取任务并执行 agent PageAgent() # 每个worker一个agent实例 while True: task_data await task_queue.get() try: task Task(**task_data) print(fProcessing: {task.name}) await agent.run(task) # 处理成功逻辑 except Exception as e: print(fFailed task {task_data.get(name)}: {e}) # 处理失败逻辑如重试、记录日志 finally: task_queue.task_done() async def main(): # 1. 创建任务队列 task_queue asyncio.Queue(maxsize10) # 2. 启动多个工作协程 workers [asyncio.create_task(worker(task_queue)) for _ in range(3)] # 3个并发worker # 3. 从CSV文件读取批量任务 tasks_to_run [] with open(batch_tasks.csv, r, encodingutf-8) as f: reader csv.DictReader(f) for row in reader: tasks_to_run.append({ name: row[task_name], instruction: row[instruction], start_url: row[start_url] }) # 4. 将任务放入队列 for task in tasks_to_run: await task_queue.put(task) # 5. 等待所有任务完成 await task_queue.join() # 6. 取消工作协程 for w in workers: w.cancel() await asyncio.gather(*workers, return_exceptionsTrue) if __name__ __main__: asyncio.run(main())批量任务 CSV 文件示例 (batch_tasks.csv):task_name,instruction,start_url 搜索阿里,在搜索框输入“阿里巴巴”并点击搜索,https://www.baidu.com 打开新闻,点击顶部导航栏的“新闻”链接,https://www.qq.com 查看天气,找到页面上的天气信息并截图,https://www.weather.com.cn批量任务最佳实践限流控制并发数避免对目标网站造成过大压力。错误处理与重试为每个任务实现指数退避的重试机制。结果持久化将每个任务的执行结果成功/失败、截图、提取的数据保存到数据库或文件系统。监控与日志记录详细的执行日志便于排查问题。7. 资源占用与性能观察Page Agent 的性能消耗主要来自两部分浏览器实例和视觉语言模型推理。7.1 浏览器实例资源占用每个运行的 Page Agent对应一个浏览器标签页都会启动一个浏览器进程如 Chromium。内存一个典型的无头HeadlessChromium 进程可能占用 200-500 MB 内存。如果开启图形界面Headful占用会更高。CPU页面加载、渲染和 JavaScript 执行会消耗 CPU。在任务执行期间CPU 使用率会有峰值。观察方法使用系统监控工具如htop、任务管理器、活动监视器查看chrome、chromium或playwright相关进程的资源使用情况。降低浏览器资源消耗的建议使用无头模式Headless运行除非调试需要。合理控制并发任务数避免同时启动过多浏览器实例。任务执行完毕后及时关闭浏览器上下文Context和浏览器实例。7.2 视觉语言模型推理资源占用这是性能瓶颈的关键取决于你使用的是云端 API 还是本地模型。云端 API (如 GPT-4V)延迟主要耗时在网络请求和模型推理。一次包含截图的分析请求响应时间可能在几秒到十几秒不等。成本按 Token 或请求次数计费频繁调用成本较高。观察方法在代码中记录每个agent.run步骤的耗时。监控 API 调用额度和费用。本地模型 (如 LLaVA)显存模型加载和推理需要大量显存。例如LLaVA-7B 的 INT4 量化版可能需 6-8GB 显存FP16 版本则需要更多。推理速度在消费级 GPU如 RTX 4060 Ti 16G上处理一张截图并生成决策可能需要数秒时间。观察方法使用nvidia-smi(Linux) 或 GPU 监控工具观察显存占用和利用率。在代码中记录模型推理时间。7.3 综合性能优化策略截图优化传递给模型的截图分辨率不需要是原始屏幕分辨率。可以适当压缩或裁剪只保留关键区域减少图像 Token 数量对于 API或模型输入大小对于本地模型。缓存与记忆对于重复访问的页面或固定操作流程可以缓存模型的分析结果或动作序列避免重复分析。任务拆解与提示词工程将复杂任务拆解成更小、更明确的子任务并提供更精准的提示词可以减少模型的困惑和无效尝试从而减少调用次数。并发控制根据你的硬件资源CPU、内存、GPU 显存/API 速率限制合理设置并发 worker 数量。选择性价比模型在效果可接受的范围内选择更经济或更高效的模型。例如对于简单网页可能不需要 GPT-4V 级别的模型Claude Haiku 或本地较小的 VLM 可能就足够了。8. 常见问题与排查方法在部署和使用 Page Agent 过程中你可能会遇到以下问题。这里提供通用的排查思路。问题现象可能原因排查方式解决方案启动失败提示缺少依赖Python 包未正确安装或系统依赖缺失。检查pip list确认关键包如playwright,openai是否存在。查看错误堆栈信息。重新安装依赖pip install -r requirements.txt。对于 Playwright运行playwright install。浏览器无法启动Playwright 浏览器未安装或安装不完整浏览器驱动问题。检查 Playwright 安装日志。尝试手动安装playwright install chromium --dry-run。清理后重装playwright uninstall chromium playwright install chromium。确保有合适的网络环境下载浏览器。模型 API 调用失败API 密钥错误、额度不足、网络不通、请求格式错误。检查环境变量OPENAI_API_KEY等是否设置正确。用curl或简单脚本测试 API 连通性。查看模型服务商的控制台确认配额和状态。更正 API 密钥。检查网络代理设置。确认请求的模型名称如gpt-4-vision-preview可用且你有权限。Agent 无法识别页面元素截图质量差、提示词不清晰、模型能力不足、页面动态加载未完成。保存失败时的页面截图人工检查目标元素是否清晰可见。在指令中添加更明确的位置描述如“左上角的蓝色按钮”。检查页面是否完全加载可加入强制等待page.wait_for_timeout。优化提示词。增加页面加载等待时间。考虑更换或微调更强的视觉模型。任务执行逻辑错误模型对指令的理解有偏差规划出错。查看 Agent 执行过程中的中间步骤输出或日志。分析模型在每一步做出的决策如果项目支持日志输出。将复杂任务拆解成更简单的子任务并分别测试。在提示词中加入更严格的约束和示例。运行速度非常慢网络延迟高API调用、本地模型推理慢、浏览器实例过多。使用计时工具定位耗时环节。监控 GPU/CPU/内存使用率。检查是否是批量任务并发过高。对于 API考虑使用更近的端点或优化网络。对于本地模型尝试量化或使用更小模型。降低任务并发数。内存/显存不足本地模型过大、浏览器实例未释放、批量任务并发过高。使用系统工具监控资源使用情况。检查代码中是否正确关闭了浏览器上下文和页面。减少本地模型加载的批次大小batch size。确保每个任务结束后清理资源。使用with语句管理浏览器上下文生命周期。被目标网站屏蔽请求频率过高、User-Agent 被识别为自动化工具、IP 被列入黑名单。检查网站返回的状态码如 403, 429和响应内容。增加请求间隔asyncio.sleep。轮换 User-Agent。考虑使用住宅代理 IP需注意合规性。尊重网站的robots.txt。9. 最佳实践与使用建议为了更稳定、高效、合规地使用 Page Agent遵循以下最佳实践从小任务开始验证不要一开始就设计复杂的多步骤任务。从一个简单的“打开网页-点击链接”任务开始确保整个链路环境、模型、浏览器是通的。精心设计提示词Instruction这是与模型沟通的桥梁。指令应清晰、具体、无歧义。例如“点击那个大的红色登录按钮”比“点击登录按钮”更好。可以尝试加入“如果找不到 X就执行 Y”的备选逻辑。实现健壮的错误处理在任务脚本中对网络超时、元素未找到、模型返回异常等常见错误进行捕获和处理并设计重试逻辑如最多重试3次每次间隔递增。资源管理与清理使用async with或try...finally语句确保浏览器上下文、页面等对象在使用后被正确关闭避免资源泄漏。结果验证与断言自动化任务不能只依赖模型决策。在关键步骤后加入验证逻辑。例如点击“提交”按钮后检查页面是否跳转到“成功”页面或者是否出现了预期的元素。分离配置与代码将 API 密钥、模型端点、超时时间、重试次数等配置项放在配置文件如config.yaml或环境变量中不要硬编码在脚本里。日志记录至关重要记录详细的日志包括任务开始/结束时间、模型请求与响应可脱敏、执行的浏览器操作、遇到的错误等。这对于调试和监控不可或缺。合规与道德使用明确授权只自动化你拥有权限或已获得明确授权的操作。控制频率设置合理的请求间隔模拟人类操作速度避免对目标服务器造成拒绝服务攻击DoS。遵守协议严格遵守目标网站的robots.txt和服务条款。数据用途对抓取的数据仅用于合法、声明的用途并注意个人信息保护和版权问题。10. 总结与下一步阿里开源的 Page Agent 代表了一种趋势将大模型的视觉与推理能力应用于传统的自动化领域试图解决基于规则或 DOM 的自动化工具的脆弱性问题。它的潜力在于处理那些“看得见但摸不着”难以用代码精准定位的网页交互。成功的关键在于背后视觉语言模型的选择与调优以及提示词工程和任务设计的精巧程度。对于开发者而言最先应该验证的是在你的目标场景下当前可用的 VLM无论是云端 API 还是本地模型能否稳定、准确地“看懂”页面并做出正确决策。最容易踩的坑包括低估了模型调用成本、忽略了网络和资源开销、以及设计了过于复杂且容错率低的任务流程。关于 GPT-5.6 的变数它提醒我们在快速演进的 AI 领域外部依赖的服务可能存在不确定性。在构建严重依赖特定模型 API 的应用时设计一个抽象层如统一的模型调用接口并提前规划后备方案如其他可替代的模型供应商是提高系统韧性的明智之举。下一步你可以深入探索模型微调如果开源许可允许尝试用自己的网页操作数据对较小的本地 VLM如 LLaVA进行微调以提升在特定网站或任务上的准确率。多模态融合结合视觉理解与 DOM 树分析取长补短提高定位元素的鲁棒性。构建领域专用 Agent将 Page Agent 作为基础能力封装成针对特定垂直领域如电商比价、政务填报、社交媒体管理的专用自动化工具。这个项目为网页自动化打开了新思路虽然目前可能还不够成熟到处理所有生产场景但它无疑是一个值得关注和尝试的技术方向。建议将本文作为入门指南结合官方文档和社区讨论开始你的探索之旅。