包含关键字 typecho 的文章

Cisco Secure Firewall 6100 Series FTD Software 10.0.0 & ASA Software 9.24.1.5

Firepower Threat Defense (FTD) Software - 思科下一代防火墙系统软件

请访问原文链接:https://sysin.org/blog/cisco-firepower-6100/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


Cisco Secure Firewall 6100 系列

面向 AI 就绪数据中心的最高性能密度

思科的超高端防火墙系列,集成于 Cisco 的 Hybrid Mesh Firewall,提供卓越性能、线速威胁防护和模块化可扩展性。

Cisco Secure Firewall 6100 Series

Cisco Secure Firewall 6100 系列概览

部署超高端防火墙,实现高性能 AI 数据中心和电信移动基础设施中对加密威胁的高效、稳健保护。

  • 最大化性能密度以优化经济效益

    实现最高 5 倍的性价比、每机架单元最高吞吐量,以及高达 8 Tbps 的威胁检查,同时节省 80% 空间、60% 功耗,以及三分之一成本。

  • 利用 AI 防御加密的零日威胁

    将 Encrypted Visibility Engine 与硬件加密卸载结合,以大规模检查加密流量 (sysin)。使用 SnortML 检测零日威胁,无需新签名或解密。

  • 集成到 Cisco 的 Hybrid Mesh Firewall 架构中

    通过 Cisco Security Cloud Control,实现数据中心、园区和分支机构的统一安全管理,提供一致策略、全面可视化和无缝操作工作流。

  • 在万兆级别提供运营商级安全

    高效终止大量 IP Security (IPSec) 连接,作为高性能安全网关,针对 5G 电信基础设施和超高速加密流量进行了优化。

了解 6100 系列产品

Cisco Secure Firewall 6160

Throughput:

  • Next-gen firewall: 520 Gbps
  • IPS: 520 Gbps
  • IPSec VPN: 400 Gbps
  • Decryption: 100 Gbps

Cisco Secure Firewall 6170

Throughput:

  • Next-gen firewall: 650 Gbps
  • IPS: 600 Gbps
  • IPSec VPN: 500 Gbps
  • Decryption: 150 Gbps

查看数据表

下载地址

Secure Firewall 6100 Series, Firepower Threat Defense (FTD) Software - 10.0.0

File InformationFile NameRelease DateSize
Firewall Threat Defense install and upgrade package for the Secure Firewall 6100 series. Do not untarCisco_Secure_FW_TD_6100-10.0.0-140.sh.REL.tar03-Feb-20261667.07 MB

Cisco Adaptive Security Appliance (ASA) Software for the Cisco Firepower

File InformationFile NameRelease DateSize
Cisco Adaptive Security Appliance for the Cisco Firepower 6100 Series.cisco-asa-csf6100.9.24.1.5.SPA02-Mar-2026853.65 MB

更多:Cisco 产品下载链接汇总

Cisco Jabber 15.2 (Andriod, iOS, macOS, Windows) - 面向企业的多合一通信工具

即时消息、语音和视频通话、语音邮件、桌面共享、会议和在线状态

请访问原文链接:https://sysin.org/blog/cisco-jabber-15/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


思科 Jabber

Cisco Jabber

使用任意设备随时随地开展协作

移动办公不应成为影响工作效率的不利因素。Cisco Jabber 将即时消息、语音和视频通话、语音邮件、桌面共享、会议和在线状态等多种功能集于一身,可以帮助您随时找到合适的人员,确认其是否有空,并以更有效地方式与他们协作。

Jabber 简介

Introducing Jabber

  • 与 Spark 互通

    与 Spark 互通

    Jabber 能够与 Spark 互通 (sysin),从而确保您能轻轻松松地引入 Cisco Spark。

  • Jabber 多线路功能

    Jabber 多线路功能

    多线路功能确保用户即使离开工位也不会影响工作。

  • Android 设备自动集成

    Android 设备自动集成

    通过 Android 设备自动集成功能,用户可以一边安全地回复消息,一边专心赶路。

  • 更出色的用户体验

    更出色的用户体验

    总体用户体验进一步提升,用户可以更轻松地找到所需之人并快速与之建立连接。

功能和优势

Capabilities and benefits

  • 即时消息和在线状态

    Cisco Jabber Advisory

    此功能有助于提高工作效率 (sysin)。通过参考即时在线状态信息来使用即时消息传输功能,您可以避免延误工作。您不仅能看到组织内部联系人的忙闲状态,也能看到组织外部的联系人是否有空。

  • 企业级语音和视频体验

    Cisco Jabber 个人会议室

    此功能有助于确保通信清晰。Cisco Jabber 的软件电话功能支持高清语音和视频及桌面共享,可为您提供安全可靠的通信体验。

  • 随时随地的协作

    Cisco Jabber 协作

    此功能可确保您放心前往需要您的地方。您可以在移动过程中使用 Cisco Jabber 的所有功能(包括语音会议),就像在桌面设备上使用 Cisco Jabber 一样简单。

  • 直接从 Microsoft Office 发起通信

    Cisco Jabber 与 Microsoft Office

    此功能有助于简化使用体验。您可以从各种 Microsoft Office 应用直接访问 Cisco Jabber。只需轻点鼠标,即可发起聊天、语音/视频呼叫或多方会议。

下载地址

Cisco Jabber Release 15.2(x) 21-Jan-2026

File InformationFile NameRelease DateSize
Cisco Jabber for Mac (Automatic update installation file)CiscoJabberMac-15.2.1.310617-AutoUpdate.zip21-Jan-2026185.20 MB
Cisco Jabber for Mac (Manual Installation file)CiscoJabberMac-15.2.1.310617.dmg21-Jan-2026186.18 MB
Cisco Jabber for Windows AdminCiscoJabber-Admin-ffr.15-2-1.zip21-Jan-20260.16 MB
Cisco Jabber for Windows InstallCiscoJabber-Install-ffr.15-2-1.zip21-Jan-2026205.30 MB
Cisco Jabber for AndroidJabber_15.2.0.310459.apk21-Jan-2026139.79 MB
Cisco Jabber for Android WearJabber-watch_15.2.0.apk21-Jan-20266.73 MB
Cisco Jabber for iPhone/Apple WatchApp StoreN/AN/A
Cisco Jabber for iPadApp StoreN/AN/A

更多:Cisco 产品下载链接汇总

根据环球市场最新播报:韩国电商巨头Coupang受大规模数据泄露事件影响,其第四季度营业利润同比暴跌97%。根据Coupang在一份新闻稿中的内容显示,截至12月的三个月内,集团的营业利润从2024年同期的4353亿韩元,暴跌至115亿韩元(约为800万美元)。净利润也从2024年同期的1827亿韩元,直接暴跌至负377亿韩元。此前Coupang方面表示约3000个账户的数据遭到泄露,但经过公私合作机构联合调查发现,已有超3360万个账户的信息已被曝光。官方发言人表示,数据泄露事件对集团业绩造成了极其沉重的负面影响,对企业第四季度的营收增长、活跃客户数量、付费Wow会员数量以及盈利能力均造成不利影响。JoySSL市场分析专家指出,Coupang数据泄露事件的冲击远不止事件本身,其对企业长远发展的影响,会以更隐蔽、更致命的方式出现,不断侵蚀企业核心生命力。作为保障数据安全与身份可信的中坚技术,SSL证书的战略意义在一次次数据泄露中被不断定义:不仅是合规的基础,更是企业构建抵御网络风险、维护品牌价值和实现持久发展的终极防护系统。

事件透析 企业利润暴跌背后的信任塌方

数据泄露事件让Coupang直接面临监管机构的天价罚单,被泄露信息的用户也展开集体诉讼,用户信任基础开始动摇,活跃度呈明显下滑趋势,新增用户后继无力。为此,Coupang不得不投入巨额营销费用挽回口碑与形象,获客成本急剧拉升。

除了直接经济影响外,品牌信誉的长期折价,才是对Coupang的致命一击。一次重大的安全事故,将会在用户心中留下不可磨灭的不安全印记,直接转化为客户流失率提升、复购率下跌、品牌溢价能力严重削弱,一系列负面影响将持续多年,拖累企业市场价值。

核心作用 SSL证书构筑多重抗风险防线

面对数据泄露引发的一系列网络风险,SSL证书以安全加密技术和身份验证等多重技术,构建安全防线。以先进算法实现高强度加密,对支付数据、登录凭证和个人资料等信息进行密文处理,杜绝在途泄露风险。

Coupang数据泄露事件反映出当下市场,钓鱼攻击频率激增,攻击者利用仿冒网站等手段,成功潜入内部系统,实施信息窃取。通过部署EV证书,可为企业提供权威的真伪验证手段,从源头切断钓鱼欺诈的路径,利用可视化信任标识,维系用户信任。

战略影响 数字证书重塑企业长远发展韧性

对Coupang这类商业巨头来说,危机应对必须考虑长远发展。显然,SSL证书无论是价值层面还是战略层面,均满足企业安全与发展双向需求。它是品牌信任的定期存款,在用户的每一次访问与使用中构建信任基础。JoySSL品牌总监表示,数字证书是企业提升市场竞争力的隐性加分项,更是应对未来风险的战略基础,规范部署SSL证书,提前规划布局,有利于企业从容应对各式网络风险和未来格局变革。

聚焦未来 数字化时代 安全投资不可懈怠

保护数据,就是保护利润,赢得信任,就是赢得未来。在数字化时代,安全早已从成本中心向利润中心转化。SSL证书也不再是单一的技术工具,而是企业实现长远发展的战略资产,守护每一次数据交互,维护品牌声誉,为提升企业竞争力持续发力。

3 月 11 日 AWE 2026 期间,高德地图携手全球先进消费级AR品牌雷鸟创新(RayNeo),正式发布全新的雷鸟智慧生活。这是自2025年5月双方达成战略合作以来的又一标志性成果。本次合作,将雷鸟创新的 AR 空间计算技术与拥有近 10 亿月活的国民级 APP高德的本地生活能力进行深度融合,推动 AR 眼镜从“极客玩具”向“全能生活伙伴”跃迁。

图片

高德地图依托雷鸟AR眼镜特有的第一视角交互与空间感知优势,将深耕多年的本地生活服务能力注入雷鸟智慧生活,对其服务链路进行了系统性重构。不仅融入了高德开放平台LBS Agent和AR沙盘导航,更将高德现象级的“扫街榜”和即时响应的“周边快搜”等多项快捷能力,搬进了您的视野。从此,不再只是那个只告诉您“怎么走”的传统导航,而是进化为一位懂决策、精服务的智能助手,在您需要时主动提供LBS深度服务,帮您判断“去哪好”、“怎么选”,让每一次出行都成为轻松的生活体验。

从“人找信息”到“服务找人”高德 Agent,让意图秒变行动

依托于高德开放平台LBS Agent,眼镜能够理解用户随口说出的导航或搜索等模糊意图,并结合用户的习惯、位置和需求,主动推荐解决方案方案或行程规划,雷鸟智慧生活可根据返回结果将虚实融合的画面信息呈现在眼前,更快理解周边环境,旨在实现从“人找信息”到“服务找人”的跨越。

图片

高德“扫街榜”登陆,AR眼镜看到即了解,了解即导航

高德现象级产品“扫街榜”也正式登陆 AR 眼镜,雷鸟 X3 Pro可基于用户位置与偏好主动推送周边高口碑门店,并在视野中展示商户评分、客单价、特色标签等关键信息,帮助用户在海量信息中快速圈定范围,实现“看到即了解、了解即导航”的决策闭环。

同时,针对“找咖啡”、“找便利店”等高频即时需求,周边快搜功能基于 LBS 定位,可在眼前快速呈现周边常用门店,实现“看到即找到”的高效体验。后续还将上线“眼镜点单”功能,进一步打通“搜索-决策-导航-交易”的服务闭环。

图片

首创“抬头 HUD+ 低头沙盘”双模导航,复杂路况零思考辨位

在交互设计上,雷鸟X3 Pro首创“抬头 HUD+低头沙盘”双模导航,日常行走时关键信息以精简模式悬浮于视野上方,提供低干扰、一眼即得的行程进度提示。而需要全盘规划时低头即可调出沙盘地图,利用 3D 沙盘、楼体模型,建立真实世界和 AR 地图的直观映射,让自身位置与周边路网关系一目了然、力争实现零思考辨位,在打车、商圈、城中村等多岔路复杂场景下也能做到对全局路况轻松掌握。

图片

此次智慧生活服务上线,不仅是高德地图与雷鸟创新双方技术能力的融合,更是 AR 服务迈入生活化阶段的重要一步。未来,高德地图与雷鸟创新还将持续深化合作,探索 AR+AI+LBS 的创新组合,为用户带来更加智能的空间交互体验,让 AR 服务融入大众日常生活每一刻。

今日速览

  1. Visual Translate by Vozo:视频翻译神器,一键搞定屏幕文本翻译。
  2. Chronicle 2.0:AI 演示助手,告别繁琐的幻灯片制作。
  3. Claude Code Review:多智能体代码审查,提前捕捉 AI 生成代码的 bug。
  4. Your Next Store:AI 优先的电商平台,聊天就能建商店。
  5. Fish Audio S2:富有表现力的语音合成,用自然语言指挥声音。
  6. sitefire.ai:代理网络营销套件,自动生成并推送品牌内容。
  7. New Macaly Agent:全能 AI 助手,从建站到数据库一键搞定。
  8. Agent Skills:跨平台 AI 技能目录,一次搜索覆盖 30+ 平台。
  9. Spine Swarm:管理 AI 代理团队,自动化完成复杂任务。
  10. Sonarly:自动修复生产环境问题,智能分类警报并生成 PR。


1. Visual Translate by Vozo

视频翻译终于迎来终极形态!这款神器能帮你翻译视频中的屏幕文本,比如幻灯片、图表和标签,同时保持原汁原味的动画和布局,轻松打造多语言视频,触达全球观众。

  • 识别并翻译视频中的屏幕文本,无需重新制作视觉内容
  • 支持幻灯片、图表、提示框和标签等多种元素
  • 保持原有布局、风格和动画效果,翻译后视频依然流畅
  • 将视频转变为多语言版本,扩大全球受众覆盖

热度:🔺612

Visual Translate by Vozo

访问官网 Product Hunt 详情


2. Chronicle 2.0

告别 AI 废话,这款演示文稿助手专为高效设计而生。它能在几分钟内把你的笔记或提示变成美观的幻灯片,通过对话快速迭代,打造符合品牌形象的初稿。

  • 将笔记、提示或现有幻灯片转换为美观的演示文稿
  • 通过问答生成初稿,对话式交互帮助完善内容
  • 快速制作符合品牌形象的幻灯片,节省设计时间
  • 专注于实用功能,避免 AI 生成冗余信息

热度:🔺612

Chronicle 2.0

访问官网 Product Hunt 详情


3. Claude Code Review

代码审查进入多智能体时代!这支 AI 代理团队能像专家一样分析拉取请求,专门捕捉 AI 生成代码中的隐藏 bug 和安全问题,确保代码质量。

  • 多代理代码审查,模拟专家团队分析拉取请求
  • 检测 bug、安全问题和 AI 生成代码的逻辑缺陷
  • 验证发现以减少误报,提供高质量反馈
  • 在代码进入生产环境前提前发现问题

热度:🔺456

Claude Code Review

访问官网 Product Hunt 详情


4. Your Next Store

想快速搭建电商店铺?这个 AI 优先的平台让你通过聊天就能创建商店,背后是结构化的 Next.js 应用,原生集成 Stripe,随时投入生产。

  • 通过 AI 聊天创建商店,简化电商搭建流程
  • 基于 API 提供商业基本组件,支持设计优先品牌
  • 每个商店都是生产就绪的 Next.js 应用,原生支持 Stripe
  • 与 AI 工作流程无缝连接,完全拥有代码控制权

热度:🔺414

Your Next Store

访问官网 Product Hunt 详情


5. Fish Audio S2

语音合成技术再升级!这款开源工具让你用自然语言指挥声音,添加情感提示,一次性生成多说话者对话,支持 80 多种语言。

  • 富有表现力的文本转语音,支持自然语言指令
  • 可添加如[低声说]或[紧张地笑]等情感提示
  • 一次性生成多说话者对话,模拟真实交流场景
  • 支持 80 多种语言,创造栩栩如生的语音效果

热度:🔺351

Fish Audio S2

访问官网 Product Hunt 详情


6. sitefire.ai

专为代理网络打造的营销平台,不仅能监测内容表现,还能自动撰写品牌文章并推送到 CMS,帮你省去 SEO 和内容专员的费用。

  • 分析哪些内容能吸引引用,自动生成品牌相关文章
  • 直接推送内容到 Framer、Webflow 等 CMS 系统
  • 挖掘影响 AI 回答的公关渠道和用户生成内容
  • 提供定制推广建议,针对代理网络优化营销

热度:🔺210

sitefire.ai

访问官网 Product Hunt 详情


7. New Macaly Agent

这款 AI 助手的能力超乎想象!从生成登录页面到搭建数据库,它帮你自动化各种任务,大幅提升工作效率。

  • 从 YouTube 视频生成登录页面,快速创建营销素材
  • 根据网址重新设计网站,一键优化在线形象
  • 将电子表格转化为仪表盘,可视化数据洞察
  • 搭建数据库、添加身份验证和用户角色管理
  • 为应用增添 AI 功能,扩展产品能力

热度:🔺182

New Macaly Agent

访问官网 Product Hunt 详情


8. Agent Skills

寻找 AI 代理技能?这个目录覆盖 30 多个平台,拥有超过 10 万项安全审核的技能,一次搜索就能找到所需。

  • 最大的跨平台 AI 代理技能目录,支持 Claude Code、Cursor 等工具
  • 拥有超过 10 万项技能,覆盖 30 多个主流平台
  • 每个条目经过安全审核,确保使用安全可靠
  • 一次搜索覆盖所有平台,简化技能查找流程

热度:🔺179

Agent Skills

访问官网 Product Hunt 详情


9. Spine Swarm

想管理一支能实际工作的 AI 团队?Spine 让你部署大量代理,自动化完成从研究到文档生成的复杂任务。

  • 管理和部署 AI 代理,自动化从头到尾的复杂任务
  • 代理可以浏览网络、进行深入研究、撰写战略文档
  • 生成详细演示文稿和交互原型,只需一个指令
  • 结果在可视化画布上呈现,可审计且全面准确

热度:🔺165

Spine Swarm

访问官网 Product Hunt 详情


10. Sonarly

监控工具只能报警?Sonarly 更进一步,自动分类警报并修复生产环境问题,结合上下文生成 PR,让运维更智能。

  • 连接 Sentry、Datadog 等监控工具,自动分类警报并去除冗余
  • 在了解生产系统完整背景下自动修复错误
  • 将重复警报归类,提供包含证据的生产相关 PR
  • 基于 Claude Code 和 Opus 4.6 技术,确保修复准确高效

热度:🔺143

Sonarly

访问官网 Product Hunt 详情

在广告投放的全链路漏斗中,流量请求 → 流量识别 → 广告召回 → 出价竞价 → 胜出反馈 → 展示→ 点击→ 数据回收是完整闭环。

本篇作为广告投流系列第一篇,完整梳理整个漏斗,并聚焦展示→点击阶段的 StarRocks 实时分析能力,解决“出价/素材实时监控”与“素材创意优选”两大难题。同时结合 Pinterest 真实生产案例,展示方案在亿级规模广告场景下的落地效果。

一、广告投放完整漏斗分析

广告投流本质上是多阶段漏斗,每一环都存在损耗, 本文 StarRocks 方案主要服务于阶段三的实时监控与决策,同时通过分钟级数据反馈反哺阶段一、二的召回与出价优化。

1.1 阶段一:请求阶段(流量进入→识别→召回→出价)

流量进来后,系统首先要做的是识别流量,匹配人群与定向,再进行广告召回和出价决策。

1.2 阶段二:竞价反馈阶段(胜出通知 → 展示准备)

竞价成功后,DSP 会收到反馈,进入投放阶段的展示环节,但竞价成功与实际展示之间存在漏斗损失(fill rate、超时、可见性等)。

1.3 阶段三:  展示交互与数据回收阶段(展示→点击→转化)

在投放交付阶段,展示后产生点击,数据实时回收,形成闭环监控与优化。

1.4 漏斗整体损耗关键点分析

  • 请求多 → 召回少(召回率低)
  • 竞价胜出 → 实际展示少(Win-to-Impression 损失)
  • 展示多 → 点击少(CTR 低)

通过以上三个阶段的完整漏斗分析,可见展示→点击阶段的 CTR 直接影响 eCPM 排名,是起量成败的最关键变量。本文 StarRocks 方案主要针对阶段三的实时监控与素材优选,同时通过数据闭环反哺前序召回与出价,实现全链路提效。

二、业务方案分析

2.1 经典永不过时:eCPM 公式拆解  (广告主视角)

广告系统的核心竞价公式:

eCPM (effictive cost per miile)=出价*CTR*CVR*1000
  • 出价: 广告主愿意为高潜力流量支付的金额
  • 点击率(CTR):点击次数 ÷ 曝光次数,反映创意素材的吸引力, 起量阶段最关键变量(直接影响 eCPM 排名)
  • 转化率(CVR):转化数 ÷ 点击数,用于优化素材、出价与用户路径,提升 ROI

在程序化广告(RTB/竞价)中:

  • 广告主看到的是“我的 eCPM 出价 / 预估成本”(系统根据出价 + 预估 CTR/CVR 计算的千次展示预估花费)
  • 广告商看到的是“广告位的 eCPM 收入”

eCPM(千次展示有效收益)本质上是广告系统对单次展示价值的综合预估,它直接决定了广告在竞价排序中的竞争力(eCPM 越高 → 排名越靠前 → 曝光机会越多  → 起量越轻松)。

如上文完整漏斗所示,在展示-点击阶段,CTR 是最为关键的变量。提升 CTR 不仅能直接降低点击成本(CPC),还能显著提高 eCPM,从而在竞价队列中获得更多胜出机会。一份高 CTR 的广告足以证明其创意、文案、视觉设计或目标定向足够吸引用户。

CTR 诊断三类情况:

  • 高 CTR + 低 CVR:广告吸引力强,但落地页或产品难以满足预期,需优化转化链路;
  • 低 CTR + 高 CVR:广告定向精准但曝光不足,应扩大人群覆盖或改进创意;
  • 双低指标:需从定向、创意、落地页全链路排查问题。

2.2 适用对象

本方案主要面向广告主的投放团队、增长团队以及运营团队,特别适用于以下场景:

  • 新账户冷启动阶段: 需要快速找到精准人群;
  • 老账户遭遇起量瓶颈: 展示量或者点击率持续低迷;
  • 多素材并行测试: 需要实时监控各素材表现, 并快速决策。

2.3 业务痛点

在流量获取阶段,运营人员通常面临三大核心痛点:

(1)冷启动困难

新账户/新素材/新计划上线后,平台算法(如 oCPM/oCPC/oROI)需要积累足够样本(点击、转化数据)来学习和匹配人群。没有历史数据 → 系统不敢给优质流量 → 曝光少 → 起量慢 → 预算烧得慢或烧不出去。

这对广告主来说是典型的高成本低效率阶段:钱花了但没效果,测试期拉长,试错成本高。

