阿里云 Hermes Agent / OpenClaw部署教程:无影AgentBay构建企业版集成钉钉与飞书

简介: 本文介绍如何通过阿里云无影AgentBay SDK快速创建和管理OpenClaw(原Moltbot/Clawdbot)会话实例,自动完成模型提供商与IM软件配置,实现企业级AI助手部署,严格遵循原文档逻辑,确保不改变原意。

本文介绍如何通过阿里云无影AgentBay SDK快速创建和管理OpenClaw(原Moltbot/Clawdbot)会话实例,自动完成模型提供商与IM软件配置,实现企业级AI助手部署,严格遵循原文档逻辑,确保不改变原意。
11.png

一、核心目标

通过AgentBay SDK创建预配置的OpenClaw会话,自动完成阿里云百炼模型对接,以及钉钉、飞书等IM平台集成,让用户通过对话驱动OpenClaw执行任务。阿里云部署 OpenClaw/Hermes Agent全网最简单,只需两步,详情👉访问阿里云OpenClaw/Hermes一键部署专题页面 了解。
OpenClaw1.png
OpenClaw2.png
OpenClaw02.png
openClaw3.png
OpenClaw031.png
OpenClaw03.png
OpenClaw04.png
OpenClaw5.png
Openclaw6.png
👉访问订阅阿里云百炼Token Plan AI大模型服务 。支持多模型切换,用于多模态模型灵活调用,实现多模型、多工具、多场景下的额度共享与统一管理,兼顾灵活性、稳定性与安全性,大幅降低企业使用大模型的门槛与成本。
tokenplan1.png
tokenplan1.png
tokenplan2.png
tokenplan3.png
tokenplan4.png

二、前提条件

  1. 已注册阿里云账号,并完成个人或企业实名认证;
  2. 已开通无影AgentBay服务;
  3. 开发环境:Python 3.10及以上版本;
  4. 具备钉钉/飞书开发者权限(用于创建应用与机器人)。

2.png

三、核心凭证获取

3.1 无影AgentBay API Key

  1. 访问无影AgentBay控制台,进入“服务管理”页面;
  2. 点击“创建API-Key”,复制生成的API Key,妥善保管(泄露可能导致恶意使用)。

bailian1.png

3.2 阿里云百炼API Key

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

阿里云百炼密钥管理图.png

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

阿里云百炼密钥管理图2.png

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

阿里云轻量应用服务器部署OpenClaw1.png

轻量应用服务器OpenClaw镜像.png

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())

代码核心逻辑说明

  1. 环境变量读取:区分必需与可选凭证,避免配置缺失报错;
  2. 会话创建:指定Moltbot专属镜像(moltbot-linux-ubuntu-2204);
  3. 配置命令:动态构建百炼、钉钉、飞书的配置命令,执行后重启网关使配置生效;
  4. 控制台访问:自动启动浏览器打开OpenClaw本地控制台(http://127.0.0.1:18789);
  5. 资源访问:输出云电脑URL,支持远程访问与管理。

七、IM平台集成:钉钉与飞书对接

7.1 钉钉接入:创建应用与机器人

7.1.1 步骤1:创建钉钉企业内部应用

  1. 访问钉钉开放平台,点击“应用开发→钉钉应用→创建应用”;
  2. 填写应用名称、描述,上传图标(JPG/PNG格式、240×240px以上、2MB以内),点击“保存”;
  3. 进入“凭证与基础信息”页面,复制“Client ID”与“Client Secret”。

7.1.2 步骤2:添加机器人能力

  1. 进入应用详情页,点击“添加应用能力→机器人→添加”;
  2. 配置机器人:设置名称、简介、描述,消息接收模式选择“Stream模式”,点击“发布”;
  3. 发布应用版本:进入“版本管理与发布→创建新版本”,输入版本号与描述,选择可见范围,点击“保存→确认发布”。

7.1.3 步骤3:测试机器人

  1. 在钉钉群聊中,进入“群设置→机器人→添加机器人”,搜索目标机器人名称并添加;
  2. @机器人发送指令(如“帮我写一份三亚婚礼策划流程”),验证响应效果。示例响应:机器人会生成Markdown文档并保存至云电脑桌面。

7.2 飞书接入:创建应用与机器人

7.2.1 步骤1:创建飞书企业自建应用

  1. 访问飞书开放平台,点击“开发者后台→创建企业自建应用”;
  2. 填写应用名称、描述,上传图标(JPEG/PNG/SVG/BMP格式、2MB以内、≥240×240px),点击“创建”;
  3. 进入“凭证与基础信息”页面,复制“App ID”与“App Secret”。

7.2.2 步骤2:开通权限与配置事件

  1. 进入“权限管理→开通权限”,搜索并勾选以下8个权限,点击“确认开通”:
    • im:chatim:chat:readim:chat:update
    • im:messageim:message:send_as_bot
    • im:message.group_at_msg:readonlyim:message.p2p_msg:readonly
    • contact:user.base:readonly
  2. 配置权限数据范围:默认与应用可见范围一致,点击“确认”;
  3. 事件与回调配置:
    • 事件配置:进入“事件与回调→事件配置”,订阅方式选择“长连接接收事件”,添加“接收消息v2.0(im.message.receive_v1)”事件;
    • 回调配置:订阅方式选择“长连接接收回调”,点击“保存”。

7.2.3 步骤3:发布应用并测试

  1. 进入“版本管理与发布→创建新版本”,输入版本号与描述,点击“保存→发布”;
  2. 飞书客户端收到“应用审批通过”通知后,打开应用发送指令(如“帮我写一份飞书介绍文档”),验证机器人响应与文档生成效果。

八、核心功能验证

配置完成后,可通过以下场景测试OpenClaw的自动化能力:

  1. 文档生成:发送“写一份半年后三亚浪漫婚礼策划流程”,机器人生成Markdown文档并保存至云电脑桌面;
  2. 平台介绍:发送“写一份飞书介绍文档”,整合飞书核心功能生成结构化内容;
  3. 多渠道交互:分别通过钉钉、飞书机器人发送指令,验证跨平台响应一致性。
目录
相关文章
|
4天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23311 2
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
6天前
|
人工智能 API 开发工具
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
Claude Code是我目前最推荐的AI编程工具,没有之一。 它可能不是最简单的,但绝对是上限最高的。一旦跑通安装、接上模型、定好规范,你会发现很多原本需要几小时的工作,现在几分钟就能搞定。 这套方案的核心优势就三个字:可控性。你不用依赖任何不稳定服务,所有组件都在自己手里。模型效果不好?换一个。框架更新了?自己决定升不升。 这才是AI时代开发者该有的姿势——不是被动等喂饭,而是主动搭建自己的生产力基础设施。 希望这篇保姆教程,能帮你顺利上车。做出你自己的作品。
8859 18
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
|
13天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
4943 24
|
9天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
3491 12
|
8天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
2812 9
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
25天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
20663 63
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)