news 2026/9/2 1:43:06

Agent模块化管理:从单体脚本到可编排的工程实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent模块化管理:从单体脚本到可编排的工程实践

Hermes Studio 正在开发 Agent 模块化管理。这个更新点放在 Agent 应用开始进入生产环境的当下,指向的是一条很明确的技术路线:Agent 不再适合做成一个“所有逻辑都堆在一起的单体”,而是要拆成能力模块、执行容器、记忆单元、编排策略,再按任务需求组合起来。

如果只看表面,这像是一次框架层的功能升级;如果把背景放大,它其实是 AI Agent 开发方式的一次收敛。过去一年里,社区讨论最多的话题已经变成 Agent 框架、Agent 编排、Agent Skill、MCP、多 Agent 协作、Agent 记忆。这些概念单独看都很碎,但 Hermes Studio 这次把方向定在“模块化管理”,相当于要把这些碎片统一到一套可维护、可复用、可编排的体系里。对正在做 Agent 应用或者准备入局的开发者来说,这是一个值得持续跟踪的信号。

这篇文章不会停留在新闻层面。我会先拆解 Hermes Studio Agent 模块化管理到底在管什么,再梳理 Harness、Skill、MCP、Agent Loop、Subagent、记忆这些高频概念,最后给出一套适合 Agent 项目的环境准备、部署启动、功能验证、API 接入和问题排查流程。你不用依赖某个特定的模型或显卡,只要手上有一个可用的 LLM 接口,就能按这套流程搭建一个最小可用的模块化 Agent 工程骨架。

适合看这篇文章的读者是:正在做 AI Agent 应用开发的工程师、需要在项目里接入多个模型和工具集成方、以及那些已经把 Agent 脚本跑通但发现“单测容易、多人维护难”的团队负责人。

1. 核心能力速览

在展开细节之前,先把 Hermes Studio Agent 模块化管理的核心信息整理成一张表。这里要说明一点:项目还在开发阶段,公开资料有限,表中内容综合了项目标题、关键词和社区讨论方向,最终能力清单要以官方发布文档为准。

能力项说明
项目类型AI Agent 开发与编排工具(Agent Studio 形态)
核心方向Agent 模块化管理
主要能力将 Agent 拆分为能力模块、工具模块、记忆模块、编排策略
工具接入面向 MCP 等标准化工具协议设计
多 Agent 协作支持主从模式、Subagent 调度等编排方式(需以官方文档为准)
执行机制Agent Loop:计划、调用工具、观察结果、修正计划
记忆能力短期上下文与长期记忆的模块化设计
API 能力对外提供 HTTP 接口,适合工具链集成(通用设计)
批量任务适合任务队列和批量编排场景
部署方式Python 虚拟环境、Docker 等常见部署方式
模型依赖可对接云端 LLM API,也可对接本地模型服务
显存需求取决于模型部署方式:云端 API 无显存门槛,本地模型需按模型规格评估

从这张表可以看出,模块化管理的重点不在“某个模型多强”,而在“Agent 内部结构能不能被拆开、替换、复用和监控”。这正好符合当前 AI Agent 进入工程化阶段的真实需求。

2. 适用场景与使用边界

2.1 适合谁

Hermes Studio 这类模块化 Agent 工具,最匹配的是下面几类场景:

  • 企业内部知识库问答助手,需要先检索资料再调用大模型生成回答。
  • 自动化运维或数据分析流程,Agent 需要调用多个外部工具,并且根据中间结果决定下一步动作。
  • 客服工单分拣,Agent 需要读取内容、判断意图、调用分单接口。
  • 具备一定规模的工具集成,例如一个 Agent 同时操作日历、邮件、数据库、代码仓库。

这些场景的共同点是:任务链路长、工具数量多、失败需要重试、结果需要追踪。单体 Agent 在这种环境下很容易变成“改一行代码就担心影响全局”的状态。

2.2 不适合什么场景

模块化是好东西,但它不是万能方案。

如果任务是固定规则流程,比如“每天定时拉取数据,转换格式,写入数据库”,用传统的定时脚本、工作流引擎更稳定,成本也低得多。模块化 Agent 适合的是“中间步骤需要依赖大模型判断”的任务,而不是所有自动化任务。