(2)素材衰退

素材衰退:老素材 CTR 下滑(用户审美疲劳)→ eCPM 下降 → 排名掉 → 曝光减少 → 量级萎缩。广告主需要不断迭代创意,否则 ROI 崩。

(3)空跑浪费

空跑:高曝光但低点击/无转化 → 预算白烧(无效流量)。这直接导致广告主 CPA 暴涨、ROI 负值,甚至赔付(如果平台有成本保障)。优化师常见事故就是“账户总空跑”“计划前端转化好后端差”“预算瞬间跑超但没转化”。这些也都是广告主/代理商/优化师的普遍痛点。

2.4 业务目标

通过数据驱动的方式,实现以下三个核心目标:

  • 缩短冷启动周期:提供分钟级甚至秒级反馈,把测试周期从天压缩到分钟级/小时级,大幅减少试错预算。
  • 提升 CTR 与 ECPM:通过精准召回 + 素材优化,快速淘汰低质素材,放大高潜素材。
  • 避免空跑流量:通过实时监控秒级发现异常计划,分钟级暂停低效素材,降低无效消耗。

2.5 相关指标设计

三、场景实践 1:基于 StarRocks 构建实时指标监控

实现创意×渠道×地域×人群标签 CTR 趋势监控 + 分钟级智能告警

3.1 场景描述

广告投放团队需要对不同 创意 × 渠道 × 地域 × 人群标签 的 CTR 趋势进行实时监控, 当某个创意的 CTR 突然下降超过 20%,或某个渠道的 CTR 异常上升但人群转化没有提升,系统应该在分钟级发出告警。

  • 素材优选:对于 CTR 表现优异的新素材,需要立即增加预算。
  • 空跑预警:对于“曝光过万,点击寥寥”的低质素材,必须在分钟级内发现并关停,防止预算浪费。

广告主投放团队在起量阶段常见的常见需求:

  • 多维 CTR 趋势监控:创意 × 渠道 × 地域 × 人群标签;
  • 分钟级告警:创意 CTR 突降 >20% / 渠道 CTR 异常上升但人群转化未提升
  • 素材优选:高 CTR 新素材自动加预算;
  • 空跑预警:曝光 >1 万且点击寥寥的低质素材分钟级发现并关停;

StarRocks:把等数据、人工盯盘变成实时智能决策引擎

  • 分钟级数据新鲜度:异步物化视图自动刷新,远超传统 T+1 或 15 分钟延迟;
  • 亚秒级多维下钻:支持上百人不同维度的分析, 同时查询不卡(CBO + Pipeline 执行引擎);
  • 极速查询性能: 针对亿级别的大表的关联操作,可以实现秒级别的查询响应;

3.2  架构设计

采用 Flink + StarRocks (明细模型 + 物化视图) 架构选型。

在广告实时监控这类高吞吐、Append-only 的场景中,我们选择 Duplicate Key(明细模型) + 异步物化视图 的组合方案。
  • 数据写入:通过 Flink 作业实时消费 Kafka 中的广告日志,通过 Flink StarRocks Connector 实时写入 StarRocks 的明细表。
  • 预聚合:利用 StarRocks 的异步物化视图实时物化视图,自动按 ad_idcreative_id + 人群标签聚合 CTR 维度聚合曝光量和点击量,计算 CTR。
  • 查询:BI 看板直接查询物化视图,实现亚秒级响应。

3.3 方案设计

曝光和点击数据通过流式 append 写入 StarRocks 明细表,每条广告展示事件实时更新聚合表。

(1)明细表设计

CREATE TABLE fact_ad_events (
    event_time     DATETIME NOT NULL,
    ad_id          BIGINT,
    creative_id    BIGINT,
    campaign_id    BIGINT,
    creative_version STRING,
    channel        VARCHAR(64),
    region         VARCHAR(32),
    user_tag       VARCHAR(128),     -- 人群标签(兴趣/年龄/性别/LTV分层等)
    event_type     VARCHAR(20),      -- 'show' / 'click' / 'convert'
    cost           DECIMAL(18,6),
    user_id        BIGINT
)
DUPLICATE KEY(event_time, ad_id, creative_id)
PARTITION BY RANGE (event_time) ()
DISTRIBUTED BY HASH(ad_id) BUCKETS 64
PROPERTIES ("replication_num" = "3");

(2)创建异步物化视图,每分钟刷新

CREATE MATERIALIZED VIEW agg_ad_realtime
PARTITION BY date_trunc('minute', event_time)
DISTRIBUTED BY HASH(creative_id)
REFRESH ASYNC EVERY (INTERVAL 1 MINUTE)
AS
SELECT
    date_trunc('minute', event_time)          AS event_minute,
    event_time,                               -- 必须保留原始列,让分区能找到
    ad_id,
    creative_id,
    creative_version,
    channel,
    region,
    user_tag,
    COUNT_IF(event_type = 'show')             AS impression_count,
    COUNT_IF(event_type = 'click')            AS click_count,
    COUNT_IF(event_type = 'convert')          AS convert_count,
    SUM(cost)                                 AS cost
FROM fact_ad_events
GROUP BY
    date_trunc('minute', event_time),
    event_time,                               -- 对应上面保留的列
    ad_id,
    creative_id,
    creative_version,
    channel,
    region,
    user_tag;

(3)指标监控 1:素材优选, 高 CTR 新素材, 及时增加预算

WITH ranked_new_material AS (
    SELECT
        creative_id,
        creative_version,
        channel,
        user_tag,
        SUM(click_count) AS click_counts,
        SUM(impression_count) AS impression_count,
        ROUND(SUM(click_count) * 100.0 / NULLIF(SUM(impression_count), 0), 2) AS ctr_percent,
        RANK() OVER (PARTITION BY channel ORDER BY
            ROUND(SUM(click_count) * 100.0 / NULLIF(SUM(impression_count), 0), 2) DESC
        ) AS ctr_rank
    FROM agg_ad_realtime
    WHERE  event_minute >= NOW() - INTERVAL 1 HOUR
    AND creative_version LIKE '%new%'   -- 新素材标识
    GROUP BY creative_id, creative_version, channel, user_tag
    HAVING SUM(impression_count) >= 10   -- 先过滤低曝光素材,提升性能
)
SELECT
    creative_id,
    creative_version,
    channel,
    user_tag,
    impression_count,
    ctr_percent,
    ctr_rank
FROM ranked_new_material
WHERE ctr_rank <= 5
  AND ctr_percent >= 4.0 AND impression_count >= 20;
ORDER BY channel, ctr_rank; -- Top5 且 CTR≥4%(行业可调), 且曝光至少300才参与排名

DEMO 执行示意

(4)指标监控 2:查询近 60 分钟多维 CTR 趋势, 毫秒级查询响应

SELECT 
    event_minute,
    creative_id,
    creative_version,
    channel,
    region,
    user_tag,
    impression_count,
    click_count,
    ROUND(click_count * 100.0 / NULLIF(impression_count, 0), 2) AS ctr_percent,
    ROUND(convert_count * 100.0 / NULLIF(click_count, 0), 2)     AS cvr_percent
FROM agg_ad_realtime
WHERE event_minute >= NOW() - INTERVAL 60 MINUTE
ORDER BY event_minute DESC, ctr_percent DESC;

DEMO 执行示意

(5)异常监控 1: 使用 StarRocks 的窗口函数计算移动平均,识别 CTR 突降 20%异常

WITH ctr_trend AS (
    SELECT creative_id, creative_version,
           ROUND(click_count * 100.0 / NULLIF(impression_count, 0), 2) AS ctr_percent,
           AVG(ROUND(click_count * 100.0 / NULLIF(impression_count, 0), 2))
               OVER (PARTITION BY creative_id ORDER BY event_minute ROWS BETWEEN 10 PRECEDING AND CURRENT ROW) AS moving_avg
    FROM agg_ad_realtime
    WHERE event_minute >= NOW() - INTERVAL 30 MINUTE
)
SELECT * FROM ctr_trend
WHERE (moving_avg - ctr_percent) / moving_avg > 0.20
ORDER BY (moving_avg - ctr_percent) DESC;

DEMO 执行示意

(6)异常监控 2:滑动窗口进行空跑预警, 一分钟刷新一次(曝光过万 + 点击极低)


SELECT creative_id,
       creative_version,
       impression_count,
       click_count,
       ROUND(click_count * 100.0 / NULLIF(impression_count, 0), 2) AS ctr_percent
FROM agg_ad_realtime
WHERE impression_count > 10000
  AND click_count < 50
  AND event_minute >= NOW() - INTERVAL 10 MINUTE;

四、场景实践 2:基于 StarRocks 创意 A/B 测试与多版本对比

4.1 场景描述

广告主同时投放 3-5 个不同版本的创意素材,需要快速识别哪个版本的 CTR 最高。A/B 测试要求:流量均匀分配到各版本,实时对比各版本的曝光量、点击量、CTR,达到统计显著性(通常需要 1000+转化或 10000+曝光)后决定胜出版本,并关闭低劣版本,避免预算继续浪费在低效创意上。

用户核心诉求如下:

  • 分钟级看到真实差异;
  • 多维度拆解:版本 × 渠道 × 地域 × 人群标签 × 时段;
  • 高效判断统计显著性;
  • 行动: 胜出即扩投、劣版即关停;

StarRocks 核心优势:助力把握最佳决策期

传统方案要导出数据 → 用 Python/R 跑卡方 → 等半天 → 经常错过最佳决策窗口。StarRocks 支持将 SQL 一键计算,亚秒级出结果,物化视图每分钟自动刷新。

StarRocks 把 A/B 测试从“等数据、跑脚本”变成分钟级科学决策, 投放团队分钟级就能看到“版本 B 卡方值 18.7,已显著胜出”,立刻关停劣版。

4.2 架构设计

采用 Flink + StarRocks(异步物化视图)架构:

  • Flink 实时消费 Kafka 中的广告日志,Sink 到 StarRocks 明细表。
  • 异步物化视图自动按 creative_version + 多维度聚合曝光/点击/转化,分钟级刷新。
  • 查询:BI 看板 直接访问物化视图,实现亚秒级响应。
  • 决策自动化:自动化服务提交 SQL 判断结果,自动调整预算/关停版本。

4.3 方案设计

(1)异步物化视图定义

CREATE MATERIALIZED VIEW agg_ad_abtest
PARTITION BY event_minute                      -- 直接用别名分区(3.1+ 支持)
DISTRIBUTED BY HASH(creative_id, creative_version)
REFRESH ASYNC EVERY (INTERVAL 1 MINUTE)
AS
SELECT
    date_trunc('minute', event_time)          AS event_minute,
    campaign_id,
    creative_id,
    creative_version,
    channel,
    region,
    user_tag,
    COUNT_IF(event_type = 'show')             AS impression_count,
    COUNT_IF(event_type = 'click')            AS click_count,
    COUNT_IF(event_type = 'convert')          AS convert_count
FROM fact_ad_events
GROUP BY
    date_trunc('minute', event_time),         -- 对应 event_minute
    creative_id,
    creative_version,
    campaign_id,
    channel,
    region,
    user_tag;

(2)实时多维对比看板

SELECT 
    creative_version,
    channel,
    region,
    user_tag,
    SUM(impression_count) AS impressions,
    SUM(click_count) AS clicks,
    ROUND(SUM(click_count) * 100.0 / NULLIF(SUM(impression_count), 0), 2) AS ctr_percent,
    ROUND(SUM(convert_count) * 100.0 / NULLIF(SUM(click_count), 0), 2) AS cvr_percent
FROM agg_ad_abtest
WHERE event_minute >= NOW() - INTERVAL 24 HOUR
GROUP BY creative_version, channel, region, user_tag
ORDER BY ctr_percent DESC;

Demo执行示意

(3)统计显著性自动判断(卡方检验,胜出决策核心)

WITH stats AS (
    SELECT creative_version,
           SUM(impression_count) AS imp,
           SUM(click_count) AS clk
    FROM agg_ad_abtest
    WHERE campaign_id = 1234
      AND creative_version IN  ('V1_old','V1_new','V2_old','V2_new')
      AND event_minute >= NOW() - INTERVAL 12 HOUR
    GROUP BY creative_version
)
SELECT a.creative_version AS winner, b.creative_version AS loser,
       ROUND(a.clk*100.0/a.imp,2) AS ctr_a,
       ROUND(b.clk*100.0/b.imp,2) AS ctr_b,
       POWER(a.clk - a.imp*p,2)/(a.imp*p) + POWER(b.clk - b.imp*p,2)/(b.imp*p) AS chi_square
FROM stats a CROSS JOIN stats b
CROSS JOIN (SELECT SUM(clk)*1.0/SUM(imp) AS p FROM stats) total
WHERE a.creative_version != b.creative_version
HAVING chi_square > 0.003 AND ctr_a > ctr_b;

Demo执行示意

(4)分时段细分分析

某美妆品牌发现创意 A 在晚上 8-10 点 CTR 最高,而创意 B 在中午时段表现更好。StarRocks 的分时段分析帮助实现 Dayparting 策略,实现不同时段投放不同创意:

SELECT 
  HOUR(event_time) as hour_of_day,
  creative_version,
  COUNT(CASE WHEN event_type='impression' THEN 1 END) as impressions,
  COUNT(CASE WHEN event_type='click' THEN 1 END) as clicks,
  ROUND(clicks * 100.0 / NULLIF(impressions, 0), 2) as ctr_percent
FROM fact_ad_events
WHERE campaign_id = 1234
  AND event_time >= date_sub(NOW(), INTERVAL 7 DAY)
GROUP BY hour_of_day, creative_version
ORDER BY hour_of_day, creative_version;

Demo执行示意

五、案例:Pinterest 广告主报表重构

全球知名图片社交平台 Pinterest 在广告主报表场景中,也经历了类似的架构升级。

5.1 背景与痛点

Pinterest 拥有海量广告主,其提供的 Partner Insights工具旨在帮助广告主通过自定义仪表板查看广告的实时表现(如曝光、点击、CTR)。在原有架构中,Pinterest 使用 Druid 来存储和提供实时洞察数据。随着广告业务规模扩大,广告商对实时性、自定义分析能力及成本效率的要求日益提升, 原架构因此面临严峻挑战:

  • 成本高昂:为了维持高性能,Druid 集群需要大量的实例资源,导致资源消耗大。
  • SQL 支持有限 :Druid 对标准 SQL 的支持不足,无法满足广告商复杂分析需求;
  • 数据新鲜度不足:部分数据处理链路延迟较高,难以做到真正的“实时”,通常是 T+1 或分钟级延迟,无法满足广告主即时调优的需求。
  • 灵活性差:原有架构在处理复杂自定义指标分析时,依赖 JSON 配置繁琐,且对标准 SQL 支持不够完善,增加了开发和客户 Onboarding 的复杂度。

5.2 解决方案

Pinterest 将 Partner Insights 的底层分析引擎迁移至 StarRocks,利用 StarRocks  SQL 能力替代 Druid 的 JSON 查询 DSL,并构建了统一的低延迟分析层,直接接入广告曝光和点击流数据。核心优化点:

  • 架构升级与数据摄取简化 :利用 StarRocks 标准 SQL 接口替代复杂 JSON 配置,广告商可直接通过 SQL 提取数据,大幅简化客户入职流程;
  • 性能优化 :通过向量化引擎加速查询,结合物化视图预计算高频指标,降低实时分析延迟;
  • 存算分离与资源效率 :采用存算分离架构(已落地 100 + 客户),支持灵活扩缩容,降低资源消耗 

新的架构图如下:

5.3 方案收益

迁移至 StarRocks 后,Pinterest 在广告报表场景取得了显著收益:

1. 性能提升:P90 查询延迟降低了 50%,广告主查看报表的体验更加丝滑。

2. 成本大幅降低:所需实例数量减少了 68%(仅为原来的 32%),性价比大幅提升。

3. 数据极速鲜活:数据新鲜度从分钟级/小时级提升至 10 秒级,广告主可以看到 10 秒前发生的广告曝光数据。

4. 流程简化:通过标准 SQL 进行数据提取,省去了 JSON 配置的麻烦,简化了客户 Onboarding 流程,广告主实时决策效率显著提高。

总结

广告投放的本质是在不确定性中快速迭代决策。每一次的数据分析都应该转化为可执行策略,通过引入 StarRocks,在流量获取阶段把起量监控变成实时智能决策引擎,让 CTR 与 eCPM 真正跑赢竞品。

具体收益如下:

1. 冷启动成本大幅降低:向量召回 + 实时监控,把测试周期从“天”压缩到“分钟级”,大幅减少试错预算,提升 CTR。

2. 运营效率倍增:秒级监控 + 异常预警 + 精准人群分析,让团队从“拉数”中解放,专注策略与创意迭代。

下期预告:广告投流第二战——如何利用 StarRocks 解决“转化归因”与“ROI 实时计算”难题?敬请期待。

今天的这篇文章,是阿里大佬岚遥在内部分享的 OpenClaw 实战内容,为大家展示如何构建一个自我演进且“可用”的龙虾。(公司内部同学读完之后纷纷留言评论:“这篇文章的质量,放外面不得卖个 648 的课程包啊!”)

你的一天被接管了

你睡着的时候,交易蜘蛛已经出了美股收盘报告。你醒来之前,宏观分析师已经写完了 A 股晨报。你还没刷手机,管家蜘蛛已经推来了天气、日程和今日待办。与此同时,AI 哨兵已经扫完了 GitHub Trending、arXiv 最新论文和 100+ 个信息源——18+ 条技术情报按重要性排好序等你看。内容蜘蛛已经在跟踪 54 个平台的热榜和 X 热点。

这是我最关心的部分——AI 动态和技术趋势的自动追踪。哨兵发现有价值的开源项目或论文后,不仅推送新闻,还会评估对我们现有系统的影响,给出 P0/P1/P2 行动建议。有价值的发现会进入 Zoe 的 Tech Radar,走评估 → 决策 → 委派编码落地的完整链路。

从凌晨 3 点的自动备份到 23:45 的全团队反思,52 个 cron 任务每天自动轮转。而且 Agent 在自己进化——犯过的错会被记住,同类问题的复发率显著下降。这不是我写的规则,是 Agent 自己从 .learnings/ promote 到 MEMORY.md 的自主迭代。

1 个编排者 + 5 个专业 Agent + 6 类 ACP 编码专家(最大 6 并发)、52 个 cron 定时任务、118 个 Skills(33 全局共享 + 85 Agent 专属)、29 个注册 LLM 模型、每天几千次 LLM 调用、2086 行运维脚本 + 半个月 23 次自动恢复。


Agent 自己在进化才是真正有意思的部分:

  1. 自己设计通信协议 — 两个 Agent "收到/确认"刷了十几轮,Zoe 自主诊断根因,设计三态协议(request → confirmed → final → 静默),smoke test 通过后沉淀到 AGENTS.md
  2. 自研 Skill 并发布到 ClawHub — Content 调研 7 个"去 AI 味"工具、A/B 测试、固化为 Skill 发布到 ClawHub,全团队次日自动共享
  3. 圆桌讨论产出策略报告 — Macro 和 Trading 按协议进行下周 A 股策略讨论,产出含数据快照、仓位建议、止损纪律的完整报告
  4. Task Watcher 异步监控 — Agent 承诺"审核通过后通知你"但实际做不到异步回调,Zoe 设计了 cron 级 Task Callback Event Bus 下沉监控

我的角色是搭好框架、设好约束、在关键节点确认方向——具体的需求发现、方案调研、协议设计、代码实现,都是 Agent 自己完成的。


团队:1+5+6 阵型

Zoe(大龙虾)— CTO / 首席编排者

不只是"管理员"。Zoe 负责技术方案设计、任务编排、圆桌主持、系统运维和记忆系统维护——每天 3 次巡检(10:00/14:00/22:00),检查所有 Agent 的 cron 执行状态、workspace 磁盘使用、session 健康度。每周分析各 Agent 的 MEMORY.md 是否超限并执行分层压缩。更关键的是,Zoe 会消费 ainews 提供的技术发现,评估哪些值得应用到我们的系统上,征得我同意后指派 ainews 深入调研,然后自行设计方案、委派 ACP 编码专家实现——从技术发现到方案落地的完整链路。

每次巡检覆盖 6 大维度:cron 任务执行状态(是否有失败/跳过的任务)、workspace 磁盘使用(文件增长异常检测)、session 大小与健康度、Chrome CDP 进程是否泄露、.learnings/ 中是否有待处理条目、shared-context/ 时间戳是否正常(检测 Agent 是否"静默失联")。

Zoe 最有价值的能力是方案设计——三态通信协议、Task Watcher、通信 Guardrail 框架,都是 Zoe 发现问题后自主设计的。下面是 Zoe 设计 Task Watcher 时的方案讨论:

AI 哨兵(ainews)— 情报中枢

这是我最关心的 Agent。它不是"推新闻"——每天从 100+ 个信息源(GitHub Trending、arXiv、RSS、HackerNews、Reddit 等)采集信息,按 5 星制评估后产出晨报、午间论文解读、晚间趋势分析。7 个 cron 任务覆盖晨午晚三报(08:30/12:00/20:00),每份报告末尾都预留了「改写要点(供 Content 参考)」接口。

更关键的能力是主动评估技术发现对我们系统的影响——本周就发现了 ReMe(记忆管理框架),主动向 Zoe 提出评估建议,从发现到决策到落地,我只需要在关键节点确认,执行全部由 Agent 完成。每日趋势分析中的有价值项目会自动更新到 shared-context/tech-radar.json,供 Zoe 每周 Tech Radar 审查:

核心采集工具链:github_trending.py--ai-only 过滤 + --since weekly 周趋势)、rss_aggregator.py(多源并发采集)、arxiv_papers.py(多关键词搜索)、Tavily(AI 优化搜索首选)、agent-browser(Playwright 驱动,JS 渲染页面采集)。防幻觉硬约束:每条新闻 MUST 带原文 URL,发布前自检可达性,无法交叉验证的标注「单源,建议核实」。

交易蜘蛛(Trading)— 量化分析师

团队中任务最密集的 Agent——21 个 cron 任务。20 个原子量化工具(quant.py CLI)、15 个专属 Skills(68000+ 行代码)、65/35 混合评分模型(65% 工具量化 + 35% AI 判断)。覆盖 A 股全时段(集合竞价→盘中每 10 分钟扫描→尾盘速报)+ 美股(盘前→盘中每 30 分钟→盘后夜报)+ 大宗商品(每小时白天+夜盘)。

核心方法论是四步分析框架:读取 Macro 宏观因子 → 多维评分(技术面 25% / 资金面 30% / 基本面 10% / 情绪面 20% / 市场面 15%)→ 逆向检验(与共识一致吗?若错最可能原因?)→ 输出标的+评分(0-100)+止损位+置信度。硬性规则:NEVER 给出没有止损的买入建议,NEVER 编造数据(工具失败时直接报告原因),置信度 <60% 标注「低置信度,建议观望」。

Macro(首席经济学家)— 数据驱动的四层映射

提供宏观→传导→国内→市场四层映射因子包,供 Trading 直接引用。9 个 cron 任务覆盖晨报(07:50)→午间(12:30)→财经晚报(18:00)→美股盘前(22:00)→美股收盘(次日05:20)。周日 18:30 率先产出周度宏观复盘,Trading 19:30 引用其结论做市场复盘——形成宏观→微观→技术的递进链路。

