进阶示例:构建全能出行助手(集成模型/记忆/沙箱/网关/高德mcp)-j9九游会登录
场景概述
在基础示例中,创建了简单的对话智能体,并部署托管到云上的agentarts环境中。但是在真实的生产环境中,企业级的智能体需要具备持久化记忆、安全沙箱以及无缝对接外部系统的能力。
本示例中将构建一个“全能出行助手”智能体,并重点展示以下能力:
- 记忆库(memory):接入云端长短期记忆,实现跨会话的上下文持久化。
- 网关(gateway):通过标准的mcp协议转换能力,接入外部工具。
- 沙箱工具(sandbox):在平台提供的完全隔离的容器中安全执行python代码。
- 身份认证(identity):结合mcp网关,实现工具的标准化鉴权。
环境准备
- 操作系统:linux arm64,服务器可访问公网。
需使用arm64系统制作的agent镜像,使用x86系统制作的镜像在调用智能体运行时时会调用失败。
可以使用华为云ecs服务购买服务器,购买时需要选择鲲鹏架构(arm64)。

- 安装python:请确保python 3.10及以上版本已安装。
大多数linux发行版(如ubuntu)都预装了python,您可以先通过python3 --version检查。如未安装,可以使用如下命令安装:
sudo apt update sudo apt install python3
- 安装docker:请确保docker 18.06及以上版本已安装。如未安装,可以使用如下命令安装:
# 查询 docker 版本 docker --version # 安装docker sudo apt update sudo apt install docker.io
安装完成后,建议立即配置国内镜像加速器。在后续执行agentarts launch构建镜像时,docker需要拉取python:3.10-slim基础镜像,默认从docker.io官方仓库下载,可能超时失败。提前配置加速器可避免此问题。
执行以下命令创建docker配置目录:
sudo mkdir -p /etc/docker
执行以下命令配置国内镜像源(直接复制并回车执行):
sudo tee /etc/docker/daemon.json <<-'eof' { "registry-mirrors":[ "https://docker.m.daocloud.net", "https://dockerproxy.net", "https://mirror.baidubce.com" ] } eof依次执行以下命令重启docker服务,使配置生效:
sudo systemctl daemon-reload sudo systemctl restart docker
华为云swr基础版不支持oci镜像格式,如果您使用的是docker 27及以上版本,并且需要处理oci镜像,可以通过设置环境变量来关闭oci支持。
export docker_buildkit=0 # 或者 export buildkit_use_oci_media_types=0
- 执行以下命令安装sdk(建议在python虚拟环境中安装,以避免与系统包产生冲突)。
# 安装依赖包 apt install python3.12-venv # 创建并激活虚拟环境 (linux) python3 -m venv venv source venv/bin/activate # 安装sdk pip install agentarts-sdk
- 执行pip install agentarts-sdk命令下载缓慢、超时可以更改为使用如下命令
pip install agentarts-sdk -i https://repo.huaweicloud.com/repository/pypi/simple --trusted-host repo.huaweicloud.com
- 如果系统缺少python3-venv包,导致无法创建虚拟环境,请按照命令回显提示安装python3-venv包。

