2026/3/28 18:30:40
网站建设
项目流程
建设专业网站的利弊,如何制作游戏,品质好物推荐怎么上,网站开发前景怎么样作者#xff1a;靖苏 让智能体开发更轻盈#xff0c;让云端运行更安全——AgentRun Sandbox SDK 开源发布#xff0c;赋能 Agentic AI 快速落地。 引言#xff1a;构建面向未来的
Agentic AI 基础设施
在大模型与智能体#xff08;Agent#xff09;技术迅猛发展的今天靖苏让智能体开发更轻盈让云端运行更安全——AgentRun Sandbox SDK 开源发布赋能 Agentic AI 快速落地。引言构建面向未来的Agentic AI 基础设施在大模型与智能体Agent技术迅猛发展的今天开发者不仅需要强大的模型能力更亟需一个安全、弹性、易用且可扩展的运行环境来承载复杂的 Agent 逻辑。为此我们正式推出 AgentRun Sandbox SDK 并全面开源函数计算 AgentRun[1]是以高代码为核心、生态开放、灵活组装的一站式 Agentic AI 基础设施平台致力于为企业级 Agentic 应用提供从开发、部署到运维的全生命周期支持。平台深度构建于阿里云函数计算Function Compute, FC之上天然继承了 Serverless 架构的三大核心优势极致弹性、按量付费、零运维负担。更重要的是函数计算 AgentRun 通过深度集成 AgentScope、LangChain、Dify、RAGFlow、Mem0 等主流开源生态打造了一个高性能、高安全、高可观测的智能体运行底座。平台提供五大核心能力高性能 Sandbox 执行环境、统一模型代理与高可用保障、全链路可观测性、工具与 MCPModel Context Protocol统一管理以及完善的数据安全与隔离治理机制。这一切只为让你专注于智能体的业务逻辑本身而无需被底层基础设施的复杂性所困扰。多模态沙箱能力满足多样智能体需求函数计算 AgentRun 的核心亮点之一是其内置的多类型 Sandbox 运行环境基于阿里云 FC 安全隔离架构构建确保每一次执行都安全可控Code Interpreter Sandbox代码解释器沙箱提供隔离的 Python/JavaScript 执行环境支持文件系统读写、命令执行、数值计算与数据分析。适用于需要动态生成/执行代码的场景如数据可视化、公式求解、自动化脚本等。Browser Sandbox浏览器沙箱内置无头浏览器、VNC 可视化客户端及操作录制功能支持模拟真实用户行为实现网页抓取、表单填写、信息提取等操作为智能体赋予“上网”能力。All-in-One Sandbox二合一沙箱融合代码执行与浏览器能力于一体一站式支持复杂任务流——例如先爬取网页数据再用 Python 分析并生成图表最后返回结构化结果。真正实现“端到端智能体工作流”。为降低接入门槛函数计算AgentRun 特别开源推出基于 Python 语言的 Sandbox SDK开发者仅需几行配置即可将任意智能体接入沙箱服务。无需修改原有框架逻辑即可享受 Serverless 架构下的安全、弹性与高性能。LangChain × Codelnterpreter为智能体注入“代码大脑”LangChain 是当前最流行的 Agent 编排框架之一。现在通过 AgentRun Sandbox SDK你可以零改造地为 LangChain Agent 添加安全可靠的代码执行能力。本地快速实践5 分钟上手安装 AgentRun Sandbox SDK 后在 LangChain 工具中注册 Code Interpreter 工具即可让 Agent 自主编写并运行 Python 代码。整个过程无需改动原有项目结构轻松完成本地调试。1. 安装 Serverless Devs运行脚手架您需要使用 Serverless Devs 工具请参考对应安装教程[2]。如果您拥有 NodeJS 开发环境可以使用npm i -g serverless-devs/s快速安装 Serverless Devs。您也可以直接下载 Serverless Devs 二进制程序[3]使用 Serverless Devs。2. 初始化脚手架应用使用快速创建脚手架创建您的 Agent。注意您需要确保您的 python 环境在 3.10 以上。# 初始化模板 s init agentrun-quick-start-langchain # 按照实际情况进入代码目录 cd agentrun-quick-start-langchain/code # 初始化虚拟环境并安装依赖 uv venv uv pip install -r requirements.txt3. 配置认证信息首次使用前需要登录函数计算 AgentRun 控制台[4]创建服务关联角色SLR。设置环境变量建议通过 .env 配置您的环境变量。export AGENTRUN_ACCESS_KEY_IDyour-access-key-id export AGENTRUN_ACCESS_KEY_SECRETyour-access-key-secret export AGENTRUN_ACCOUNT_IDyour-account-id export AGENTRUN_REGIONcn-hangzhou4. 了解 Agent 如何与 LangChain 集成使用from agentrun.integration.langchain import model, sandbox_toolset导入 langchain 的集成能力这里默认提供了model、sandbox_toolset、toolset可以快速创建 langchain 可识别的大模型、工具。同时通过 AgentRunServer 可以快速开放 HTTP Server 供其他业务集成。from agentrun.integration.langchain import model, sandbox_toolset from agentrun.sandbox import TemplateType from agentrun.server import AgentRequest, AgentRunServer from agentrun.utils.log import logger # 请替换为您已经创建的 模型 和 沙箱 名称 MODEL_NAME your-model-name SANDBOX_NAME your-sandbox-name if MODEL_NAME.startswith(): raise ValueError(请将 MODEL_NAME 替换为您已经创建的模型名称) code_interpreter_tools [] if SANDBOX_NAME and not SANDBOX_NAME.startswith(): code_interpreter_tools sandbox_toolset( template_nameSANDBOX_NAME, # 创建好的沙箱模型的名称 template_typeTemplateType.CODE_INTERPRETER, # 沙箱的类型 sandbox_idle_timeout_seconds300, # 沙箱空闲超时时间秒 ) else: logger.warning(SANDBOX_NAME 未设置或未替换跳过加载沙箱工具。) # ... # 自动启动 http server提供 OpenAI 协议 AgentRunServer(invoke_agentinvoke_agent).start()5. 调用 Agentcurl 127.0.0.1:9000/openai/v1/chat/completions \ -XPOST \ -H content-type: application/json \ -d {messages: [{role: user, content: Calculate how many rs are in the word strawberry}], stream:true}云端一键部署“函数求值计算专家”示例平台已为你准备好开箱即用的模板应用——“函数求值计算专家”。该智能体能理解用户输入的数学求值问题如计算sin(x) x^2的极值自动生成数值计算代码并在沙箱中执行最终返回数值计算分析结果。1. 登录“函数计算 AgentRun”控制台创建好模型、沙箱等资源登录阿里云函数计算 AgentRun 控制台[5]首先创建好模型和代码解释器沙箱资源模型管理 大语言模型 添加模型选择模型供应商、选择模型、配置凭证并点击创建模型创建好您的模型运行时与沙箱 Sandbox 沙箱 创建沙箱模板 代码解释器选择沙箱配置信息、日志链路追踪信息点击创建解释器创建好您的代码解释器资源2. 进入探索页面点击“函数求值计算专家”应用一键部署进入函数计算 AgentRun 探索页面[6]点击“函数求值计算专家”应用一键部署。进入探索页面点击函数求值专家快速部署您的 Agent 应用选择刚刚创建好的大语言模型和沙箱资源点击确认创建创建此 Agent 应用3. 点击自动生成域名进入网页体验智能体应用等待前端后端服务部署完成点击生成的域名跳转至智能体应用页面快速体验相关能力。等待部署成功点击此按钮跳转至应用体验页面您也可以在运行时与沙箱 Agent 运行时页面查看您刚刚部署 Agent 应用的详细信息基于 WebIDE 也可以进行在线调试与二次开发。跳转到应用 Web 链接通过对话体验基于代码解释器沙箱的数值计算能力AgentScope × Browser让智能体“看得见”互联网AgentScope 是由阿里通义实验室推出的开源智能体框架强调模块化与可组合性。结合函数计算 AgentRun 的 Browser Sandbox你的 Agent 将具备实时联网、信息检索与交互操作的能力。本地快速实践通过 AgentRun SDK只需简单配置即可启用浏览器工具。随后Agent 即可执行如“访问新浪财经获取今日腾讯控股股价”等指令并返回结构化数据。1. 安装 Serverless Devs运行脚手架您需要使用 Serverless Devs 工具请参考对应安装教程。如果您拥有 NodeJS 开发环境可以使用npm i -g serverless-devs/s快速安装 Serverless Devs。您也可以直接下载 Serverless Devs 二进制程序使用 Serverless Devs。2. 初始化脚手架应用使用快速创建脚手架创建您的 Agent。注意您需要确保您的 python 环境在 3.10 以上。# 初始化模板 s init agentrun-finance-demo # 按照实际情况进入代码目录 cd agentrun-finance-demo/code/agentrun-backend # 初始化虚拟环境并安装依赖 uv venv uv pip install -r requirements.txt3. 配置认证信息设置环境变量。建议通过.env配置您的环境变量export AGENTRUN_ACCESS_KEY_IDyour-access-key-id export AGENTRUN_ACCESS_KEY_SECRETyour-access-key-secret export AGENTRUN_ACCOUNT_IDyour-account-id export AGENTRUN_REGIONcn-hangzhou4. 了解 Agent 如何与 AgentScope 集成使用from agentrun.integration.agentscope import model, sandbox_toolset导入 AgentScope 的集成能力这里默认提供了model、sandbox_toolset、toolset可以快速创建 AgentScope 可识别的大模型、工具。同时通过 AgentRunServer 可以快速开放 HTTP Server 供其他业务集成。from agentrun.integration.agentscope import model, sandbox_toolset from agentrun.sandbox import TemplateType from agentrun.server import AgentRequest, AgentRunServer from agentrun.utils.log import logger # 请替换为您已经创建的 模型 和 沙箱 名称 MODEL_NAME os.getenv(MODEL, your-model-name) SANDBOX_NAME os.getenv(BROWSER_TEMPLATE, your-sandbox-name) if MODEL_NAME.startswith(): raise ValueError(请将 MODEL_NAME 替换为您已经创建的模型名称) # ... agent ReActAgent( nameagentscope-finance-assistant-agent, sys_promptPROMPT, modelmodel(MODEL_NAME), formatterOpenAIChatFormatter(), toolkittoolkit, memoryInMemoryMemory(), ) # ... # 自动启动 http server提供 OpenAI 协议 AgentRunServer(invoke_agentinvoke_agent).start()5. 基于 AgentRun Sandbox SDK 进行二次开发在此版代码示例中通过开源的 AgentRun Sandbox SDK 对浏览器Browser沙箱进行灵活二次开发为 AgentScope 原生工具针对工具调用的开始前准备阶段可以通过 SDK 创建沙箱示例或者选择一个正在运行的沙箱在调用结束后可以通过 SDK 及时删除沙箱节省资源消耗。通过 AgentRun Sandbox SDK可以和代码无缝集成灵活对沙箱的生命周期进行全流程管理操作。_browser_sandbox None def get_browser_sandbox(): 获取或创建 browser sandbox global _browser_sandbox if _browser_sandbox is None: try: print(f正在创建 browser sandbox: {SANDBOX_NAME}) _browser_sandbox Sandbox.create( template_typeTemplateType.BROWSER, template_nameSANDBOX_NAME, sandbox_idle_timeout_seconds1800, ) # 等待 browser 准备就绪最多尝试15次每次等待1秒 max_retries 15 for i in range(max_retries): health_status _browser_sandbox.check_health() if health_status[status] ok: print(fbrowser sandbox 准备就绪 id: {_browser_sandbox.sandbox_id}) break import time time.sleep(1) else: # 超过最大重试次数仍未就绪 raise Exception(fbrowser sandbox 在 {max_retries} 秒内未能准备就绪) except Exception as e: print(f创建 browser sandbox 失败: {str(e)}) import traceback traceback.print_exc() return None return _browser_sandbox async def browser_search(keyword: str, page: int 1, wait_seconds: float 1.5) - ToolResponse: 使用Bing搜索指定关键词并查看指定页码的结果返回搜索结果标题列表 Args: keyword: 搜索关键词 page: 页码从1开始默认为第1页 wait_seconds: 等待页面加载的秒数默认为1.5秒 Returns: 搜索结果标题列表每个标题包含文本内容和链接 try: import asyncio from urllib.parse import quote # 构造Bing搜索URL # first参数第1页0, 第2页10, 第3页20以此类推 first (page - 1) * 10 1 encoded_keyword quote(keyword) url fhttps://www.bing.com/search?q{encoded_keyword}first{first} print(f[DEBUG] url: {url}) browser get_browser_sandbox() if browser is None: return make_tool_response(浏览器工具不可用请透出让用户检查browser是否存在的信息) async with browser.async_playwright(recordTrue) as playwright: try: # 设置导航超时为5秒并等待页面加载 await playwright.goto(url, timeout5000) # 等待页面加载完成 if wait_seconds 0: print(f等待 {wait_seconds} 秒以确保页面加载完成) await asyncio.sleep(wait_seconds) # 获取页面HTML内容 html await playwright.html_content() print(f[DEBUG] html length: {len(html)}) except Exception as page_error: # 捕获页面操作相关的错误 error_msg str(page_error) if TargetClosedError in error_msg or closed in error_msg.lower(): return make_tool_response(搜索失败: 页面在加载过程中被关闭该网站可能不允许自动化访问) elif timeout in error_msg.lower(): return make_tool_response(f搜索失败: 页面加载超时{url}请稍后重试) else: raise # 其他错误继续抛出由外层捕获 # 使用工具函数提取搜索结果 search_results extract_bing_search_results(html) if not search_results: return make_tool_response(f搜索 {keyword}第{page}页完成但未找到搜索结果) # 格式化输出 formatted_results [] for i, result in enumerate(search_results, 1): formatted_results.append(f{i}. {result[title]}\n 链接: {result[link]}) print(f{i}. {result[title]}\n 链接: {result[link]}) result_text \n\n.join(formatted_results) return make_tool_response(f成功搜索 {keyword}第{page}页找到 {len(search_results)} 个结果\n\n{result_text}) except Exception as e: import traceback traceback.print_exc() return make_tool_response(f搜索失败: {str(e)}) async def browser_text_content(url: str, wait_seconds: float 1.5) - ToolResponse: 访问指定网页并获取其纯文本内容已过滤HTML标签和脚本 先导航到指定URL等待页面加载然后提取页面的可读文本内容。 Args: url: 要访问的网页URL地址 wait_seconds: 等待页面加载的秒数默认为1.5秒大多数网页足够 返回页面的可读文本内容已自动过滤 - 所有HTML标签 - JavaScript代码 - CSS样式 - HTML注释 Returns: 页面的纯文本内容 注意 - 默认等待1.5秒通常足够大多数网页加载 - 如果内容没有完全加载可以增加wait_seconds参数重试如wait_seconds3.0 - 某些网页可能会拦截自动化工具访问导致无法获取内容 - 如果遇到访问失败可以尝试其他来源的链接 # 检查URL是否在黑名单中 import asyncio try: browser get_browser_sandbox() if browser is None: return make_tool_response(浏览器工具不可用请透出让用户检查browser是否存在的信息) async with browser.async_playwright(recordTrue) as playwright: try: # 先导航到指定URL设置超时为5秒 await playwright.goto(url, timeout5000) # 等待页面加载完成 if wait_seconds 0: await asyncio.sleep(wait_seconds) # 获取HTML内容 html await playwright.html_content() # 使用过滤函数提取纯文本 text filter_html_to_text(html) print(f{url}:\n{text}\n{ * 100}) # 如果文本内容太长只返回前50000个字符和总长度信息 if len(text) 50000: return make_tool_response(f成功访问 {url}\n\n文本内容前10000字符:\n{text[:50000]}\n\n... (总长度: {len(text)} 字符)) return make_tool_response(f成功访问 {url}\n\n文本内容:\n{text}) except Exception as page_error: # 捕获页面操作相关的错误 error_msg str(page_error) if TargetClosedError in error_msg or closed in error_msg.lower(): return make_tool_response(f获取网页内容失败: {url}\n错误: 页面在加载过程中被关闭\n注意: 该网页可能对自动化工具进行了拦截建议尝试其他来源) elif timeout in error_msg.lower(): return make_tool_response(f获取网页内容失败: {url}\n错误: 页面加载超时5秒\n建议: 可以尝试增加 wait_seconds 参数或尝试其他来源) else: raise # 其他错误继续抛出由外层捕获 except Exception as e: return make_tool_response(f获取网页内容失败: {url}\n错误: {str(e)}\n注意: 该网页可能对自动化工具进行了拦截建议尝试其他来源)AgentRun Sandbox SDK 中集成了 PlayWright用户可以根据上述代码进行二次开发为相应工具browser_search()通过必应搜索相关内容。同时browser_text_content()通过网页抓取为 Agent 提供更多信息。此外get_browser_sandbox()通过 SDK 二次开发可以灵活管理 Sandbox 的生命周期包含创建、删除等一站式生命周期管理。6. 调用 Agentcurl 127.0.0.1:9000/openai/v1/chat/completions \ -XPOST \ -H content-type: application/json \ -d {messages: [{role: user, content: 查询下当前的上证指数}], stream:true}云端部署实战“金融股票专家”智能体我们基于此能力打造了“金融股票专家”应用用户输入股票名称或代码Agent 自动打开财经网站抓取最新行情、财报摘要与新闻舆情综合分析后生成投资建议。1. 登录“函数计算 AgentRun”控制台创建好模型、沙箱等资源登录阿里云函数计算 AgentRun 控制台首先创建好模型和代码解释器沙箱资源模型管理 大语言模型 添加模型选择模型供应商、选择模型、配置凭证并点击创建模型创建好您的模型运行时与沙箱 Sandbox 沙箱 创建沙箱模板 浏览器2. 进入探索页面点击“股票金融专家”应用一键部署进入函数计算 AgentRun 探索页面点击“股票金融专家”应用一键部署。进入探索页面点击股票金融专家快速部署您的 Agent 应用选择刚刚创建好的大语言模型和沙箱资源点击确认创建创建此 Agent 应用3. 点击自动生成域名进入网页体验智能体应用等待前端后端服务部署完成点击生成的域名跳转至智能体应用页面快速体验相关能力。等待部署成功点击此按钮跳转至应用体验页面您也可以在运行时与沙箱 Agent 运行时页面查看您刚刚部署 Agent 应用的详细信息基于 WebIDE 也可以进行在线调试与二次开发。跳转到应用 Web 链接通过对话体验基于浏览器沙箱的网页内容检索能力结语智能随心开发成趣Agentic AI 的未来不应被基础设施的复杂性所束缚。AgentRun Sandbox SDK 的开源正是为了打破这一壁垒。无论你是 LangChain 的忠实用户还是 AgentScope 的探索者无论你在本地调试原型还是在云端部署生产级应用——函数计算 AgentRun 都能为你提供安全、弹性、免运维的沙箱运行时让每一个智能体都能轻盈地奔跑在云端。现在就加入我们GitHub 开源地址https://github.com/Serverless-Devs/agentrun-sdk-python文档与示例https://docs.agent.run/加入“函数计算 AgentRun 客户群”群的钉钉群号134570017218欢迎 Star、Fork、提 Issue一起共建开放的 Agentic 生态智能随心开发成趣 —— 函数计算 AgentRun让智能体开发回归创造力本身。相关链接[1] AgentRunhttps://functionai.console.aliyun.com/agent/explore[2] 安装教程https://serverless-devs.com/docs/user-guide/install[3] Serverless Devs 二进制程序https://github.com/Serverless-Devs/Serverless-Devs/releases[4] AgentRun 控制台https://functionai.console.aliyun.com/agent/explore[5] AgentRun 控制台https://functionai.console.aliyun.com/welcome[6] AgentRun 探索页面https://functionai.console.aliyun.com/agent/explore