news 2026/9/8 7:34:44

腾讯云AI Skills实战:从Demo到生产级Agent的完整落地指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
腾讯云AI Skills实战:从Demo到生产级Agent的完整落地指南

Agent 开发圈子里有个很普遍的现象:框架看了一堆,Demo 跑得飞快,一上真实场景就崩。工具调用混乱、上下文越拖越长、模型选型一变就得重构,最后项目还是停在"会聊天"的阶段。我自己的运维助手 Agent 也经历了这个过程,直到把腾讯云 AI Skills 的思路真正落地,才把"玩具"变成能稳定干活的生产工具。这篇就结合我自己的实践,聊聊怎么基于腾讯云把"全能 Agent"从概念拆成可落地的系统,完整走一遍 Skills 设计、环境搭建、编排记忆和端到端实测的关键环节,给同样在 Agent 开发路上摸索的朋友一些能直接抄的作业。

1. 先搞清楚 Agent 和 AI Skills 的关系,再谈"全能"

1.1 为什么大量 Agent 项目止步于 demo

我见过太多 Agent 项目的死法:给模型接了一堆 function calling,前期测试怎么调怎么对,一放到真实环境就原形毕露。模型选错工具、工具参数填错、执行到一半报错不知道处理,这些问题几乎成了 Agent 开发的标配,根子在于我们一直把 Agent 当成一个"什么都会的函数",而不是一套有边界、可编排的能力系统。

"全能 Agent"这个词本身就容易误导人。我一直认为,Agent 的"全能"不应该体现在它自己什么都做,而应该体现在它能调度一切、组合一切。就像一支施工队,队长不需要亲自砌墙、刷漆、接电线,他需要的是清楚每项工序的边界、前置条件和交付标准,然后把人手安排到位。Agent 就是那个队长,AI Skills 就是那些分工明确、随时待命的施工班组。

1.2 Skill 不是 function calling,也不是插件

很多人分不清 Skill 和 function calling 的区别,这其实是两代思路。

function calling 是让模型从一堆函数签名里选一个来执行,本质上是"接口适配";插件则是把一组相关功能打包,但往往缺少对"什么时候该用、什么时候不该用"的约束。而 Skill 更接近一个完整的能独立交付结果的执行单元——它不仅有函数的输入输出定义,还包含触发条件、适用场景、执行步骤、异常处理甚至返回格式。

用一句话总结我自己的理解:Skill 是带"说明书"的能力封装,它告诉模型的不只是"我能做什么",还有"你该在什么情况下用我"。

这个差异直接决定了 Agent 在复杂任务里的稳定性。function calling 时代,模型面对几十个扁平函数,选错是常态;Skill 时代,我们把能力分组、加上场景约束,模型的选择空间变小,准确率自然上来了。

1.3 "全能"的真正含义:能力边界清晰,而非功能堆叠

我在做自己这套系统的时候,第一个原则就是给 Agent 做减法。与其做一个函数列表长达 200 项的"巨无霸",不如先定义清楚它服务什么人、处理什么事、不碰什么事。

我给它起的名字叫"小腾",定位很明确:一个面向个人开发者的运维助理。它的职责范围就三类:查状态(服务器/服务/日志)、做分析(性能/错误根因)、出报告(巡检/归档/通知)。超出这个范围的需求,它有权拒绝并给出原因,而不是硬着头皮编一个答案。

这个边界设定在后来的使用中帮了大忙。因为范围清晰,我封装的 Skill 数量被控制在 15 个以内,模型每次决策的候选集很小,准确率大幅提升,上下文里的冗余信息也少了。很多 Agent 项目搞砸,不是能力不够,恰恰是能力太多、边界太模糊。

2. 能力地图先行:把"全能"拆成可落地的模块

2.1 三层能力模型:工具层、编排层、记忆层

动手写代码之前,我先画了一张能力地图。整个 Agent 系统我拆成三个层次:工具层是具体干活的 Skill,比如"查磁盘使用率""读取 Nginx 错误日志""生成巡检报告";编排层负责理解用户意图、拆解任务、决定 Skill 调用顺序;记忆层处理上下文和长期信息的存取。

这个分层的价值和"高内聚低耦合"一样,让每一层可以独立演进。工具层只管单点能力,不需要关心任务怎么拆;编排层只管流程控制,不碰具体执行细节;记忆层则屏蔽了不同存储后端的差异,统一给上面两层提供读写接口。