- 执行pip install agentarts-sdk命令下载缓慢、超时可以更改为使用如下命令
- 执行以下命令配置华为云凭证,获取华为云凭证请参考认证鉴权。
export huaweicloud_sdk_ak="your-access-key" export huaweicloud_sdk_sk="your-secret-key"
核心代码实现
- 在agentarts平台创建记忆库。
- 登录。
- 在左侧导航栏选择“开发中心 > 组件库 ”,进入“记忆库”界面。
- 单击“创建记忆库”。填写记忆库名称、描述;勾选“私网访问”、“公网访问”;勾选全部的“长期记忆提取策略”,其余参数使用默认配置。 图1 创建记忆库
图2 配置记忆策略
- 记忆库创建完成后,单击记忆库名称,进入“基本信息”界面,获取记忆库id。 图3 获取记忆库id
- 在“api key”处单击“更新”。 图4 更新api key
- 弹框中单击“确定”后,复制或下载api key。 图5 复制或下载api key
- 在agentarts平台创建沙箱工具。
- 在agentarts平台左侧导航栏中选择“开发中心 > 组件库”,并进入“沙箱工具”页面,单击“创建代码解释器”。
- 填写代码解释器相关配置。参考下表进行配置。
表1 代码解释器配置说明 参数
说明
名称
可自定义。
描述
可自定义。
委托(可选)
(可选)授予的代理权限或代理功能,允许代表智能体与外部系统进行通信和交互。
可不填写,如需手动创建,请单击“创建委托”并参考如下配置创建。
- 委托名称:自定义。
- 信任主体类型:选择“云服务”。
- 云服务:搜索service.workloadsandboxmetadata。
- 其余参数使用默认值。
图6 创建委托
入站身份认证
选择“api key认证”。
api key名称
可自定义。
日志记录
开启。
出网网络配置
选择“公网访问”。
图7 创建沙箱工具
- 配置完成后,单击“立即创建”创建沙箱。
在沙箱工具列表中,记录名称。
单击沙箱工具,进入“配置信息”页面,获取域名。
在“配置信息”页面,单击urn链接,在新页面获取沙箱api key。
图8 获取沙箱工具名称
图9 获取沙箱域名
图10 获取沙箱api key
- 在agentarts平台创建网关,配置高德mcp服务。
- 高德mcp如下,使用前,请参考,创建获取api key。
{ "mcpservers": { "amap-maps-streamablehttp": { "url": "https://mcp.amap.com/mcp?key=您在高德j9九游会登录官网上申请的key" } } } - 在agentarts平台左侧导航栏中选择“开发中心 > 组件库”,并进入“网关”页面,单击“创建网关”。
- 填写网关基础信息并配置权限与身份认证。参考下表进行配置。
表2 网关基础信息与权限身份认证配置 参数
说明
名称
可自定义。
描述(可选)
网关的描述信息,可自定义。
mcp 版本
2025-03-26
委托
使用平台的默认值。
入站身份认证
选择api key认证。
api key名称
可自定义。
日志记录
选择开启。
图11 填写网关基础信息与权限身份认证
- 单击“创建target”,配置高德mcp服务。
表3 高德target配置 参数
说明
名称
可自定义。
描述(可选)
可自定义。
类型
选择“mcp”,使用现成的高德mcp服务,不需要使用直接对接外部rest api的方式。
传输方式
选择“streamable http”,与高德mcp的调用方式保持一致。
mcp地址
填写:https://mcp.amap.com/mcp
出站身份认证
选择“api key”,单击“创建出站身份”,参数配置如下:
- 身份名称:可自定义。
- 认证类型:选择“api key”。
- api key的值:填写高德开发平台中创建的api key。
出站身份创建完成后,返回“创建target”页面,选择已创建的出站身份。
- 位置:选择“查询参数”。
- 参数名称:填写为key。
- 前缀:不填。
图12 创建出站身份
图13 配置出站身份认证
- 配置完成后,单击“确定”创建target。target创建完成后,回到“创建网关”页面,高级配置选择“公网访问”后,单击“创建网关”。
- 网关创建完成后,回到网关列表页面。单击网关名称,记录网关url及网关的api key(注意是网关的api key,不是高德mcp的key)。 图14 网关列表
- 在网关详情页面获取网关url。 图15 获取网关url
- 在网关详情页面,单击urn链接。进入agent identity页面,获取网关的api key。 图16 单击urn链接
图17 获取网关api key
- 高德mcp如下,使用前,请参考,创建获取api key。
- 执行如下命令安装langchain、langgraph、langchain-openai。
pip install -u langchain langgraph langchain-openai
- 创建.env环境变量配置文件。
# ========================================== # 1. 模型配置 (对接华为云maas模型) # ========================================== model_name=deepseek-v3.2 model_url=https://api.modelarts-maas.com/openai/v1 model_api_key=替换为真实的模型api key model_type=openai # ========================================== # 2. agentarts 记忆库配置 # ========================================== memory_space_id=替换为记忆库 id huaweicloud_sdk_memory_api_key=替换为记忆库的api kry huaweicloud_sdk_region=cn-southwest-2 # ========================================== # 3. 网关配置 # ========================================== # 网关地址 gateway_endpoint=替换为网关的url # 网关的 apikey gateway_inbound_token=替换为网关的api key # ========================================== # 4. 沙箱配置 # ========================================== sandbox_name=在agentarts平台中创建的沙箱名称 agentarts_codeinterpreter_data_endpoint="http://您的沙箱域名" huaweicloud_sdk_code_interpreter_api_key="您的沙箱 api key" # ========================================== # 5. agent 全局配置 # ========================================== max_iterations=50 session_ttl=3600 # 本地测试启动 http server 时绑定的端口 agent_run_port=8080
获取模型api key的方法请参考获取华为云maas服务模型api key。
6中agent.py文件的示例中,使用华为云maas服务提供的deepseek-v3.2模型,如果使用其他模型注意model_name的值,需填写为模型接口中model参数的值,可以参考如下方式获取。注意需要选择openai兼容接口。
图18 获取openai兼容接口的model值
- 在本地创建agent.py文件,编辑代码如下。
示例代码中创建了出行助手智能体,并对接记忆库、网关、沙箱、身份认证、华为云maas服务提供的模型。
""" ================================================================================ agentarts langgraph 智能体核心实现 ================================================================================ """ import os import uuid import json import requests import urllib3 import re from typing import list, optional, dict, any, typeddict, annotated from pathlib import path from dotenv import load_dotenv # 禁用内网自签名证书的 ssl 警告 urllib3.disable_warnings(urllib3.exceptions.insecurerequestwarning) # ================================================================================ # 基础依赖:langgraph langchain # ================================================================================ from langgraph.graph import stategraph, end from langgraph.prebuilt import toolnode from langgraph.graph import messagesstate from langchain_core.messages import basemessage, humanmessage, systemmessage, aimessage, toolmessage from langchain_core.tools import tool from langchain_openai import chatopenai # 引入 agentarts 平台级能力 from agentarts.sdk.integration.langgraph import agentartsmemorysessionsaver try: from agentarts.sdk.memory import memoryclient except importerror: memoryclient = none print("[warning] 未检测到 agentarts.sdk,将跳过云端记忆同步。") # 从当前目录的 .env 文件加载环境变量 load_dotenv() def clean_messages_for_llm(messages: list[basemessage]) -> list[basemessage]: """ 清洗消息队列,防止因历史记录截断或脏数据导致 modelarts 报 81001 校验错误。 原理: 当记忆库截断(只读取最近10条)时,可能把上一步的工具调用请求(aimessage)丢弃, 只留下了工具结果(toolmessage),导致第一条消息不合规。 本函数会自动检测并过滤掉所有无对应大模型请求的孤立 toolmessage。 """ cleaned = [] for msg in messages: if isinstance(msg, toolmessage): # 只有前一个消息是 aimessage 并且含有 tool_calls 时,这个 toolmessage 才是合法的 if cleaned and isinstance(cleaned[-1], aimessage) and getattr(cleaned[-1], "tool_calls", none): cleaned.append(msg) else: # 发现由于截断产生的 toolmessage,直接过滤掉,防止 81001 错误。 print(f"[maas guard] 检测到孤立的 toolmessage,已自动过滤。") else: cleaned.append(msg) return cleaned # ================================================================================ # 第一部分:配置模块 # ================================================================================ class modelconfig: """模型配置类""" def __init__(self): self.name = os.getenv("model_name", "deepseek-v3.2") self.url = os.getenv("model_url", "https://api.modelarts-maas.com/openai/v1") self.api_key = os.getenv("model_api_key") if not self.api_key: raise valueerror("[错误] 未找到 model_api_key!请在 .env 文件中进行配置。") self.model_type = os.getenv("model_type", "openai") class agentconfig: """agent全局配置类,整合模型与平台组件配置""" def __init__(self): self.model = modelconfig() # 记忆空间和区域配置(去除中文默认值) self.memory_space = os.getenv("memory_space_id") if not self.memory_space: print("[warning] 未配置 memory_space_id,云端记忆库可能无法正常工作。") self.region = os.getenv("huaweicloud_sdk_region", "cn-southwest-2") # 全局递归控制(防止大模型无限调用工具陷入死循环) self.max_iterations = int(os.getenv("max_iterations", "50")) self.session_ttl = int(os.getenv("session_ttl", "3600")) config = agentconfig() # ================================================================================ # 第二部分:平台级记忆系统 (agentarts checkpoint) # ================================================================================ _global_checkpointer = none def get_checkpointer() -> agentartsmemorysessionsaver: """获取平台级 checkpointer 实例""" global _global_checkpointer if _global_checkpointer is none and config.memory_space: _global_checkpointer = agentartsmemorysessionsaver( space_id=config.memory_space, region=config.region ) return _global_checkpointer def get_thread_config(session_id: str) -> dict[str, any]: return {"configurable": {"thread_id": session_id}} # ================================================================================ # 第三部分:工具定义 (mcp网关 安全沙箱) # ================================================================================ def _call_mcp_gateway(tool_name: str, arguments: dict[str, any]) -> str: """发起实际的 mcp 网关请求""" gateway_url = os.getenv("gateway_endpoint") if not gateway_url: return "网关调用失败: 未配置 gateway_endpoint" headers = { "content-type": "application/json", "accept": "application/json, text/event-stream", "mcp-session-id": str(uuid.uuid4()), "authorization": f"bearer {os.getenv('gateway_inbound_token', '')}" } payload = { "jsonrpc": "2.0", "id": "call-tool", "method": "tools/call", "params": {"name": tool_name, "arguments": arguments} } try: response = requests.post(gateway_url, headers=headers, json=payload, verify=false, timeout=30) raw_text = response.text if "data:" in raw_text: match = re.search(r'\{.*\}', raw_text, re.dotall) if match: parsed_json = json.loads(match.group()) return json.dumps(parsed_json.get("result", parsed_json), ensure_ascii=false) return json.dumps(response.json().get("result", response.json()), ensure_ascii=false) except exception as e: return f"网关调用异常: {str(e)}" @tool def gaode_get_weather(city: str) -> str: """查询指定城市的天气。args: city: 城市名称或标准adcode""" print(f"\n[mcp gateway] 查询天气: {city}") return _call_mcp_gateway("gaodemap_maps_weather", {"city": city}) @tool def gaode_get_location(address: str) -> str: """将详细的地址转换为经纬度或位置基本信息。args: address: 地址""" print(f"\n[mcp gateway] 获取地理位置: {address}") return _call_mcp_gateway("gaodemap_maps_geo", {"address": address}) @tool def execute_python(code: str) -> str: """在平台沙箱环境中安全执行 python 代码。args: code: 待执行的python代码""" from agentarts.sdk.tools import code_session print(f"\n[sandbox] 正在安全沙箱中执行代码...") sandbox_name = os.getenv("sandbox_name") api_key = os.getenv("sandbox_api_key") if not sandbox_name: return "沙箱调用失败: 未在环境变量中配置 sandbox_name" try: with code_session(config.region, sandbox_name, api_key=api_key) as client: res = client.invoke(operate_type="execute_code", api_key=api_key, arguments={"code": code, "language": "python"}) return json.dumps(res.get("result")) except exception as e: return f"沙箱执行失败: {str(e)}" def get_all_tools(): return [gaode_get_weather, gaode_get_location, execute_python] # ================================================================================ # 第四部分:langgraph 工作流构建 # ================================================================================ class agentstate(messagesstate): iteration: int def should_continue(state: agentstate) -> str: """条件边判断:如果 llm 返回了工具调用,则继续执行 tools 节点""" last_message = state["messages"][-1] if hasattr(last_message, "tool_calls") and last_message.tool_calls: return "continue" return "end" class travelagent: def __init__(self): self._llm = chatopenai( model=config.model.name, base_url=config.model.url, api_key=config.model.api_key, temperature=0.1, # 较低的温度值保障工具调用的 json 格式稳定 ) self._checkpointer = get_checkpointer() self.graph = self._build_graph() self.system_prompt = "你是一个智能体助手,可以调用高德mcp和代码沙箱" def _build_graph(self): def model_node(state: agentstate) -> agentstate: llm_with_tools = self._llm.bind_tools(get_all_tools()) # 在将历史消息发送给大模型接口前,进行安全性清洗 # 过滤掉由于记忆截断产生的孤立 toolmessage,防止触发 modelarts 81001 错误 safe_messages = clean_messages_for_llm(state["messages"]) response = llm_with_tools.invoke(safe_messages) return {"messages": [response], "iteration": state.get("iteration", 0) 1} workflow = stategraph(agentstate) workflow.add_node("agent", model_node) workflow.add_node("tools", toolnode(get_all_tools())) workflow.set_entry_point("agent") workflow.add_conditional_edges("agent", should_continue, {"continue": "tools", "end": end}) workflow.add_edge("tools", "agent") return workflow.compile(checkpointer=self._checkpointer) def run(self, user_input: str, session_id: str) -> str: """主运行方法,集成记忆与工具循环""" if memoryclient is not none and config.memory_space: try: memoryclient().create_memory_session( space_id=config.memory_space, id=session_id, actor_id="user_123" ) except exception as e: if "session id already exists" not in str(e): print(f"[warning] 云端记忆会话同步失败: {e}") thread_config = {"configurable": {"thread_id": session_id}} current_state = self.graph.get_state(thread_config) # 构造消息历史 if not current_state.values.get("messages"): messages = [systemmessage(content=self.system_prompt), humanmessage(content=user_input)] else: messages = [humanmessage(content=user_input)] # 执行并限制最大迭代次数 result = self.graph.invoke( {"messages": messages}, config=thread_config, recursion_limit=config.max_iterations ) return result["messages"][-1].content @property def session_id(self) -> optional[str]: return self._last_session_id - 创建main.py文件,用于本地运行智能体,并进行测试。
测试脚本中设计了4个对话,用于测试agent.py中集成的基础对话、mcp工具调用、沙箱工具,记忆恢复能力。
""" my-agent 本地多轮对话与工具测试脚本 """ import uuid from agent import travelagent def main(): print("正在初始化智能体助手 (集成 mcp 网关、安全沙箱与云端记忆)...") try: agent = travelagent() except exception as e: print(f"\n[初始化失败] 请检查 .env 文件配置: {e}") return # 生成符合华为云记忆库校验规则的、标准格式的 uuid 字符串作为会话 id session_id = str(uuid.uuid4()) print(f"当前分配的会话 id (标准 uuid): {session_id}\n") # ===================================================================== # 第一轮测试:基础人设与大模型连通性 # 目的:验证模型能一句话完成符合人设的自我介绍 # ===================================================================== print("=" * 60) prompt1 = "你好,请用一句话做个自我介绍。" print(f"用户: {prompt1}") response1 = agent.run(prompt1, session_id=session_id) print(f"\nagent 回复: \n{response1}") # ===================================================================== # 第二轮测试:高德 mcp 工具调用 (天气查询) # 目的:验证模型能否在公有云网关下,成功调用天气接口并返回真实天气。 # ===================================================================== print("\n" "=" * 60) prompt2 = "帮我查一下现在杭州的天气怎么样?" print(f"用户: {prompt2}") response2 = agent.run(prompt2, session_id=session_id) print(f"\nagent 回复: \n{response2}") # ===================================================================== # 第三轮测试:安全沙箱工具调用 (python执行) # 目的:验证大模型能否利用 python 代码沙箱安全计算复杂数理问题。 # ===================================================================== print("\n" "=" * 60) prompt3 = "请用 python 帮我计算一下 12345 乘以 6789 的结果是多少?" print(f"用户: {prompt3}") response3 = agent.run(prompt3, session_id=session_id) print(f"\nagent 回复: \n{response3}") # ===================================================================== # 第四轮测试:长短期记忆校验 # 目的:测试在经历了复杂的工具调用后,云端记忆库的跨轮次记忆提取能力是否正常。 # ===================================================================== print("\n" "=" * 60) prompt4 = "考考你的记性,我刚才让你查的是哪个城市的天气?" print(f"用户: {prompt4}") response4 = agent.run(prompt4, session_id=session_id) print(f"\nagent 回复: \n{response4}") print("=" * 60) if __name__ == "__main__": main() - 将agent.py、.env、main.py上传至服务器中。
如果您使用mobaxterm、xshell这类客户端软件,可以直接在软件界面上拖拽上传。

