本文介绍如何通过阿里云无影AgentBay SDK快速创建和管理OpenClaw(原Moltbot/Clawdbot)会话实例,自动完成模型提供商与IM软件配置,实现企业级AI助手部署,全程无营销词汇,严格遵循原文档逻辑,确保不改变原意。
一、核心目标
通过AgentBay SDK创建预配置的OpenClaw会话,自动完成阿里云百炼模型对接,以及钉钉、飞书等IM平台集成,让用户通过对话驱动OpenClaw执行任务。
二、前提条件
- 已注册阿里云账号,并完成个人或企业实名认证;
- 已开通无影AgentBay服务;
- 开发环境:Python 3.10及以上版本;
- 具备钉钉/飞书开发者权限(用于创建应用与机器人)。

三、核心凭证获取
3.1 无影AgentBay API Key
- 访问无影AgentBay控制台,进入“服务管理”页面;
- 点击“创建API-Key”,复制生成的API Key,妥善保管(泄露可能导致恶意使用)。

3.2 阿里云百炼API Key
- 登录阿里云百炼大模型服务平台,进入“密钥管理”页面;

- 点击“创建API-Key”,复制生成的密钥,用于模型服务调用。

3.阿里云上线了更方便的轻量应用服务器一键部署 OpenClaw(原Clawdbot)功能,开箱即用,教程:https://www.aliyun.com/activity/ecs/clawdbot