分析纪律:每个判断标注数据来源和时效性,区分事实(有数据)和判断(有逻辑无直接数据),标注置信度(高>70%/中50-70%/低<50%),每个判断提出反面论据。真实案例——伊朗局势分析时,传统框架预测"地缘→避险→黄金涨",实际油价+14%但黄金-5%。Macro 的分析指出"油价涨幅>10%,通胀逻辑主导,市场交易的是通胀而非避险"。这个洞察被沉淀到 MEMORY.md 成为持久知识。

内容蜘蛛(Content)— 内容策略师

不是自己"想"内容,而是从团队情报链中提取素材——ainews 提供改写要点、Macro 提供深度分析、Trading 提供市场观点。9 个 cron 任务驱动 Research→Ideate→Write→Reflect 四阶段流水线:09:00 从 54 个平台热榜(微博/知乎/B站/抖音/百度/头条...)+ X 热点抓取 → 10:30 消费 ainews 改写要点生成创意 → 14:00 产出初稿经 Ripple 传播预测引擎评分后投递 → 22:10 反思。

最有意思的是自主进化能力——发现 AI 味太重后,Content 自行调研"去 AI 味"工具,编写 Skill,发布到 ClawHub,并沉淀为全团队通用能力。从发现问题到解决方案再到发布,Agent 自己走完了整个流程:

另一个自主进化的产物是 X 五篮子热点雷达——Content 最初只抓 AI 热点然后摘抄,经过一次反馈后,它自己设计了覆盖五个维度的情报采集框架,并交叉读取其他 Agent 的当日情报:

篮子覆盖范围配额
AI/科技OpenAI / Claude / Agent / LLM≤40%
产品/创业startup / founder / product launch按热度
一人公司/效率solopreneur / productivity / automation按热度
投资/市场/宏观stocks / macro / bitcoin / fed按热度
社会情绪/国际geopolitics / layoffs / tariffs按热度

关键约束:AI/科技部分不超过整份输出的 40%。这不是我写在 SOUL.md 里的硬编码,是 Content 自己在反思中迭代出来的——它发现产出全是 AI 内容后,主动给自己加了配额限制。

管家蜘蛛(Butler)— 生活管家

不只是"喝水提醒"——深度集成 Apple 生态(Reminders / Calendar / Health / Notes / Shortcuts),是真正的个人生活助理。7 个 cron 任务:早安问候(08:00)→日程规划(08:30)→5 次喝水提醒(每次换花样:温馨/幽默/知识科普/名人名言/emoji 五种风格随机切换)→健康检查(20:00)→晚安总结(22:00)。

核心理念是不多不少,刚刚好——单次提醒 <50 字,间隔 ≥1.5 小时,23:00–07:00 仅发送紧急事项。如果用户没回复,不会连续催促:

ACP 编码专家阵型

Pi / Claude Code / Codex / OpenCode / Gemini / GPT-5.3-Codex,通过 ACP 协议按需委派,最大 6 并发实例、120min TTL。分析 Agent 不写代码,编码全部通过 sessions_spawn 委派给专家——每种编码 Agent 都可以开多个并发实例。

团队设计教训

一个关键决策是不要让分析 Agent 直接编码。早期我额外设了 coding、architect、PM 三个技术角色,结果发现这几个角色基本没什么实际产出——它们的能力和 Zoe + ACP 编码专家的组合高度重叠,反而增加了通信复杂度和调试成本。后来全砍了,编码通过 ACP 委派给 Claude Code 等专业工具。PM 和架构师?Zoe 兼任就够了。

复杂度随人数快速上升。3 个 Agent = 3 对交互关系,6 个 = 15 对。整个系统从零到 6 个 Agent 稳定运行,花了大约半个月的下班时间——每加一个新 Agent 都需要半天到一天的调试,处理和现有 Agent 的通信冲突、共享资源竞争、规则兼容。


一天是怎么过的

从凌晨 03:00 的自动备份到 23:45 的全团队反思,52 个 cron 任务覆盖 A 股 + 美股双时区自动轮转。周日还有 Macro → Trading → Trading 的三级递进周报。

每天结束时,每个 Agent 独立反思当天的 .learnings/ 待审条目,Zoe 最后汇总全团队产出:


让这套系统跑起来:三个核心工程问题

上面展示的是最终效果。但从"装好 OpenClaw"到"系统流畅运作",再到"Agent 自主进化"——中间有巨大的鸿沟。三个核心工程问题,每一个都不是"写好 prompt"能解决的。

核心问题一:上下文是 Agent 的操作系统

问题:Agent 系统的热力学第二定律

不加约束,entropy 只增不减。 持续运行的 Agent 系统会确定性地走向崩溃——不是"可能",是"一定"。

Agent 就像一个没有操作系统的进程:它能处理输入、产出输出,但谁来管理它的内存(上下文)?谁来做垃圾回收(Session 清理)?谁来防止 OOM(膨胀保护)?不设计就没有人管。

三个真实事故,按严重度排序:

P0 — 全团队瘫痪 8 小时

ainews 的 session 因为连续处理新闻和论文累积到 235K tokens。Gateway 启动时对所有 session 做 compaction,这个 session 永远超时 → crash → macOS 守护进程 ThrottleInterval=1 每秒重启 → 无限循环。所有 Agent 全部离线。

修复要四层:手动清理膨胀 session → ThrottleInterval 1→10 → idleMinutes 180→30 → exec.security full→allowlist。这不是某一个参数的问题,是四个独立的防线全部缺失

P1 — 3500 字报告被框架"优化"到 800 字

交易蜘蛛的收盘速报包含完整的数据表格、资金流向、个股评分。OpenClaw 在文本超过 textChunkLimit 时自动做 content compaction(LLM summarize),数据表格被"智能压缩"掉了。框架认为"帮你优化了"——但在数据密集场景下,AI 的"智能"是灾难

P2 — 信息过载后关键规则失效

当 SOUL.md 里堆满了各种操作规范、当 session 膨胀到几万 tokens,Agent 开始"选择性遵守"规则。管家蜘蛛越界做投资分析。交易蜘蛛忽略数据验证规则。不是模型变笨了,而是关键信息被噪声淹没了——这是 Context Engineering 要解决的根本问题。

解决:双层控制 — Context Engineering + Harness

两层协同,两个都不能少。

第一层 — Context Engineering(设计 Agent 的信息架构)

设计 Agent 每次推理时看到的完整信息结构——系统级的信息架构设计:

  • SOUL.md 放在 system prompt 最前面,是 Agent 的"宪法"——身份定义、决策框架、绝对禁止项。保持精简,只放最核心的约束
  • AGENTS.md 跟在 SOUL.md 后面,定义操作规范和协作协议
  • Skills 通过 extraDirs 配置按需加载——Trading 有 15 个 Skills 共 68000+ 行内容,不可能全放在 system prompt 里。只在 Agent 需要用到某个 Skill 时才注入上下文
  • shared-context/ 是跨 Agent 的共享状态,Agent 通过工具主动读取
  • Obsidian Vault 是冷存储,归档产出但不参与推理

LLM 的上下文窗口不是等价的。system prompt 前面的信息权重远高于后面的。session 膨胀到几万 tokens 后,早期消息的影响力被稀释——类似操作系统的内存管理:热数据放缓存,冷数据放磁盘,关键数据常驻内存

Trading 的 15 个 Skills 中,stock_analysis(技术面评分)在每日扫描时才需要,bilateral_analysis(龙虎榜分析)只在异动时触发。全部常驻上下文的话,噪声淹没了真正重要的规则。通过 extraDirs 按需注入,每次推理只加载相关的 1-3 个 Skill。

规则措辞必须面向最弱的模型。多模型 fallback 环境下(GPT-5.4 超时 → Qwen3.5+ → Ollama qwen3:8b),规则遵循率随模型能力递减:

  • "建议不要编造数据" → GPT-5.4 基本遵守,Qwen3.5+ 偶尔遵守,qwen3:8b 几乎无视
  • "MUST: 不编造数据" → 各模型遵守率显著提升
  • "MUST + P0 + NON-NEGOTIABLE" → 即使弱模型也能保持较高的遵守率

多模型 fallback 时,不知道哪次推理会用弱模型,所以所有关键规则都要按最弱模型的理解能力来写。显式 > 隐式,硬规则 > 软建议

第二层 — Harness(框架自动管理)

Agent 7×24 运行,session 会持续膨胀——你设计得再好,运行一天之后上下文就变了。框架替 Agent 管,OpenClaw 的 harness 配置提供自动化的上下文生命周期管理:

机制触发条件动作为什么需要
compaction memoryFlushSession 超过 40K tokens提取精华到 memory/YYYY-MM-DD.md防止 session 无限膨胀
contextPruning上下文超过 6 小时cache-ttl 裁剪,保留最近 3 条防止旧上下文干扰新推理
session reset每天 5:00 或空闲 30 分钟自动重置防止跨天数据残留
session maintenance文件超过 7 天自动清理,磁盘上限 100MB防止磁盘被撑满
self-improving-agent SkillAgent 启动时注入 .learnings/ 历史经验确保学到的东西不丢失(额外安装的 Skill)

只有 Context Engineering 没有 Harness,session 膨胀到 235K tokens 后一样崩溃;只有 Harness 没有 Context Engineering,所有信息堆在一起、关键规则被噪声淹没。Context Engineering 定义信息的结构,框架管理信息的生命周期。

实际的 openclaw.json 配置(每个参数背后都是真实事故):

{
  "compaction": {
    "mode": "safeguard",
    "memoryFlush": {
      "enabled": true,
      "softThresholdTokens": 40000,
      "prompt": "Distill to memory/YYYY-MM-DD.md. Focus: decisions, state changes, lessons, blockers."
    }
  },
  "contextPruning": { "mode": "cache-ttl", "ttl": "6h", "keepLastAssistants": 3 },
  "session": {
    "reset": { "mode": "daily", "atHour": 5, "idleMinutes": 30 },
    "maintenance": { "pruneAfter": "7d", "maxDiskBytes": 104857600 }
  },
  "hooks": {
    "bootstrap": ["self-improving-agent"]
  }
}

四个机制的执行顺序很重要——compaction 先于 contextPruning,确保有价值的内容先被提取到 memory/,再被清理。self-improving-agent 的 bootstrap hook 在新 session 启动时触发,把 .learnings/MEMORY.md 注入上下文——这是 Agent"记住上次学到的东西"的关键机制。

跨会话记忆恢复链(Agent 重启后如何"想起来自己是谁"):

新 session 启动
  ↓ self-improvement hook: 读 SOUL.md → AGENTS.md → MEMORY.md → .learnings/
  ↓ memorySearch: 从 memory/ + sessions 中检索与当前任务相关的历史上下文
  ↓ 读取 shared-context/ (团队实时状态)
Agent 恢复到"知道自己是谁、做过什么、团队现在在干什么"的状态

Agent 不需要"记住"所有对话——memoryFlush 提取的是 decisions/lessons/state changes,不是完整对话。memory/ 中的文件通常只有几百行,而原始 session 可能有几万 tokens。


核心问题二:让 Agent 真正"记住"并"成长"

问题:Agent 今天犯的错,明天还会犯

这是一个比上下文管理更深层的问题。chatbot 每次对话从零开始,所以它每次都犯同样的错是正常的。但如果你的 Agent 7×24 运行、每天处理几千次 LLM 调用,你会无法接受它反复犯同一个错误。

交易蜘蛛 5 次把龙虎榜 API 字段名搞错——BILLBOARD_BUY_AMT 写成 BUY_AMT,每次 session 重置后记忆丢失,下一次又犯。用户纠正"昨天建议买军工,今天跌了就转空",Agent 当场改了,但三天后遇到类似场景又给出同样的单向建议。

chatbot 和 Agent 的分水岭就在这里:Agent 应该能从错误中学习,并且下次不犯。但怎么实现?

解决:五层记忆 — 从人类认知模型中借鉴

设计记忆系统时,我参考了人类记忆的分层模型:工作记忆(短期)→ 长期记忆(经验)→ 程序性记忆(技能)。Agent 的记忆也应该有不同的时间尺度和管理方式:

存储时间尺度管理方式典型内容
L1 身份层SOUL.md (精简核心)永恒人工确认修改身份 + 硬约束 + 决策框架
L2 长期记忆MEMORY.md (<3000 tokens)长期Agent 自主维护结构化经验(✅ 成功模式 / ❌ 失败教训)
L3 中期记忆memory/YYYY-MM-DD.md + memory.db中期Harness 自动提取Session 超过 40K tokens 时的精华快照
L4 短期记忆.learnings/ (ERRORS/LEARNINGS/FEATURES)短期Agent 即时记录错误记录、用户纠正、最佳实践
L5 持久化Skills + Obsidian + ontology + vector_store.db持久共享/归档技能库 + 知识归档 + 知识图谱 + 向量检索

层与层之间的衔接才是关键——这形成了一个完整的自主进化循环。

记忆自主迭代——6 步循环

这是整个系统最核心的机制。没有这个循环,Agent 只是 chatbot;有了这个循环,Agent 才是真正的 Agent。

记忆自主迭代 — 6 步循环

  1. 触发事件

操作失败 · 用户纠正 · 发现更优做法 · 需要新能力

任意一种都会触发即时记录

  1. .learnings/ 即时记录

ERRORS.md · LEARNINGS.md · FEATURE_REQUESTS.md

状态: pending — 低成本、高频率、不审查直接写入

  1. 每日反思 Cron (23:00-23:45)

扫描 .learnings/ 所有 pending 条目 → 评估复现频率和重要性 → 验证 ≥3 次?

✓ ≥3 次
promote 到 MEMORY.md

✗ <3 次
保留 pending,继续观察

  1. promote 到 MEMORY.md

长期记忆 · <3000 tokens 硬上限 · 超限时 Agent 自主精简(合并相似、删除过时)

  1. 下次 Session 加载

self-improvement hook · bootstrap 注入 · 检查 .learnings/ · 引用历史经验

  1. Agent 行为改进

下次遇到同样问题时自动避免 — 迭代完成

🔒 SOUL.md 修改 — 需要用户确认(Agent 不能自己改自己的"宪法")

Harness 并行路径

Session 40K tokens → memoryFlush → memory/YYYY-MM-DD.md → memory.db

与 Agent 自主的 .learnings/ → MEMORY.md 路径互补——Harness 管"对话精华提取",Agent 管"经验教训沉淀"

为什么 "≥3 次"?
防止偶发事件(如一次 API 超时)污染长期记忆。

3000 tokens 额度很珍贵,只有反复出现的模式才值得占位。

Agent 可以自主更新 .learnings/MEMORY.mdmemory/knowledge/——但绝对不能改 SOUL.md。SOUL.md 是身份和硬约束,修改需要用户确认。我们真的遇到过 Agent 把自己的"人格"改松的情况——行为立刻变得不可控。

Zoe 每周还会做记忆系统维护——分析各 Agent 的 MEMORY 状态,做归档和压缩:

L5 的 ontology 知识图谱记录实体关系(Agent/Task/MarketInsight/Decision),vector_store.db 提供语义级检索——Agent 不需要记住精确措辞,通过向量相似度找到相关历史决策。

真实进化案例

用户纠正: "昨天建议买军工,今天跌了就转空"
  ↓
即时记录 (.learnings/):
  "[LRN-20260303-001] correction | priority: high | status: pending
   军工策略在地缘利好场景下未充分强调短线拥挤与顶背离风险
   Suggested Action: 条件单模板 — 入场带失效位 + bullish/base/bear 三情景"
  ↓
每日反思 cron (23:30): promote 到 MEMORY.md
  ↓
MEMORY.md: "❌ 事件驱动标的必须用条件单模板"
  ↓
三周后遇到类似板块轮动:
  交易蜘蛛直接引用了这条经验

这不是我写的规则——是 Agent 从纠正中自己提炼出方案,自己写入长期记忆。每日反思 cron 会审查 .learnings/ 中的 pending 条目并决定是否 promote:

更多真实进化记录:

发现进化来源
SOUL.md 信息过载导致规则失效精简核心,非核心规则迁移到 Skills 按需加载行为异常排查
delivery=ok ≠ 知识库已落库反思同时核对投递 + 文件存在性管家零产出事件
butler 零产出但反思说"正常"建议性兜底 → 硬门禁(产出为空 = 失败)运维巡检
macro→trading 引用缺乏追溯强制结构化引用 + 验证字段数据追溯困难
trading 频道刷屏(双发送链路)幂等键 + 单层重试 + 节流P0 事故
军工策略只看事件驱动条件单模板:入场+失效位+三情景Agent 自提方案

记忆系统还在进化

记忆系统不是"设计好就不变的"。最近的一个例子:

Zoe 每周生成 Tech Radar 报告,从 ainews 的情报中提取技术趋势,分为 Adopt/Trial/Assess 三级。本周报告中,ainews 发现了 <font style="color:rgb(0, 128, 255);">ReMe(Agent 记忆管理框架),Zoe 立刻评估其与现有系统的对比:

结论:ReMe 架构优秀(223K → 1.1K tokens,99.5% 压缩率),但与 AgentScope 深度绑定,直接接入不划算。走"参考设计自研"——先实现收益最高的 tool_result 压缩(超长工具输出自动截断 + 外存,上下文占用降 80%+),再逐步引入结构化摘要模板和异步持久化。

用户同意后,Zoe 立即通过 ACP 协议委派 Claude Code 做架构评审:

这个过程本身就是多 Agent 协作的真实案例:ainews 情报发现 → Zoe Tech Radar 评估 → 用户确认 → ACP 委派编码专家 → 分阶段落地,涉及 3 个 Agent + 1 个 ACP 编码专家。

假设驱动的迭代 — 从修 Bug 到科学方法

记忆系统最有深度的进化不是修某个具体的 Bug,而是 Agent 学会了主动提出假设并验证——这是从"被动修复"升级到"主动改进"的关键一步。

每日反思中,Agent 会基于当天的工作提出 3-5 条可验证假设,晚间反思时用实际数据评估:

假设验证结果后续动作
评分报告加上推理过程可降低用户质疑已验证:Trading 加上推理链后用户追问显著减少固化为评分模板硬性要求
Macro→Trading 引用上游结论可减少重复分析已验证:从"每次重新分析"变为"引用+增量"写入协作协议
端到端评测集比单点指标更能提升日报质量验证中正在建立评测基准

验证通过的假设被固化为规则或 Skill,验证失败的被标注原因并淘汰。Agent 不只是"犯错后改正",而是在主动寻找改进空间——从 reactive 到 proactive 的跃迁。

自主进化机制:哪些是 OpenClaw 自带的,哪些是我们加的

理解这套记忆系统需要区分框架能力运营优化——很多人问"OpenClaw 是不是开箱即用",答案是"框架能力开箱可用,但要跑好需要大量运营层设计"。

能力OpenClaw 框架自带我们的运营层优化
Session 管理compaction(memoryFlush)、contextPruning、session reset、session maintenance调优参数(40K/6h/30min)来自多次事故复盘
self-improving-agent Skill❌ 框架不自带额外安装的 Skill——Agent 启动时注入 .learnings/ 提醒,驱动学习记录和持续改进
Memory flush超过阈值自动提取精华到 memory/定制 flush prompt 强调"decisions/state-changes/lessons/blockers"
Skills 加载extraDirs 按需注入15 个 Trading 专属 Skill、33 个全局共享 Skill,按需加载
ACP 委派sessions_spawn + 编码 Agent session 管理委派策略(什么任务用什么编码专家)、TTL 和并发调优
反思 + 自我迭代❌ 框架不自带完全自建——每日 23:30 每个 Agent 独立反思 + Zoe 汇总,包括 .learnings 审查、MEMORY 精简、Tech Radar 技术趋势提取、ReMe 等新技术评估
三态通信协议❌ 框架不自带Zoe 自主设计——从刷屏问题出发,迭代到 V1 线程协议
Task Watcher❌ 框架不自带Zoe 设计 + ACP 编码落地——task-watcher Skill
MEMORY.md 容量管理memory_maintenance.py 每周压缩 + Agent 自主精简
ontology 知识图谱自建 schema.yaml + graph.jsonl 实体关系

OpenClaw 提供了优秀的框架级基础设施(Session 管理、Harness、ACP),但让 Agent 真正"活"起来的进化机制——反思迭代、协作协议、Task Watcher、记忆压缩——都是在框架之上的运营层设计


核心问题三:多 Agent 协作是协议问题,不是群聊问题

问题:把 Agent 放进群聊 ≠ 协作

大多数人对 Multi-Agent 的直觉是"给几个 Agent 一个聊天群,它们就能协作"。实际上,这和把几个工程师拉到一个没有流程规范的群聊里没有区别——有沟通能力不等于有协作能力

Macro 和 Trading 在"伊朗局势对 A 股影响"上互相"收到/确认/感谢"刷了十几轮。分析早就做完了——Macro 判断"油价涨幅 >10% → 通胀逻辑主导 → 黄金反跌"(实际走势:油价 +14%,黄金 -5%,判断准确)——但分析之后两个 Agent 客套的 token 比分析本身还多。

根因不是"Agent 太客套"。根因是缺乏终态协议。Discord 配置中 requireMention=true 表示 Agent 只在被 @ 时才回复。当两个 Agent 互相 @,A → B → A → B......这就是经典的 ACK storm,和 TCP 协议早期遇到的问题是一样的。

解法也是一样的:设计协议。不是告诉 Agent "少说话"——实际观察中"建议"式规则在弱模型上几乎不起作用——而是设计一个有状态机的通信协议。

解决:协议级设计 → 真实案例

实例:下周 A 股策略圆桌讨论

Zoe 发起圆桌 → Macro 提供宏观研判 → Trading 回应策略建议 → 按固定三态协议有序收敛:

Step 1 — Zoe 发起议题 + Macro/Trading 按协议 confirmed:

Step 2 — Trading 基于 Macro 研判给出详细策略(confirmed 输出):

Step 3 — Trading 输出 final(DRI 结论 + 完整推理过程):

Step 4 — 协议收敛(final 后全员静默):

协议设计

固定三态通信协议 + V1 线程协议(被刷屏教训后设计,已迭代到 V1 版本,沉淀到 AGENTS.md):

固定三态协议(强制)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[request]    @对方 + ack_id + 期望动作 + 截止时间
             模板: @agent [state=request] [ack_id=topic-v1-202603081430]

[confirmed]  @发起方 + 相同 ack_id + 版本号/生效时间/关键结论
             模板: @requester [state=confirmed] [ack_id=...] 版本=v2

[final]      @相关方 + 相同 ack_id + 终态收敛(全线程仅 1 条)
             发出后全员进入静默,"收到/感谢/OK" → NO_REPLY

V1 线程协议(2026-03-08 起)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• 同一线程只允许一个 ack_id,新一轮必须新开
• final 后禁止续话;必须补充时优先 edit 既有消息
• sessions_send 超时 ≠ 失败 → 同一 ack_id 不得重试
• 同一内容最多重试 1 次;第二次超时 → shared-context/ 文件投递

⏰ 5 分钟无 confirmed → 催办 1 次 · 10 分钟仍无 → 升级 Zoe 仲裁