- 执行python main.py命令对智能体进行本地测试。
由于在main.py文件中已经设置好了问题,智能体本地运行时会调用大模型进行回复。有正常的回复即表示本地测试成功。

- sdk封装,agentarts平台通过标准http协议与智能体通信,您需要用agentarts sdk将agent逻辑包一层,将其暴露为符合平台规范的/invocations接口,平台才能正确调度和管理您的智能体。 创建app.py文件,并上传至服务器中。该文件会将本地的agent逻辑封装为符合agentarts平台规范的web服务。
import os from typing import dict, any from agentarts.sdk import agentartsruntimeapp, requestcontext # 导入出行助手智能体 travelagent from agent import travelagent # 实例化平台运行时应用 app = agentartsruntimeapp() try: # 实例化高级智能体 travelagent my_agent = travelagent() except exception as e: print(f"agent 初始化失败: {e}") my_agent = none # ================================================================================ # 第三部分:agentarts 平台标准化接入 (核心) # ================================================================================ @app.entrypoint async def handler(payload: dict[str, any], context: requestcontext = none) -> dict[str, any]: """ agentarts 平台标准 http 暴露入口 """ if not my_agent: return {"response": "服务未正确初始化,请检查环境变量。", "status": "error"} # 获取用户输入 query = payload.get("message", "") # 从平台上下文中提取 session_id # 如果 context 存在且包含 session_id,则使用平台的;否则生成一个默认的 current_session_id = context.session_id if context and hasattr(context, 'session_id') else "default_web_session" try: # 将提取到的 session_id 传给 agent.run(),激活云端记忆 response = my_agent.run(query, session_id=current_session_id) return {"response": response, "status": "success"} except exception as e: return {"response": f"执行出错: {str(e)}", "status": "error"} if __name__ == "__main__": # 平台托管时,必须读取 agent_run_port 环境变量以匹配容器端口契约 run_port = int(os.getenv("agent_run_port", 8080)) app.run(port=run_port) eof - 接口验证,在正式推送镜像之前,先在本地模拟云端http调用环境,验证agent的接口封装是否正确、通信是否正常,可以大幅降低因接口问题导致云端部署后才发现错误的调试成本。
执行python app.py启动http server,执行以下命令调用验证agent的http接口是否已经被正确封装且能正常通信。
执行python app.py回显效果如下。
打开一个新的终端窗口(保持原窗口运行),使用curl命令进行测试。测试完成后,可以使用ctrl c停止运行的进程。curl --location --request post 'http://localhost:8080/invocations' \ --header 'content-type: application/json' \ --data-raw '{"message": "你好,请用一句话做个自我介绍,并查询下杭州的天气。"}'
- 部署智能体运行时。
按上述步骤完成后,基本代码开发已经完成,接下来准备将本地创建好的智能体部署托管到agentarts平台。
首先准备依赖文件requirements.txt,内容可参考如下:
# ================================================================================ # agentarts langgraph agent demo - 依赖清单 # ================================================================================ # # 本项目基于 agentarts 平台,使用 langgraph 框架构建 ai agent # 依赖分为两部分:基础框架依赖 平台 sdk 依赖 # # 安装方式: # pip install -r requirements.txt # # ================================================================================ # ================================================================================ # 指定国内 pypi 镜像源 # ================================================================================ --index-url https://repo.huaweicloud.com/repository/pypi/simple --trusted-host repo.huaweicloud.com # ================================================================================ # 第一部分:langgraph & langchain 核心框架 # ================================================================================ # langgraph: ai agent 工作流编排框架 # - 状态图定义与执行 # - checkpoint 持久化机制 # - 条件边与节点路由 langgraph>=0.2.0 # langchain: llm 应用开发工具链 # - 消息类型定义 (humanmessage, aimessage, systemmessage) # - 工具系统 (@tool 装饰器) # - llm 客户端封装 langchain>=0.3.0 langchain-core>=0.3.0 langchain-community>=0.3.0 # ================================================================================ # 第二部分:llm provider 支持 # ================================================================================ # openai 兼容接口 openai>=1.0.0 langchain-openai>=0.1.0 # anthropic (claude) 支持 anthropic>=0.18.0 langchain-anthropic>=0.1.0 # ================================================================================ # 第三部分:http & 网络 # ================================================================================ requests>=2.31.0 httpx>=0.27.0 # ================================================================================ # 第四部分:工具与配置 # ================================================================================ # 环境变量管理 python-dotenv>=1.0.0 # 异步支持 aiofiles>=23.0.0 # json/yaml 支持 pyyaml>=6.0 # ================================================================================ # 第五部分:agentarts 平台 sdk(核心依赖) # ================================================================================ agentarts-sdk
- 执行如下命令配置智能体。
agentarts configure --entrypoint app:app
执行后按照操作指引进行配置。
配置智能体名称(以小写字母开头,以小写字母或数字结尾,可以包含小写字母、数字和中划线)、服务部署区域(使用cn-southwest-2,仅支持此区域)、requirements.txt依赖文件、swr organization镜像组织名称(如果使用自定义的镜像组织名,需要在swr服务控制台贵阳一region创建)