如果业务对单次响应延迟极其敏感,比如毫秒级接口,那么引入 Agent Loop 会带来明显的额外开销。大模型推理本身就有延迟,再加上路由、记忆、工具调用,链路变长,延迟必然上升。这类场景更适合用传统服务加规则引擎。

2.3 使用边界与合规提醒

使用 Agent 模块化管理时,有几条边界必须提前确认:

  • 数据合规:不要让 Agent 把企业内部数据、用户隐私数据发送到未经授权的模型服务。
  • API Key 安全:模型接口密钥要放在环境变量或密钥管理服务中,不要写进配置仓库。
  • 工具授权:Agent 调用外部工具时,需要配置最小权限,不要给一个 Agent 配上全部管理员权限。
  • 内容审核:如果 Agent 面向最终用户,生成内容需要经过审核或人工抽检。
  • 版权与肖像:如果模块中接入语音、图像、视频生成能力,涉及真人肖像或版权素材时必须获得授权。

3. Agent 模块化的核心概念梳理

在开始部署之前,需要先把模块化背后的概念对齐。社区里高频出现的几个词很容易混淆,下面逐个拆解。

3.1 单体 Agent 的痛点

先看传统的单体 Agent 长什么样:一个 Python 脚本,里面依次调用大模型接口、写提示词、解析输出、调工具、再调大模型接口。简单任务可以跑通,但一旦任务变复杂,问题就逐渐暴露——

第一个痛点是逻辑耦合。提示词、工具调用、状态管理混在一起,修改一个参数可能导致另一个功能失效。第二个痛点是复用困难。A 项目里写好的工具调用逻辑,B 项目很难直接复用,只能复制粘贴再改。第三个痛点是难以观测。Agent 内部执行到了哪一步、为什么调用某个工具、失败在哪里,缺少清晰的日志和链路追踪。

模块化管理的目标,就是把这三种问题拆解成可管理的单元。

3.2 Harness 与 Agent:运行容器与决策实体

Harness 和 Agent 的区别,是理解模块化的重要分水岭。

简单说,Agent 是决策实体,它负责“思考下一步该干什么”;Harness 是运行容器,它负责“给 Agent 提供能跑起来的骨架”。Agent 决定调用什么工具,Harness 负责真正执行工具调用、管理上下文、处理超时和错误。

在模块化体系里,Harness 会让多个 Agent 共享一套执行环境,这样工具管理、日志、权限控制只需要写一次,而不是每个 Agent 都重复实现一遍。

3.3 Skill 与 MCP:能力封装与连接协议

Skill 和 MCP 是另一组容易混淆的概念。

Skill 可以理解为一个能力包。它封装了“做什么”,比如“根据用户问题生成 SQL 查询”“总结文档要点”“把文本翻译成英文”。一个 Skill 内部包含提示词模板、参数定义、可能的工具调用逻辑。

MCP 是连接协议。它解决的是“怎么连”的问题,让不同模型和工具能按照统一协议交互。MCP 更多是一套接口标准,负责传输请求和返回结果。

两者的关系不是竞争,而是互补。Skill 定义 Agent 具备什么能力,MCP 定义能力如何与外部工具通信。在一个模块化 Agent 里,Skill 是单元,MCP 是插槽,两者配合才能让 Agent 灵活调用各种工具。

3.4 Agent Loop:从计划到执行的循环

Agent 本质上是跑在一个循环里的:读入任务,形成计划,调用工具,观察结果,如果结果不满足要求,就修正计划继续执行。

这个循环通常被称为 Agent Loop。模块化管理的关键,就是把 Loop 的每一段拆成独立节点:计划节点、工具节点、记忆节点、判断节点。这样才能在某个环节失败时精准定位,而不是把整个 Agent 当作黑盒。

从社区讨论看,很多团队已经开始把模型调用本身也当作一个可替换模块,同一个 Agent 可以在不同模型之间切换,这其实也是模块化思路的一部分。

3.5 多 Agent 协作与 Subagent 模式

当任务复杂到单个 Agent 难以处理时,需要引入多 Agent 协作。当前社区主流的做法是主从模式:主 Agent 负责拆解任务,把子任务分发给 Subagent,收集结果后汇总。