子线程策略:多轮协作的内容任务默认开专用子线程(命名: <主题>-<负责人>-<日期>),主频道只同步三次状态:[Dispatch][ACK][DraftReady]

三种通信机制

机制用途例子
sessions_send实时任务分派/圆桌讨论Zoe → Macro "分析伊朗局势"
shared-context/异步状态共享Macro 写入宏观因子包 → Trading 直接读取
知识归档结构化素材接口ainews 报告末尾留"改写要点" → content 消费

shared-context/ 的核心价值:从消息驱动升级到状态驱动。Trading 不需要每次问 Macro"今天宏观怎么样",直接读 intel/finance_news_latest.json。sessions_send 适合实时触发,但不可靠(超时、重复)——关键数据走文件才可追溯。

Zoe 主导了 shared-context/ 的标准化——从最初零散的文件目录,演进为结构化的跨 Agent 协作基础设施:

shared-context/
├── agent-sessions/       # ACP 编码专家的 session 状态(30 个 claude/codex session)
├── agent-runs/           # Agent 运行记录
├── monitor-tasks/        # Task Watcher 持久化存储
│   ├── tasks.jsonl       # 任务注册(小红书审核/ACP完成/cron健康等)
│   ├── watcher.log       # 轮询日志
│   ├── audit.log         # 审计追踪
│   ├── dlq.jsonl         # 死信队列(处理失败的任务)
│   └── notifications/    # 通知记录
├── intel/                # 情报共享(finance_news_latest.json 等)
├── roundtable/           # 圆桌讨论记录
├── decisions/            # 重大决策存档
├── job-status/           # cron 任务状态
├── knowledge-base/       # 共享知识
├── status/               # 各 Agent 当前状态 JSON
├── tech-radar.json       # 技术雷达(Adopt/Trial/Assess 三级)
├── memory-maintenance-latest.json  # 最近一次记忆压缩报告
└── PROJECT_STATUS.md     # 项目全局状态(Zoe 维护)

这不是一次性设计出来的——是 Zoe 在实际运营中逐步标准化的。每增加一个新的协作场景(ACP 编码、Task Watcher、Tech Radar),Zoe 就在 shared-context/ 中增加对应的标准化目录和文件格式。

DRI 原则:一个问题只有一个 Directly Responsible Individual 出最终结论。非 DRI 只能补充,不能覆盖。Zoe 组织和归档,不替代专业 Agent 出专业意见。

协议优化后的自主反思

协议落地后,Agent 不只是"按规则执行"——它们会主动反思效果并提出改进方向:

从初版"禁止客套"到 V1"线程级收敛",每一步协议优化都来自 Agent 的 .learnings/ 经验沉淀——这正是五层记忆系统的价值所在。

最新进展(2026-03-08):Zoe 刚完成了一次全员通信标准下沉——修改了 26 个文件(6 个 Agent 的 AGENTS.md + SOUL.md + 相关 Skill 文档),把通信硬规则统一写入每个 Agent 的本地配置。同时执行了全员通信路径审计,识别出 main/SOUL.md 与圆桌 Thread 规则的冲突并修复。

五条联动链路

Agent 之间不是各干各的,是上游主动为下游准备接口:

链路流转机制
ainews → contentainews 每份报告末尾留"改写要点"约定接口格式
ainews → ZoeTech Radar 技术雷达 → Zoe 评估与决策shared-context/tech-radar.json
Macro → Trading宏观因子包(DXY/US10Y/油价方向/Fed路径/板块映射)shared-context/intel/
Trading → Macro(美股跨时区)Trading 05:10 夜报 → Macro 05:20 宏观复盘时序联动
Macro → Trading(周末递进)18:30 宏观→ 19:30 市场→ 20:30 技术递进链路
Zoe → 全团队23:45 跨 workspace 读取 6 Agent 产出 + .learnings/反思汇总

Tech Radar 真实示例——ainews 每日维护的技术雷达,分为 Adopt(已验证可用)、Trial(值得尝试)、Assess(持续观察)三级:

{
  "adopt": [
    { "name": "MCP Protocol", "reason": "MCP 2.0 发布,三大框架推进标准化" }
  ],
  "trial": [
    { "name": "OpenAI Skills Catalog", "reason": "582→947 星,可参考 Skill 格式" },
    { "name": "ReMe Agent 记忆管理", "reason": "独立记忆工具包,评估替代方案" }
  ]
}

Zoe 消费 Tech Radar 后做源码级评估,判断对现有系统的影响——本周就基于此发起了 ReMe 评估并委派 Claude Code 落地 PoC。

安全边界 — Agent 能改什么、不能改什么

安全在于限制 Agent 能触碰的范围

安全层机制教训
执行权限exec.security: allowlistContent 曾自己改坏配置 → 改为白名单执行
配置保护SOUL.md / openclaw.json 不允许 Agent 修改Agent 把自己的"人格"改松 → 行为失控
密钥隔离API keys 在 env 中,不在文件中防止暴露到 session 或 Discord
代码审查ACP 编码走 review 流程Agent 生成的代码不直接部署

Task Watcher — 解决"Agent 说了会做但实际没做"

Agent 最难发现的问题不是崩溃或报错,而是"说了会做但实际没做"。Content 蜘蛛发完小红书说"审核通过后通知你"——但 session 已经结束了,它根本做不到异步回调。更隐蔽的是 cron 任务"执行了"但零产出——反思也说"一切正常"。

Zoe 主导设计了一套 Task Callback Event Bus——插件式架构,5 个组件各司其职,把异步监控下沉到 cron 级别

注册任务 → tasks.jsonl(shared-context/monitor-tasks/)
                ↓
Cron (*/3 min) → Watcher → Adapter 检查状态 → 状态变化?
                                                   ↓ Yes
                                      Policy 决策 → Notifier 发 Discord
  • Adapter 插件:小红书审核状态、GitHub PR、ACP 编码任务——想监控什么加一个 Adapter
  • Policy 策略:通知频率、升级、重试都可配
  • 6 小时超时保护(默认),3 次投递失败自动升级,不会死循环、不会卡死

这套系统由 Zoe 自行设计 → 委派 Claude Code 实现 → 130 个单元测试 → 开源发布为 OpenClaw Skill。从需求到代码到测试到发布,我只在方案评审时介入,其余由 Agent 团队完成。

通信 Guardrail + 异步状态链(最新进展)

Task Watcher 解决了"异步任务有没有产出"的问题,但更深层的问题是:Agent 之间的通信本身缺乏系统级约束message 被误用为内部控制面、timeout 不等于失败却被当作失败处理、completeddelivered 无法区分——这些都不是靠文档规则能解决的。

Zoe 自主设计并委派 ACP 编码专家实现了一套 通信 Guardrail + 请求生命周期状态链(~3000 行 Python),核心组件:

模块行数作用
agent_comm_guardrail.py3835 条硬性规则:拒绝 message 误用、阻止身份伪造、拦截 ack_id 重发
agent_request_models.py28911 态生命周期模型:accepted → routed → queued → started → completed → delivered
agent_request_store.py529文件级状态存储,requests.jsonl + events.jsonl 全链路审计
completion_bus.py507异步完成投递总线,producer-consumer 模式
acp_state_bridge.py502ACP 编码任务的状态桥接
dead_letter_queue.py271投递失败兜底队列

设计决策:

  • timeout ≠ failed:超时只是控制面观察结果,任务可能已经在执行——引入 ambiguous_success 语义
  • completed ≠ delivered:工作完成 ≠ 结果送达,分离两个状态避免投递失败覆盖工作成果
  • 通信生命周期独立于业务 TaskState:不污染现有 Task Watcher 的 submitted → completed → failed 状态机
  • 文件级状态源:先用 shared-context/agent-requests/ 跑通,不依赖 Redis/MQ 等重量级设施

这套系统从"Zoe 发现问题 → 设计方案 → 委派编码 → 代码实现 → 测试验收",我只在方案确认环节介入,其余环节由 Agent 自主完成——是 Agent 从"执行者"进化为"系统设计者"的典型案例。

整体架构总结 — 五层工程视角

回过头看,整个系统的核心设计可以归结为五个层次:

核心机制解决什么问题
通信层三态协议 + ack_id + 四层一体化 + shared-context/Agent 之间如何可靠地协作
记忆层五层分层存储 + Harness 自动管理 + 反思迭代Agent 如何记住经验并持续成长
自愈层三层自愈架构 + heartbeat-guardian + memory_maintenance系统如何 7×24 稳定运行
进化层.learnings → promote → MEMORY + Skill 自研 + ClawHub 发布Agent 如何从"执行者"变成"设计者"
编排层Zoe 巡检 + 圆桌主持 + Task Watcher + ACP 委派谁来管理和协调这一切

这五层不是独立的——它们相互依赖、相互强化。通信层的三态协议是 Zoe 在编排层中发现问题后设计的。记忆层的压缩策略是自愈层的一部分。进化层的 Skill 自研能力来自通信层的跨 Agent 协作。

跑了半个月之后的认知变化

1. 90% 的时间花在工程问题上,不是 AI 问题上。 Session 膨胀、消息风暴、配置被改坏——解法在分布式系统和 SRE 经典知识中,不在 AI 论文里。Agent 系统的瓶颈不是模型能力,是基础设施的成熟度。模型升级是锦上添花,通信协议、记忆架构、自愈机制才是决定成败的底座。

2. AI 的"智能"在生产环境中经常是灾难。 Discord 消息被"智能压缩"砍掉了数据表格,Agent "智能修复"自己的配置改坏了工具名,管家蜘蛛在 session 膨胀后"智能地"越界做投资分析。在需要精确、可预测输出的场景下,"智能"反而是负面特性。显式 > 隐式,硬规则 > 软建议,可预测 > 可解释。

3. 持续运行的系统必然退化——不是 bug,是热力学。 配置堆积、记忆过长、session 膨胀、磁盘撑满——这些会确定性地发生。对策不是"一次设置好",而是建立反退化机制栈:compaction 管 session,maintenance 管记忆,heartbeat-guardian 管配置,巡检管行为漂移。用 Agent 运维 Agent,用 cron 监控 cron——每层兜底机制都需要自己的兜底。

4. 协作是协议问题,不是 prompt 问题。 两个 Agent 放在同一个 Thread 里不写协议,等价于两个进程共享内存不加锁。Macro 和 Trading 用同一个模型、同一个知识库,刷屏时每条回复都言之有物——加上三态协议后产出从十几轮废话变成了一份可执行策略文档。模型没变,变的是规则。

5. Agent 最大的价值不是执行力,而是"参与设计"。 当 Agent 从"你让我做什么我就做什么"进化到"我发现了问题,调研了三种方案,推荐 B,你确认我就落地"——这时它才真正成为团队成员。十个进化案例里,大多数的起因不是"我让它做什么",而是"它遇到了问题然后自己想办法"。系统设计的目标不是让 Agent 听话,而是让它有能力自己解决问题。


如果你也想试试

不需要照搬 6 个 Agent。从 1 个开始。 整个系统从零到 6 个 Agent 稳定运行花了大约半个月的下班时间——不是开发时间,是调试和填坑时间。

第 1-2 天:先让 1 个 Agent 稳定运行

最重要的三件事:

  1. SOUL.md 保持精简,只放核心约束。把它当"宪法"不是"操作手册"——非核心规则放 Skills 按需加载
  2. Session 管理参数第一天就设好idleMinutes=30pruneAfter=7dmaxDiskBytes=100MB。不设 = 定时炸弹
  3. 从第一天就启用 .learnings/ + 反思 cron。没有反思的 Agent 只是 chatbot,不是 Agent

第 3-5 天:加第 2 个,开始处理协作

  1. Discord 配置比你想的复杂 10 倍。每个 Agent 需要独立 Bot 账号。requireMentiontextChunkLimitdelivery.mode、子 Thread 创建、Bot 权限——每个都有坑,而且组合起来的症状让你根本猜不到是哪个配置的问题
  2. 协作需要协议,不是群聊。两个 Agent 在群聊里会互相 ACK 到死。固定三态协议 + ack_id + 超时升级,两个都不能少

第 2 周起:逐步扩展到完整阵型

  1. 规则用最强措辞,面向最弱模型。LLM 对"建议"式规则的遵循率远低于"MUST",尤其在长上下文和弱模型上
  2. "成功"要严格定义。投递成功 ≠ 归档成功,无报错 ≠ 有产出,Agent 说"正常" ≠ 真正正常
  3. Agent 不回复是常态——准备好 Task Watcher 和重试机制
  4. shared-context/ 是协作基石——sessions_send 不可靠(超时、重复),关键数据走文件才可追溯
  5. 每加一个 Agent 都需要半天到一天的调试。急于求成 = 浪费更多时间在排查上

装好不难,跑通也不难。难的是:让 6 个 Agent 在没有你盯着的时候也能稳定产出、自我修正、协作不打架。这不是 prompt 问题,是系统工程问题。

从理解原理开始

如果你想先理解 OpenClaw 的核心原理再动手,可以看看 <font style="color:rgb(0, 128, 255);">MiniClaw —— ~2700 行 Python 实现了 OpenClaw(43 万行 TypeScript)的 11 个核心架构模式:Gateway Hub-and-Spoke、Workspace 契约文件、Agent Loop、Skills 触发、Compaction 上下文管理、Multi-Agent & Spawn、Heartbeat、Cron、Hooks EventBus、自动反思。不需要看原始代码就能理解"为什么要这么设计"。


附录:技术栈快速参考

以下是正文中提到的技术组件的集中索引,方便快速查阅。详细说明见正文对应章节。

LLM 模型分层

任务类型模型
主对话 / 反思 / 圆桌GPT-5.4
ACP 编码任务K2.5 / GPT-5.4
Cron 日常任务Qwen3.5+ / K2.5
心跳 / 健康检查Ollama qwen3:8b

Fallback 链:gpt-5.4 → k2.5 → qwen3.5-plus → ollama/qwen3:8b

核心 Harness 配置

{
  "compaction": { "mode": "safeguard", "memoryFlush": { "softThresholdTokens": 40000 } },
  "contextPruning": { "mode": "cache-ttl", "ttl": "6h", "keepLastAssistants": 3 },
  "session": { "reset": { "atHour": 5, "idleMinutes": 30 }, "maintenance": { "pruneAfter": "7d", "maxDiskBytes": 104857600 } },
  "acp": { "maxConcurrentSessions": 6, "ttlMinutes": 120 }
}

数据源

市场数据源覆盖
A 股AKShare + TuShare Pro实时行情 + 历史 + 财务 + 龙虎榜 + 北向
美股/港股yfinance + Finnhub行情 + 新闻 + 基本面
信息采集Tavily + RSS 13源 + GitHub Trending + 54 平台热榜 + arXiv搜索 + 新闻 + 热点 + 论文
浏览器agent-browser (Playwright)JS 渲染页面(X/Twitter、雪球等)

部署配置

组件配置
硬件Mac 本地 7×24
进程守护launchctl + ThrottleInterval=10
自愈2086 行脚本(heartbeat-guardian / check_cron_health / memory_maintenance)
备份每日 03:00 全量备份
监控Zoe 3 次/天巡检 + 系统 crontab 15 分钟健康检查
知识归档Obsidian Vault + obsidian-livesync

其他

数字化项目最常见的误区,不是方法选错,而是总想用一种方法解决两类问题:既想用瀑布守住预算、责任与里程碑,又想用敏捷应对需求变化与业务试错。今天越来越多组织转向混合式,并不是因为方法时髦,而是因为项目环境本身已经要求管理者同时处理“确定性”与“不确定性”。PMI 也明确强调,项目方法正在走向更灵活的 fit-for-purpose,即按项目环境组合使用不同实践。

一、为什么数字化项目很难只靠一种方法走到底

数字化项目与传统工程项目最大的不同,不是用了更多技术,而是它天然同时包含两类工作:

一类工作追求确定性,例如预算、采购、合同、接口、合规、阶段审批和上线窗口;
另一类工作则充满不确定性,例如需求澄清、流程重构、用户体验验证、数据口径调整以及技术方案试验。

前一类工作需要清晰边界和可问责机制,后一类工作需要快速反馈和持续修正。问题不在于企业不知道敏捷好,而在于很多项目从一开始就不是单一属性。PMI 对项目方法的描述也不是二元对立,而是一个从 predictive 到 agile 的连续谱,每个项目都应在这个谱系上找到自己的位置。

这也是为什么“敏捷还是瀑布”的二选一,在数字化项目里往往是个伪命题。真正成熟的管理,不是放弃计划,而是知道哪些内容必须提前计划,哪些内容必须边做边学。
GOV.UK 关于敏捷规划的指南讲得很清楚:在敏捷环境下,规划并没有消失,而是应当在“合适的层级、合适的时间”进行,远期保持高层级,近期再做细化。对数字化项目而言,这一点尤为重要,因为很多风险并不是来自变化本身,而是来自组织把本应在迭代中澄清的问题,过早地包装成了确定答案。

从组织现实看,很多本土企业之所以在数字化项目上频繁摇摆,也恰恰源于此。一方面,高层希望项目能快,最好边做边改;另一方面,又要求预算可控、责任清晰、节点可汇报、风险可追溯。于是团队表面上说在做敏捷,实际上仍被要求在启动阶段回答太多本来不可能一次说清的问题。结果就是:前期文档做得很厚,后期变化仍然很多,团队既没有获得瀑布的确定性,也没有真正拿到敏捷的反馈效率。这类矛盾,并不是靠一句“全面敏捷转型”就能解决,而是需要在治理机制层面重新划分“什么该被锁定,什么该被打开”。

PMI 近年的研究也印证了这一趋势:项目团队正明显转向更灵活的交付方式,混合式方法的采用持续增加,而且预测式、混合式、敏捷式在项目表现上并非简单的高下之分,关键在于是否与项目环境匹配。这对管理层是一个很重要的提醒:项目治理的成熟,不再体现为“全公司统一一种方法”,而体现为能否针对不同项目设计不同的控制强度、协作节奏与反馈机制。

二、混合式方法不是“折中”,而是“分层治理”

1. 混合式真正“混”的,不是流程,而是管理逻辑

很多团队把混合式理解为“前面按瀑布,后面按敏捷”,或者“管理层看瀑布,研发团队跑 Scrum”。这样的理解只说对了一半。混合式真正要解决的,不是把两套术语拼在一起,而是把两种不同的管理逻辑放到各自最有效的位置:凡是涉及承诺、约束、资源配置和问责的事项,要更稳定;凡是涉及探索、验证、反馈和优化的事项,要更灵活。PMI 对 hybrid 的定义,本质上也是这种“按项目环境组合实践”的思路,而不是机械地把流程切成两半。

2. 对管理层来说,要稳的是边界,不是每一个细节

GOV.UK 的敏捷规划指南有一个很值得管理层借鉴的观点:在敏捷中,计划依然重要,但应在“合适的层级、合适的时间”做合适深度的规划;远期工作保持高层级,近期工作再细化。这个原则放在企业项目里,含义非常明确:高层真正要管住的,是目标、边界、里程碑、投入上限和关键风险,而不是试图在立项阶段把所有业务细节一次性冻结。把本应在迭代中澄清的问题提前“写死”,看起来是控制,实际上只是把不确定性从前台挪到了后期变更里。

3. 对交付团队来说,要活的是路径,不是责任

敏捷并不意味着团队可以无限制地变更范围,更不意味着对结果不承担责任。真正成熟的混合式项目,恰恰是在责任清晰的前提下,把实现路径留给团队优化。Agile Alliance 收录的 Halliburton 实践很有代表性:企业仍保留阶段和关口框架,但在执行区间引入 Agile-based 的开发机制,使团队能在原有治理约束下获得更快的反馈与迭代能力。这说明,治理稳定与执行敏捷并不矛盾,矛盾的往往是组织把两者设计在了同一个层面。

4. 真正有效的混合式,是“上层定规则,下层做学习”

这句话看似简单,其实是很多企业最难做到的地方。因为它要求管理层接受一个现实:并不是所有问题都能在一开始回答清楚;同时也要求团队接受另一个现实:并不是所有变化都可以不受约束。混合式项目管理的本质,不是给变化开绿灯,而是给变化设边界、给探索留空间、给决策留证据。做到这一点,组织才不是在“敏捷与瀑布之间摇摆”,而是在用两套逻辑共同管理复杂性。

从工具承载上看,混合式方法也不适合用一套过于单一的工具习惯来落地。以 ONES 项目管理工具为例,ONES Project 同时支持需求、任务、缺陷、迭代管理,以及看板、燃尽图等敏捷常用能力,并提供敏捷、瀑布、通用任务协同等多种项目模板;同时,ONES Plan 支持项目里程碑、甘特图、多项目总览和资源管理,ONES Wiki 支持文档关联任务、嵌入任务进度与知识沉淀。把这些能力放在一起看,更适合承载“治理层看里程碑与资源、交付层跑迭代与反馈、文档层做决策留痕与知识沉淀”的混合式场景。这里关键不在于工具本身有多全,而在于它能否让不同管理层级各看各的重点,而不是所有人盯同一张明细表。

三、一个更适合本土企业的混合式落地框架

1. 治理层:先定义“哪些东西不能轻易变”

在项目启动阶段,我通常建议先把四类问题定义清楚:

  • 第一,项目要解决的核心业务问题是什么;
  • 第二,预算、时间和关键里程碑的边界是什么;
  • 第三,哪些合规、审计、安全或对外承诺是必须满足的;
  • 第四,哪些跨部门依赖是项目团队无法单方面消化的。

只有先把这些“不能轻易变”的事项说清楚,后面的迭代才不会变成无边界试错。这里需要的是治理清晰,而不是文件繁重。

如果进一步落到工具层,治理层最需要的不是“更多表格”,而是能稳定呈现边界条件和关键节点的载体。比如 ONES Plan 它支持项目里程碑、甘特图、多项目总览和资源管理,并可与 ONES Project 中的项目、迭代、工时数据联动;这类能力比较适合放在治理层使用,因为管理层真正关心的通常不是某张任务卡的流转细节,而是关键节点是否受控、跨项目资源是否冲突、整体节奏是否偏离。

2. 交付层:把“会变化的东西”放进迭代而不是放进争论

进入交付阶段后,需求优先级、方案细节、流程设计、用户界面、报表口径等内容,应尽量通过待办列表、版本路线图、迭代评审和用户反馈来逐步收敛,而不是在会上反复抽象争论。GOV.UK 的做法是将愿景、目标、路线图与用户故事可视化,并把近期工作细化、远期工作保持高层级;其背后的管理逻辑很值得借鉴:不是不规划,而是不把尚未验证的内容伪装成确定答案。

在这一层面,ONES Project 的能力就更接近团队日常使用场景,支持建立需求池、规划迭代、任务管理、缺陷管理,并通过看板、燃尽图和多种报表辅助团队掌握当前进度与质量状态。对于混合式项目来说,这类能力的意义不在于“更像敏捷”,而在于帮助团队把变化装进一个可见、可排序、可复盘的节奏里,而不是让变化在微信群、会议纪要和口头协调中失控蔓延。

3. 协同层:建立“双节奏”机制,而不是用一套会议解决所有问题