分层之后,我最大的感受是调试成本直线下降。以前 Agent 出问题,得从一堆互相纠缠的代码里定位;现在出了问题,先看是哪个 Skill 执行失败,还是编排逻辑选错了,还是记忆读写异常,问题定位从来不超过十分钟。

2.2 我用一张表格锁定了第一个版本的能力清单

第一版能力清单我做得非常克制,一共 12 个 Skill,按领域分成四组:

分组Skill 名称输入要点输出结果典型触发场景
状态巡检系统概览目标主机 IPCPU/内存/磁盘/负载 JSON"看看服务器状态"
状态巡检服务健康检查服务名进程存活/端口监听状态"检查 Nginx 挂了没"
日志分析错误日志检索日志路径/时间窗口/关键字匹配条目+统计摘要"今天有没有报错"
日志分析慢查询分析时间窗口TOP N 慢查询列表"最近数据库怎么变慢了"
资源管理磁盘清理建议目录路径大文件/可清理项清单"磁盘快满了怎么办"
资源管理进程管理进程名/操作类型执行结果+退出码"把 xx 进程重启一下"
数据查询MySQL 查询SQL/库名查询结果表格"查一下今天的订单量"
数据查询Redis 查询Key 模式Key 列表/值"看看缓存里有什么"
报告生成巡检报告生成报告范围/时间Markdown 报告"出一份今日巡检报告"
报告生成变更记录归档变更描述归档条目 ID"记录一下今天的变更"
通知推送钉钉/企微推送消息内容/接收人推送结果"把报告发给我"
对象存储COS 上传本地路径/存储桶访问链接"把报告上传到 COS"

这 12 个 Skill 覆盖了"看状态、查问题、做动作、出结果"四类最常见的运维诉求,足够撑起一个"全能"的初始版本。

2.3 腾讯云资源选型:不追新,只追稳

选型这块我必须说句实话:很多人一上来就喜欢追最新的模型、最热的框架、最贵的服务,但做生产系统,稳比新重要得多

我整套系统跑在腾讯云上,核心资源就三样:一台云服务器 CVM 跑 Agent 主程序,一台轻量应用服务器跑模型网关和外部工具(也可以合并,但我分开图省心),再加上容器镜像服务 CCR 来托管我给 Agent 准备的镜像。域名这块,我在腾讯云申请了一个二级域名给 API 服务做 HTTPS 入口。

这套选型没有任何花哨的地方,全部是经过验证的成熟路径。CVM 选的 4C8G 配置,对于我这种十几个 Skill 的中小型 Agent 绰绰有余;模型网关单独部署在轻量服务器上,即使 Agent 主程序重启也不会影响网关的可用性;容器镜像托管在腾讯云 CCR,后续更新版本直接推镜像,不用折腾服务器环境。

3. 腾讯云环境搭建:服务器、容器镜像与二级域名

3.1 一台干净服务器的初始化清单

很多 Agent 项目的"环境问题"其实都不是环境问题,而是环境不干净。我见过有人在同一台机器上装了三个 Python 版本、两套 Node、五个数据库,Agent 跑不起来首先怀疑代码,查了半天发现是环境变量被改乱了。

我自己初始化服务器的顺序是固定的,照着做基本不会踩坑:

  1. 系统选 Ubuntu 22.04 LTS,SSH 密钥登录,禁用 root 密码登录。
  2. 安装 Docker Engine 和 Docker Compose 插件,后续所有依赖都容器化。
  3. 装好 nginx 做反向代理,不直接暴露应用端口。
  4. 配置 UFW 防火墙,只放行 80/443/22(如果有其他业务端口按需放行)。
  5. htopiftopiostat这套组合拳做日常监控,确认基础资源有数。

这套流程看起来和 Agent 关系不大,但恰恰是"看起来无关"的基建决定了你后面能走多远。容器化尤其重要——你的 Agent 可能会依赖特定版本的 Python、特定的系统库,如果不容器化,一次系统更新就可能让整个环境报废。

3.2 Docker 镜像推送腾讯云容器镜像服务的完整命令

我的 Agent 主程序和模型网关都是容器化部署,所以镜像托管是刚需。腾讯云的容器镜像服务 CCR 和 Docker Hub 的用法基本一样,但有几个细节值得注意。