有一个被反复提到的设计经验是:把 Subagent 看作一种特殊的 Tool。主 Agent 不需要知道 Subagent 内部的复杂逻辑,只需要知道它能接收什么输入、返回什么结果。这样一来,Subagent 的调度逻辑就复用工具调用的统一管道,代码实现更简洁。

模块化管理在这里的价值是:每个 Subagent 都是独立模块,可以单独测试、单独升级,不会因为一个 Subagent 变更而影响主 Agent 整体逻辑。

3.6 Agent 记忆

记忆也是模块化体系中必须单独管理的模块。Agent 对话分成短期上下文和长期记忆两层。

短期记忆是当前会话内的大模型上下文,长度有限,超过窗口就要做裁剪或摘要。长期记忆通常需要外部存储,比如向量数据库,把历史对话、用户偏好、业务知识编码成向量,需要时再做检索召回。

模块化的记忆设计会提供统一的读写接口,上层 Agent 不关心底层用的是内存缓存、Redis 还是向量数据库。这样业务方可以根据数据量自由切换记忆方案。

4. 环境准备与前置条件

模块化 Agent 项目的环境准备,比传统脚本要稍重一些,但整体仍然可控。推荐按以下清单检查。

  • 操作系统:Linux、macOS、Windows 均可,但生产环境建议 Linux。
  • 运行环境:Python 3.10 或以上版本,部分框架使用 Node.js 18 或以上版本。
  • 容器环境:Docker 和 Docker Compose,用于统一部署依赖和模型服务。
  • 模型接口:一个可用的 LLM API Key,或者一个本地模型服务地址。
  • 工具服务:如果 Agent 要调用数据库、搜索引擎、代码仓库,需要提前准备对应服务的访问凭证。
  • 存储服务:如果启用长期记忆,需要准备向量数据库或至少一个可用的 Redis 实例。
  • 磁盘空间:代码和依赖通常需要几个 GB 到十几个 GB,如果本地部署模型则需要更大空间。
  • 端口规划:确认应用端口未被占用,推荐使用 127.0.0.1 绑定开发环境,生产环境再对外开放。

检查清单可以整理成一张表格,方便对照:

检查项建议要求说明
Python3.10+多数 Agent 框架的依赖基线
Node.js18+部分前端和框架组件需要
Docker20.10+推荐用于依赖隔离
LLM API至少一个OpenAI 兼容接口即可
内存16GB 以上多 Agent 并发时需要
磁盘20GB 以上预留依赖和日志空间
网络可访问模型服务本地模型则不需要外网

以上是通用建议,具体版本以实际项目 requirements 和官方文档为准。

5. 安装部署与启动方式

由于 Hermes Studio 还在开发阶段,这里不给具体启动命令,而是给一套通用模板。这套模板适用于多数模块化 Agent 项目,拿到任何类似项目都可以按这个思路快速落地。

5.1 基于 Python 虚拟环境启动

# 1. 创建并激活虚拟环境 python3 -m venv .venv source .venv/bin/activate # 2. 安装项目依赖 pip install -r requirements.txt # 3. 配置环境变量 export LLM_API_KEY="your_api_key_here" export LLM_MODEL="your_model_name" export AGENT_PORT=8080 # 4. 启动服务 python app.py --host 127.0.0.1 --port 8080

实际启动入口可能不是app.py,需要按项目结构调整。启动后如果看到类似 “Server running” 的日志,说明服务已经起来。

5.2 基于 Docker Compose 启动

version: "3.8" services: agent-service: image: your-agent-image:latest ports: - "8080:8080" environment: - LLM_API_KEY=${LLM_API_KEY} - LLM_MODEL=${LLM_MODEL} - AGENT_PORT=8080 volumes: - ./configs:/app/configs restart: unless-stopped
# 使用 Compose 启动 docker compose up -d # 查看日志 docker compose logs -f agent-service

Docker 方式的好处是环境隔离更彻底,依赖版本冲突的问题更容易规避。开发阶段建议用虚拟环境,部署阶段用 Docker。

5.3 Skill 模块配置示例

模块化 Agent 会要求以配置方式声明能力。下面是一个 Skill 定义的通用模板,字段名需要按实际项目调整。

{ "skill_name": "generate_sql", "description": "根据用户自然语言问题生成 SQL 查询语句", "enabled": true, "parameters": { "type": "object", "properties": { "question": { "type": "string", "description": "用户的自然语言问题" } }, "required": ["question"] }, "model_config": { "temperature": 0.2, "max_tokens": 500 } }