很多项目之所以又慢又乱,不是会议少,而是同一套会议承担了两种完全不同的任务。混合式项目更合理的做法,是至少保留两套节奏:

  • 一套面向管理层,按月度或阶段节点评估范围、预算、风险、依赖与关键决策;
  • 另一套面向团队,按周或双周管理需求、障碍、演示、反馈和优先级。

前者解决“项目是否仍在正确轨道上”,后者解决“团队下一轮到底交付什么”。两套节奏一旦分开,很多组织内耗会立刻下降,因为高层不再被细节淹没,团队也不必在每次评审时都重新解释项目存在的意义。

如果企业已经在推进这类双节奏管理,那么工具上也最好避免“治理信息”和“执行明细”彼此割裂。同样以 ONES 为例,ONES Project 与 ONES Plan 到二者之间的数据互通:Plan 可以查看 Project 中相关项目和迭代的工作量、进度及工时数据。这意味着,管理层不必深入到团队每一轮 Sprint 的微观细节,也能获得足够的上卷信息;而团队也不必为了向上汇报,额外维护一套脱离现场的“领导版台账”。这恰恰是混合式方法能否落地的一个常被低估的条件。

4. 度量层:把“可控”与“有价值”分开看

混合式项目最容易出现的管理偏差,是只看计划达成,不看价值验证;或者只看迭代速度,不看整体承诺。前者容易把项目做成按时交付的低价值系统,后者则容易把团队做成忙碌但失控的交付机器。因此,PMO 至少要建立两类指标:

一类是治理指标,如预算偏差、里程碑达成率、重大风险闭环率、关键依赖兑现率;
另一类是流动性与价值指标,如需求吞吐、从需求到上线的周期、缺陷逃逸率、版本验收通过率、用户采纳情况。

也正因为如此,混合式项目不能只靠一张甘特图,也不能只靠一张燃尽图。在这里,ONES 的一个可取之处是,它并不是只强调某一种项目方法。ONES Project 一方面提供看板、燃尽图、多种报表等偏敏捷的度量与协作能力,另一方面又提供瀑布、通用协同等项目模板;而 ONES Plan 则更偏里程碑、甘特图、资源视角。对于正在推进混合式管理的团队来说,这种“不同视角对应不同管理层级”的产品设计,比单纯强调某一套方法论更接近组织现实。

5. PMO 的角色:从“文档监督者”转向“治理设计者”

这是很多企业最值得升级的一步。在混合式项目里,PMO 的价值不再只是检查模板是否齐全,而是要设计关口、定义边界、协调跨部门依赖、统一指标口径、推动风险前移,并帮助管理层区分哪些变化需要升级决策,哪些变化应留在团队内部解决。

如果把这个角色转变再往前推一步,PMO 还应当承担“信息架构设计者”的责任:什么内容必须标准化,什么内容允许按项目裁剪;什么信息用于向上汇报,什么信息服务团队协作;哪些文档是为了合规留痕,哪些文档是为了知识复用。

ONES Wiki 支持文档关联任务、嵌入任务进度、模板化创建和版本留存。对 PMO 来说,这类能力的价值不在于“多一个文档工具”,而在于能把项目制度、会议纪要、决策依据和任务执行之间的关系建立起来,避免项目结束后只剩下一堆彼此脱节的文件。

四、混合式实践中最常见的三个误区

误区一:前期把需求写死,后期再做“敏捷执行”

这是最常见也最隐蔽的问题。团队前期花大量时间做厚需求、长流程、全量确认,等进入开发阶段再切 Sprint,表面看是“瀑布加敏捷”,实际上只是把反馈延迟包装成了迭代。PMI 关于 hybrid life cycles 的讨论也明确提醒:如果仍然在前期详细收集需求,而用户验收又集中到生命周期末端,那么反馈延迟依旧存在,项目很难真正获得敏捷带来的学习优势。问题不在于有没有 Sprint,而在于用户反馈是不是足够早进入决策。

误区二:学了敏捷动作,却没有改决策机制

很多组织会引入站会、回顾会、燃尽图、待办列表,看上去“非常敏捷”;但预算还是一年一次锁死,优先级调整仍需层层请示,跨部门资源冲突没人拍板,范围变化也缺乏清晰规则。结果是,团队动作越来越多,决策效率却没有提升。真正拖慢项目的,往往不是团队不会迭代,而是组织没有把决策权限、边界条件和升级路径重新设计。敏捷从来不是一组动作,而是一套让反馈更快进入管理的机制。

误区三:把 PMO 继续当成“模板警察”

如果 PMO 的主要工作仍是收集周报、检查模板、催促审批,那么混合式最终很可能只是在旧治理体系外面套一层新术语。真正有价值的 PMO,不是把项目管得更僵,而是把组织约束翻译成团队可执行的边界,把团队现场的变化翻译成管理层可决策的信息。换句话说,PMO 的成熟,不在于文档数量,而在于它是否帮助组织把“控制”从形式控制升级为决策控制。工具在这件事上当然重要,但前提始终是:工具必须服务于治理设计,而不是替代治理设计。

五、给中高层与 PMO 的一个判断标准

一个数字化项目是否适合混合式,我建议至少问三个问题。

第一,这个项目是否同时存在“必须确定”的部分和“必须探索”的部分。只要两者并存,纯敏捷或纯瀑布通常都不是最优解。
第二,组织是否愿意把治理层和交付层分开设计,而不是用一把尺子统一考核所有工作。
第三,管理层是否能接受这样的管理现实:不是所有问题都应在启动阶段回答清楚,但所有重大承诺都必须有清晰边界、证据和责任人。

PMI 对此的核心判断很直接:真正有效的方法,不在于纯度,而在于是否能为项目环境增加价值。

如果这三个问题里,有两个以上答案是“是”,那这个项目大概率就不该再争论“到底选敏捷还是瀑布”,而应该开始设计你的混合式治理框架。到了这一步,工具的选择也应围绕这个逻辑展开:治理层是否能看全局节奏与资源,交付层是否能管理迭代与反馈,知识层是否能沉淀决策与经验。从 ONES 官方公开的信息看,ProjectPlanWiki 这三类能力组合,确实比较符合这种“上层看治理、下层看执行、过程留知识”的落地要求;但是否真正发挥价值,仍取决于企业有没有先把治理边界和协作机制设计清楚。

结尾

数字化项目的复杂,不在于技术比过去更多,而在于管理对象本身已经发生了变化:它既要求组织像工程一样守住边界,又要求团队像产品一样持续学习。正因如此,混合式方法的价值从来不在于“折中”,而在于“分层”:用瀑布式治理守住目标、责任、预算与关键节点,用敏捷式交付缩短反馈链路、提高需求质量、加快价值验证。

对中高层和 PMO 来说,这不是方法选择题,而是治理能力题。谁能把稳定性和适应性同时设计进项目机制,谁就更有可能在不确定环境中把数字化项目真正做成。若再配合像 ONES 这样同时支持敏捷协作、瀑布计划与跨层级信息联动的工具底座,混合式方法就更容易从理念变成组织可执行的管理实践。

出发点是需要一个小桌面搁物架。网上一直没找到合适的。于是动了 DIY 的念头。

发现一个叫 OpenSCAD 的软件,于是学习了教程,自己做了一个。
模型壁厚为 2 毫米,长宽高大致为 20 厘米、10 厘米、10 厘米。设计时,考虑到了材料节省。

嘉立创和 PDD 商家,报价为每个 50 元左右。如果是透明材料,价格还得涨几倍。
根据设计,这个小模型是可组合的、透明的。一个是一层。计划是先打印两个,OK 的话再打印更多。
按照报价,得到一个完整的搁物架( 4 层),用透明材料,总价格可以买一台全新打印机……

之前也动过买打印机的念头。
但是手上不宽裕,打印需求很少,也不知道怎么解决毒气问题

还请有经验的朋友指教!
也可以附带帮忙检查下模型。感谢!

本文由云软件体验技术团队胡靖原创。

在 AI 应用蓬勃发展的今天,企业对智能对话、AI 助手等产品的需求日益旺盛。为了帮助开发者快速构建高质量、体验一致的 AI 应用,越来越多的 AI 组件库开始涌现。TinyRobot 作为 OpenTiny 生态的一员,遵循 OpenTiny Design 设计体系,提供丰富的 AI 交互组件和工具,让开发者只需几步即可轻松构建企业级 AI 产品,降低开发难度和成本,提高开发效率和灵活性。

TinyRobot 是什么

面向企业 AI 应用的 Vue 3 交互组件与对话框架。

TinyRobot 是一套专为 AI 应用构建的前端交互框架,帮助团队快速搭建企业级 AI 助手、智能客服与多轮对话系统。基于 OpenTiny 设计体系,TinyRobot 提供从对话 UI、流式渲染到会话管理的完整能力,使开发者无需自研复杂交互逻辑,即可构建体验一致、可扩展的 AI 产品。从原型到可运行 AI 应用,仅需数小时。

为什么需要 TinyRobot

构建 AI 对话类产品通常涉及以下工程挑战:

  • 流式响应渲染与中断控制
  • 多轮会话状态管理
  • 工具调用结果展示
  • Markdown / 多模态内容渲染
  • 输入增强(联想、附件、模板)
  • UI 与模型交互逻辑耦合严重

借助 TinyRobot 的标准化组件与组合式 API,开发者不再需要从零实现复杂的 AI 交互系统,只需按需组装组件,就能快速完成高质量 AI 对话产品开发。

核心能力

1. 原生 AI 交互组件体系

内置面向对话场景设计的 UI 组件:

  • Bubble:支持流式文本、Markdown、代码块、工具调用展示
  • Sender:支持多行输入、模板、@提及、附件上传
  • Container:会话容器与布局系统
  • History:会话历史管理
  • Attachments:文件与多模态输入展示
  • ThemeProvider:主题与外观系统

组件采用可组合架构,支持按需引入与 Tree Shaking。

2. 模型无关的响应处理机制

通过 useMessage 与 responseProvider 抽象 AI 响应协议:

  • 原生支持流式响应
  • 支持工具调用(Function Calling)
  • 提供插件扩展机制
  • 内置请求状态管理与中断控制

开发者仅需实现模型请求逻辑,即可完成完整对话链路。

3. 可扩展插件与工具调用体系

TinyRobot 提供标准化工具调用展示机制:

  • 自动解析 tool_calls
  • 支持自定义插件扩展
  • 支持外部系统集成

该机制使 AI 应用具备可扩展能力,而非仅限文本对话。

4. 主题系统与品牌定制

基于 CSS 变量的主题架构:

  • 亮色 / 暗色模式切换
  • 主题嵌套支持
  • 持久化存储
  • 品牌级 UI 定制能力

可快速构建符合企业视觉规范的 AI 产品界面。

5. 会话存储与状态持久化

支持多种存储策略:

  • LocalStorage
  • IndexedDB
  • 自定义存储实现

适用于长对话、用户偏好与多会话管理场景。

快速上手

安装

# tiny-robot 套件
pnpm add @opentiny/tiny-robot @opentiny/tiny-robot-kit @opentiny/tiny-robot-svgs
# markdown 渲染器依赖
pnpm add markdown-it dompurify

入口引入样式:

import '@opentiny/tiny-robot/dist/style.css'

1. UI 层(组件示例)

开箱即用,只需简单配置,就能渲染完整 AI 聊天界面,并自动处理消息滚动、气泡显示和输入状态。
<template>
  <div class="chat-demo">
    <!-- 在 BubbleList 上配置其他渲染器,需要使用 BubbleProvider 包裹 -->
    <tr-bubble-provider :fallback-content-renderer="BubbleRenderers.Markdown">
      <tr-bubble-list class="chat-list" :messages="messages" :role-configs="roles" auto-scroll />
    </tr-bubble-provider>
    <tr-sender
      v-model="inputMessage"
      :placeholder="isProcessing ? '正在思考中...' : '请输入问题'"
      :loading="isProcessing"
      :clearable="true"
      @submit="handleSubmit"
      @cancel="abortRequest"
    />
  </div>
</template>

<script setup lang="ts">
import { BubbleRenderers, TrBubbleList, TrBubbleProvider, TrSender, type BubbleRoleConfig } from "@opentiny/tiny-robot";
import { IconAi, IconUser } from "@opentiny/tiny-robot-svgs";
import { h, ref } from "vue";
import { useChat } from "./useChat";

const { messages, isProcessing, sendMessage, abortRequest } = useChat();
const inputMessage = ref("");

function handleSubmit(content: string) {
  if (!content || isProcessing.value) return;
  sendMessage(content);
  inputMessage.value = "";
}

// 简洁角色配置:左右排列 + 头像
const roles: Record<string, BubbleRoleConfig> = {
  assistant: { placement: "start", avatar: h(IconAi, { style: { fontSize: "32px" } }) },
  user: { placement: "end", avatar: h(IconUser, { style: { fontSize: "32px" } }) },
};
</script>

<style scoped>
.chat-demo {
  max-width: 640px;
  width: 100%;
  margin: 0 auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.chat-list {
  height: 400px;
}

/* 使用 data-type 选择器可以匹配不同类型的渲染器 */
:deep([data-type="markdown"]) p {
  margin: 0;
}
</style>

2. 消息数据处理(Kit 示例)

Kit 自动管理消息状态、请求中状态和中止操作,无需手动处理复杂逻辑。
import { useMessage, sseStreamToGenerator } from '@opentiny/tiny-robot-kit'

export function useChat() {
  return useMessage({
    initialMessages: [{ role: 'assistant', content: '你好!我是 TinyRobot 示例助手。' }],
    responseProvider: async (requestBody, abortSignal) => {
      // 替换为你的大模型 API 地址
      const url = import.meta.env.VITE_API_URL

      if (!url) {
        throw new Error('api url is not set')
      }

      // 替换为你的大模型 API 密钥
      const apiKey = import.meta.env.VITE_API_KEY

      if (!apiKey) {
        throw new Error('api key is not set')
      }

      const res = await fetch(url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',

          Authorization: `Bearer ${apiKey}`,
        },
        body: JSON.stringify({
          model: 'deepseek-chat',
          ...requestBody,
          stream: true,
        }),
        signal: abortSignal,
      })
      return sseStreamToGenerator(res, { signal: abortSignal })
    },
    plugins: [
      {
        onError: ({ currentTurn, error }) => {
          currentTurn[currentTurn.length - 1]!.content = String(error)
        },
      },
    ],
  })
}

3. 示例效果

完成上述步骤后,你即可获得一个完整的 AI 聊天界面,支持:

  • 流式回复,实时展示助手回答,Markdown渲染
  • 自动滚动,始终显示最新消息
  • 输入框状态管理,包括加载状态和中止请求

想快速体验?执行下面步骤,在本地运行

  • 执行下方命令,一键拉取官方演示模板到本地
npx degit opentiny/tiny-robot#chat-demo tiny-robot-chat-demo
  • 进入项目目录,编辑 .env.local 文件,填写你的 API 地址和密钥(接口返回格式兼容 ChatGPT API 即可)
# 示例(以 DeepSeek 为例,可替换为 OpenAI/其他兼容接口)
VITE_API_URL=https://api.deepseek.com/chat/completions
VITE_API_KEY=sk-xxxx
  •  安装依赖后运行,成功后将自动打开浏览器,即刻体验
# 进入项目目录
cd tiny-robot-chat-demo
# 安装依赖
pnpm i
# 启动项目并自动打开浏览器
pnpm dev --open

更多 API 细节与组件用法,请参考 TinyRobot 官方文档

未来展望与共建邀请

TinyRobot 将持续优化 AI 组件与交互能力,重点提升多轮对话、流式消息显示、会话管理和主题定制的支持,同时扩展更多适用于 AI 应用的组件,让开发者能够更高效地构建智能界面。

我们欢迎开发者加入共建,一起推动 TinyRobot 的发展:

本文来自TenCent BlueKing社区用户: CanWay

直达原文:DevOps效率革命:一键复用!流水线模板重构研发生产力

01.背景

随着数字化转型,企业研发团队的效率面临前所未有的挑战:

  • 分支爆炸:多版本并行开发导致流水线数量呈指数级增长;
  • 重复劳动:每次核心配置变更需逐一流水线手动调整,耗时易错;
  • 协同断层:开发 / 测试 / 运维团队因配置差异引发的协作阻塞频发。

据Gartner调研显示,45%的研发团队因流水线管理低效浪费超20%开发时间。嘉为蓝鲸DevOps持续集成流水线模版体系,帮助企业提升流水线管理的效率,减少浪费。

02.解决方案

1)流水线模版:一键克隆标准化能力

通过"另存为模板"功能,将成熟流水线的构建环境、测试策略、部署逻辑封装为模板资产。新需求到来时,只需在新建流水线界面选择对应模板,即可生成可执行实例。
在这里插入图片描述

2)模版版本管理:让变更可控可追溯

  • 支持为模板创建多个历史版本(如V1.0基础版V2.0增强版),每次核心变更自动生成版本记录,用于保存不同时期的流水线模板版本,方便快速回档、存档。
  • 支持加载旧版本,清晰展示不同版本间的配置变更(如新增单元测试任务、调整代码扫描规则),让团队对模板演进一目了然。

在这里插入图片描述

3)流水线批量实例化 :提升效率,减少浪费

(1)实例化矩阵管理
支持单次创建100+流水线实例,自动继承模版的核心配置。当某个项目需要扩展多地区部署时,通过模版实例化流水线,同时生成100+不同地区的构建流水线,效率提升90%。
在这里插入图片描述

(2)一键批量更新
当模板核心配置升级(如安全扫描策略增强),只需在模板层完成修改,即可通过 "实例管理" 界面批量选中目标流水线,触发自动化更新。
在这里插入图片描述

(3)差异化更新
如果只想更新部分流水线,点击差异对比,查看实例流水线和模版的差异,比如模版新增安全扫描策略插件,部分团队暂时不增加安全扫描策略,则可以不更新这些团队的流水线,仍使用旧版本的流水线,当满足条件后仍然可以更新到最新版本流水线。
在这里插入图片描述

4)流水线约束模版:构建组织级统一标准
在企业研发场景中,某些情况下标准化与安全性往往比灵活性更重要。通过流水线约束模版可以组织级统一控制,通过强制合规引擎与统一配置通道,将散落的团队实践收敛为可复用的标准化能力,彻底终结 "各团队自建炉灶、规范执行参差不齐" 的管理乱象。
在这里插入图片描述

5)模版共享:打造企业研发生态
将某团队优质流水线模版分享至研发商店,成为全组织可复用的核心资产,实现 "一个团队的最佳实践,滋养整个组织的研发效能"。
在这里插入图片描述
在这里插入图片描述

03.使用收益

1)提升效率,减少重复劳动

通过流水线模板一键克隆和批量实例化功能,大幅减少手动配置时间,避免重复劳动,效率提升高达90%。

2)标准化与灵活性兼得

流水线模板支持全生命周期版本管理,既保证了企业级标准化,又允许团队根据需求灵活调整,实现“统一标准,差异执行”。

3)变更可控,降低风险

模板版本管理和差异对比功能确保每次变更可追溯、可回滚,减少配置错误风险,同时支持差异化更新,满足不同团队的需求。

4)强化合规与统一管理

通过约束模板,确保所有团队遵循统一的研发标准和安全策略,终结“各自为政”的管理乱象。

5)促进知识共享与生态建设

优质模板可共享至企业研发生态,实现跨团队最佳实践复用,推动整体研发效能的持续提升。

  1. 先说结论

我先把话撂在这:AI 编程不是 35 岁程序员的催命符,反而是他们的第二春。

尤其是那些真正做过几年后端、踩过生产事故、带过复杂系统的老鸟,市场价值正在被重新定价。

这跟年龄溢价无关,而是 AI 把"会写代码"和"能把系统做成"这两件事,彻底拆开了。

  1. 很多人把 AI 编程看浅了

以前大家觉得,年轻人手速快、加班猛、学新框架快,35 岁以后就越来越卷不动。这个逻辑在纯手撸代码时代还成立,因为公司买的是产能,谁写得快、谁便宜,谁就有优势。

但 AI 编程把这套规则打碎了。

现在最不值钱的,恰恰是"把需求翻译成几百行代码"这事儿。因为这一步 AI 已经能做得有模有样了。你甩给它一个页面,它能写;你扔给它一个接口,它也能拼;你让它照着模板加个功能,它甚至比很多初中级程序员更快。

所以很多人顺势得出一个结论:程序员凉了,尤其是老程序员更危险

我完全不同意。

  1. 为什么我这么说

如果把我的判断压缩成一条逻辑链,大概是这样:

AI 能快速生成代码 → 低门槛编码能力贬值 → 高门槛系统能力稀缺 → 有经验的程序员价值重估

  1. AI 让"人人都会写点代码",但真正稀缺的能力暴露了

一个小项目,AI 确实能兜底。页面不多、表不复杂、链路不长、调用关系简单,普通人靠 AI 也能拼出个像样的东西。

但项目一旦变大,问题就不是"代码能不能写出来",而是"这个系统还能不能活得下去"。

模块怎么拆分?边界怎么定义?什么时候该抽象、什么时候别瞎抽象?接口应该面向业务语义,还是直接怼数据库?扩展性怎么预留?高可用怎么做?监控、回滚、灰度、幂等、限流怎么串起来?

这些问题,根本不是提示词写得好就能解决的。

AI 最擅长的是局部补全,最不擅长的是在复杂约束下长期保持一致性

系统一旦超过某个临界点,它就开始一本正经地胡说八道:这里帮你封一层,那里给你抽个基类,看起来挺优雅,实际上依赖更乱;今天按这套规范写,明天又换一套;这次修了 A,下次又把 B 和 C 搞崩。

最可怕的是,没经验的人根本看不出它在胡说八道。

因为他们没真正经历过复杂系统失控的过程,不知道什么叫抽象污染,不懂什么叫技术债,也不理解一个看似漂亮的模式,为什么会在半年后把整个团队拖死。

  1. 为什么后端老鸟反而吃香

而那些做过多年后端的程序员,尤其是干过企业级系统、交易系统、高并发后台的人,在这个阶段反而占便宜。

原因很简单,这批人不是只会写几个接口,他们是真见过体量的。

他们见过数据库扛不住的夜晚,见过消息队列积压的恐慌,见过缓存击穿、服务雪崩、发布回滚、表结构演进、历史包袱、跨团队扯皮,也见过一个系统是怎么从"还能改"一步步变成"谁都不敢动"的。

他们未必写得最快,但他们知道什么不能乱写

他们对单一职责、开闭原则、里氏替换这些原则不是背概念,而是知道什么时候该用、什么时候别乱用;他们对设计模式也不是为了面试背八股文,而是知道哪些模式能救命,哪些只是看起来高级;他们对高可用、扩展性、分层、解耦这些词,也不是 PPT 里的黑话,而是知道这些东西一旦前面没想清楚,后面会以什么方式报复你。

  1. 未来最值钱的,不是手速最快的人

这种经验,在过去只是"有用";在 AI 编程时代,它会变成"稀缺"。

因为未来真正高产的人,不是自己一行一行写代码写得最快的人,而是能给 AI 建立秩序的人。

他知道怎么拆任务、怎么定义边界、怎么约束代码风格、怎么设计目录结构、怎么写真正有用的规范、怎么给 AI 提供稳定的上下文、怎么用测试和评审把系统拉回正确轨道。

