OpenClaw 多智能体配置不同的文生图模型

2026-03-27 11:10:57 0点赞 0收藏 0评论
OpenClaw 多智能体配置不同的文生图模型

一、开篇简介

在使用 OpenClaw 构建多智能体工作流时,我们通常会针对不同的任务(如深度写作、素材整理、日常对话)配置不同智商的文本大模型。但在视觉创作环节,所有的智能体往往只能共用同一个画图接口,这在成本和效果上都不够灵活。

本篇教程将带你实现文生图模型的精细化路由。我们将基于 OpenClaw (版本 2026.3.13)macOS 环境下,通过“全局技能统一部署 + 局部环境变量隔离”的架构,为不同的智能体分配不同级别的画图模型。例如:给负责高质量输出的写作智能体配置 qwen-image-2.0-pro,给日常助手的配置经济型的 qwen-image-2.0

核心思路: OpenClaw 原生的 models 配置主要针对 LLM 推理。对于调用外部 API 画图,我们需要将其封装为 Skill(技能),并在各自扁平化的工作空间中通过 .env 注入独立的模型和 API 配置。


二、详细配置流程

2.1 创建全局文生图 Skill 脚本

我们需要编写一个底层 Python 脚本来对接阿里云通义万相最新的多模态生成接口。注意,Qwen-Image 2.0 已经全面升级为类似对话模型的 messages 数组结构,这个坑了我老半天。

在 Mac 终端执行以下命令,创建脚本目录及文件:

mkdir -p ~/.openclaw/skills/qwen-image nano ~/.openclaw/skills/qwen-image/gen.py

将以下纯净版代码写入 gen.py

# -*- coding: utf-8 -*- import os import sys import requests # 动态读取当前智能体工作空间的环境变量 api_key = os.getenv("QWEN_IMAGE_API_KEY") base_url = os.getenv("QWEN_IMAGE_BASE_URL", "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation") model_name = os.getenv("QWEN_IMAGE_MODEL", "qwen-image-2.0") prompt = " ".join(sys.argv[1:]) headers = {     "Authorization": f"Bearer {api_key}",     "Content-Type": "application/json" } # 适配 Qwen-Image 2.0 最新底层架构 payload = {     "model": model_name,     "input": {         "messages": [             {                 "role": "user",                 "content": [                     {"text": prompt}                 ]             }         ]     },     "parameters": {         "size": "1024*1024"     } } try:     response = requests.post(base_url, json=payload, headers=headers)          if response.status_code != 200:         print(f"❌ API 请求失败!HTTP 状态码: {response.status_code}")         print(f"❌ 详细错误信息: {response.text}")         sys.exit(1)              res_json = response.json()          # 解析新版 API 返回的复杂数据结构     try:         content_list = res_json['output']['choices'][0]['message']['content']         img_url = None         for item in content_list:             if 'image' in item:                 img_url = item['image']                 break             elif 'url' in item:                 img_url = item['url']                 break                          if img_url:             # 返回 OpenClaw 识别的 MEDIA 标签             print(f"MEDIA:{img_url}")         else:             print(f"图片已生成但提取 URL 失败,API 原始返回: {res_json}")                  except KeyError:         print(f"无法解析新的返回结构,API 原始返回: {res_json}")              except Exception as e:     print(f"请求崩溃: {str(e)}")

这里的 QWEN_IMAGE_BASE_URL 地址是你在对应的文生图大模型平台拿到的,包括下面的 api_Key 也是。本文演示我使用的是阿里千问的免费额度。

Nano 编辑器保存/退出快捷键: 代码粘贴完成后,按 Ctrl + O 保存文件,接着按 Enter 键确认文件名,最后按 Ctrl + X 退出编辑器。

保存退出后,务必赋予执行权限,直接执行这个:

chmod +x ~/.openclaw/skills/qwen-image/gen.py


2.2 为不同智能体配置隔离的 .env