第一,创建镜像仓库的时候需要选择所属地域,这个地域最好和你服务器所在地域一致,否则内网拉取的优势就没了。第二,镜像仓库有私有公有之分,Agent 的镜像我强烈建议用私有仓库,虽然公网拉取方便,但暴露镜像内容没有任何好处。

推送流程如下:

# 1. 登录腾讯云 Docker Registry(替换成你的地域和实例ID) docker login ccr.ccs.tencentyun.com -u 你的腾讯云账号ID --password-stdin <<< "你的访问令牌" # 2. 给本地镜像打上腾讯云仓库的 tag docker tag myagent:latest ccr.ccs.tencentyun.com/myproject/myagent:latest # 3. 推送镜像 docker push ccr.ccs.tencentyun.com/myproject/myagent:latest # 4. 服务器上拉取并运行 docker pull ccr.ccs.tencentyun.com/myproject/myagent:latest docker run -d --name myagent \ -e OPENAI_API_KEY=xxx \ -e MODEL_GATEWAY_URL=http://你的网关地址:8000 \ -p 8080:8080 \ --restart=unless-stopped \ ccr.ccs.tencentyun.com/myproject/myagent:latest

这里有个我踩过的坑:登录时的用户名不是你的手机号,也不是昵称,而是账号 ID。第一次我用邮箱登录,反反复复报认证失败,折腾了快一个小时才发现这个细节。腾讯云的访问令牌在 API 密钥管理里生成,建议只开通"容器镜像服务"的权限,最小化泄露风险。

3.3 二级域名申请与 HTTPS 落地的正确姿势

我在腾讯云申请了一个二级域名给 Agent 的 API 服务用。这一步的逻辑很简单:如果 Agent 需要通过 Webhook 接收外部事件的回调,或者你要在微信/钉钉/企业微信里调用它,就必须有一个公网可访问的 HTTPS 入口。

申请二级域名本身没什么难度,难的是把域名和证书、反代串起来。我的完整链路是这样的:用户在外部平台点按钮 → 请求打到我的域名 → Nginx 按路径反代到 Agent 容器 → Agent 处理完返回结果。HTTPS 证书我用的是腾讯云免费的 SSL 证书,一年一换,完全够用。

Nginx 配置里有两个关键点。一是把 WebSocket 升级头带上,因为 Agent 的前端聊天界面可能用到 WS 长连接;二是设置合理的client_max_body_size,不然用户上传日志文件时直接 413,排查起来很莫名其妙。

server { listen 443 ssl http2; server_name agent.example.com; ssl_certificate /etc/nginx/ssl/agent.example.com.pem; ssl_certificate_key /etc/nginx/ssl/agent.example.com.key; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; client_max_body_size 20m; } }

4. 核心环节:AI Skills 的设计、封装与路由

4.1 一份 Skill 的完整构成要素

现在进入这篇文章的重头戏:到底怎么设计一个真正能用的 Skill。

我封装 Skill 的模板包含五个部分:基本信息(名称、版本、分组)、触发条件(什么意图场景下该调用)、输入参数(JSON Schema 格式,字段+类型+是否必填+描述)、执行逻辑(可执行代码路径)、返回值契约(结构化返回格式+失败时的错误码约定)。

拿"系统概览"这个 Skill 举例,它的核心定义长这样:

{ "skill_name": "system_overview", "version": "1.0.0", "group": "状态巡检", "description": "采集目标主机的 CPU、内存、磁盘、负载等核心指标,返回结构化状态数据。适用于用户询问服务器状态、资源使用情况、是否卡顿等场景。", "trigger_examples": [ "看看服务器状态", "服务器是不是卡了", "帮我检查一下资源占用" ], "parameters": { "type": "object", "properties": { "host": { "type": "string", "description": "目标主机 IP 或主机名,默认本机" } }, "required": ["host"] }, "execution": { "handler": "skills/system_overview.py", "timeout_seconds": 30 }, "returns": { "success": { "cpu_percent": "float", "memory_percent": "float", "disk_percent": "float", "load_avg": "list" }, "error": { "code": "string", "message": "string" } } }

trigger_examples是我在实际使用中觉得价值最大的字段。它不只是给模型做 few-shot 参考,更重要的是让我反过来检验:我设计的描述是否符合用户真实说话的习惯。如果我发现"看看服务器卡不卡"这种口语化表达没被收录,就说明我对模型的理解还不够,得及时补。

