當低代碼模式無法支援複雜商務邏輯、自訂框架組成或精細化運行環境控制時,可使用高代碼模式建立 Agent。該模式允許開發人員使用自有代碼實現複雜的推理流程、工具編排和企業級整合。
功能介紹
高代碼模式用於通過代碼自訂 Agent 的實現邏輯,適合有開發經驗、對行為和效能有精細控制需求的情境。
主要能力包括:
-
多種代碼來源:上傳程式碼封裝、OSS 程式碼封裝、線上編輯代碼,以及自訂容器鏡像部署。
-
多語言運行時:支援 Python、Node.js、Java 等多種運行時,可自訂啟動命令和連接埠。
-
靈活的資源與環境配置:按需配置 CPU、記憶體、並發會話數、空閑逾時時間,以及 VPC 網路、執行角色、訪問憑證、環境變數、健全狀態檢查等參數。
-
SDK 與框架組成:通過 AgentRun SDK 接入模型、Sandbox、工具和外部系統,也可與 LangChain 等 Agent 框架組成,實現複雜工作流程(詳見AgentRun SDK 說明)。
-
完整的開發調試與營運流程:提供線上 WebIDE、即時日誌、基於 OpenAI Chat Completions 協議的調試介面,以及版本管理與灰階發布能力。
核心概念
建立 Agent 前,建議先瞭解以下核心概念:
|
核心概念 |
說明 |
|
代碼來源 |
高代碼模式支援多種代碼來源,用於部署 Agent:
選擇哪種方式取決於團隊習慣和工程實踐(例如是否已有 CI/CD 構建鏡像流程)。 |
|
運行時類型 |
建立 Agent 時需要選擇運行時語言環境,目前支援:
說明
目前僅 Python 3.10 提供官方模板樣本,其他運行時請使用自訂程式碼封裝或鏡像。 |
|
範例程式碼包 |
平台提供基於 AgentRun SDK 編寫的樣本模板,協助使用者快速上手。 官方樣本是基於 AgentRun SDK 的 LangChain Agent 樣本,包含模型調用和 Sandbox 工具調用的範例程式碼。 |
|
啟動配置 |
對於程式碼封裝模式(本地上傳、OSS、線上編輯),需要指定:
使用官方模板時通常保持預設配置即可;使用自訂代碼時,根據實際入口檔案和服務連接埠填寫。 對於容器鏡像模式,需要至少指定:
啟動命令由鏡像內 Dockerfile 決定( |
|
資源配置 |
資源配置用於控制 Agent 執行個體的資源規格和並發行為,包括:
合理配置這些參數可以在效能和成本之間取得平衡。 |
|
進階配置 |
進階配置包含運行時環境相關的選項,例如:
這些配置決定了 Agent 在運行時能訪問哪些資源以及如何訪問。 |
|
可觀測性 |
支援一鍵開通智能體可觀測,用於觀測和分析 Agent 的運行情況:
說明
AI 應用監控中 Token 統計來源於大模型響應,代碼配置時請確保模型響應中包含 Token 資訊。 |
操作指南
準備工作
-
準備代碼工程
-
已有可啟動並執行服務代碼。官方範例程式碼包下載地址:官方範例程式碼包。本文後續操作步驟均以官方範例程式碼包為例。
說明程式碼封裝也可以在快速建立Agent(無代碼)後將 Agent 轉換為代碼模式得到。轉換成功後,在 Agent 頁面左側選擇代碼與調試,即可查看和下載。
-
代碼可打包為 zip,或已有對應容器鏡像或 OSS 程式碼封裝。
-
確認暴露的服務入口(啟動命令、監聽連接埠)。
-
-
準備運行時依賴
-
確定運行時語言版本(如 Python 3.10、Python 3.12、Node.js 18/20、Java 8/11/17 等)。
說明官方範例程式碼使用的運行時為 Python 3.10。
-
使用程式碼封裝模式時:
-
將代碼與依賴一併打包為 zip。
-
Python 專案提案將依賴放入
/python或/code/python等約定目錄,並配置環境變數PYTHONPATH為/opt/python:/code/python。
-
-
使用容器鏡像模式時:
-
在鏡像中包含完整運行環境和依賴。
-
在 Dockerfile 中正確配置入口命令和監聽連接埠。
-
-
-
準備模型、工具與沙箱
-
在模型管理中已建立需使用的模型,並記錄模型名稱。
-
如 Agent 需要使用工具(業務 API、網頁抓取、線上搜尋等),提前在工具與Skills中完成建立。
-
如需代碼執行或瀏覽器能力,提前建立 Sandbox 沙箱服務(BrowserTool瀏覽器、Code Interpreter代碼解譯器),並記錄服務名稱。
-
步驟1:進入代碼建立Agent頁面
-
進入AgentRun運行時與沙箱頁面。
-
單擊建立Agent,在彈出的視窗中選擇通過代碼建立。
-
輸入Agent名稱和功能描述,建議使用有意義的名稱,便於後續管理和識別。
步驟2:代碼配置
-
選擇代碼來源
上傳程式碼封裝
-
單擊上傳檔案,選擇本地 zip 檔案。
-
確保包內結構符合運行時規範(入口檔案位置、依賴目錄等)。
-
如基於官方樣本,可先下載模板,填入必要配置(如 system_prompt),再打包上傳。
說明範例程式碼中的
MODEL_NAME和SANDBOX_NAME會從運行時環境變數中讀取,此處無需修改。
從OSS擷取程式碼封裝
-
在代碼來源中選擇OSS Object Storage Service。
-
選擇程式碼封裝所在的Bucket名稱和OSS目錄。
-
確保執行角色具備讀取該 OSS 對象的許可權。
使用容器鏡像部署
-
在代碼來源中選擇容器鏡像。
-
選擇鏡像執行個體與鏡像倉庫。
說明-
支援自訂鏡像、阿里雲Container Registry(個人版/企業版)。
-
選擇自訂鏡像時,可直接配置自訂鏡像地址。
-
-
選擇鏡像版本。
線上編寫和調試代碼
選擇線上編碼方式,系統將在線上代碼編輯器中自動載入官方範例程式碼,可直接進行代碼商務邏輯實現和修改。
-
-
啟動配置
上傳程式碼封裝/OSSObject Storage Service/線上編輯模式
-
啟動命令,例如:
-
python3 main.py -
node app.js -
java -jar app.jar
-
-
啟動連接埠,如
9000,需與代碼中服務監聽連接埠一致。
說明使用官方模板(如上述 Python 樣本)時,一般保持預設配置即可。
容器鏡像模式
-
啟動命令通常由鏡像內 Dockerfile 的
CMD/ENTRYPOINT決定。 -
需要指定啟動連接埠,與容器內應用監聽連接埠一致。
-
步驟3:資源配置、環境變數與進階配置
在資源配置和進階配置中設定運行參數。
-
計算資源
-
CPU(核)與記憶體:為每個 Agent 執行個體分配的計算資源。資源越多,處理複雜任務的速度越快,但成本也相應增加。
-
單一實例並發會話數上限:單個 Agent 執行個體能同時處理的會話數量上限。提高此值可減少所需執行個體數,從而節約成本,但需確保代碼安全執行緒且單個執行個體的 CPU 和記憶體資源充足。
-
會話空閑逾時時間(秒):執行個體上最後一個會話結束後,空閑超過該時間即自動釋放執行個體。
-
-
環境變數
為 Agent 配置運行時環境變數,用於向代碼傳遞參數。使用官方樣本時,需配置以下環境變數:
-
MODEL_NAME:必選,填寫模型管理中已建立的模型名稱。 -
SANDBOX_NAME:可選,填寫已建立的 Sandbox 名稱。
-
-
網路設定
-
允許訪問VPC:Agent 需要訪問 VPC 內的雲資源(如 RDS、OSS 等)時開啟。
-
允許預設網卡訪問公網。
-
-
日誌配置
開啟日誌功能,可將 Agent 的作業記錄儲存在Log Service中。可指定記錄項目(Project)與日誌庫(Logstore),也可選擇自動設定或自訂配置中的一鍵配置功能使用預設值。
-
健全狀態檢查配置
啟用健全狀態檢查後,可配置檢查路徑(如
/health)、檢查間隔(秒)、逾時時間(秒)和失敗閾值。系統將定期向指定路徑發送 HTTP 要求檢查服務狀態,連續失敗達到閾值時自動重啟服務執行個體,有助於提高服務可用性和自動故障恢複能力。
步驟4:按需配置執行角色
執行角色用於授予 Agent 代碼訪問其他雲資源(如模型服務、OSS)的許可權。AgentRun 通過執行角色(RAM 角色)系統管理權限,代碼在運行時將扮演此角色以獲得相應的操作許可權。
授權主體:Function Compute服務(fc.aliyuncs.com)
要求的權限:根據實際使用的服務添加相應策略
在執行角色ARN中選擇已有角色。如果沒有符合要求的角色,可參考以下步驟建立。
-
單擊執行角色ARN下拉框右側的添加按鈕
,進入RAM存取控制 > 角色列表。 -
單擊建立角色。
-
在建立角色頁面,信任主體類型選擇雲端服務。
-
信任主體名稱選擇Function Compute/FC。
-
單擊確定,輸入角色名稱,再次單擊確定,並按照提示完成安全驗證。
-
建立成功後進入角色詳情頁,單擊新增授權。
-
根據實際使用的服務添加相應策略,常用策略樣本:
-
AliyunOSSFullAccess:Agent 需要使用 OSS 中的資源時,需設定物件儲存服務(OSS)系統管理權限。
-
AliyunAgentRunFullAccess:使用官方樣本建立時必須配置 AgentRun 服務系統管理權限。
-
AliyunDevsFullAccess:Serverless 開發平台(Devs)系統管理權限。
-
步驟5:配置訪問憑證
為 Agent 配置訪問憑證(如 API Key 等),用於保護 Agent 防止未經授權的調用。憑證由 AgentRun 的憑證管理統一管理和注入。
-
在訪問憑證模組,單擊入站:訪問憑證。
-
選擇憑證模式:
-
不使用憑證(不推薦):Agent 的調用地址可被公網匿名訪問,存在安全風險。此模式僅適用於功能測試,嚴禁用於生產環境。
-
使用已有憑證(推薦):為保障 Agent 安全,建議選擇此項。如果尚未建立憑證,可單擊
參考憑證管理進行建立。
-
步驟6:完成配置並測試
完成上述配置後,單擊右上方開始部署完成建立。系統將自動跳轉至 Agent 詳情頁,選擇代碼與調試,在調試工具中進行測試。
步驟7:發布版本並進行灰階
AgentRun 支援版本管理與灰階發布。對 Agent 的提示詞、工具或模型進行變更後,建議先發布版本,再通過建立 Endpoint 並啟用次要版本(灰階發布),將少量流量分配給新版本。確認新版本穩定後,逐步增加流量比例,最終完成全量上線。
-
在左側目錄中選擇版本與灰階。
-
發布目前的版本:單擊發布版本,輸入版本描述說明主要變更和功能後,再次單擊發布版本。
-
建立Endpoint:
-
輸入Endpoint名稱,在主要版本下拉框中選擇上一步發布的目前的版本號。
-
啟用次要版本(灰階發布):勾選啟用次要版本(灰階發布),選擇次要版本,並為主要版本和次要版本配置流量分配百分比。
-
後續步驟
在應用中整合Agent
在左側整合與發布模組參考Agent整合與發布文檔,將開發的 Agent 快速整合到前端網頁、後端應用等。支援UI整合、代碼整合、生態整合三種方式。
開通智能體可觀測
Agent 建立後,可配置可觀測能力便於調試和營運。
-
查看基礎監控(預設開啟):在左側目錄選擇可觀測性 > 基礎監控頁面,可查看:
-
調用次數、成功率、平均/最大延遲。
-
最近一段時間的調用趨勢與延遲曲線。
-
-
開啟日誌採集(推薦)。
-
在 Agent 詳情頁左側選擇可觀測性 > 日誌。
-
首次進入時提示日誌未開啟,單擊開通日誌。
-
選擇配置方式:
-
自動設定:一鍵建立預設的 SLS Project 和 Logstore,適合快速接入。
-
自訂配置:選擇已有 Project/Logstore,適合企業統一日誌管理。
-
-
儲存後,Agent 的作業記錄將自動寫入對應 Logstore,可在 SLS 控制台進行檢索、分析和警示。
-
-
接入應用監控與鏈路追蹤(進階,可選)。
-
首次進入需開通 ARMS 服務,在可觀測性 > 應用監控(或鏈路追蹤)頁面,單擊一鍵開通。
-
按提示或參考智能體大模型可觀測文檔,在 Agent 代碼中引入應用監控,即可進行應用監控與鏈路追蹤。
-
配置完成後,可在應用監控面板中查看業務指標和趨勢(如 Token 消耗分析、效能分析),在鏈路追蹤面板中查看每次請求的 Span 詳情和調用拓撲,快速定位慢請求和異常節點。
-
常見問題與故障排查
Q1: 啟動 Agent 時,日誌提示 ModuleNotFoundError: No module named 'xxx'。
A: 這是典型的 Python 依賴缺失問題。請檢查:
-
使用上傳程式碼封裝模式時,是否已遵循準備工作中準備運行時依賴的指導,將所有依賴庫打包到程式碼封裝的
/python目錄下。 -
如果依賴包含 C/C++ 擴充且編譯環境複雜,建議切換到容器鏡像模式。
Q2: Agent 啟動失敗,日誌顯示連接埠監聽錯誤或逾時。
A: 請檢查代碼:
-
Web 服務是否監聽在
0.0.0.0而非127.0.0.1。 -
代碼中監聽的連接埠號碼是否與控制台啟動連接埠中配置的一致。最佳實務是從
AGENT_PORT環境變數動態擷取連接埠號碼。
Q3: 是否只有 Python 3.10 提供官方模板?其他語言如何開始?
A: 目前官方的 LangChain 樣本模板僅支援 Python 3.10。對於其他運行時(如 Node.js、Java),需要選擇高代碼模式並上傳自訂程式碼封裝或使用自訂鏡像。可參考官方 Python 樣本的邏輯,遷移到目標語言和架構中,核心是實現一個符合規範的 HTTP 服務。