在百炼高代码中使用Agent Identity
通过百炼高代码平台,可以快速地开发、部署高度自定义的 AI Agent。通过将Agent Identity与百炼高代码平台集成,可以使用户安全可控地访问Agent,同时令Agent安全可控地访问资源。本教程演示如何在百炼高代码应用中集成Agent Identity,实现智能体(Agent)在执行敏感操作(如访问云资源)前,必须先获得用户即时授权,从而安全、可控地访问云服务。
架构

准备工作
环境要求
本地测试环境需要安装Python(版本≥ 3.10)以及pip包管理器。
RAM用户及权限要求
RAM用户要求:
您需要准备两个RAM用户,分别用于不同目的。
管理员:用于登录百炼、函数计算(FC)、Agent Identity及RAM控制台进行应用管理及权限配置。
脚本执行用户:用于执行准备脚本、本地应用测试以及将应用部署至百炼高代码平台。
RAM权限要求:
管理员用户至少需要具备以下权限:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "fc:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "*", "Condition": { "StringEquals": { "acs:Service": [ "fc.aliyuncs.com" ] } } }, { "Effect": "Allow", "Action": "bailiancontrol:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ram:ListUserBasicInfos", "ram:*Application*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ram:CreateRole", "ram:GetRole", "ram:ListRoles", "ram:AttachPolicyToRole", "ram:ListPolicyAttachments", "ram:ListPolicies", "ram:GetPolicy", "ram:ListUsers" ], "Resource": "*" }, { "Effect": "Allow", "Action": "openapiexplorer:*Mcp*", "Resource": "*" }, { "Effect": "Allow", "Action": "agentidentity:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "log:Get*", "log:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "log:Query*", "log:CallAiTools" ], "Resource": "*" } ] }脚本执行用户需要具备以下权限:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "bailiandata:*", "sfm:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "agentidentity:*", "Resource": "*" }, { "Effect": "Allow", "Action": "agentidentitydata:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "ram:ServiceName": ["agentidentity.aliyuncs.com"] } } }, { "Effect": "Allow", "Action": [ "ram:CreateApplication", "ram:CreateRole", "ram:CreatePolicy", "ram:AttachPolicyToRole", "ram:CreateAppSecret", "ram:DeleteApplication", "ram:ListUserBasicInfos", "ram:ListRoles" ], "Resource": "*" } ] }百炼业务空间权限要求:
为脚本执行用户在百炼账号管理页面添加特定业务空间的组件管理_智能体_操作权限。

服务开通与授权
确保您的阿里云账号已开通以下服务:
大模型服务平台百炼
函数计算(FC)
在百炼控制台完成云服务授权。前往阿里云百炼-应用管理,点击高代码类型,并对相关云服务使用进行一键授权。

确保
、
、
三个服务在“已授权”状态。
百炼API密钥
获取具有百炼模型调用权限的DashScope API密钥。如您还没有创建百炼API密钥,请参考获取API Key进行创建和配置。
步骤一:本地安装与测试应用
获取并准备示例代码
克隆代码仓库。在本地打开终端,执行以下命令克隆示例代码。
git clone https://github.com/aliyun/agent-identity-dev-kit.git cd agent-identity-dev-kit/agent_identity_python_samples/end-to-end_sample安装依赖。建议创建并激活一个 Python 虚拟环境,然后安装项目所需的依赖。
pip install -r requirements.txt配置环境变量。
export AGENT_IDENTITY_REGION_ID=cn-beijing # 当前Agent Identity仅开放北京地域 export DASHSCOPE_API_KEY=<your-api-key> # DashScope API export MODELSTUDIO_WORKSPACE_ID=<your-workspace-id> # 可选,替换为百炼的业务空间ID,该空间将部署高代码应用,不设置将使用默认业务空间
准备RAM用户凭证
在本地使用RAM用户及权限要求提到的脚本执行用户配置凭证。
使用阿里云CLI
安装阿里云CLI(如已安装,可跳过)。具体请参考步骤一:安装阿里云CLI。
登录阿里云CLI。具体请参考为阿里云CLI配置OAuth认证。
检查凭证配置。执行命令
aliyun configure list检查凭证配置是否存在且有效。输出类似如下:Profile | Credential | Valid | Region | Language --------- | ------------------ | ------- | ---------------- | -------- OAuthProfile * | OAuth:xQcliVOdYA@CN | Valid | cn-hangzhou | zh
使用Access Key(不推荐)
为脚本执行用户创建访问密钥(Access Key)并配置到本地环境变量中。
export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>执行准备脚本
在本地项目根目录下运行准备脚本prepare.py来自动创建所需的云资源:
python -m deploy_starter.prepare此脚本执行以下操作:
创建身份提供者
创建阿里云OAuth 2.1入站应用
创建阿里云MCP服务所需的OAuth 2.1 Native应用
创建工作负载身份和角色
配置凭证提供者
脚本会输出创建的资源信息到根目录下的.config.json文件中。其中包含mcp_app_name,需要在后续使用到。
如果执行过程中出现异常失败(如网络问题、资源超过quota等)需要清除创建的资源后再重新运行准备脚本,清除创建的资源请运行:
python -m deploy_starter.clear为避免对账号下的RAM资源造成影响,清理逻辑不会删除角色/自定义策略,需要手动删除。
配置OpenAPI MCP服务
导航到阿里云OpenAPI MCP服务,完成登录。
单击查看MCP服务页签。
在搜索框中输入"resourcecenter",单击搜索结果中的"resourcecenter"系统服务。
在OAuth配置区域,单击修改。
在弹出的修改OAuth配置对话框中,选择自定义OAuth。单击下拉菜单,选择准备脚本所创建的MCP应用名称。具体应用名称应与项目根目录下的
.config.json文件中的mcp_app_name字段值匹配。单击确认修改。在配置信息区域,复制
Streamable HTTP Endpoint地址,将其更新至项目deploy_starter/config.yml文件中的MCP_SERVER字段。
测试应用
启动Agent代理服务。在根目录下执行以下命令:
python -m deploy_starter.main启动前后端应用。在根目录下执行以下命令:
python -m application.backend.app访问应用并与代理交互:
等待代理及前后端应用启动完毕后,在浏览器中输入应用访问地址
http://localhost:8090。完成阿里云登录及用户授权。之后,您可在应用对话窗口中与模型进行对话,例如输入:“查询我阿里云账号下的VPC配置信息”。
单击返回结果中的OAuth授权地址并完成授权。

完成授权后,如果一切正常,将返回查询结果。类似如下:

说明更多与Agent交互的示例,请参考代码仓库的README文档。
步骤二:打包并部署Agent至百炼高代码
打包本地代码
安装打包及部署代码所需依赖。在项目根目录执行以下命令:
pip install rich pip install alibabacloud-bailian20231229打包Agent。在项目根目录执行下面命令进行打包:
python setup.py bdist_wheel打包成功后,将产生
.whl文件并保存至项目下的dist目录中。
部署Agent至百炼
在项目根目录下执行以下命令,将打包出来的whl文件部署到百炼:
runtime-fc-deploy --deploy-name agent-identity-sample --whl-path <PATH_TO_YOUR_NEW_WHL_FILE> --telemetry enable执行结果类似如下:
说明如您在部署过程中遇到了权限相关报错,请检查RAM用户及权限要求中提到的RAM权限及百炼空间权限是否有被授予脚本执行用户。
部署成功后,稍等片刻,您可在阿里云百炼-应用管理中找到部署的Agent应用(状态为已发布)。

步骤三:配置百炼高代码应用
在百炼中配置环境变量
在阿里云百炼-应用管理中找到并单击部署的Agent应用,进入应用详情页。
在高代码应用详情页,单击环境变量区域右侧的编辑按钮。

在末尾添加配置如下两个环境变量,完成后单击确定。
AGENT_IDENTITY_WORKLOAD_IDENTITY_NAME:设置为项目根目录.config.json中的workload_identity_name字段值。DASHSCOPE_API_KEY:设置为百炼当前业务空间中的API Key。

在弹出的保存环境变量确认框中,单击确认。
在函数计算中配置实例RAM角色
登录RAM控制台,创建一个用于关联到函数计算实例的RAM角色,云服务主体选择“函数计算”。具体步骤请参见创建可信实体为阿里云服务的RAM角色。
在RAM控制台中为创建的RAM角色授予
AliyunAgentIdentityDataFullAccess系统策略。在阿里云百炼-应用管理中找到并单击部署的Agent应用。在高代码应用详情页,单击基础配置区域右侧的查看详情,进入高代码应用所在函数计算实例详情页。

在函数计算详情页,单击配置页签。在配置页签下,单击高级配置区域右侧的编辑按钮。

在高级配置编辑页,单击权限。在函数角色输入框中搜索并选择刚创建的RAM角色。
单击部署。
在本地代码中配置公网访问地址和鉴权Token
在阿里云百炼-应用管理中找到并单击部署的Agent应用。在高代码应用详情页,复制触发器区域下的公网访问地址和鉴权token。

将公网访问地址和鉴权Token更新至项目下的
deploy_starter/config.yml文件中:AGENT_BEARER_TOKEN: "<鉴权Token>" AGENT_ENDPOINT: "<公网地址>/process"
步骤四:测试与验证
参考测试应用中的步骤进行应用启动与测试。
日志查询(可选)
您可在高代码应用所在的函数计算实例上查看请求日志,以了解调用历史及Agent的输出信息。

注意事项
如您希望再次执行准备脚本prepare.py,请先在项目根目录下执行清理脚本以清理资源:
python -m deploy_starter.clear项目准备脚本
prepare.py下的常量配置信息不可更改,否则会导致应用无法正常工作。如果您希望将前后端应用部署至阿里云(如ECS示例),需要为后端应用所在的环境关联实例RAM角色(如ECS实例角色、函数计算实例角色),并授予
AliyunAgentIdentityDataCompleteAuthAccess系统策略。否则Agent将无法获得OAuth Access Token。
三个服务在“已授权”状态。