3.3 IM应用凭证(钉钉/飞书)
需提前创建钉钉或飞书企业内部应用,获取对应凭证,具体步骤参考后续“IM平台集成”章节:
- 钉钉:Client ID、Client Secret;
- 飞书:App ID、App Secret。
四、环境准备:配置环境变量
根据操作系统设置以下环境变量,存储核心凭证(避免硬编码泄露):
4.1 Linux/macOS系统
# AgentBay API Key(必需)
export AGENTBAY_API_KEY=your_api_key_here
# 百炼 API Key(必需,用于模型服务)
export BAILIAN_API_KEY=your_api_key_here
# 飞书应用凭证(可选,如需集成飞书)
export FEISHU_APP_ID=your-feishu-app-id
export FEISHU_APP_SECRET=your-feishu-app-secret
# 钉钉应用凭证(可选,如需集成钉钉)
export DINGTALK_CLIENT_ID=your-dingtalk-client-id
export DINGTALK_CLIENT_SECRET=your-dingtalk-client-secret
4.2 Windows系统
:: AgentBay API Key(必需)
setx AGENTBAY_API_KEY "your_api_key_here"
:: 百炼 API Key(必需,用于模型服务)
setx BAILIAN_API_KEY "your_api_key_here"
:: 飞书应用凭证(可选,如需集成飞书)
setx FEISHU_APP_ID "your-feishu-app-id"
setx FEISHU_APP_SECRET "your-feishu-app-secret"
:: 钉钉应用凭证(可选,如需集成钉钉)
setx DINGTALK_CLIENT_ID "your-dingtalk-client-id"
setx DINGTALK_CLIENT_SECRET "your-dingtalk-client-secret"
五、安装无影AgentBay SDK
5.1 推荐方案:使用虚拟环境
# 创建并激活虚拟环境
python3 -m venv agentbay-env
source agentbay-env/bin/activate # Linux/macOS
# agentbay-env\Scripts\activate # Windows
# 安装SDK包
pip install wuying-agentbay-sdk
# 验证安装
python -c "import agentbay; print('Installation successful')"
5.2 替代方案:系统Python直接安装
pip install --user wuying-agentbay-sdk
# 验证安装
python -c "import agentbay; print('Installation successful')"
六、基于SDK创建OpenClaw会话
以下为Python异步版本示例代码,实现会话创建、配置(模型+IM)、资源访问与清理全流程:
"""
OpenClaw 配置示例(异步版本)
- 创建会话(指定Moltbot镜像)
- 执行配置命令:对接百炼、飞书、钉钉
- 获取云电脑资源URL
- 使用完成后可清理会话(可选)
"""
import asyncio
import os
import sys
from typing import Optional, cast
from agentbay import AsyncAgentBay, AsyncSession, CreateSessionParams
def _require_env(name: str) -> str:
"""获取必需环境变量,未设置则退出"""
value = os.environ.get(name)
if not value or not value.strip():
print(f"Error: {name} environment variable not set", file=sys.stderr)
sys.exit(1)
return value.strip()
def _get_optional_env(name: str) -> Optional[str]:
"""获取可选环境变量,未设置返回None"""
value = os.environ.get(name)
if not value or not value.strip():
return None
return value.strip()
async def execute_command(session, command: str, timeout_ms: int = 30000) -> None:
"""执行单条shell命令并打印结果"""
print(f"\nExecuting: {command}")
result = await session.command.execute_command(command, timeout_ms=timeout_ms)
if result.success:
print(result.output)
else:
print(f"Failed to execute command: {result.error_message}", file=sys.stderr)
async def main() -> None:
# 读取环境变量
api_key = _require_env("AGENTBAY_API_KEY")
bailian_api_key = _get_optional_env("BAILIAN_API_KEY")
feishu_app_id = _get_optional_env("FEISHU_APP_ID")
feishu_app_secret = _get_optional_env("FEISHU_APP_SECRET")
dingtalk_client_id = _get_optional_env("DINGTALK_CLIENT_ID")
dingtalk_client_secret = _get_optional_env("DINGTALK_CLIENT_SECRET")
print("Initializing AgentBay client...")
agent_bay = AsyncAgentBay(api_key=api_key)
session: Optional[AsyncSession] = None
try:
# 创建会话(指定Moltbot镜像)
print("Creating session with image ID: moltbot-linux-ubuntu-2204")
params = CreateSessionParams(image_id="moltbot-linux-ubuntu-2204")
session_result = await agent_bay.create(params)
if session_result.success and session_result.session:
session = cast(AsyncSession, session_result.session)
print(f"Session created with ID: {session.session_id}")
# 构建配置命令(仅对已设置的凭证执行配置)
config_parts: list[str] = []
if bailian_api_key:
config_parts.append(
f"moltbot config set models.providers.bailian.apiKey {bailian_api_key}"
)
if feishu_app_id:
config_parts.append(
f'moltbot config set channels.feishu.appId "{feishu_app_id}"'
)
if feishu_app_secret:
config_parts.append(
f'moltbot config set channels.feishu.appSecret "{feishu_app_secret}"'
)
if dingtalk_client_id:
config_parts.append(
f'moltbot config set channels.dingtalk.clientId "{dingtalk_client_id}"'
)
if dingtalk_client_secret:
config_parts.append(
f'moltbot config set channels.dingtalk.clientSecret "{dingtalk_client_secret}"'
)
# 执行配置并重启网关
if config_parts:
print("\nExecuting OpenClaw config commands...")
config_command = " && ".join(config_parts) + " && clawdbot gateway restart"
await execute_command(session, config_command, timeout_ms=30000)
else:
print("\nNo BAILIAN/FEISHU/DINGTALK env vars set, skipping config.")
# 启动浏览器访问OpenClaw控制台
await execute_command(
session,
"sleep 5 && nohup firefox http://127.0.0.1:18789 > /dev/null 2>&1 &",
timeout_ms=30000,
)
# 获取云电脑资源URL
print("\nGetting cloud computer resource URL...")
resource_url = session.resource_url
if resource_url:
print(f"Cloud Computer URL: {resource_url}")
else:
print("Resource URL not available")
else:
print(
f"Failed to create session: {session_result.error_message}",
file=sys.stderr,
)
except Exception as e:
print(f"Unexpected error: {e}", file=sys.stderr)
# finally:
# 资源使用完成后可释放会话(释放后机器人功能不可用)
# if session:
# print("\nCleaning up session...")
# await agent_bay.delete(session)
if __name__ == "__main__":
asyncio.run(main())
代码核心逻辑说明
- 环境变量读取:区分必需与可选凭证,避免配置缺失报错;
- 会话创建:指定Moltbot专属镜像(moltbot-linux-ubuntu-2204);
- 配置命令:动态构建百炼、钉钉、飞书的配置命令,执行后重启网关使配置生效;
- 控制台访问:自动启动浏览器打开OpenClaw本地控制台(http://127.0.0.1:18789);
- 资源访问:输出云电脑URL,支持远程访问与管理。
七、IM平台集成:钉钉与飞书对接
7.1 钉钉接入:创建应用与机器人
7.1.1 步骤1:创建钉钉企业内部应用
- 访问钉钉开放平台,点击“应用开发→钉钉应用→创建应用”;
- 填写应用名称、描述,上传图标(JPG/PNG格式、240×240px以上、2MB以内),点击“保存”;
- 进入“凭证与基础信息”页面,复制“Client ID”与“Client Secret”。
7.1.2 步骤2:添加机器人能力
- 进入应用详情页,点击“添加应用能力→机器人→添加”;
- 配置机器人:设置名称、简介、描述,消息接收模式选择“Stream模式”,点击“发布”;
- 发布应用版本:进入“版本管理与发布→创建新版本”,输入版本号与描述,选择可见范围,点击“保存→确认发布”。
7.1.3 步骤3:测试机器人
- 在钉钉群聊中,进入“群设置→机器人→添加机器人”,搜索目标机器人名称并添加;
- @机器人发送指令(如“帮我写一份三亚婚礼策划流程”),验证响应效果。示例响应:机器人会生成Markdown文档并保存至云电脑桌面。
7.2 飞书接入:创建应用与机器人
7.2.1 步骤1:创建飞书企业自建应用
- 访问飞书开放平台,点击“开发者后台→创建企业自建应用”;
- 填写应用名称、描述,上传图标(JPEG/PNG/SVG/BMP格式、2MB以内、≥240×240px),点击“创建”;
- 进入“凭证与基础信息”页面,复制“App ID”与“App Secret”。
7.2.2 步骤2:开通权限与配置事件
- 进入“权限管理→开通权限”,搜索并勾选以下8个权限,点击“确认开通”:
im:chat、im:chat:read、im:chat:update;im:message、im:message:send_as_bot;im:message.group_at_msg:readonly、im:message.p2p_msg:readonly;contact:user.base:readonly;
- 配置权限数据范围:默认与应用可见范围一致,点击“确认”;
- 事件与回调配置:
- 事件配置:进入“事件与回调→事件配置”,订阅方式选择“长连接接收事件”,添加“接收消息v2.0(im.message.receive_v1)”事件;
- 回调配置:订阅方式选择“长连接接收回调”,点击“保存”。
7.2.3 步骤3:发布应用并测试
- 进入“版本管理与发布→创建新版本”,输入版本号与描述,点击“保存→发布”;
- 飞书客户端收到“应用审批通过”通知后,打开应用发送指令(如“帮我写一份飞书介绍文档”),验证机器人响应与文档生成效果。
八、核心功能验证
配置完成后,可通过以下场景测试OpenClaw的自动化能力:
- 文档生成:发送“写一份半年后三亚浪漫婚礼策划流程”,机器人生成Markdown文档并保存至云电脑桌面;
- 平台介绍:发送“写一份飞书介绍文档”,整合飞书核心功能生成结构化内容;
- 多渠道交互:分别通过钉钉、飞书机器人发送指令,验证跨平台响应一致性。