这种配置化的好处是:新增能力不需要改主流程代码,只需要往配置目录里放一个新 Skill 定义文件,服务启动时自动注册。

6. 功能测试与效果验证

模块化 Agent 部署完成后,不能只看“服务启动成功”就结束,必须分模块验证各个能力。

6.1 能力模块注册测试

目的:确认 Skill 模块能被正确加载。

操作:查看启动日志,确认所有能力模块注册成功。如果有模块加载失败,通常会列出缺失的依赖或配置项。

判断标准:日志中注册成功的模块数量与配置文件中定义的数量一致。

6.2 工具调用链路测试

目的:验证 Agent 能否识别意图并调用正确的工具。

输入示例:“查询订单号 20240601 的状态。”

操作:通过 WebUI 或 API 发送该请求,观察日志中 Agent 的计划步骤,确认它是否调用了订单查询工具。

判断标准:Agent 返回了正确的订单状态,且日志能完整还原“识别意图 -> 调用工具 -> 返回结果”的链路。

6.3 多轮对话与记忆测试

目的:验证短期记忆和长期记忆是否正常工作。

操作:先让 Agent 记住一个事实,比如“我常用的收货城市是杭州”,第二轮再问“我之前常用的收货城市是哪”,看它能否准确回答。

判断标准:第二轮能正确引用第一轮的信息,说明短期上下文传递正常;如果服务重启后仍能回答,说明长期记忆模块生效。

6.4 多 Agent 编排测试

目的:验证主从模式和 Subagent 调度是否正常。

操作:提交一个多步骤任务,比如“查看本周项目排期,找到冲突的会议,并生成调整建议”,然后观察日志中是否创建了多个 Subagent,以及主 Agent 是否汇总了结果。

判断标准:任务能完整执行,日志中能明显看到子任务分发和结果回收的过程。

6.5 批量任务测试

目的:验证批量场景下的稳定性和失败恢复能力。

操作:构造一个包含 10 条以上任务的数据集,逐条提交给 Agent 处理,观察是否有任务卡死或报错。

判断标准:固定数量的任务能全部执行完毕,失败任务能进入重试队列而不是直接丢弃。

7. 接口 API 与批量任务

模块化 Agent 的价值之一是方便接入现有业务系统。大多数 Agent 服务都会暴露 HTTP API 接口。下面给出一套通用调用模板。

7.1 通用 API 调用示例

import requests url = "http://127.0.0.1:8080/api/agent/run" payload = { "task": "查询订单号 20240601 的状态", "session_id": "user-001", "config": { "max_steps": 5 } } response = requests.post(url, json=payload, timeout=120) print(response.json())
curl -X POST http://127.0.0.1:8080/api/agent/run \ -H "Content-Type: application/json" \ -d '{ "task": "查询订单号 20240601 的状态", "session_id": "user-001", "config": { "max_steps": 5 } }'

接口路径和参数结构需要按实际项目文档调整。这里给出的是通用模板,重点演示请求体里应包含任务文本、会话标识和步数限制。

7.2 批量任务队列设计

批量任务不能简单写一个 for 循环并发调接口,否则很容易触发模型服务限流或内存暴涨。推荐用队列加固定并发数的方式。

import threading from queue import Queue task_queue = Queue() results = {} lock = threading.Lock() def run_agent_task(task_id: str): # 这里替换为真实的 Agent API 调用逻辑 url = "http://127.0.0.1:8080/api/agent/run" payload = { "task": f"处理 {task_id}", "session_id": task_id, "config": {"max_steps": 5} } import requests resp = requests.post(url, json=payload, timeout=120) resp.raise_for_status() return resp.json() def worker(): while not task_queue.empty(): task_id = task_queue.get() try: result = run_agent_task(task_id) with lock: results[task_id] = result except Exception as e: with lock: results[task_id] = {"error": str(e)} finally: task_queue.task_done() # 将任务放入队列 for i in range(100): task_queue.put(f"task-{i}") # 固定 4 个并发消费者 workers = [threading.Thread(target=worker) for _ in range(4)] for w in workers: w.start() for w in workers: w.join() print("全部任务执行完成")