4.2 描述即路由:让模型精准选中 Skill

这是 AI Skills 设计里我最想强调的一个原则:描述即路由。

Agent 决定调哪个 Skill,本质上是一个文本匹配任务。模型的 attention 机制会把你提供的 Skill 描述和用户的输入做语义匹配,所以描述写得好不好,直接决定路由准确率。

我的三个经验:

  1. 描述里包含触发场景。不要只写"获取系统状态",而写"适用于用户询问服务器状态、资源使用是否异常、是否需要扩容等场景"。场景词越多,模型匹配越准。

  2. 提供典型问题例句。我每个 Skill 的trigger_examples都至少写 5 个真实用户可能问出的问题。模型见过类似问法,下次实际遇到时命中率明显更高。

  3. 主动声明不合适的使用场景。这是反直觉但极其有效的招数。我在"磁盘清理建议"这个 Skill 的描述里明确写了"本 Skill 不执行任何删除操作,仅提供清理建议;如用户要求直接删除文件,请先获取二次确认"。这个负向约束大大降低了误触发率。

4.3 用 litellm proxy 统一模型网关,屏蔽底层差异

Skill 设计好之后,另一个需要提前解决的问题是:Agent 到底接什么模型?

现实情况是,没有哪个模型在所有场景下都最好。复杂推理任务 GPT 系表现好,中文日常对话可能某些国产模型更快更便宜,代码生成又是另一个模型的强项。如果 Agent 代码里硬编码了一个模型供应商,后续换模型就是一场灾难。

我用 litellm proxy 做了一层统一的模型网关。它的核心价值在于:对外暴露一个 OpenAI 兼容接口,对内可以路由到任意一个上游模型供应商,同时支持 key 管理、限流、重试和预算控制。

我在 litellm 配置里定义了多个模型:

model_list: - model_name: gpt-4o litellm_params: model: openai/gpt-4o api_key: os.environ/OPENAI_API_KEY - model_name: deepseek-chat litellm_params: model: deepseek/deepseek-chat api_key: os.environ/DEEPSEEK_API_KEY - model_name: claude-sonnet litellm_params: model: anthropic/claude-3-5-sonnet api_key: os.environ/ANTHROPIC_API_KEY general_settings: master_key: sk-myagent-master-key

这样 Agent 主程序永远只对着http://网关地址:8000这一个端点说话,至于背后是 GPT 还是 DeepSeek,对上层完全透明。有一次我想把 Agent 的默认模型从 GPT 换到 DeepSeek(便宜很多),只改了 yaml 里默认模型的指向,Agent 代码一行没动。

5. 编排逻辑与记忆机制:Agent 怎么知道自己该干什么

5.1 从"if-else 地狱"到状态机编排

拥有十几个 Skill 之后,Agent 的编排逻辑开始变得复杂。最粗暴的方式是让模型自己决定调用顺序,但这存在一个致命问题:一旦某个环节出错,模型不一定知道怎么恢复。比如巡检任务要"先查状态、再分析问题、最后生成报告",如果在"生成报告"这一步模型突然决定先去执行一个无关的"Redis 查询",整个流程就乱了。

我的做法是引入状态机编排。把常见任务固化成流程模板,Agent 的"自由发挥"被限制在模板规定的范围内。

以"巡检"流程为例,状态机是这样的:

  • START → 确认巡检范围(目标主机、时间窗口)
  • SCOPE_OK → 依次执行系统概览、服务健康检查、错误日志检索
  • COLLECT_DONE → 汇总数据并生成巡检报告
  • REPORT_DONE → 推送报告到指定渠道
  • 任意步骤超时或失败 → ERROR → 记录失败原因,询问用户是否重试

这个设计的精髓在于:模型可以决定每一步的参数(查哪些服务、看什么时间窗口),但不能改变流程顺序。流程的骨架是开发人员写死的,模型的发挥只体现在参数填充和异常处理上。

5.2 短期记忆和长期记忆的分工

记忆机制是 Agent 从"单次问答工具"进化为"可持续协作助手"的关键。

我把记忆拆成两层:短期记忆指当前对话上下文,直接放进模型请求的 messages 里;长期记忆则存入腾讯云的 MySQL,记录跨会话的重要信息,比如用户偏好的报告格式、常用服务器列表、之前处理过的问题。