- 执行命令部署智能体。
agentarts launch
该命令会自动完成以下步骤:
- 本地构建docker镜像。
- 将docker镜像推送到华为云swr镜像仓库。
- 部署到agentarts运行时托管环境。

- 调用云端agent进行会话。
agentarts invoke '{"message": "你好,请用一句话做个自我介绍。"}'
常见问题
- 执行agentarts launch命令时 出现ak/sk认证报错 执行以下命令配置华为云凭证,获取华为云凭证请参考认证鉴权。
export huaweicloud_sdk_ak="your-access-key" export huaweicloud_sdk_sk="your-secret-key"

- 执行agentarts launch命令出现运行时runtime名称错误
智能体的名称需要以小写字母开头,以小写字母或数字结尾,可以包含小写字母、数字和中划线,长度为2-48个字符。
请重新执行agentarts configure --entrypoint app:app命令进行配置。

- 执行命令,出现swr.4040010,error_msg:repository does not exists,error: organization 'xxx' not found报错。
问题现象及原因
swr服务镜像组织不存在,出现该报错的原因通常是在执行agentarts configure --entrypoint app:app命令时,手动指定了一个swr镜像组织名称,但是未在swr控制台创建同名组织导致。
j9九游会登录的解决方案
登录(贵阳一区域),在“组织管理”中手动创建一个与agentarts configure --entrypoint app:app命令中同名的镜像组织。

- 执行agentarts launch命令,在执行requirements.txt步骤中出现read timed out ... files.pythonhosted.org报错。
问题现象及原因
docker镜像在构建过程中,尝试从官方pypi服务器下载在requirements.txt里写的那些python包,由于网络环境原因造成超时。

j9九游会登录的解决方案
执行以下命令让其在安装依赖时使用华为云官方的python镜像加速器。sed -i 's|pip install --no-cache-dir -r requirements.txt|pip install --no-cache-dir -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple --trusted-host repo.huaweicloud.com|g' dockerfile
- 执行python main.py或者python app.py命令出现memory记忆库报错。
请检查记忆库id以及记忆库api key配置是否正确,建议重新配置该值。

相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