批量处理的关键不是速度,而是可控性:并发数固定、失败可见、任务有 ID、结果有落盘。

7.3 失败重试策略

Agent 任务失败的原因很多,常见的有模型服务超时、工具接口返回异常、上下文超长。建议按以下顺序处理:

  • 超时任务:增加单次请求超时时间,或者把任务拆小。
  • 工具异常:记录工具返回的原始错误,加入重试队列,间隔 10 秒后重试,最多 3 次。
  • 上下文超长:开启上下文压缩或摘要,减少单次输入长度。

如果遇到 “the agent execution provider did not respond in time” 这类执行超时提示,优先排查模型服务端是否有阻塞,再检查网络连接和执行环境资源。

8. 资源占用与性能观察

模块化 Agent 的资源消耗与传统服务不同,核心瓶颈通常不在 CPU 和内存,而在大模型推理延迟和上下文长度。

需要重点观察的指标包括:

  • 单次请求响应时间:从提交任务到返回结果的完整耗时。
  • Token 消耗:一次任务消耗了多少输入和输出 Token,决定成本。
  • 上下文长度:每轮对话后上下文是否快速膨胀,是否需要压缩。
  • 并发能力:固定并发下延迟是否线性上升、是否出现限流。
  • 记忆存储读写延迟:长期记忆模块使用检索时,向量化流程是否拖慢整体响应。
  • 缓存命中率:如果实现了提示词缓存或工具结果缓存,命中率越高,整体延迟越低。

降低资源占用的建议:

  • 减少不必要的工具调用,让 Agent 先做一次意图判断,能直接回答的问题就不调工具。
  • 控制 Agent Loop 的最大步数,避免任务陷入反复试错。
  • 打开上下文压缩,长对话及时做摘要。
  • 批量任务用队列控制并发,不要无限制地同时发起请求。
  • 本地模型部署时,根据显存规格选择模型量化等级,先小模型验证流程再切换大模型。

需要注意,以上性能指标没有固定标准,不同模型、不同任务类型差异很大。上生产环境前,必须用真实任务集做一轮压测,记录基线数据。

9. 常见问题与排查方法

问题现象可能原因排查方式解决方案
服务启动失败依赖未安装完整查看启动日志中的模块加载报错重新安装依赖,确认 Python 版本
模型接口连接超时API Key 无效或网络不通用 curl 直接请求模型接口检查密钥和网络访问权限
Agent 不调用工具工具模块未注册或意图判断失败查看日志中 Agent 的计划步骤检查工具配置和提示词模板
多轮对话忘记上文短期记忆未写入检查上下文传递逻辑开启上下文保存或记忆模块
任务执行卡住Agent Loop 进入死循环查看步数统计设置 max_steps 上限并加入超时
execution provider 未响应模型服务执行超时查看模型服务端日志延长超时时间、拆分任务、扩容执行资源
批量任务中途失败并发过高触发限流查看限流错误码降低并发数并加入重试
上下文超长报错输入超过模型窗口查看 token 统计开启摘要压缩或分段处理
端口冲突应用端口被占用使用 ss -lntp 或 netstat 查看端口占用更换端口或关闭占用进程
日志缺失日志级别设置过高或未接入追踪调整日志级别使用结构化日志,记录 Agent 每一步动作

排查模块化 Agent 问题的核心思路是:先把链路拆开,定位在哪个模块失败,再处理该模块的具体错误。不要只盯着模型输出,工具调用、记忆读写、上下文管理都是可能出问题的环节。

10. 最佳实践与使用建议

把模块化 Agent 用到生产环境,建议从下面几个方向入手。

第一,模块划分要小而专。一个 Skill 只做一件事,例如生成 SQL、总结文档、提取结构化信息。能力越聚焦,就越容易测试和替换。

第二,配置与代码分离。模型名、API Key、工具地址、超时时间都应该放进配置文件或环境变量,不要硬编码在代码里。不同环境使用不同配置,保持部署流程一致。

第三,建立一套最小可运行配置。保证任何新环境都能在一小时内跑通一个最小 Agent 流程,再逐步叠加技能和工具。这个最小配置要连同测试用例一起纳入版本库。

第四,日志和追踪要做在框架层。每个 Agent 的执行步骤、工具调用、Token 消耗、耗时都应该有结构化日志。这样出现问题时能快速定位到具体环节。