说白了,以后比拼的不是"你会不会写代码",而是"你能不能带着一群不稳定的 AI 实习生,把一个复杂系统做下去"。

  1. 真正危险的,不是 35 岁

这件事,太吃基本功了。

而这种基本功,不是看几篇文章、刷几套提示词、玩几个月 AI IDE 就能长出来的。它必须来自真实的工程环境,来自线上事故,来自多人协作,来自改过烂系统、背过锅、做过取舍、理解过成本。

这也是我越来越觉得,35 岁以上程序员的经验会被重新定价的原因。

因为新一代开发者当然也很聪明,工具也更强,但他们越来越少有机会在纯手撸代码时代,完整经历一个系统从小到大、从简单到复杂、从清爽到失控、再从失控到治理的全过程。

可偏偏这种全过程的经验,正是未来 AI 大规模参与软件开发之后最值钱的东西。

  1. 给还在焦虑的朋友一点建议

最近有不少朋友问我,有没有相对稳定、待遇还不错的技术大厂可以推荐。说实话,这种机会确实存在,尤其是那些需要"能带 AI 把复杂系统做下去"的人的团队。

最近有个机会挺适合有经验的程序员:技术大厂,前端-后端-测试,全国均有机会 ,感兴趣可以试一试;待遇和稳定性都还可以~ 这类岗位通常更看重你的系统能力,而不是手速。

当然,这不是年龄送的福利,也不是行业施舍。它只属于那些在"古法编程时代"真正打过硬仗的人。

如果未来软件开发真的进入"人负责方向和秩序,AI 负责执行和铺量"的阶段,那么最值钱的人,恰恰不是最新学会几个 AI 工具的人,而是那些知道系统为什么会失控、也知道怎么把它重新拉回秩序的人。

而这样的人,今天大概率不在 22 岁,也不在 25 岁,大概率就在 35 岁以上。

  1. 最后一句话

我甚至愿意把话说得更狠一点:

AI 不是来淘汰老程序员的。

AI 是来淘汰低水平、低判断力、低抽象能力的重复编码工作的。

而那些真正有工程经验的人,尤其是 35 岁往上、做过后端企业级开发的一批人,春天可能才刚刚开始。

欢迎反驳。

但我建议先分清一件事:

"让 AI 写几个功能"和"让 AI 参与构建并长期维护一个复杂系统",根本不是一回事。

正点原子Linux系列AM62L 开发板

当边缘智能与工业级可靠性完美碰撞,当丰富接口融合进低功耗处理器,新一代高效可靠的Linux板卡就此登场!正点原子重磅推出AM62L开发板,基于德州仪器(TI)最新一代SoC AM62L倾力打造,为工业智能终端、物联网网关和人机交互设备注入全新动能,开启低功耗、高集成、全方位工业场景的无限潜力!

一、工业芯驱动,丰富的工业协议支持

开发板搭载双核ARM Cortex-A53核心,主频1.25GHz,兼顾性能与功耗。双千兆网口、FD CAN、RS-485、ADC、MIPI/RGB显示接口等工业外设一应俱全。AM62L依托TI成熟稳定的生态体系与超长生命周期保障,正点原子AM62L核心板助力开发者以更低的成本、更短的周期,构建坚实、智能的工业级解决方案!

二、精巧架构设计,全接口生态覆盖

采用核心板和底板分离式模块化设计,核心板尺寸仅45mm x 43mm的精巧尺寸,搭配180mm x 140mm标准化底板,通过高稳定性BTB连接器实现稳定互联。核心板非常方便嵌入各类产品中,助力边缘智能落地。

底板接口生态全面拉满,集成串口、多规格USB接口、Wi-Fi/蓝牙双模无线通信、高清音频、千兆以太网等基础接口,更拓展MIPI DSI显示输出、4G-5G广域通信、CAN FD/RS485工业总线、RTC实时时钟等全场景接口,轻松对接各类外设,加速产品原型开发。

三、工业级严苛认证加持

核心板已通过多项严苛工业级认证,经过高低温测试、电磁兼容性测试、CE/FCC认证等。

正点原子AM62L开发板,邀您共同开启智能开发新征程!





















需要先进入 chrome://flags/#vertical-tabs ,将 vertical-tabs 设置为 Enabled ,重启后,在软件顶部空白处右键点击,选择 Move Tabs To The Side ,mac 目前稳定版版本号是 146.0.7680.72 x64 版本。

一代人有一代人的春晚记忆,今年的主旋律是 AI。从《贺花神》的唯美浪漫到《梦底》的亦真亦幻,从小品里机器人的高情商互动到抖音春晚直播间的 AI 实时字幕,再到 19 亿次全民豆包 AI 互动,“过个 AI 年”成为大家关于 2026 春晚的集体回忆。

对于观众来说,大家在屏幕前看到的是舞台效果与节目创意,但对技术团队来说,它更像一次极限压力测试:生成式视频登上春晚大屏需要达到 8K 分辨率、50FPS 高帧率,具身智能交互必须实时可控,抖音直播字幕必须准确及时,豆包 AI 互动必须稳定流畅。每一个单独拎出来都是行业级难题,而春晚的要求是在同一时刻、同一场直播中,全部实现。

作为“2026 年春晚独家 AI 云合作伙伴”,火山引擎将智能视频云的画质增强服务、空间视频等 AI 技术深度融入舞台创作,不仅打造了《贺花神》《驭风歌》《梦底》等多个刷屏瞬间,还保障了春晚 8K、50FPS 的高规格视频上屏要求。此外,今年春晚最受关注的 C 位机器人松延动力等,背后均有火山引擎实时音视频技术的支持,实现了延时低至 1 秒的多模态交互体验。

除了节目本身,本届春晚首次用 AI 驱动全民实时创作互动,春晚当天豆包 AI 互动总数达 19 亿次,火山引擎智能全球加速(IGA)成功承载千万级 QPS 峰值流量,保障了数亿用户的实时交互体验。同时,今年火山引擎视频直播除了保障抖音春晚直播外,也通过火山引擎声影同传支持抖音 AI 字幕直播间,为特殊观众带来了无障碍看春晚的互动体验。

一场极限流量与实时计算的系统级压力测试,是如何被打磨成稳定如常的春晚体验的?技术系统背后的复杂工程,如何转化为亿万观众共享的视觉记忆与连接记忆?

视觉记忆:当 AI 开始“造”画面、“讲”故事

视频生成卷向 8K

今年的春晚节目最出圈的当属《贺花神》,该节目以歌唱四时景象为主题,扮演十二种花的十二位明星依次亮相,AI 生成影像与实景的结合,构建了一种全新的舞台视听叙事结构。

在张杰演唱的作品《驭风歌》中,国宝级水墨画《六骏图》首次实现了动态化演绎。

这些节目背后,都有豆包视频生成模型 Seedance 2.0 的深度参与。当 AI 开始“造”画面、参与舞台表达,艺术的想象力第一次不再完全受限于现实世界的拍摄条件。

但在这些唯美梦幻的视觉效果背后,生成式视频要想走上春晚大屏,必须满足极为严苛的播出标准:8K 分辨率、50FPS 高帧率。目前,全球主流的视频生成模型,如 Seedance2.0、Sora 2 等,通常只能直接输出 720P/1080P、24FPS 的视频内容。

从技术角度看,8K 分辨率与 50FPS 高帧率并不仅仅是“更清晰一点”,而是对整条制作与传输链路的系统级放大考验。以分辨率为例,从 720P 超分到 8K,画面面积需要被放大 64 倍,同时还要确保画面没有锯齿、模糊等情况,并保持素材在 8K 分辨率下稳定流畅的播放效果。

为解决这一技术难题,火山引擎视频与边缘团队依托火山引擎智能媒体处理平台的多维度智能画质增强框架,对 AIGC 内容实施了一场全流程、AI 驱动的“智能精修”

传统视频增强往往依赖人工预设规则,适应性差、效果有限。区别于传统视频增强,火山引擎推出的视频点播画质增强服务,以深度视频理解为基础、精准画质指标决策为核心,实现自适应、高保真、全场景适配的增强能力。该系统的核心理念是 “一镜一策”通过镜头级粒度的 AI 分析,自动识别每一个镜头的内容特征与失真类型,并智能预测最优修复路径,动态组合专属的增强工具链,整个过程无需人工反复调参或试错。

其背后,主要有两大关键技术:超分辨率重建(Super-Resolution)、智能帧率提升(Frame Interpolation)。超分辨率重建能够在不改变原始画面语义的前提下,将 720P 输入智能升频至 8K 级别。不是简单的放大尺寸,还要重建高频细节,使画面在巨幕上依然清晰锐利。智能帧率提升则是针对 AIGC 视频原生 24FPS 的局限,通过先进的时序插帧技术,将帧率平滑提升至 50FPS,并确保生成的中间帧自然连贯,提升动态场景的流畅度,带来“肉眼可见”的观感升级。

除了分辨率和帧率的提升,画质保真同样至关重要。火山引擎为此专门构建了一套 “理解—决策—执行”的三位一体画质增强体系

深度视频理解能够实现实现语义级认知,对画面中的主体区域、关键动作以及复合失真进行精准定位。像压缩模糊、色彩偏移或多场景混合伪影,都能被精准识别出来,为后续增强提供上下文感知基础。多维画质指标决策能融合无参考指标(如 VQScore、SRQA)与全参考评估方法(包括异常检测、纹理保真度评估等),结合动态权重分配与子项协同约束机制,科学量化不同失真对观感的影响,避免传统增强方法“一刀切”的处理方式,真正实现“因片施策”。可组合增强原子能力库内置去噪、锐化、去压缩失真、色彩增强、超分,以及基于 Diffusion 的生成式增强(如 GenDR/DenVR)等高质量原子算法,这些模块可以灵活组合、精准调用,持续抬升智能精修的效果上限。

经过这一整套 AI 驱动的智能精修,最终输出的视频不仅满足了 8K 分辨率与 50FPS 高帧率的播出标准,还有效抑制了 AIGC 视频中常见的微小瑕疵,完整保留了 Seedance 2.0 独特的艺术风格与创意表达。

这次走上春晚大屏或许只是一个开始,随着画质增强等技术不断成熟,生成式视频还将在影视制作、直播内容、XR 场景等领域实现更广泛的应用。更重要的是,这些能力的持续演进,也将让未来更大规模的智能视听应用成为可能。

实现物理世界不存在的空间逻辑

满足 8K 分辨率、50FPS 高帧率的视频要求,是登上春晚舞台的入场券。但当导演提出让六个“刘浩存”同时出现在舞台上时,技术团队面对的已不是画质问题,而是一个物理世界本不存在的空间逻辑。

在海来阿木、刘浩存共同演绎的春晚创意节目《梦底》中,演员刘浩存与 5 位亚毫米级高精度数字分身同台共舞、跨时空互动,亦真亦幻,惊艳出圈。

image

唯美视觉效果的关键在于,火山引擎空间视频技术实时驱动的“3D 数字分身”足够真实,能够营造出强烈的奇幻沉浸感,让观众跟着刘浩存的舞步,一起走进梦境。

与传统的“复制粘贴”式虚拟形象不同,这次春晚舞台上的“3D 数字分身”具备两个关键特征:

  • 透视随镜,立体在场:当导播切换机位、推拉摇移时,屏幕中的数字分身会同步发生符合物理规律的透视变化。比如当镜头扫过侧面时,观众可以清晰地看到演员面部轮廓的起伏与耳廓的阴影,当镜头拉远时,数字分身的空间占位与真实演员完全一致,是真正具有三维坐标的数字个体。

  • 光影共生,实时响应:当舞台追光灯从暖色转为冷色,数字分身身上的高光与暗部也会同步变化;当灯光变暗时,分身脚下的影子随之虚化。虚拟与现实之间的光感一致性,达到了肉眼难以分辨的程度。

要想打造这样真实的“3D 数字分身”,需要先进行 四维重建。演员在专业环绕式采集棚中完成表演,70 台工业级高分辨率相机以球面分布方式同步拍摄,以极高帧率同步捕捉每一瞬间的多视角画面。不仅记录动作本身,还需要记录光线在皮肤与衣物上的反射特性,为后续真实光影渲染提供基础。随后,海量多视角视频流被上传至云端,通过火山引擎自研的 4D 高斯泼溅(4DGS)重建算法进行处理,最终生成高保真的 4D 数字资产——一段可以被实时渲染,可以从任意视角观看的动态三维表演。

完成重建后,这些 4D 资产会被导入 Unreal Engine / Unity 等主流游戏引擎进行实时渲染。为了让虚拟世界与真实舞台实现实时联动,系统需要与导播、灯光系统联动。 虚拟摄像机会实时接收导播台的机位参数,使虚拟渲染视角与电视播出机位保持毫秒级对齐。在与灯光系统联动时,火山引擎团队搭建了一层实时转译机制,将每一路 DMX 信号映射为虚拟引擎中的光源参数,包括颜色、强度、位置和光束角等。当物理灯光发生变化时,虚拟灯光也会同步更新,延迟低于人眼可感知阈值。

当镜头从远景逐渐推进到面部特写时,更严峻的挑战在于,传统实时渲染架构会同时面临算力与逼真度的双重压力。为此,火山引擎空间视频团队首次引入豆包大模型能力,针对“多人”和“近景”两大核心场景进行了优化。

在戏曲这类多人同台的节目中,十几个高精度“3D 数字分身”同台表演,最大的挑战来自 光影计算——如果每个“3D 数字分身”都实时计算完整光影与阴影投射,单台渲染服务器的算力很快就会被耗尽。火山引擎空间视频团队利用豆包 3D 生成模型为每一帧演员生成一个极简的、仅用于阴影计算的几何外壳,渲染时,系统只需要计算这个简化 Mesh 的投影,不需要处理高精度模型的全部几何细节。 通过这种方式,在几乎不影响阴影质量的情况下,计算量降低了 70% 以上。

在近景特写场景中,最大的挑战则是 光影稳定性。当推进演员面部特写时,传统光影重建算法容易出现法线方向抖动,导致光影在帧与帧之间产生“跳变”,降低真实感。火山引擎空间视频团队通过引入豆包 DA3(Depth Anything v3)模型,从单帧画面中稳定推断深度信息,并基于深度计算法线,以此作为先验约束参与光照求解——先有几何确信度,再计算光影变化。 从而彻底消除近景画面中的光影闪烁,让皮肤质感和细节过渡更加自然。

从春晚上的六个“刘浩存”同台共舞,到跻身全国文旅精品的行浸式多维空间剧《只此周庄》,空间视频技术为舞台内容赋予了新的艺术想象力,也为文化内容的记录与传承提供了新的路径。2026 年,火山引擎空间视频团队将继续传承非遗文化,通过 3D 化改造,将更多非遗表演沉淀为高质量的三维数字资产,并通过更高效的生产方式提升 3D 内容产能,将更多优质内容带入 VR 头显设备中。

高情商“赛博孙子”如何成为“奶奶的最爱”?

往年的春晚 C 位属于明星,今年真正站在舞台中央的,是机器人。

在今年的春晚节目中,机器人含量极高。其中,在小品《奶奶的最爱》亮相的松延动力机器人尤为吸睛,他们不仅动作灵活,还能察言观色、主动接话,被网友们亲切地称为“赛博孙子”。

image

这一“高情商”表现的背后,是豆包语音合成模型与火山引擎实时音视频技术的支撑。基于豆包大模型提供的语音识别、视觉理解、语音合成等能力,机器人实现了多模态、高拟人化的实时互动;基于火山引擎的 AI 音视频互动方案,机器人多模态互动延迟压缩到了 1 秒以内,使机器人与人的对话更加自然顺畅,减少了“机器感”。

要把机器人多模态互动的延迟压缩到 1 秒以内,并不是一件容易的事情。相比人与人之间的交流,人与 AI 对话背后的技术链路要复杂得多。 人与人的交互只是经过了音频的采集、处理和传输,但在人与 AI 的对话链路中,还需要将人的声音传到服务端,在服务端完成语音转文本(ASR),同时系统还要判断用户是否已经说完话,最后将文本信息进行思考推理,再交由语音合成系统生成语音,最终再通过网络传回终端播放。这样一条包含识别、理解、推理、合成与传输的完整链路,任何一个环节的延迟都会影响整体体验。

为了降低延迟,火山引擎 AI 音视频互动团队围绕整条人机对话链路进行多个环节的优化。 其打造的 AI 音视频互动方案在传输层通过更完善的弱网对抗策略以及更高效的边缘节点接入机制,将网络传输延迟尽可能压缩。同时,在服务端的语音识别与判停阶段,系统结合传统的语音活动检测(VAD)、基于语义的端点预测(EOU) 以及上下文语义完整性分析等多种算法进行综合判断,更准确地识别用户是否已经说完一句话,并对含噪环境下可能出现的延迟波动进行兜底,从而缩短整体链路时间。

在此基础上,大模型推理和语音合成(TTS)环节也通过缓存机制以及智能切句、断句等策略进一步优化响应速度,最终将机器人多模态互动的延迟压缩到 1 秒以内,造就了春晚舞台上那个能够“察言观色”的“高情商”机器人。

连接记忆:当 AI 开始回应每一个人

舞台上的技术为观众留下的是视觉记忆,手机屏幕前的互动,则构成了今年春晚留下的特别的连接记忆。当亿万观众拿起手机时,他们在等待着来自 AI 的、个性化的、实时生成的回应。

在今年的春晚中,豆包通过一系列创新的互动玩法,打造了一场“边看边玩”的全民互动。除了传统的抢红包,用户还可以通过豆包 App 生成春节专属写真、新春头像、新春贺卡等多类新年主题图片,甚至还能实时生成拜年视频,一键生成马年祝福语。此外,用户也可以在豆包询问“年夜饭”菜谱等实用问题。

数据显示,除夕当天,豆包帮助用户生成了超过 5000 万张新春主题头像、超过 1 亿条新春祝福。豆包 AI 互动总量达到了 19 亿次,大模型峰值 TPM(每分钟 token 数)达到了 633 亿 tokens,创下全民 AI 互动新纪录。

但在技术层面,这样的互动规模更像是一场极端压力测试——流量本身的高度不确定性,会给系统带来巨大的风险。一旦突发流量超出预期,调度系统是否能够快速响应、资源储备是否充足、系统是否存在雪崩风险,都是团队必须要提前考虑的难题。

面对春晚这样的千万级突发流量,在架构层面,主要依赖调度、资源与流量隔离等多维能力进行应对。在调度策略上,突发流量具有“峰值高、持续时间短”的特点,给实时调度系统留下的反应时间非常有限。为此,火山引擎智能全球加速(IGA)的自研调度系统采用“流量预占”策略,在活动开始前,根据全球用户分布情况预估各地区可能出现的流量规模,提前将资源预占并调度到对应的边缘节点,以分散整体压力。

在资源层面,由于冷启动流量的资源消耗往往比常态流量高出 1.5 倍以上,团队需要为活动准备充足的容量储备。一方面通过容器化能力实现快速扩容,同时利用碎片化的小规格资源提升边缘节点利用率,使整体资源利用率提升超过 10%;另一方面需要业务侧配合进行策略优化,例如在活动开始前对部分非核心业务进行降级,并通过端侧流量打散策略,降低系统压力。此外,系统还会通过“熔断隔离”策略为活动流量设置独立限制,例如全局限流、单集群限流、冷启动限流以及回源链路限流等,一旦流量超出预估范围,系统会自动拒绝超出部分请求,从而避免出现全局性雪崩。

AI 技术对观众的回应,不止体现在豆包 AI 互动上。对于听障人士来说,今年的春晚同样格外特别。通过抖音直播的实时字幕功能,他们第一次能够与家人同步“听懂”相声、小品中的包袱和台词节奏。

让这些体验成为现实的,是火山引擎视频直播声影同传产品中的 AI 实时字幕功能。依托豆包语音识别模型,AI 实时字幕功能可以精准识别主持串词、节目台词以及歌曲歌词,并支持多语种与方言识别。在实际表现中,主持报幕与串场内容识别准确率达到 99%,相声、小品等复杂语境下的识别准确率也达到 94%。

为了进一步提升系统可靠性,整套系统还采用了主备链路设计:主备声影同传服务与 ASR 服务同时运行,避免单点故障;审核服务与 ASR 服务通过 Redis 服务解耦,即使审核链路出现异常,也不会影响核心字幕生成链路。

对于春晚,这代人记住的是 AI。

但技术本身不是目的。当生成式视频能走上 8K 分辨率与 50FPS 高帧率的高规格屏幕,能实现物理世界不存在的空间逻辑,能让机器人“高情商”地回应人类,能支撑数亿人的 AI 互动需求,让每个人都能“参与”而非只是“观看”,才是火山引擎在这届春晚背后的真正价值。

技术的温度,是让每一代人都能“记得住”。下一年的春晚,AI 还能带来什么新的“记忆”?答案或许已经在路上了。

一、ERP概念来源

在飞速发展的信息时代,企业竞争实力的积聚更加依赖于信息技术和管理技术的有机结合。

以制造业为代表,越来越多的企业采用ERP这种先进的集管理和信息技术于一体的管理系统,在实践中取得了良好的效果。

今天,当我们探讨制造业的数字化转型时,理解ERP及其核心——MRP的演变与原理,就成为了掌握现代企业管理精髓的关键一环。

ERP,即企业资源计划,是由美国加特纳公司(Gartner Group Inc.)最早提出的一种管理理念;它着眼于在不断发展的信息技术条件下,如何拓展传统的企业管理系统MRPⅡ。MRPⅡ是制造资源计划的简称,这种管理思想最初是美国IBM公司在研究装配型产品的生产与库存管理问题基础之上创立的,后来得到企业界的普遍认可,在制造业得到广泛应用。

ERP的发展经历了以下阶段:

作为一种库存定货计划—MRP,即物料需求计划阶段,也称作基本MRP阶段。

作为一种生产计划与控制系统—闭环MRP阶段。

作为一种企业生产管理信息系统—MRPⅡ阶段。

覆盖供需链信息集成的企业资源计划—ERP阶段。

MRP是在产品结构的基础上,运用网络计划原理,根据产品结构各层次物料的从属和数量关系,以每一个物料为计划对象,以完工日期为时间基准倒排计划,按提前期长短区别各个物料下达计划时间的先后顺序。MRP作为一种库存定货计划,只说明了需求的优先顺序,没有说明是否有可能实现,它是MRPⅡ发展的初级阶段,也是MRPⅡ的基本核心。

闭环MRP在MRP的基础上增加了能力计划和执行计划的功能,构成一个完整的计划和控制系统,从而把需要与可能结合起来。但是,闭环MRP还没有说清楚执行计划后给企业带来什么效益;这种效益又是否实现了企业的总体目标。MRPⅡ实现了物流和资金流的集成,形成了一个完整的生产经营信息系统。它主要完成企业的计划管理、采购管理、库存管理、生产管理、成本管理等功能,MRPⅡ可以在周密的计划下有效平衡企业的各种资源,控制库存资金占用,缩短生产周期,降低生产成本。

八十年代末、九十年代初,随着MRPII系统的普遍应用,以及市场竞争的日趋激烈,一些企业开始感觉到传统的MRPII软件所包含的功能已不能满足企业全范围管理的需求,ERP理论应运而生。