长期记忆的读写时机很讲究。我采用的做法是:Agent 每完成一个任务,就把任务的关键结论用结构化的方式写入记忆库;新对话开始时,先做一次"记忆召回",把与该用户/该话题相关的历史记录注入上下文。

一开始我担心长期记忆太大会撑爆上下文窗口,后来发现完全不需要担心——召回时只要按时间和相关性过滤,只取最近 20 条记录,远达不到上下文极限。真正需要控制的是写入频率,如果每个临时状态都往库里写,库会被垃圾数据填满,真正重要的记忆反而被淹没。

5.3 执行中断的兜底:一次真实的事故复盘

任何一个生产环境运行的 Agent,都会遇到执行中断。就前几天,"小腾"在跑睡前巡检时突然中止,日志里只有一行agent execution terminated due to error,没有堆栈信息。

这次事故让我意识到:Agent 的错误处理不能只依赖框架自带的异常机制,必须建立多级兜底

排查下来,问题出在"服务健康检查"这个 Skill 的一个子命令上——它需要读取一个服务状态文件,而文件路径在容器重启后发生了变化。从定位到修复,整个过程其实可以归纳成一套通用的排查方法:

  1. 先看 Agent 的日志,确认是编排层的错误还是执行层的错误,这决定排查方向。
  2. 如果是执行层错误,直接手动运行对应的 Skill 脚本,看能否复现。
  3. 重点检查路径、权限、环境变量这三类最容易在容器化部署时出问题的地方。
  4. 修复后,在 Skill 的执行逻辑里增加前置检查——文件不存在时先尝试定位,定位不到再给出明确报错信息,而不是抛出裸异常。

这次事故也直接促使我给所有 Skill 的执行逻辑加了统一的超时控制和重试机制:

def run_skill_with_retry(skill_func, max_retries=2, timeout=30): for attempt in range(max_retries + 1): try: return {"success": True, "data": skill_func()} except TimeoutError: # 超时后的策略:如果是可重试操作(如查询类),重试;如果是动作类,立即上报 if getattr(skill_func, "retryable", False): continue return {"success": False, "error": {"code": "TIMEOUT", "message": "执行超时"}} except Exception as e: return {"success": False, "error": {"code": "UNKNOWN", "message": str(e)}} return {"success": False, "error": {"code": "RETRY_EXCEEDED", "message": "超过最大重试次数"}}

关键是"查询类操作可重试、动作类操作不可盲目重试"这个原则——查询重复执行没副作用,但重启服务这种操作如果超时后立刻重试,可能造成二次影响。

6. 端到端实测:一个巡检 Agent 的完整工作流

6.1 用户一句话,Agent 如何拆解任务

所有模块就位后,最激动人心的时刻就是端到端实测。我拿日常使用频率最高的场景来做验证:用户发来一条消息"帮我看看今天服务器有没有问题,出个报告发我"。

这条消息看似简单,实际包含了三个子任务:检查状态、生成报告、推送报告。Agent 接到消息后的处理链路是这样的:

  1. 意图识别阶段,模型判定用户需要执行"巡检流程",匹配到状态机模板。
  2. 模板要求先确认巡检范围和服务器列表。由于用户没有指定,Agent 从长期记忆中读取"常用服务器列表"作为默认参数(这里就体现长期记忆的作用了)。
  3. 依次调用system_overviewservice_health_checkerror_log_retrieval三个 Skill,并行执行,减少等待时间。
  4. 汇总三个 Skill 的返回结果,传给report_generator生成 Markdown 巡检报告。
  5. 调用notification_push把报告推送到我的企业微信,同时在对话里返回报告摘要。

整个过程大概 40 秒,其中多数时间花在模型调用链路上。如果所有 Skill 串行执行,这个时间会翻倍——所以我从一开始就把相互独立的检查类 Skill 设计成可并行的,在编排层用ThreadPoolExecutor统一调度。

6.2 实测数据:响应时间与 Token 消耗

老实说,第一次全流程跑通的时候我很兴奋,但冷静下来之后更关注的是性能和成本数据。连续跑了 10 次完整巡检流程,数据大致如下:

指标数值备注
平均总耗时42 秒含 5 次模型调用+3 次 Skill 执行
Token 消耗约 8500主要是生成报告的 summary 部分
模型调用失败率3%全部为网络超时,重试后成功
Skill 执行失败率0%前置检查起作用了
用户等待超 60 秒概率0%无超时场景发生