第五,批量任务必须带重试和幂等。任务 ID 要全局唯一,重复提交不能产生重复数据,失败任务要能重新进入队列。

第六,权限设计遵循最小授权。Agent 只能访问完成任务所需的数据和工具,不能因为实现方便就放开所有权限。

第七,涉及人脸、声音、版权素材的功能必须走授权流程。如果 Agent 模块接入了图像生成、语音合成、数字人相关能力,要确保训练数据和生成内容都合规。

第八,考虑到 Agent 项目迭代很快,建议所有模块都定义稳定的输入输出接口。内部实现可以频繁变化,但接口一旦暴露给外部调用方,就要尽量保持兼容。

11. 总结与下一步

Hermes Studio 正在开发 Agent 模块化管理,本质上是在帮开发者解决 Agent 工程的复杂度问题。它把单体 Agent 拆成 Skill、工具、记忆、编排策略这些可独立更新的单元,让 Agent 从“能跑”走向“可维护、可复用、可观测”。

如果你正在做 Agent 应用,最先应该验证的是能力模块注册和工具调用链路,这两项跑通后,Agent 的主干就立住了。然后加上上下文压缩和批量队列,再考虑接入多 Agent 编排。

最容易踩的坑是过早引入复杂编排。建议先从单 Agent 加小规模工具集开始,等确认任务链路稳定后,再逐步扩展 Subagent。模块化管理的目标是降低复杂度,而不是一开始就把系统搞成复杂分布式架构。

下一步可以重点跟踪 Hermes Studio 官方发布的能力清单,同时把本文的通用模板当成一份自检清单,拿到实际项目后逐项对照。Agent 开发前段的探索期已经过了,现在到了拼工程能力的阶段。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 1:41:01

ViT图像分类实战:PyTorch预训练模型微调与避坑指南

简介:这是一份基于 PyTorch 的 Vision Transformer(ViT)实现,面向深度学习研究者与工程师,提供从原始 JAX/Flax 权重转换而来的预训练模型,可直接用于图像分类、特征提取以及下游任务微调。压缩包约 173KB&…

作者头像 李华
网站建设 2026/9/2 1:38:50

微服务架构核心解析:从单体痛点到Spring Cloud Alibaba落地实践

为什么需要微服务?这个问题没有标准答案,但几乎所有经历过单体应用后期维护的项目组,都会给出类似的理由:业务代码堆在一个大仓库里,改一个接口就要全量发布,数据库连接被打满后整个系统一起不可用&#xf…

作者头像 李华
网站建设 2026/9/2 1:37:47

经典军事模拟游戏《闪点行动》汉化:技术考古与体验重构

你打开一个二十多年前的军事模拟游戏,想重温一下当年那种硬核、写实、一步一坑的体验。结果发现,游戏里那些密密麻麻的英文简报、无线电指令、任务目标,像一堵墙一样横在你面前。你记得当年玩的时候,连蒙带猜也能过去,…

作者头像 李华
网站建设 2026/9/2 1:35:18

Java源码小区物业管理系统:从设计到部署的完整实战指南

简介:面向小区物业管理场景的毕业设计级项目,提供基于B/S架构的物业管理系统完整源码,适合Java Web初学者和高校学生对照学习。该系统围绕业主管理、房屋管理、收费管理、报修服务、公告通知、访客管理、停车管理等核心模块展开,覆…

作者头像 李华
网站建设 2026/9/2 1:34:43

MCP规范驱动的Agent智能体评测自动合成方法与实践

做 Agent 相关开发的读者可能最近都有同感:Agent 用起来越来越顺手,但评测一个 Agent 到底好不好用,却越来越难。难点不在跑通一个 Demo,而在“怎么证明它在真实任务上可靠”。工具调用是否准确、多步推理是否稳定、边界情况是否崩…

作者头像 李华
网站建设 2026/9/2 1:34:24

零基础AI绘图入门,新手必看提示词生成技巧

正在制作AI漫剧或AI动画视频的小伙伴,给大家推荐这里:AIGC梦工厂(www.aigcc.vip)。Ai漫剧一站式成片。输入一句话进去就能一键成片;画布模式可以精修每一帧画面;还有500多种Ai图片玩法。有兴趣的可以看看。…

作者头像 李华