ERP对传统的MRPII系统来讲是一次大的飞跃,它着眼于供应链上各个环节的信息管理,能满足同时具有多种生产类型企业的需要,扩大了软件的应用范围:除财务、分销和生产管理以外,还集成了企业的其他管理功能,如人力资源、质量管理、决策支持等多种功能,并支持国际互联网(Internet)、企业内部网(Intranet) 和外部网(Extranet)、电子商务(E- Business)等等。

ERP采用最新的信息技术,如图形用户界面技术(GUI)、面向对象的关系数据库技术(ORDBMS)、第四代语言和开发工具(4GL/CASE)、第二代客户机/服务器技术(C/S)、JAVA、WEB SERVER、INTERNET/INTRANET技术等等。

二、MRP(物料需求计划)基本原理、产品结构及性质特点

ERP是在MRP和MRPⅡ的基础上发展起来的,为了说明ERP,还得从MRP讲起。当人们想使物流信息同资金流信息集成时,首先要做到物流信息的集成;在一个制造企业内部也就是产、供、销三方面信息的集成。MRP的原理是制造业企业信息化时必须树立的概念,几乎所有ERP软件都包含MRP的功能;MRP可以说是ERP的核心。

1、定货点法

在MRP问世之前,库存计划通常采用定货点法。定货点法是一种使库存量不得低于安全库存的库存补充方法:当库存量降到某一点(定货点),剩余的库存量(扣除安全库存)可供消耗的时间刚好等于定货所需的时间,此时就要下定单补充库存。

在稳定消费的情况下,定货点是一个固定值。当消费加快时,如果保持定货点不变,就会消耗安全库存;如果还要保持一定的安全库存,就必须增加定货量以补充消耗掉的安全库存;如果不增加定货量,又不消耗安全库存,就必须提高定货点,即提前定货。相反,如果消费减缓,就要降低定货点。因此,对需求量随时间而变的物料,定货点会随消费速度的快慢而升降,无法设定一个固定的定货点,如图1所示。

image.png

如上所述,定货点法只能保证稳定均衡消耗情况下不出现短缺,它不能保证消耗量和消耗速度多变情况下不出现供应短缺。“不出现供应短缺”和“降低库存”是两个相互矛盾的目标;为解决这对矛盾的目标,IBM的管理专家约瑟夫·奥列基博士从分析产品结构入手,在1965年提出把产品中各种物料分为独立需求和相关需求两种类型的概念,并进而提出了按需用时间的先后(也就是需求的优先级)及提前期(生产周期或采购周期)的长短分时段确定各个物料需求量的物料需求计划(MRP)解决方案。

2、产品结构

任何制造业的产品,都可以按照从原料到成品的实际加工装配过程,划分层次,建立上下层物料的从属关系和数量关系,确定产品结构。通常,称上层物料为母件,称下层物料为子件。图2以一个简单的方桌为例来解释产品结构。

image.png

方桌这类产品的产品结构是一个上小下宽的正锥形树状结构,其顶层“方桌”是出厂产品,是属于企业营销部门的业务(也是生产部门的最后一道装配或包装工序);各分支最底层物料均为采购的原材料或配套件,是企业供应部门的业务;介于其间的是加工制造件或装配组件,是生产部门的业务。我们把由市场(企业外部)决定性能规格和需求量的物料称为独立需求件,就是说,不是企业所能决定的需求;把由出厂产品决定性能规格和需求量及需求时间的各种加工和采购物料称为相关需求件,就是说,这些物料的需求受独立需求件的制约。

如果我们把结构层次的坐标换成时间坐标,产品结构各个方框之间的连线代表生产周期和采购周期,得到的是“时间坐标上的产品结构” 图,如图3所示。现在,我们就可以根据需求的优先顺序(完工日期或需用日期的先后),按照加工或采购周期的长短,以需求日期为基准倒排计划。时间坐标上的产品结构图相当于关键路线法中的网络计划图,累计提前期最长的一条线相当于产品生产周期中的关键路线,它把企业的“销产供”物料的数量和所需时间的信息集成起来,是物料需求计划基本原理的核心。

image.png

3、物料需求计划逻辑流程

物料需求计划 MRP在产品结构的基础之上,运用网络计划原理,根据产品结构各层次物料的从属关系和数量关系,以每个物料为计划对象,以完工日期为时间基准倒排计划,并按提前期长短区别各个物料计划下达时间的先后顺序。这里“物料”一词是指为了产品出厂需要列入计划的一切不可缺少的物的总称,不仅是通常理解的原材料或零件,而且还包括配套件、毛坯、在制品、半成品、成品、包装材料、工装工具、能源等一切物料。通俗地讲,MRP是一种“既要降低库存,又要不出现物料短缺”的计划方法,其逻辑流程如图4所示。

image.png

从逻辑流程图上看,MRP主要回答了4个问题:

生产什么?

要用到什么?

已经有了什么?

还缺什么?什么时候下达采购或加工计划?

这4个问题是任何制造业在编制计划都要回答的问题,被人们称为“制造业的通用公式”。第一个问题指的是为了满足市场(或客户)需求需要出厂的产品,是独立需求件。产品的出厂计划是根据销售合同或市场预测,由主生产计划(master production schedule,MPS)确定的。第二个问题指的是产品结构或某些在制造过程中必要的资源(如能源、工具等),由产品信息或物料清单来回答。物料清单(bill of material, BOM)是计算机可识别的产品结构数据文件,是MRP的主导文件。第三个问题由库存信息,或者说,由物料的可用量来回答。物料的可用量不同于手工管理的库存台帐,它是一种动态信息。

主生产计划、物料清单和物料的可用量是运行MRP的三项基本输入数据,它们都是手工管理中不曾用到的新概念。其中,主生产计划是最关键的输入信息,它必须能够准确地反映市场需求,它决定物料需求计划的必要性、可行性和稳定性;另外两项是计算需求数量和时间的基础数据,它们的准确性直接影响MRP的运算结果。

4、主生产计划

MRP的三项主要输入,首先就是主生产计划MPS。MPS以出厂产品为对象,按每一种产品分别显示计划报表。报表的生成主要根据预测和合同信息,显示该产品在未来各时段的需求量、库存量和计划生产量。MPS报表格式有横式和竖式两种;横式报表说明需求计算的来龙去脉,竖式报表说明供应数量和时间与需求数量和时间的对应关系。图5是一种MPS横式报表。

image.png

MPS报表与传统的手工计划报表有一些不同之处。首先,由于它要提供每种出厂产品的各种相关信息,因此一张报表只说明一种产品的计划(当然,也可以在此基础上开发能列出各个时间段各产品的出厂计划表,但信息的重点内容会有变化)。其次,在表的上端横向显示的时间段是可以根据管理的需要人为设定的,可以是周,也可以设定为日、月、季、年,也可以开始几个时间段是周,接下来的时间段是月,然后是季;不断向前推移,体现滚动计划的精神,可以非常灵活地应用。

主生产计划是沟通企业的前方(市场、销售)和后方(制造、供应)的重要环节。在主生产计划报表上,有来自市场、销售部门的预测和合同信息,有系统按照设定的规则计算出的毛需求、净需求、计划投入量、计划产出量,有系统根据初始库存及各个时段的净需求与产出的余额计算得出的各个时段的库存量,有系统根据某时段的计划产出量以及下一次计划产出之前各时段合同总量计算得出的各个时段的可供销售量,信息量相当丰富。主生产计划报表是一个体现了信息集成的报表,是一个前方(市场、销售)、后方(制造、供应)各部门都要经常查阅的管理文件。

5、物料清单

MRP的第二项主要输入是产品信息,产品信息用物料清单BOM来体现。BOM反映了产品结构,但它所包含的信息量要远远超过产品结构;它是在物料主文件的基础上建立的管理文件。物料主文件是描述物料各种管理属性和业务参数的管理文档,也可称为物料主记录或物料档案。一种物料可以出现在不同的产品上,但档案只有一份。物料主文件包罗的信息主要有同设计管理、物料管理、计划管理、销售管理、成本管理、质量管理等相关的信息。

image.png

图6显示了BOM的基本内容。对制造业来讲,BOM在MRP/ERP系统中是一个非常重要的管理文件,系统要通过它识别企业所生产的所有产品,几乎企业所有主要的业务部门都要用到它。BOM如同一个管理枢纽,把各个部门的业务有机地联系在一起。

BOM主要有设计BOM和制造BOM两种,此外还有计划BOM、成本BOM等。设计BOM是一种设计文件,通常是从设计功能结构角度来定义产品结构,而制造BOM是一种管理文件,它从实际的制造过程来定义产品结构。制造BOM的最原始的出处是产品设计图纸,但它又不同于图纸上的零件明细表。

首先,它是用数据报表形式来表达产品结构,依据的是产品实际加工装配一直到包装的顺序,而不是设计图纸上所标明的顺序(两者有时是很不一样的),列出结构层次和相关数量。

其次,它包括了出厂产品不可缺少的一切物料,远远超出零件明细表的内容(零件明细表往往仅列出图纸上出现的物料)。此外,它还说明了哪些物料是自制的,哪些是采购的,说明了物料的有效期、成品率及提前期,说明了物料的ABC分类等计划管理和物料管理所需要的信息。制造BOM是一个管理文件而不是技术文件;其准确性非常关键。

6、物料可用量计算

MRP的第三项主要输入是库存信息,通常用“物料可用量”,也就是可以参与净需求计算的物料库存量表示。物料需求计划是一种分时段的计划,物料可用量也是按时段来显示的:

某时段的物料可用量=现有量+计划接收量-已分配量-不可动用量

这里,计划接收量是指正在执行中的定单,目前不在库里,但预期在某个时段即将入库。已分配量指目前虽未出库但已分配用途的物料,它有两种情况:将要供应车间定单使用的原材料或半成品是“生产用分配量”,将要出库发运的成品或备件,是“销售用分配量”。如果规定了“不可动用量”,如等待质量检验或准备向外调拨,也要扣除。以上各种物料数量均按各个时段分别计算。

安全库存量是否动用,要事先在系统中设定;原则上需要时可动用,否则安全库存的缓冲作用就失去意义。但当库存量低于安全库存时,系统会自动生成净需求,提示要补充安全库存。

7、物料需求计划的展开

在了解了MRP的三项主要输入后,让我们来看看它是怎么样展开计算的。我们以图7(a)所示的X、Y两种产品中的A、C两个子件为例(为简化,暂不考虑其它零部件)说明MRP的运算方法。例中A件是产品X 的1层子件,C是X、Y两种产品的通用件,但在两种产品中所处的层次不同,需用的数量(括号内的数字)也不同。MRP的展开计算如图7(b)所示。

图7(b)实际上是由4个报表合并组成的,即成品X、Y的部分MPS报表(仅摘录计划产出量和计划投入量)及物料A和C的MRP报表。MRP报表的格式同主生产计划MPS报表的格式基本上是一样的,只是没有预测、合同和可供销售量等项;请对照图5。为了方便说明MRP的运算方法,把报表上部表头各项集中放在图7(b)的左侧。下面分项解释。

(1)表头栏目。

表头栏目包括以下各项:

a、批量。计划投入量并不总是等于净需求,往往受工艺和设备条件(如热处理装炉量)或采购条件(如供应商或运输要求、折扣优惠等)的影响,要做一些调整。有多种确定批量的方法,通常称为批量规则。

b、已分配量。指库存量中仍在库中但已分配为其他用途的,如已为某订单配套的数量。只要某个订单进入配套、领料或提货阶段,系统会自动记录已分配量,并从预计可用库存量中扣除,然后再运算MRP。

image.png

image.png

c、安全库存量。安全库存量与已分配量不同,它的数量仍包括在预计可用库存量中,只是当库存量低于安全库存量时,系统会自动生成净需求,提示要补充安全库存。表中物料C在时段3和5的净需求量中,都包含有补充安全库存的因素。如时段5,预计可用库存量45本来可以满足毛需求40,但库存结余5小于安全库存10,因此系统生成净需求5。

d、低层码。同一种物料在各种产品中所处的层次可能是不同的;即使在同一种产品上,也可能在不同的层次上出现。如图7(a)中物料C在成品X中出现在第2层,而在成品Y中出现在第1层。MRP运算时,要把MPS中所有产品的通用件汇总起来,合并计算它们在各个时段的需求量。MRP的运算是自上而下展开的,当展开到1层遇到成品Y的C物料时,由于C物料的低层码是2,就是说还会在成品X的2层出现;系统根据C的低层码,把展开到1层的结果暂存,待展开到2层时,再把成品X对C物料的需求量合并在一起,显示运算结果。一个物料出现在系统中各种产品中最低的那个层次,即该物料的低层码。

(2)表体栏目。

图7(b)的右侧为各报表的表体栏目。MRP报表的表体栏目同MPS几乎是相同的。MRP的计划对象是相关需求件,它的毛需求是由上层物料的计划投入量确定的,同预测或合同没有直接关系;也没有可供销售量。

下面用C件在时段1的需求计算来说明MRP的运算方法。某时段下层物料的毛需求是根据上层物料在该时段的计划投入量和上下层之间的数量关系计算的。在时段1,X件的计划投入量为10,引发对A件的毛需求10;A件现有库存量为15,可以满足。但在时段3,A件的预计可用库存量5不能满足毛需求10,系统显示净需求量5,并生成计划产出量5以补足短缺。按A件提前期为2时段倒排计划,在时段1生成A件的计划投入量5。每件A需要2件C,共需10件C。再将Y的计划投入量20对C件的需求20合并,生成C件在时段1的毛需求:(5×2)+20=30

物料有废品率或损耗率时,系统会自动计算增补量,并加到计划投入量中。此时,计划投入量会大于计划产出量。

物料有备件或其它需求时,报表应增加一栏“其它需求”;一般指不经BOM展开或由人工添加的需求。

8、MRP的性质与特点

MRP的原理依据来源于企业生产管理实践,没有复杂的数学理论,只是直观的流程图解,很容易理解。一方面它从分析制造业的产品结构出发,建立“时间坐标上的产品结构”,提出了新的期、量标准概念,另一方面它按照“制造业的通用公式”进行逻辑运算。这两点是MRP最基本的概念和出发点。

MRP的特点是由它的原理决定的。既然强调时间坐标,就意味着按照需求(交货)时间的先后顺序制订计划,是一种“优先级”计划。为了分辨优先顺序,时间段必须细化到周甚至天,是一种分时段的计划。为了快速响应市场,它必须是一种能借助计算机的强大功能进行快速修订的计划。

为了正常运行MRP系统,需要准确把握市场需求,能制定稳定的主生产计划,且计划期要长于总生产提前期,否则无法根据MRP展开结果进行采购。

总而言之,从初期的MRP到集大成的ERP,这一发展历程不仅仅是技术工具的迭代,更是管理思想从局部优化到全局整合的深刻变革。MRP作为ERP的核心,它所蕴含的“制造业通用公式”至今仍是企业实现精益生产、敏捷制造和供应链协同的理论基石。在当今智能化与数字化浪潮的推动下,理解并运用好MRP/ERP的原理,不仅有助于企业优化内部资源配置,提升运营效率,更是其构建核心竞争力、应对未来市场不确定性的战略保障。

【声明】:以上所发文章仅供大家学习参考,请不要作商业用途;ERP系统的专业性很强,文中难免有错误,一旦发现,请联系我们及时更正;文中部分图片源于网络,侵删。

最后感谢图片内容的提供方:织信ERP,该厂商专注企业信息化系统管理10年余,坚持传播生产管理知识,自研低代码开发底座,基于B/S架构,可帮助企业快速构建业务管理所需的各项ERP功能,可根据客户实际作业流程和管理要求实现定制化开发,系统内置自定义开放接口OpenAPI,能够对接所有的管理信息系统,广泛应用于国内外各行各业。

导读 introduction

Agent 能写代码、能调工具,但它不了解你团队的规范、流程和质量标准,每次对话都从零教起,既低效又不稳定。Skill 机制正是为解决这个问题而生:把你的经验和流程结构化地交给 Agent,让它像拿到工作手册一样自主执行。本文从设计原理、编写方法到评测迭代,梳理 Skill 的实践路径,帮助开发者打造高效易用的Agent Skill。

01 Skill 是什么,为什么需要它

1.1 Agent 的先天缺陷

大模型很聪明,但它有一个根本问题:没有你的私域知识和专属能力

你团队的代码规范是什么?做 Code Review 要看哪几个维度?创建一份 PPTX 应该遵循什么品牌样式?这些东西不在训练数据里,每次对话都重新教一遍既低效又不稳定。

更现实的问题是,即使你通过 MCP 给了 Agent 工具调用能力,能读 GitHub、能查 Sentry、能操作 Linear,它依然不知道该按什么流程、什么顺序、什么标准去使用这些工具。而 Skill 就可以提供这些信息,帮助Agent更好地执行任务。

1.2 从 MCP 到 Skill:能力扩展的演进

Agent 能力扩展的路径,经历了几个关键节点:

MCP(Model Context Protocol) 解决了"连接"问题。2024 年 11 月 Anthropic 开源 MCP,让 Agent 能够标准化地调用外部工具和数据源。这是基础设施层面的突破,Agent 终于能"伸手"触达外部世界了。

AGENTS.md 是社区自发的探索。随着 Cursor、Claude Code 等 AI 编码助手的普及,开发者很快意识到一个问题:这些 Agent 能写代码,但不了解项目的技术栈选择、代码风格约定、架构决策背景。于是社区开始在仓库根目录放置 AGENTS.md,用自然语言把项目的上下文和规范写给 Agent 看。

Skill 则是 Anthropic 在 2025 年 10 月正式推出的标准化方案。它把 AGENTS.md 的理念系统化,不仅仅是一个 Markdown 文件,而是一个结构化的文件夹,包含指令、脚本、参考文档和资源文件,形成完整的知识包。随后,Cursor、Windsurf 等产品也纷纷推出类似机制,Skill 正在成为 Agent 能力扩展的主流范式。

1.3 Skill 的核心设计:渐进式披露

Skill 最精妙的设计在于它的三级渐进式披露(Progressive Disclosure)机制,不会一次性把内容全塞给模型,而是分层按需加载:

第一级:YAML frontmatter 中的 description 字段。 本质上是一段结构化的自然语言声明,包含三层信息:这个 Skill 干什么用("分析 Figma 设计稿并生成开发交付文档")、核心能力是什么("设计规范提取、组件文档生成、标注导出")、什么时候触发("当用户上传 .fig 文件或要求'设计转代码交付'时")。它始终存在于 Agent 的系统提示词中,作用类似索引,当用户输入到来时,Agent 拿请求和所有 Skill 的 description 做匹配,命中了才加载对应 Skill 的完整内容。这个设计意味着你可以同时挂载几十个 Skill,而激活判断的成本只是几十行短文本的比对,不需要把所有 Skill 的完整指令都塞进上下文。

第二级:SKILL.md 正文。 当 Agent 判断某个 Skill 与当前任务相关时,才会读取 SKILL.md 的完整内容。这里包含核心指令、工作流程和关键示例。

第三级:references/ scripts/references/ 目录下的详细文档、scripts/ 下的可执行脚本,这些只在 Agent 执行过程中确实需要时才会去查阅或调用。

为什么要这么设计?它解决了两个实际问题:

  1. Token 效率:不把所有知识一股脑塞进上下文,避免信息过载。
  2. 注意力聚焦:模型的注意力机制在上下文越长时衰减越明显,渐进式披露让模型在每个阶段只关注最相关的信息。

1.4 怎么组织和安装 Skill

当 Skill 越写越多,散落在各处很快就会失控。推荐一开始就用Git仓库统一管理。

team-skills/
├── code-review/
│   └── SKILL.md
├── react-state-management/
│   ├── SKILL.md
│   └── references/
├── sprint-planning/
│   ├── SKILL.md
│   └── scripts/
└── ...

好处很直接:版本有记录,团队能协作,跨仓库安装迅速。

安装到具体的 Agent 平台时,各家的路径约定不同,但社区已经有了统一的解决方案,Vercel 开源的 skills CLI 工具,一条命令兼容多平台:

# 从 GitHub 安装,自动识别当前环境并放到正确的位置
npx skills add https://github.com/your-team/skills/tree/main/code-review
# 支持 Claude Code、Cursor、Windsurf 等主流 Agent 平台
# 无需关心各平台的路径差异

当然,你也可以手动放置安装。因平台和场景而异路径约定不同,以Claude Code为例:

Claude Code:

# 项目级(只在当前项目生效)
.claude/skills/code-review/SKILL.md
# 全局级(所有项目生效)
~/.claude/skills/code-review/SKILL.md

社区实践一瞥

Skill 的生态正在快速成长。Anthropic 官方提供了一批高质量 Skill, 在anthropics/skills 仓库,尤其是 pdfskill-creatorfrontend-design 这几个,它们很好地展示了渐进式披露和脚本自动化的最佳实践。这些 Skill 本身就是很好的学习范本。

社区层面,Asana、Atlassian、Figma、Sentry、Zapier 等厂商已经为自己的 MCP Server 配套了 Skill。独立开发者也在持续贡献,从前端设计到代码审查,从数据分析到项目管理,可用的 Skill 库正在不断扩大。

02 如何编写一个 Skill

2.1 基本格式

一个 Skill 在文件系统中是一个文件夹,最小结构只需要一个文件:

your-skill-name/
├── SKILL.md          # 必须,入口文件
├── scripts/          # 可选,可执行脚本
├── references/       # 可选,参考文档
└── assets/           # 可选,模板、图标等资源

命名规则简单但严格:

  • 文件夹名用 kebab-casemy-cool-skill 是正确的,而My Cool Skill 以及my_cool_skill 等都是无效的。
  • 入口文件必须精确命名为 SKILL.md,大小写敏感,skill.mdSKILL.MD 都不行
  • 不要在Skill文件夹内放README.md(所有文档放在SKILL.md或 references/ 中)

SKILL.md 的结构分两部分:YAML FrontmatterMarkdown 正文

---
name: my-skill-name
description: 做什么。在用户说"XXX"时使用。核心能力包括 A、B、C。
---
# My Skill Name
## Instructions
具体的指令内容...

Frontmatter 用 --- 包裹,其中 namedescription 是必填字段。正文用标准 Markdown 编写,包含 Agent 执行任务时需要遵循的具体指令。

2.2 工作原理

理解 Skill 的工作原理,有助于写出更有效的 Skill。核心流程是这样的:

阶段一:常驻索引。 你安装的所有 Skill 的 description 字段会被注入到 Agent 的系统提示词中。Agent 在每次对话开始时就"知道"自己拥有哪些 Skill,但不知道具体内容。

阶段二:激活读取。 当用户的请求与某个 Skill 的 description 匹配时,Agent 会使用内置工具(如 viewread 命令)读取该 Skill 的 SKILL.md 完整内容。这一步对应 messages[] 中的一个工具调用。

阶段三:执行与深入。 Agent 根据 SKILL.md 中的指令开始执行任务。如果指令中引用了 references/ 下的文档或 scripts/ 下的脚本,Agent 会在需要时再去读取或执行它们。

用 API 的 messages[] 视角来看,一个典型的 Skill 调用大约是这样的

用户消息 → Agent 识别需要 Skill → [工具调用: 读取 SKILL.md] 
→ Agent 获得指令 → [工具调用: 执行任务步骤] → 返回结果