假设你的 OpenClaw 根目录 (~/.openclaw/) 下有两个扁平化工作空间:writer_agent_workspace(写作)和 chat_agent_workspace(日常)。

注意:这里的writer_agent_workspacechat_agent_workspace 是你每个智能体对应的工作空间的名字(即文件夹名)。

A. 写作智能体(使用 Pro 版模型)

nano ~/.openclaw/writer_agent_workspace/.env

写入配置:

QWEN_IMAGE_API_KEY="sk-你的真实API_KEY" QWEN_IMAGE_BASE_URL="https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" QWEN_IMAGE_MODEL="qwen-image-2.0-pro"

B. 日常智能体(使用标准版模型)

nano ~/.openclaw/chat_agent_workspace/.env

写入配置:

QWEN_IMAGE_API_KEY="sk-你的真实API_KEY" QWEN_IMAGE_BASE_URL="https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" QWEN_IMAGE_MODEL="qwen-image-2.0"

(注:如果你的 openclaw.json 全局配置文件中曾定义过这些 Key,请将其删除,以免覆盖局部变量。)


2.3. 注册技能到智能体 (TOOLS.md)

为了让大模型知道何时以及如何调用这个画图工具,你需要手动分别编辑各个工作空间下的 TOOLS.md,加入以下说明:

# 可用技能 (Skills) ## qwen-image - 用途:当你需要生成图片、插图或视觉素材时调用此工具。 - 触发方式:运行 `python3 ~/.openclaw/skills/qwen-image/gen.py "<你的中/英文画面提示词>"`。 - 示例:`python3 ~/.openclaw/skills/qwen-image/gen.py "A high-end, artistic close-up of a futuristic car dashboard, suitable for a tutorial material cover. Clear text watermark '小生写博客' at the bottom right corner. Strictly do not include any image size or source text in the picture."` - 注意:当前环境已为你默认配置了最适合你任务的图像模型版本,请直接专注优化提示词,无需在命令中指定模型。

记得保存一下。


2.4. 重启并验证

重启网关服务使配置生效:

openclaw gateway restart


2.5. 编写脚本测试

我们可以通过编写一个简单的 bash 脚本遍历工作空间执行 python3 ~/.openclaw/skills/qwen-image/gen.py "测试提示词",检查终端是否分别打印了不同模型名称以及绿色的 MEDIA:https://... 链接,如果是这样,那就是正确的,可以在聊天终端进行生图了。

测试脚本如下:

#!/bin/bash SKILL_SCRIPT="$HOME/.openclaw/skills/qwen-image/gen.py" # 替换为你的实际工作空间名称 WORKSPACES=("writer_agent_workspace" "chat_agent_workspace") # 图片提示词 可以自己改中文 TEST_PROMPT="A high-end, artistic close-up of a futuristic car dashboard, suitable for a tutorial cover. Clear text watermark '小生写博客' at the bottom right corner." for WS in "${WORKSPACES[@]}"; do     ENV_FILE="$HOME/.openclaw/$WS/.env"     echo "📂 正在测试工作空间: $WS"     if [ -f "$ENV_FILE" ]; then         set -a; source "$ENV_FILE"; set +a         echo "✅ 当前模型: $QWEN_IMAGE_MODEL"         python3 "$SKILL_SCRIPT" "$TEST_PROMPT"     else         echo "❌ 找不到环境文件"     fi     echo "--------------------------------------------------" done


三、常见问题与排错指南

在部署过程中,你可能会遇到以下报错,对照解决即可:

Q1:出现 NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+ 警告

  • 原因:Mac 系统自带的 Python 底层使用了较老的 LibreSSL,与新版的 urllib3 网络请求库发生冲突。

  • 解决:在终端执行降级命令:pip3 install "urllib3<2"

ok!到这里我们给不同的智能体配置了不同的生图模型,基本上都齐活了,剩下的就是根据需求安装技能包,我们下篇内容写这个。

大家好,我是小生,从程序员转行做自媒体,每天学习一点 AI 技术。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松