token 最大头是报告生成段。为了让模型生成质量更高的报告,system prompt 里塞了大量报告格式要求,这部分每个请求都会消耗。后来我把固定提示词做了缓存,价格才明显降下来——不少 Agent 项目的成本失控,问题就出在重复发送固定长文本。

6.3 这套方案的边界与后续扩展思路

任何方案都有边界。这套"技能地图 + AI Skills + 状态机编排"模式,在任务类型相对固定的场景下表现极好,比如运维巡检、定时报告、数据查询;但在完全开放、需要大量创造性输出的场景里就会露怯。

比如让 Agent 从零写一个项目架构方案,模型的发挥空间太大,状态机很难提前定义步骤,技能调用的不确定性也高。这种场景更适合用"自由规划"模式,让模型自己拆任务,遇到不会的再临时组装可用技能。我目前的策略是双模式共存:确定性任务走状态机,创造性任务走自由规划,两者根据意图识别结果自动切换。

后续我还计划再加两个扩展点。一是把技能数量扩充到 30 个左右,覆盖更多场景,同时引入技能分组,让模型先定位分组再选技能,减少路由压力;二是做技能的自学习——当发现某个问题没有对应技能时,自动记录并提示我可以补充新的 Skill。这个机制一旦跑通,"全能 Agent"就有了自我生长的能力,会越来越贴合实际需求。

从我自己的实践来看,Agent 开发最核心的认知转变就一句话:别让模型猜,给它清晰的路径和边界。AI Skills 解决的是能力封装和路由问题,腾讯云解决的是稳定运行和环境一致性问题,两者配合,才让"全能"从口号变成了每天可用的生产力工具。希望这套方法论能帮你少走一些弯路。

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

非零电压空间矢量为何是2Udc/3?从逆变器拓扑到SVPWM公式全解析

第一次读到“非零电压空间矢量的幅值为2Udc/3”这句话时&#xff0c;我盯着书看了很久&#xff1a;状态100的时候&#xff0c;A相上桥臂导通、B/C相下桥臂导通&#xff0c;A相相对母线负极确实是Udc&#xff0c;B/C相是0&#xff0c;凭什么合成出来的空间矢量只有2Udc/3&#x…

作者头像 李华
网站建设 2026/9/8 7:33:53

智能温控板定制开发全流程解析:从需求量化到硬件算法实战

做了这么多年嵌入式硬件&#xff0c;我最大的感受是&#xff1a;温控项目看着简单&#xff0c;真正做好却极其考验基本功。一个加热棒、一个传感器、一块单片机&#xff0c;谁都能把温度“控制住”&#xff0c;但要做到精度稳定、曲线平滑、批量一致性好&#xff0c;那就完全是…

作者头像 李华
网站建设 2026/9/8 7:33:37

Eclipse配置JSLint插件:安装、配置与排坑完整指南

简介&#xff1a;一套用于Eclipse集成开发环境的JSLint插件资源包&#xff0c;面向需要在IDE中强化JavaScript静态检查、提升代码可维护性的开发者。压缩包共包含2个文件&#xff0c;包括1个js脚本与1个wsf配置文件&#xff0c;核心JSLint.js负责按Crockford规范扫描潜在错误与…

作者头像 李华
网站建设 2026/9/8 7:32:49

NovaNova Studio:Agent驱动的AI图片视频生成与无限画布工作台

看到这个项目标题的时候&#xff0c;我第一反应是&#xff1a;终于在开源社区里有人把这几个东西揉到一起了。做AI绘画和视频创作的朋友应该都有同感——Stable Diffusion出图很强&#xff0c;但只能单张处理&#xff1b;ComfyUI自由度够高&#xff0c;但工作流一复杂就乱成一团…

作者头像 李华
网站建设 2026/9/8 7:32:40

工业AI轻量化落地实战:从目标收敛到边缘部署的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/8 7:32:13

PHPwind 7.5 sp3风格美化插件完整安装与二次定制实战指南

简介&#xff1a;这是一款针对PHPwind 7.5 SP3论坛开发的风格美化插件组合包&#xff0c;面向需要快速提升首页信息密度与视觉效果的站长及二次开发爱好者&#xff0c;可有效解决默认首页布局单调、缺少动态信息聚合与气象/名言展示模块的问题。压缩包共55个文件&#xff0c;体…

作者头像 李华