这意味着 Skill 的激活本身会消耗 1-2 步工具调用。所以 description 写得准不准,直接影响 Token 消耗和响应速度,误触发意味着浪费,漏触发意味着能力缺失。

03 编写优质的 Skill

一个 Skill 能不能用和好不好用,差距巨大。这个差距主要体现在两个地方:Description 决定"什么时候用",Body 决定"用起来效果如何"。

3.1 Description:激活的精准度

Description 是整个 Skill 体系中最关键的一行文字。它决定了 Agent 在什么场景下会加载你的 Skill,写得不好,要么该用的时候不触发(under-triggering),要么不该用的时候乱触发(over-triggering)。

三大要素: 一个好的 Description 需要同时回答三个问题

  1. 能做什么:这个 Skill 的核心价值是什么
  2. 核心能力:具体包含哪些能力
  3. 激活条件:用户说什么话、做什么操作时应该触发

正面案例:

# 清晰、具体、包含触发短语
description: >
  分析 Figma 设计稿并生成开发交付文档。当用户上传 .fig 文件、
  要求"设计规范"、"组件文档"或"设计转代码交付"时使用。
# 明确的服务边界和触发词
description: >
  管理 Linear 项目工作流,包括迭代规划、任务创建和状态跟踪。
  当用户提到"迭代"、"Linear 任务"、"项目规划"或要求
  "创建工单"时使用。

反面案例:

# 太模糊,几乎什么都能匹配
description: Helps with projects.
# 缺少触发条件,Agent 不知道什么时候该用
description: Creates sophisticated multi-page documentation systems.
# 过于技术化,没有用户视角的触发词
description: Implements the Project entity model with hierarchical relationships.

防止过度触发的技巧: 如果你的 Skill 经常在不相关的场景被加载,可以在 Description 中加入"负向触发"说明:

description: >
  CSV 文件的高级数据分析,包括统计建模、回归分析、聚类。
  不要用于简单的数据浏览(那个用 data-viz skill)。

3.2 Body:执行的效果

Description 写好了只是让 Skill 在对的时间出现,Body 的质量才决定最终效果。根据使用场景,Body 通常呈现两种形态:

形态一:知识文档型

适用于需要 Agent 掌握特定领域知识或遵循特定标准的场景。

核心要素:

  • 领域知识:把你的专业判断和决策逻辑写成 Agent 可以理解的规则
  • 质量检查清单:明确定义"什么算做好了",让 Agent 在交付前自查
  • Few-Shot 示例:给出 2-3 个输入输出的范例,比抽象描述有效得多
## Code Review Standards
### Critical Checks (must pass)
1. No hardcoded credentials or API keys
2. All user inputs sanitized
3. Error boundaries on async operations
### Quality Checks (should pass)
1. Functions under 50 lines
2. Meaningful variable names (no single letters except loop counters)
3. Comments explain "why", not "what"
### Example Review
**Input:** A React component with inline styles and no error handling
**Expected output:**
- Flag: inline styles → suggest CSS modules or Tailwind
- Flag: missing error boundary → provide template
- Pass: component size reasonable
- Suggestion: extract magic numbers to constants

形态二:工作流型

适用于多步骤、有固定流程的任务。

核心要素:

  • 步骤清晰:每一步做什么、调用什么工具、预期输出是什么
  • 步骤间校验:上一步的输出满足条件才进入下一步,而不是盲目往下走
  • 可循环迭代:对质量不达标的输出能回到前面的步骤重做
## Sprint Planning Workflow

### Step 1: Gather Context
Fetch current project status from Linear.
**Validation:** Confirm at least 1 active project returned.

### Step 2: Analyze Velocity
Calculate team velocity from last 3 sprints.
**Validation:** Velocity data covers at least 2 complete sprints.

### Step 3: Draft Plan
Create task breakdown with estimates.
**Validation:** Total story points ≤ average velocity × 0.85 (buffer).

### Step 4: Review & Adjust
Present plan to user. If user requests changes:
→ Return to Step 3 with modified constraints.

### Step 5: Execute
Create tasks in Linear with labels and assignments.
**Validation:** All tasks created successfully, no API errors.

3.3 进阶技巧:分层与自动化

多层渐进:SKILL.md 只放核心指令和工作流主干。详细的 API 文档、完整的示例库、边缘场景的处理方案,都放到 references/ 目录下,在正文中用明确的路径引用:

Before writing API queries, consult `references/api-patterns.md` for:
- Rate limiting guidance
- Pagination patterns  
- Error codes and handling

这样既保证 Agent 知道有这些资源可用,又不会在每次激活时都加载全部内容。

脚本自动化: 凡是可以用代码确定性完成的事情,就不要让模型用自然语言"理解"着去做。模型理解自然语言有概率性,但代码执行是确定性的。

官方的 PDF、DOCX、PPTX 等 Skill 大量使用了这个模式,核心的文档生成逻辑封装在 Python 脚本中,SKILL.md 只负责告诉 Agent 什么时候调用哪个脚本、传什么参数。

04 基于评测迭代

写完 Skill 不是终点。Skill 本质上是给概率性系统写的指令,"我觉得写得挺好"和"它确实在各种场景下都表现稳定"之间,往往隔着好几轮迭代的距离。评测不是锦上添花,而是 Skill 开发流程中不可省略的一环。

4.1 核心理念:像对待 Prompt 一样对待 Skill

Skill 的 Description 是系统提示词的一部分,Body 是任务执行时的指令集。这使得 Skill 开发和 Prompt 开发面临相似的挑战,而 Prompt 开发有一个被反复验证的基本事实:你无法靠直觉判断一段指令的好坏,只能靠在真实场景中反复测试来验证

这引出三个关键原则:

原则一:分层评测。 Description 和 Body 解决的是完全不同的问题,前者决定"什么时候用",后者决定"用起来效果如何"。它们的评测方法、评测标准和迭代策略完全不同,必须分开处理。

原则二:对照实验。 "好不好"是相对概念。一个 Skill 的输出质量,只有和某个基线对比才有意义。这个基线可以是没有 Skill 时的裸跑效果,也可以是上一个版本的 Skill。没有对照组,改进就无从衡量。

原则三:人类参与。 自动化评分能覆盖格式、结构、字段完整性这类客观检查,但 Skill 真正的价值,比如审美判断、业务适配度、专业深度,只有人能评估。评测流程的设计必须让人的判断能高效地注入迭代循环。

4.2 评测 Description:触发的精准度

Description 评测要回答一个简单的问题:Agent 在该用这个 Skill 的时候用了吗?在不该用的时候没用吧?

理解触发机制

在动手测之前,先理解两个关于触发的事实:

事实一:Agent 只在觉得自己搞不定时才找 Skill。 简单的一步操作(比如"读一下这个文件"),即使 Description 完美匹配也可能不触发,因为 Agent 判断自己直接就能完成。这意味着你的测试用例必须足够复杂,不然你测的不是 Description 好不好,而是任务够不够难。

事实二:Agent 天生偏向欠触发(under-triggering)。 Description 要写得主动一点,把边界往外推。比如不只写"分析 Figma 设计稿并生成交付文档",而是追加"当用户提到设计规范、UI 组件文档、设计转代码交付,甚至只是上传了 .fig 文件但没明说要干嘛时,都应该使用"。

还有一个常见错误:把"什么时候该用这个 Skill"的信息写在 Body 里。Body 是触发之后才加载的,写了也没有任何帮助。所有触发相关的信息,必须且只能写在 Description 中。

构建评测集

准备 16-20 条测试 query,分两组:

  • 应触发组(8-10 条):覆盖不同的表述方式,正式的、口语的、没有明确提到 Skill 名称但显然需要它的
  • 不应触发组(8-10 条):重点选近似场景,而非明显无关的请求
[
  {
    "query": "我们团队要移除 less-loader,把 .less 文件全部转成 PostCSS 方案。项目比较大有 200 多个 LESS 文件,有复杂的 mixin 嵌套,用哪种方式风险更低?",
    "should_trigger": true
  },
  {
    "query": "项目已经在用 PostCSS 了,现在想加 postcss-px-to-viewport 做移动端适配,postcss.config.js 不知道怎么写。",
    "should_trigger": false
  }
]

构建评测集时最容易踩的坑:

  • 测试 query 太干净。 "请帮我做代码审查"这种教科书式的指令在真实场景中几乎不存在。真人会带上文件路径、个人上下文、前因后果,甚至拼写错误和口语缩写。你的测试 query 越像真人说的话,评测结果越有参考价值。
  • 反例太容易。 "写一个斐波那契函数"作为 CSS 迁移 Skill 的反例毫无价值。最有意义的反例是那些共享了关键词但实际需要别的工具,或者触及了 Skill 的领域但处于一个不该触发的上下文中的 query。这些边界 case 才能真正检验 Description 的区分度。
    code-review skill的触发测试
    less-to-postcss skill的触发测试

执行评测

逐条把测试 query 发给 Agent,观察它是否加载了对应的 Skill。记录结果,计算两个指标:

  • 召回率:应触发组中实际触发的比例(衡量"该用的时候用了没")
  • 精确率:不应触发组中正确未触发的比例(衡量"不该用的时候克制住了没")
💡 一个快速调试技巧:直接问 Agent "你什么时候会使用 [skill-name] 这个 Skill?",它会把 Description 复述回来,你可以据此判断它的理解是否与你的意图一致。

迭代改进

根据失败 case 分析原因,调整 Description:

  • 漏触发居多:补充更多触发关键词和场景描述,把边界推得更宽
  • 误触发居多:增加负向说明("不要用于..."),收窄适用范围
  • 两者都有:Description 可能定位模糊,需要重新理清这个 Skill 的核心边界

每次修改后,用完整评测集重跑,对比前后得分。注意不要只盯着失败的 case 做针对性修补。Description 最终要面对的是无穷多种真实 query,过拟合到几条测试用例没有意义。

4.3 评测 Body:输出质量

Body 的评测比 Description 复杂得多,因为"好不好"不是布尔值,而是一个多维度的质量判断。核心方法是有 Skill 和无 Skill 的对照实验

Step 1:设计测试用例

准备 2-5 个代表性的测试任务。好的测试用例有几个特征:

  • 覆盖 Skill 的核心能力,不要只测边缘功能
  • 有明确的可判断的输出,而不是开放性的问答
  • 复杂度接近真实使用场景,太简单的任务区分不出有无 Skill 的差异

每个测试用例准备好输入材料(需要审查的代码、需要分析的数据、需要处理的文档等)。

Step 2:对照实验

对每个测试用例,分别跑两次:

  • 实验组:正常加载 Skill,执行任务
  • 对照组:不加载 Skill(或加载旧版本 Skill),执行相同任务

关键要求:用相同的 Agent、相同的输入、相同的系统环境。唯一的变量是 Skill 的有无或版本差异。

把输出保存在结构化的目录中,方便后续对比:

eval-workspace/
├── iteration-1/
│   ├── test-case-auth-module/
│   │   ├── with-skill/
│   │   └── baseline/
│   ├── test-case-api-refactor/
│   │   ├── with-skill/
│   │   └── baseline/
│   └── ...

Step 3:定义评判标准

在看结果之前(避免结果影响标准),先想清楚"什么算好"。评判标准分两类:

可程序化验证的客观标准,用脚本直接检测:

  • 输出文件格式是否合法(JSON schema 校验、文件是否可打开)
  • 必要字段是否存在
  • 是否满足特定的结构要求

需要人判断的主观标准,形成检查清单:

  • "每个问题是否附带了具体的修改建议,而非仅描述问题"
  • "是否有将正确代码误标为问题的情况"
  • "输出的优先级排序是否合理"

对于写作风格、设计审美这类高度主观的 Skill,不需要勉强定义细粒度标准,直接看输出、做整体判断,反而更有效。

Step 4:评分和对比

逐个翻看每个测试用例的两组输出,记录:

  1. 客观检查项的通过情况:跑脚本,统计通过率
  2. 主观判断和具体反馈:哪里好、哪里差、哪里出乎意料。反馈要写具体。"输出不够好"没有行动指引,"安全维度的审查遗漏了 SQL 注入风险,建议在 Skill 中增加 OWASP Top 10 检查清单"才能指导改进
  3. 效率数据:如果可获取,记录 token 消耗和响应时间,避免质量提升以不可接受的效率代价为前提

最终形成一个清晰的判断:Skill 版本在哪些维度上比基线好、在哪些维度上持平、在哪些维度上退步了

Step 5:分析和改进

基于评分结果和具体反馈,修改 Skill。这一步是整个迭代中最需要判断力的环节,几个关键原则:

从反馈中提炼通用规律,别过拟合到具体用例。 Skill 最终要在无数不同的真实任务上运行,你现在只是用几个测试用例来快速迭代。如果某个改动解决了测试用例 B 的问题但让测试用例 A 退步了,大概率你在做过于针对性的调整。好的改动应该是普适的。

保持指令精简。 如果能获取到 Agent 的执行过程(而不只是最终输出),仔细看看它在做什么。如果 Agent 花了大量步骤在做无用功,找到 Skill 中导致这些无用功的指令,砍掉试试。冗余的指令不只是浪费 token,还会分散模型的注意力,降低真正重要的指令的执行质量。

解释 why 而不是堆 MUST。 如果你发现自己在写 ALWAYS 或 NEVER 这种全大写的硬约束,先停下来想想,能不能换成解释"为什么这件事重要"。模型理解了原因之后,执行的灵活性和准确度通常都比死记硬背的规则好。硬约束应该留给那些真正不可违反的底线,而不是泛滥在每一条指令里。

关注重复劳动。 如果你在多个测试用例的输出中发现 Agent 都独立编写了类似的辅助脚本或做了类似的预处理工作,这说明这个步骤应该被提炼到 Skill 的 scripts/ 目录下直接复用,而不是每次让 Agent 从头造轮子。

常见问题和改进方向参考:
body的评测结果 - 有无skill对比
body的评测结果 - 经过迭代对检出问题细节优化

4.4 循环迭代

把上面的步骤连成闭环,每一轮迭代的流程是:

  1. 跑对照实验:在新的目录下同时跑所有测试用例的实验组和对照组
  2. 评分:客观指标跑脚本,主观维度人工判断
  3. 分析反馈:哪里好了、哪里退步了、哪里还不够
  4. 改 Skill:基于反馈修改 SKILL.md 或脚本,遵循上述改进原则
  5. 重跑:用完整评测集验证改动效果

对照组的选择取决于你要回答的问题。如果是新建 Skill,对照组就是没有 Skill 的裸跑,你要证明 Skill 的存在有价值。如果是改进已有 Skill,对照组可以是旧版本,你要证明改动带来了正向提升。

终止条件:反馈趋于空白(没什么要改了)、你已经没有更多手段继续改进、或者你对输出质量满意了。不需要追求完美,Skill 和代码一样,可以持续迭代,在实际使用中收集到新的失败 case 时随时回来改进。

4.5 案例:Skill 迭代的实际路径

案例一:Skill-Creator 的三次进化

Anthropic 官方的 Skill-Creator 本身就经历了迭代式演进:

  • 第一版(创建):帮用户从自然语言描述生成 SKILL.md,输出格式正确的 Frontmatter 和基本指令结构。核心价值是降低上手门槛。
  • 第二版(创建 + 优化):增加了分析与改进的能力,将自身能力边界进行了拓展,可以承接几乎所有与Skill相关的工作,因此其description也变得更为激进。用户指出Skill执行时的问题和现象后,可以自主改进Skill内容并给出建议。
  • 第三版(自动评测优化):基于完整的评测改进循环理论进行构建,不仅仅为生成、改进内容工作负责,也为Skill的最终运行效果负责。这一版可以基于需求生成评测用例、创建评分机制、运行评测、评价汇总、循环改进,完成Skill编写的同时给出效果结论。

案例二:Code-Review Skill 的质量提升

一个更贴近业务的例子,代码审查 Skill 的迭代过程:

  • 第一版(简单 Prompt):一段直白的 Markdown 指令,列出审查维度和注意事项,以及项目隐式需要注意的的点。效果还行,但输出质量波动大,有时遗漏重要问题,有时对细枝末节过度关注,如果git diff的文件信息过多上下文会超出导致失败。
  • 第二版(多 Agent 组合架构):引入 SubAgent 模式,每个 Subtask Agent 只持有一个文件的diff + 源码,不会被其他文件干扰。单 Agent 串行审查时,随文件数增加上下文污染越来越严重;并发子Agent 则始终保持干净的注意力窗口。把一次 Code Review 拆解为多个阶段,总览分析(掌握全局)、分维度审查(安全、性能、可维护性分别深入)、使用子agent交叉验证(排除误报)、去重合并(消除冗余)、最终报告(按优先级排序输出)。每个阶段有明确的输入输出契约和质量检查点。依赖文件系统,有明确的“任务是否全部完成”的可检查标准,即使因为网络超时中断,也可以恢复继续处理任务,单个子任务失败不影响其他任务的完成,失败的任务重新跑而无需跑整个PR。

两个版本在相同的 20 个 PR 上跑评测,用 Grader Agent 评估输出质量、覆盖率和误报率,第二版在三项指标上均有明显提升。


05 总结

Skill 正在统一 Agent 能力扩展的途径。 从 MCP 提供工具连接,到 AGENTS.md 的社区探索,再到 Skill 的标准化方案,Agent "学习新技能"的方式正在收敛。渐进式披露的设计不仅节省 Token,更重要的是提升了模型的注意力分配效率。以自然语言为载体的知识表达,比硬编码的逻辑更灵活,也更 Agentic。

广泛的社区 Skill 可以直接提升生成效果。 Anthropic 官方的文档生成 Skill(PDF、DOCX、PPTX)、前端设计 Skill,以及社区贡献的各类工作流 Skill,都可以拿来即用。在你动手定制之前,先看看现有 Skill 能否满足需求。

定制化 Skill 是让 Agent 在你的场景中真正好用的关键投入。 通用的 Agent 能力就像一个聪明但不了解你业务的新人,Skill 就是你给他的工作手册。Description 的精准度决定了它出现在正确的场景,Body 的质量决定了它在场景中的表现。这两者都有明确的设计原则和可遵循的技巧。

评测是 Agentic 工程必不可少的环节。 不只是工具开发、系统开发需要评测,Skill 开发同样需要。拍脑袋觉得"差不多了"和用数据验证"确实好了"之间,往往隔着好几轮迭代的距离。基于评测的循环优化,评测、分析、改进、重新评测,是通往高质量 Skill 的可靠路径。

回过头看,Skill 做的事情并不复杂:把你本来每次都要重新交代的经验、流程和标准,整理一次存下来,之后 Agent 自己就知道该怎么做了。省掉重复劳动,换来稳定可预期的输出。

3 月 2 日至 5 日,2026 年世界移动通信大会(MWC 2026)在西班牙巴塞罗那举行,期间华为成功举办国家政务服务高峰论坛。融云深度参与此次盛会,作为成员见证了“全球政务服务生态联盟”的正式成立,并在华为展区“Open Speech”环节发表了演讲。

图片

峰会上,融云副总裁宋清晨受邀与多位行业领袖共同登台,见证了“全球政务服务生态联盟”的正式成立。该联盟旨在汇聚产业力量,加速“AI+政务服务”在全球范围的落地普及。

融云作为全球智能通信云领域的专业力量,将与联盟各方及全球伙伴紧密协同,共拓数字时代政务服务新蓝海。

在 MWC 2026 华为展区的“Open Speech”环节中,融云全球解决方案负责人黄河发表了题为《超越连接:从通信平台到智能工作生态》的演讲。

图片

作为通信云领创品牌,融云已连续 10 年蝉联中国专业即时通讯云市场份额第一,并构建了覆盖全球 233 个国家和地区、拥有 3000 多个节点的通信网络。

随着技术的不断迭代进化,数字化转型的下一个关键在于如何将碎片化的通信工具转化为统一的智能系统。而此前打造中国移动“飞信”产品、主导印度通信平台“Jio Chat”和沙特国家级通信产品“Beem”的规模化产品运营经验和国民化技术积累,使融云能够跳出单一工具逻辑,从基础设施层级审视系统如何通过学习工作流来提升组织效能。

图片

图片

在全球化服务中,融云与华为云深度协同,已在沙特阿拉伯、阿曼等地区取得了显著成效。双方于云底座合作、技术架构改善、资源管理提效等方面,为政务与企业数智化转型开辟了切实可行的路径。

未来,融云将继续深化与华为“全球政务服务生态联盟”的合作,将多年积累的通信能力与前沿的 AI 技术相结合,在数智时代为全球数字政务和企业转型提供更加坚实、智能的交互底座。

随着 AI 智能体平台 OpenClaw 火遍全网,高德开放平台也带来了一个重磅好消息:我们把部分常见地图能力打包成了 Skills,发布到 ClawHub!

这意味着,以前那些让人头疼的繁琐操作,现在有了全新的解法。过去传统模式,用户搜索地理位置需要浏览器打开地图,LBS 相关编程需要查资料,写代码,数据可视化分析需要开发或借助专业平台,每一个环节都是对时间与精力的消耗。现在AI新模式,用户只需安装Skill、自然语言描述需求,直接生成结果。简单一句话,搞定复杂事。

图片

Skill 核心功能介绍

我们提供了基于高德地图的两个类型的 Skills。

一、基于地理信息的生活/办公助手
智能搜索与规划:匹配用户地理信息相关的搜索、规划需求,提供页面展示信息。
数据可视化分析:匹配用户数据分析、上图需求,根据用户数据,提供可视化展示页面。

二、基于高德地图的网站生成助手
诉求即产品:用户输入产品诉求,即可生成网站,并能在本地交互。

Skill 应用场景案例

场景一:一句话,完成地点搜索

用户指令:“搜索天坛公园。”
Skill 响应:直接返回天坛公园的详细信息卡片。

场景二:旅游规划, 复杂行程秒级生成

用户指令:“帮我规划一下北京动物园一日游。从北京南站出发,先去附近的酒店,然后去动物园,最后去附近的餐厅吃饭。”
Skill 响应:自动拆解需求,生成包含“北京南站-酒店-动物园-餐厅”的完整时间轴路线图,预估各段耗时,并推荐具体酒店和餐厅选项,形成一份可执行的电子路书。

场景三:数据可视化,数据瞬间变图表

用户指令:“我有一份地理信息点位数据,帮我用热力图的形式展示出来。”
Skill 响应:解析上传的数据文件,自动调用高德可视化组件,渲染出热力图,直观呈现商业密度分布,支持缩放与详情查看。

场景四:输入诉求,本地生成网站

用户指令:“使用高德地图 JS API ,开发一个 POI 搜索与路径规划的应用。”
Skill 响应:立即生成完整的网站代码,用户即可在本地交互。

Skill 使用方法

1、安装OpenClaw环境。
2、安装高德地图 Skills。
clawhub install amap-jsapi-skillclawhub install amap-lbs-skill 
3、配置Skill : 在高德开放平台申请 Web 服务 key,填入 Skill 配置 。https://lbs.amap.com/api/webservice/create-project-and-key
图片

4、大模型自动匹配调用。

快来体验这种“动口不动手”的地理智能新玩法吧!高德开放平台上线了 Skill 专区,欢迎各位前往体验!

👇高德开放平台官网链接:
https://lbs.amap.com/api/skill/ready-to-use/summary