包含关键字 typecho 的文章

1.抢票之前要先挑好抢哪趟车次。
2.最好抢始发站到终点站的车次。
3.提前在手机 12306APP 上找到哪一天有票。
4.选择有票的那一天,先点击预定,进入信息填写页面,选择好乘车人和座位信息。
5.点击上面的日历进入选择日期页面。
6.等到开票的那一瞬间选择你要乘车的日期。
7.下单。


最近几年我都是靠上面的步骤抢到票的。只有一次没抢到,然后立马换了另一个又贵又慢的车次抢到了。

补充下开票时间(这两个地址是刚刚找到的,准确性待验证,明天可以验证下):
https://www.12306.cn/mormhweb/zxdt/201411/t20141126_2316.html
https://www.12306.cn/index/view/infos/sale_time.html

构建过 AI agent 的人大概都遇到过这种情况:LLM 返回的数据"差不多"是你要的但又不完全对。比如会遇到字段名拼错了数据类型不对,或者干脆多了几个莫名其妙的 key。

这是问题出在哪?当前主流的 agentic AI 系统处理输出的方式太原始了,比如说脆弱的 JSON 解析、基于 prompt 的 schema 约束、各种后处理 hack。这套东西在 demo 里能跑通,到了生产环境就是定时炸弹。

PydanticAI 提供了一个根本性的解决方案:类型安全的 LLM 响应。它能把 AI 输出直接转换成经过验证的 Python 对象,配合 CrewAI 这类 agent 框架使用效果是相当不错的。

本文会介绍 PydanticAI 的核心概念,解释为什么类型化响应对 agent 系统如此重要并给出与 CrewAI 集成的实际代码示例。

LLM 输出的核心问题

Agentic 框架功能很强,但在最基础的环节:数据契约上,表现得相当糟糕。

典型的 agent 开发流程是这样的:先让 LLM 返回 JSON,然后祈祷它遵循你定义的 schema,不行就加重试逻辑,最后发现还是得手写验证器。这套流程走下来,agent 变得不稳定,失败时没有任何提示,调试起来痛苦万分。

类型化系统正是为了解决这个问题而存在的。

PydanticAI 是什么


PydanticAI 把 LLM、Python 类型系统和 Pydantic 模型组合在一起。核心理念很简单:LLM 响应必须符合预定义的 Python 类型,不符合就直接报错。

没有残缺数据,没有静默失败,没有靠猜。

为什么 CrewAI 需要这个

CrewAI 的强项在于多 agent 协调、角色分配和任务分解。但 agent 之间的数据传递、工具调用、记忆持久化,都需要结构化输出作为基础。这正是 PydanticAI 填补的空白——它提供了一个可靠的契约层。

安装

 pip install pydantic-ai crewai openai

设置 OpenAI API key:

 export OPENAI_API_KEY="your-key"

第一个示例:类型化响应

从最简单的场景开始。

定义一个响应模型:

 from pydantic import BaseModel  
   
 class Summary(BaseModel):  
     title: str  
     key_points: list[str]  
     confidence: float

这不是注释或文档,这是硬性契约。

创建 agent:

 from pydantic_ai import Agent  
from pydantic_ai.models.openai import OpenAIModel  

model = OpenAIModel("gpt-5-mini")  

agent = Agent(  
    model=model,  
    result_type=Summary  
 )

运行:

 result = agent.run_sync(  
     "Summarize the benefits of typed AI agents"  
 )  
   
 print(result.title)  
 print(result.key_points)  
 print(result.confidence)

这里发生了什么?LLM 被强制返回符合 Summary 结构的数据,验证自动进行,输出不合法会触发重试或直接失败。这才是可以上生产的 LLM 输出。

Agent 间的数据契约

来看一个更实际的例子:两个 agent 协作。

研究 agent:

 class ResearchResult(BaseModel):  
    topic: str  
    findings: list[str]  

research_agent = Agent(  
    model=model,  
    result_type=ResearchResult  
 )

写作 agent,负责消费研究 agent 的输出:

 class BlogDraft(BaseModel):  
    headline: str  
    sections: list[str]  

writer_agent = Agent(  
    model=model,  
    result_type=BlogDraft  
 )

协作流程:

 research = research_agent.run_sync(  
     "Research typed LLM outputs in AI agents"  
 )  
   
 draft = writer_agent.run_sync(  
     f"Write a blog using these findings: {research.findings}"  
 )

整个过程没有 JSON 解析,不用猜测 schema,Python 对象在 agent 之间直接流转。

与 CrewAI 集成

CrewAI 负责编排,PydanticAI 负责类型正确性,这种组合越来越常见。

 from crewai import Agent as CrewAgent, Task  

analysis_agent = CrewAgent(  
    role="Analyst",  
    goal="Generate structured insights"  
)  

task = Task(  
    description="Analyze market trends in AI tooling",  
    agent=analysis_agent  
 )

加入类型化执行层:

 typed_agent=Agent(  
     model=model,  
     result_type=ResearchResult  
 )  
   
 result=typed_agent.run_sync(task.description)

CrewAI 处理 agent 的角色和任务分配,PydanticAI 保证输出的结构正确。

类型化如何改变可靠性

没有类型约束的 agent 系统会出现各种问题:agent 凭空生成不存在的 key,下游步骤因为数据格式错误而静默失败,排查问题时无从下手。

用了 PydanticAI 之后,无效输出会被立即拒绝,重试自动触发,这样bug 在早期就会暴露出来。这其实是软件工程领域早就有的实践:API 用 schema 约束,数据库用约束条件,编译器做类型检查,Agentic AI 只不过是终于跟上了这个标准。

生产环境用例

PydanticAI 加 CrewAI 的组合适合这些场景:研究类 agent、内容生成流水线、数据提取任务、业务流程自动化、AI 辅助决策系统。只要你的应用对输出结构有要求,这套方案就值得考虑。

不过有几个做法应该避免:让 agent 返回原始字符串然后自己解析,用 eval() 处理 JSON(安全隐患太大),盲目相信"格式良好"的 prompt 能约束输出,在 agent 之间传递未经验证的数据。

类型化不是额外负担,是风险控制。

总结

Agentic AI 发展很快,但速度如果没有结构做支撑,系统就会变得脆弱。PydanticAI 把软件工程的类型规范带入了 LLM 系统,让 agent 更安全、更可预测、更容易扩展。

当 AI 输出变成真正的 Python 对象,agent 就不再只是 demo,而是可以正式投入使用的系统。

https://avoid.overfit.cn/post/2a20c5c4c1394c92a252a04388f8e26e

作者:Er.Muruganantham

2026年1月,我实操后最推荐的6个AI开源项目(上)

不是n8n,不是langchain,不是dify。这6个项目是我陆陆续续在一两周的时间里,从十几个项目中筛出来的——解决真实痛点、上手门槛低、社区活跃。

为什么我要写这篇"非主流"推荐

打开任何一个AI技术社区,你都能看到铺天盖地的教程:n8n工作流搭建、langchain入门、dify部署指南……

这些项目当然好。但说实话,它们太"烂大街"了。

不是说用的人多就不好,而是:当一个工具变成"标配",你用它已经不算优势,只是及格线。

我在过去一段时间,常常带着一个问题去GitHub和Hacker News上翻项目:有没有那种"知道的人不多,但用过的人都说好"的AI开源项目?

翻了十几个,最后留下了6个。它们的共同特点:

解决一个明确的痛点,不是"有了更好",而是"没有不行"

上手门槛低,基本pip install就能跑,环境配置很简单

社区活跃,issues会有人关注并回复,且迭代频繁

平常业务太忙,先抽时间写了这一篇讲前3个,下一篇我们讲后3个,欢迎关注。

第一个:Browser-Use(让AI操作浏览器的"手")

场景:我需要自动化填写表单、抓取动态渲染的页面、模拟用户登录。传统爬虫要么被反爬拦住,要么一改页面结构就废了。

Browser-Use解决的问题很直接:让LLM直接操作浏览器,像人一样点击、输入、导航。

其实算是个manus的开源小平替。

你给它一个任务,比如"去某个网站搜索XX,把前10条结果的标题和链接存下来",它会自己打开浏览器、输入搜索词、翻页、提取内容。不需要你写XPath,不需要分析网页结构。

数据:76k stars,283位贡献者,几乎每天都有更新。

适用场景

需要模拟用户操作的自动化任务

动态渲染页面的数据采集

需要登录、点击、填表的流程自动化

局限:对延迟敏感的场景不适合(毕竟要启动浏览器);而且反爬特别严格的网站可能还是会被拦。

规避动作:先小规模测试;考虑云端沙箱方案。

第二个:Mem0(给AI装上"长期记忆")

场景:大模型的长上下文场景下效果差算是个老生常谈了。对话一长就"失忆",或者对需求不明晰,每次都要重复上下文。用户说"我上周跟你说过我喜欢简洁的回答",它一脸茫然。

这是所有做AI产品的人都遇到过的问题:上下文窗口是短期记忆,但用户需要的是长期记忆。

Mem0就是解决这个问题的。它给Agent加了一层持久化的记忆层,能跨会话记住用户的偏好、历史信息、重要事实。

技术上,它不是简单地把对话存数据库。它会自动提取"值得记住的信息",做去重、更新、关联。你可以理解为:如果上下文窗口是便签纸,Mem0就是一个会自动整理的笔记本。

官方数据:集成Mem0后,Agent的回答准确率提升26%,响应速度快91%(因为不用每次都塞一大段历史上下文)。

数据:45.8k stars,YC S24孵化,2025年底刚发布1.0正式版。

适用场景

需要跨会话记忆的AI助手

个性化推荐、用户画像

多轮对话的复杂任务

局限:对实时性要求极高的场景还是会有一定延迟;数据隐私敏感的场景需要评估本地部署选项。

规避动作:评估本地部署选项;敏感数据做脱敏。

第三个:PageIndex(不用向量数据库的RAG)

场景:我用传统RAG做文档问答,发现一个痛点:"相似"不等于"相关"。用户问"公司去年的利润是多少",向量检索可能返回"公司今年的收入"——相似度很高,但答非所问。

PageIndex的思路完全不同:不用向量数据库,不做文档切片,用推理代替检索。

它的做法是:先让LLM理解整个文档的结构,建立一个"内容索引"。用户提问时,不是去算向量相似度,而是让LLM"推理"应该看哪些页面。

打个比方:传统RAG像关键词搜索,PageIndex像请了一个读过整本书的专家帮你翻页。

我尝试用它处理一份80页的财务报告,问了10个问题,准确率明显比传统RAG高。

官方在FinanceBench基准测试上跑出了98.7%的准确率。

数据:6.3k stars,增长很快,FinanceBench榜单第一。

适用场景

长文档、复杂文档的问答

对准确率要求高的场景(财务、法律、医疗)

文档结构复杂、切片效果差的场景

局限:需要实时更新的文档不太适合(索引建立需要时间);超大规模文档集可能成本较高。

规避动作:与传统RAG混合使用——热数据用向量库,冷数据用PageIndex。

写在最后:本篇小结

这3个项目分别解决了:

Browser-Use:AI不能操作浏览器 → 让LLM像人一样点击、输入

Mem0:AI没有长期记忆 → 跨会话的持久化记忆层

PageIndex:RAG检索"相似但不相关" → 用推理代替向量检索

下一篇我会继续介绍后3个项目,都是围绕"上下文工程"的:

MarkItDown:把各种文档转成LLM能读的Markdown

Instructor:让LLM返回结构化数据

Semantic Router:10ms级别的意图路由

明天我会抽时间更新下一篇,讲另外3个项目:

Unsloth(让微调快2倍、省70%显存)

Pathway(实时流处理+LLM管道)

Agent-Lightning(用RL训练任何Agent)。

届时也会更新在同一个合集里,关注我不错过更新~

我是Carl,大厂研发裸辞的AI创业者,只讲能落地的AI干货。

更多AI趋势与实战,我们下期见!

最近全网很火的 clawbot,懒猫商店可以一键安装使用了,真正的 7 X 24 小时个人 AI 助手,在你睡觉时帮你整理收件箱、在你喝咖啡时帮你调研竞品、在你灵感枯竭时帮你搜集素材...购买懒猫微服,即可体验。

本次新春活动再送一台 创始珍藏版懒猫微服 给大家!!!
祝大家新的一年顺风顺水,阖家欢乐,事业有成!!!

历史抽奖贴一,490+参加

历史抽奖贴二,500+参加

历史抽奖贴三,1000+参加

🔗 官方阵地

官方网站: lazycat.cloud

创始人博客: manateelazycat

社交媒体: X @manateelazycat

🎁 活动奖品总价值约 15399 元

  • 一等奖:价值 5399 元「懒猫微服」 LC-02 ( 16G+2T )* 1 (创始珍藏版!
  • 二等奖:价值 299 元「 CHERRY MX1.1 茶轴机械键盘」+ 300 元 懒猫微服 LC03 新年购机券 * 5
  • 三等奖:价值 700 元 懒猫微服 LC02 新年购机券 * 10 (最后 10 台 LC-02 了)


📅 活动共计两轮,活动时间:1 月 26 日 - 1 月 30 日

第一轮

  • 活动时间1 月 26 日 - 1 月 28 日
  • 开奖时间周二( 1.28 )晚上 20:00
  • 本轮奖品
    • 二等奖:价值 299 元「 CHERRY MX1.1 茶轴机械键盘」+ 300 元 懒猫微服 LC03 新年购机券 * 3
    • 三等奖:价值 700 元 懒猫微服 LC02 新年购机券 * 5

第二轮

  • 活动时间1 月 28 日 - 1 月 30 日
  • 开奖时间周五( 1.30 )晚上 20:00
  • 本轮奖品
    • 一等奖:价值 5399 元「懒猫微服」 LC-02 ( 16G+2T )* 1
    • 二等奖:价值 299 元「 CHERRY MX1.1 茶轴机械键盘」+ 懒猫微服 300 元 优惠券 * 2
    • 三等奖:价值 700 元 懒猫微服 LC02 新年购机券 * 5


⚠️ 如何参加(必读)

本次活动主要基于推特联动及微信群公示,请按以下步骤操作:

  1. 点赞、评论并收藏本条推文

  2. 本贴留言并写上口号: 懒猫微服:自带内网穿透和沙箱 100% 隔离,超级安全,更适合

  3. 扫码或加评论区微信进交流群


📢 开奖与领奖

  • 抽奖方式:本次抽奖依据推特 @ID 名单统计,使用抽奖工具开奖,名单打乱,公平公正,结果第一时间公布在微信群。(需扫码或添加评论区微信进群
  • 领奖方式:通过微信群联系我们的工作人员领奖,中奖后进群无效,参加抽奖的大佬进我们的任意交流群即可,以前参加活动已经进群的大佬不用重复进群。

🚨 特别提醒

  1. 大佬一定要 进我们的交流群 才能获得中奖资格哦。
  2. 中奖用户需要把“V2ex 参与活动截图以及 V2EX 主页”作为凭证发给工作人员验证。
  3. 活动奖品和优惠券 不能折现,不与其他活动叠加。
  4. 中奖后请在 三个工作日内 领取奖品,过期不候。


🛒 购买渠道和优惠

  1. 添加评论区工作人员微信备注“新年优惠”获取最新优惠资格。
  2. 全球包邮,UPS 红牌快递,3 天到您家

购买链接:京东购买 | 海外购买

专属小程序咨询:17820700354, 17612774028, 18627819480, 18627819427

注:名单统计以 V2EX ID 为准,每人限中奖一次。

Hacker Flag 5pqX5Y+3OiBEb24ndCBQYW5pY++8jOWKoDE3ODIwNzAwMzU077yM5Lqr5Y+X5pu05aSn5LyY5oOgCg==

产品资料

TinyProTinyEngine 是 OpenTiny 开源生态的重要组成部分:

  • TinyPro 提供企业级后台系统模板
  • TinyEngine 提供灵活强大的低代码引擎

本项目在 TinyPro 中深度集成了基于 TinyEngine 的低代码设计器,通过 插件化架构 构建出可扩展的低代码开发平台。

借助它,你只需在可视化设计器中完成页面设计,就能一键导入 TinyPro,并自动生成菜单、权限及国际化配置,实现真正的 “所见即所得” 式开发体验。

整体架构

lowcode-designer/
├── src/
│   ├── main.js              # 应用入口
│   ├── composable/          # 可组合逻辑
│   ├── configurators/       # 配置器
├── registry.js              # 插件注册表
├── engine.config.js         # 引擎配置
└── vite.config.js          # 构建配置

image.png

核心组成部分

  1. TinyEngine 核心:提供低代码设计器的基础能力
  2. 插件系统:通过插件扩展功能
  3. 注册表机制:统一管理插件和服务
  4. 配置器系统:自定义组件属性配置

核心特性

  • 智能代码生成:基于可视化设计自动生成符合 TinyPro 规范的 Vue 3 + TypeScript 代码
  • 🔐 自动认证管理:智能获取和管理 API Token,支持多种认证方式
  • 🎯 一键集成:自动创建菜单、配置权限、添加国际化词条
  • 🛠️ 代码转换:将 TinyEngine 生成的代码自动转换为 TinyPro 项目兼容格式
  • 💾 本地保存:支持将生成的文件保存到本地文件系统
  • 🎨 可视化配置:提供友好的 UI 界面进行菜单和路由配置

快速开始

安装

使用 TinyCli 可以快速初始化 TinyPro 模版

tiny init pro 

image 1.png

启动低代码设计器

cd lowcode-designer
pnpm install
pnpm dev

启动前端与后端

cd web
pnpm install
pnpm start

cd nestJs
pnpm install
pnpm start

启动完成后,访问 👉 http://localhost:8090 即可体验低代码设计器。

使用流程

image 2.png

设计页面:在 TinyEngine 可视化编辑器中设计页面

image 3.png

点击出码按钮:点击工具栏中的”出码”按钮

image 4.png

配置菜单信息:在弹出的对话框中填写菜单配置信息

生成预览:点击”生成预览”查看将要生成的文件

image 5.png

完成集成:点击”完成集成”自动创建菜单、分配权限并保存文件

image 6.png

接下来我们就可以直接去 TinyPro 直接看到页面效果

image 7.png

TinyPro Generate Code 插件解析

插件目录结构

generate-code-tinypro/
├── package.json              # 插件包配置
├── src/
│   ├── index.js             # 插件入口
│   ├── meta.js              # 元数据定义
│   ├── Main.vue             # 主组件
│   ├── SystemIntegration.vue # 功能组件
│   ├── components/          # 通用组件
│   │   ├── ToolbarBase.vue
│   │   ├── ToolbarBaseButton.vue
│   │   └── ToolbarBaseIcon.vue
│   ├── composable/          # 可组合逻辑
│   │   ├── index.js
│   │   └── useSaveLocal.js
│   └── http.js              # HTTP 服务
├── vite.config.js           # 构建配置
└── README.md                # 文档

代码生成流程

const generatePreview = async () => {
  // 1. 获取当前页面的 Schema
  const currentSchema = getSchema();

  // 2. 获取应用元数据(i18n、dataSource、utils等)
  const metaData = await fetchMetaData(params);

  // 3. 获取页面列表和区块信息
  const pageList = await fetchPageList(appId);
  const blockSchema = await getAllNestedBlocksSchema();

  // 4. 调用代码生成引擎
  const result = await generateAppCode(appSchema);

  // 5. 过滤和转换生成的代码
  const transformedFiles = filteredFiles.map((file) => ({
    ...file,
    fileContent: transformForTinyPro(file.fileContent),
  }));
};

TinyPro 与 TinyEngine 通信

当用户在低代码设计器中点击“完成集成”时,插件首先通过 Token Manager 向认证接口 /api/auth/api-token 请求并获取访问凭证(Token),随后利用该 Token 调用一系列后台接口,包括国际化 API、菜单 API 和角色 API。插件通过这些接口自动完成 页面国际化词条创建、菜单注册、角色查询与权限分配 等步骤。整个过程中,HTTP Client 统一负责与后端通信,而返回的数据(菜单信息、角色信息、权限配置等)会实时更新到本地,最终实现了从页面设计到系统集成的一键闭环,使 TinyEngine 生成的页面能无缝接入 TinyPro 系统。

image 8.png

总结

通过 TinyPro 与 TinyEngine 的深度融合,我们实现了从「可视化设计」到「系统集成」的完整闭环,让不会写代码的用户也能轻松构建出高质量的前端页面

用户只需拖拽组件、填写配置、点击“出码”,插件便会自动生成符合 TinyPro 标准的代码,并完成菜单、权限、国际化等系统级配置。

这一过程无需手动修改代码或后台配置,就能一键完成页面创建、接口绑定与权限分配,实现真正意义上的「低门槛、高效率、可扩展」的前端开发体验。

关于OpenTiny

欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~
OpenTiny 官网:https://opentiny.design
OpenTiny 代码仓库:https://github.com/opentiny
TinyPro 源码:https://github.com/opentiny/tiny-pro
TinyEngine 源码: https://github.com/opentiny/tiny-engine

欢迎进入代码仓库 Star🌟TinyPro、TinyEngine、TinyVue、TinyNG、TinyCLI、TinyEditor~
如果你也想要共建,可以进入代码仓库,找到 good first issue 标签,一起参与开源贡献~

本文聚焦瀑布管理工具选型与测评,对比了 ONES、Microsoft Project、Oracle Primavera P6、Deltek Open Plan、Asta Powerproject、Smartsheet、OpenProject、ProjectLibre、GanttProject、Jama Connect、Planisware、Spider Project、Merlin Project 等工具在甘特图、依赖关系、里程碑与基线对比上的能力差异,帮助研发经理、系统工程师与PMO在2026年做出更稳健、可落地的决策。

为什么复杂硬件研发仍离不开“瀑布管理工具”

在复杂系统研发里,“瀑布”很少是教科书式的线性流程,更常见的是阶段门(Stage-Gate)+ 强依赖链 + 里程碑评审:在关口做 Go/Kill/Hold/Recycle 决策,同时确认下阶段资源、关键交付物与下一次关口时间。

这也是为什么“瀑布管理工具”在硬件研发里更像一种治理工具:它把不确定性切段,把跨专业接口与供应链窗口锁进计划,把变更成本提前显性化。

进一步说,系统工程的 V 模型提醒我们:里程碑不只是日期,而是验证与确认(V&V)的证据节点。INCOSE 对 V&V 的经典定义是:Verification 确保“built right”,Validation 确保“right system”。

当里程碑承载的是“评审通过/基线冻结/验证证据齐备”,你就会明白:没有基线与追溯的甘特图,只能算“排期图”,很难算“可控交付”。

从行业数据看,项目失控往往与范围蔓延与预算损失相关。PMI 2024 报告指出:高项目绩效与更低范围蔓延、更低失败项目预算损失相关联。

所以问题不在“用不用瀑布”,而在于:你是否拥有一套能把甘特图、依赖、里程碑、基线、资源与变更串成闭环的瀑布管理工具体系。

瀑布管理工具选型:用一把尺子衡量(6个维度)

下面这 6 个维度,是我做“瀑布式项目管理软件/工程计划工具”选型时最常用的评估框架。

  • WBS 与阶段门建模能力
  • 依赖关系与自动排期能力
  • 关键路径(CPM)与多关键路径可视化
  • 里程碑的“治理承载力”
  • 基线(Baseline)与偏差分析
  • 资源日历、饱和度与跨项目资源治理

2026年瀑布管理工具测评

1)ONES(国产瀑布管理工具:计划—执行—度量闭环)

一句话结论:ONES 的特点在于把“甘特图+依赖+里程碑+基线”做成可追溯、可度量、能下沉到研发执行与资源投入的瀑布管理工具体系,而不是停留在排期图。

  1. WBS/阶段拆解:ONES 支持用“项目计划”直接建立 WBS,可按目标、交付物或项目阶段分解计划与工作,适合把瀑布项目的阶段结构固化成模板化主计划。
  2. 依赖关系与排期联动:在项目计划中可为任务设置前后置依赖,让任务链路在甘特图中清晰可见,便于做关键链路梳理与变更影响评估。
  3. 里程碑牵引:支持用里程碑标记关键时间点/事件/决策点,用“里程碑—阶段结果”的方式驱动评审节奏,避免只看日期不看产出。
  4. 基线与偏差分析:可为项目计划与里程碑设置基线,并实时对比计划与执行偏差;同时支持对比版本细节追溯变更,利于复盘“偏差从哪来”。
  5. 资源日历与饱和度:项目经理可用工时日历查看资源饱和度,并结合成员工时报表/饱和度报表分析资源利用与投入结构,用数据校验计划可行性。
  6. 协同与治理闭环:支持在项目下统一管理需求范围、研发任务、流水线等,并在项目列表层快速查看项目状态、资源投入与当前进展,把“计划—执行—监控”连成闭环。

瀑布管理核心功能总结:支持用项目计划创建 WBS、设置前后置依赖、里程碑标记关键节点、设置项目计划与里程碑基线并对比偏差、对比版本细节追溯变更,并支持工时日历与饱和度报表。

ONES 瀑布管理解决方案

2)Microsoft Project

一句话结论:当你需要把“依赖链 + 关键路径 + 基线偏差”做深做透,MS Project 仍是个不错的选择。
核心功能:任务依赖(四类依赖)、关键路径显示、基线快照与偏差对比。
①WBS/阶段:用大纲层级把阶段/工作包拆清,适合主计划成体系落地;②甘特&里程碑:甘特视图成熟,里程碑表达直观;③依赖:支持 FS/SS/FF/SF 等多类型任务依赖,便于把逻辑链搭扎实;④关键路径:可突出显示关键路径,亦支持“多个关键路径”用于阶段/里程碑跟踪;⑤基线:可对计划做“快照”,并与当前/实际做偏差对比;⑥资源:基线快照也包含资源与分配信息,但协同与闭环往往依赖 Project Server/其他系统集成,更像“计划端”而非执行一体化。
局限与体验:研发执行(需求/缺陷/测试)常在别的系统里,容易形成“计划与执行割裂”,需要配套集成与反馈机制。

3)Oracle Primavera P6

一句话结论:当项目规模足够大、依赖网络足够复杂、需要严肃偏差治理时,P6 的“当前 vs 基线甘特对比”非常有说服力。
核心功能:CPM 排程、基线管理、挣值与偏差分析;支持在甘特图中展示基线与当前条以识别偏差。
①WBS/阶段:更偏大型项目/项目群的结构化计划治理;②甘特&里程碑:以工程排程视角表达阶段与控制点;③依赖:强调网络计划与逻辑链路的严谨性;④关键路径:结合工程进度控制语境使用;⑤基线:可在甘特图同时显示“当前条+基线条”识别延期/提前,并配合挣值/偏差字段做跟踪;⑥资源/成本治理:把资源、成本、进度偏差纳入同一控制框架,适合高复杂度交付,但学习与实施成本较高,通常由专业计划岗主导。
局限与体验:学习曲线与实施成本较高,通常需要专业计划工程师;研发协作闭环需要外部系统承接。

4)Deltek Open Plan

一句话结论:如果你管理的是“中大型项目群”,并且资源冲突是常态,Open Plan 的多项目分析与资源管理更贴近 PMO 的治理需求。
核心功能:高级排程、关键路径规划、多项目分析、资源管理与风险分析。
①WBS/阶段:面向企业级项目/项目群的计划治理;②甘特&里程碑:以进度控制为核心呈现;③依赖:适合构建复杂逻辑网络;④关键路径:强调 critical path planning,利于识别“真正卡交付”的链路;⑤基线:更常与进度质量、风险与合规控制一起使用;⑥资源:突出 multi-project analysis 与 resource management,适合资源共享、并行项目多的PMO场景;但对研发执行闭环仍通常需要与协作平台配套。
局限与体验:生态相对小众,落地往往需要方法论与数据口径统一,否则工具优势会被稀释。

5)Asta Powerproject

一句话结论:当你必须证明“关键路径是完整且可信的”,Asta 的关键路径完整性检查思路更像工程交付与索赔场景的严谨工具。
核心功能:排程与关键路径计算,并支持关键路径完整性检查配置。
①WBS/阶段:更贴近现场交付的分段计划;②甘特&里程碑:从甘特图内就能完成任务绘制与联接;③依赖:逻辑链路是核心使用方式;④关键路径:支持关键路径分析,并可在重排程时做关键路径完整性/一致性检查,适合“进度取证”与严肃控制;⑤基线:常用于对比原计划与跟踪进展;⑥资源/成本:可在甘特里分配日历、资源、成本,适合工程化交付阶段;但研发需求/缺陷等执行对象不在其强项。
局限与体验:研发协作与需求/缺陷闭环不是强项,通常作为“排程权威系统”使用。

6)Smartsheet

一句话结论:Smartsheet 更像“在线协作的进度台账 + 甘特图”,适合把关键路径与里程碑透明化,但不追求极致工程排程。
①WBS/阶段:用表格层级做轻量WBS;②甘特&里程碑:甘特视图协作友好;③依赖:启用依赖后,前置任务日期变化会自动带动后续任务更新;④关键路径:可在甘特视图中高亮 critical path;⑤基线:支持基线并显示计划/实际起止与偏差(variance),便于周会与管理层汇报;⑥资源/治理:更擅长跨部门透明与协作推进,但对“工程级排程+复杂资源约束”的上限需要提前评估。
局限与体验:对资源受限排程与复杂依赖网络的治理能力有限。

7)OpenProject

一句话结论:当你需要“开源可控 + 甘特图依赖 + 里程碑推进”,OpenProject 是开源阵营里更正统的选择。
核心功能:在甘特图中跟踪工作包(阶段/里程碑/任务)的依赖关系。
①WBS/阶段:以工作包承载阶段/任务;②甘特&里程碑:甘特图可覆盖 phases、milestones、tasks;③依赖:可在甘特图里直接添加 predecessor/successor,依赖线清晰;④关键路径:更强调依赖顺序与可视化治理(关键路径能力取决于具体配置/插件与用法);⑤基线:更偏协作推进与过程透明;⑥资源/跨项目:支持 cross-project Gantt 视角,适合自建部署、强调可控与协同一致性的组织,但企业级报表/深度治理往往需要长期运营与配置能力。
局限与体验:企业级报表/流程/集成深度可能需要二开与长期运营。

8)ProjectLibre

一句话结论:ProjectLibre 适合“预算敏感但想把瀑布计划做规范”的团队,本质是桌面端计划制作器。
核心功能:可视化依赖、关键路径、资源分配与挣值等传统项目管理能力。
①WBS/阶段:可做层级化拆解(把项目拆成可管理组件);②甘特&里程碑:支持动态甘特图表达任务周期与里程碑;③依赖:支持依赖关系展示与管理;④关键路径:可用于传统关键路径视角的计划分析(更多依赖使用熟练度);⑤基线:更偏“排出主计划并维护版本”的桌面端模式;⑥资源/治理:适合预算敏感、需要MS Project式核心能力的团队;但协作、审计与研发执行闭环通常要靠额外系统补齐。
局限与体验:协作、审计与研发闭环弱;更适合“把计划排出来”,不适合作为组织级交付底座。

9)GanttProject

一句话结论:当你需要快速把“里程碑 + 依赖链 + 基线对比”画清楚用于沟通,GanttProject 是轻量且高效的选择。
核心功能:任务层级、依赖、里程碑与基线等轻量瀑布要素。
①WBS/阶段:适合小项目快速分解;②甘特&里程碑:用于沟通型甘特表达;③依赖:可做基础任务关系;④关键路径:更偏轻量可视化;⑤基线:界面提供 Baselines,用于计划版本对比(适合“计划变了多少”这类复盘需求);⑥资源/治理:能满足小团队的“有计划、有对比”,但组织级资源治理、审计报表与工具链集成上限较明显,更适合作为草图或轻量替补。
局限与体验:跨项目资源治理与组织级协同能力有限。

10)Jama Connect

一句话结论:在强合规/强系统工程场景,Jama 的价值不在甘特图,而在让里程碑评审具备“需求覆盖率与追溯证据”。
核心功能:Coverage(覆盖率)与 Traceability(追溯)——需求与测试/设计/风险之间的连接关系。
①WBS/阶段:以需求层级与系统分解承载“阶段产出”;②甘特&里程碑:不以甘特排程见长,但能把里程碑评审的输入/输出(需求、风险、验证)结构化;③依赖:用关系(relationships)表达需求—设计—验证之间的依赖;④关键路径:更偏“工程证据链关键链路”而非进度关键路径;⑤基线:适合在关口冻结需求/范围并追溯变更影响;⑥资源/治理:coverage 与 traceability 可把“是否覆盖到测试、是否有人负责验证”显性化,让瀑布/V模型评审从“看进度”升级为“看证据”。
局限与体验:需要与排程工具/研发协作平台配合,否则会出现“有追溯、无计划”的割裂。

11)Planisware

一句话结论:当你真正困在“多产品线、多项目集、资源冲突常态化”,Planisware 更像“组合治理系统”而非单一瀑布计划工具。
核心功能:需求汇聚与筛选、项目组合管理、资源分配与容量管理。
①WBS/阶段:支撑从需求汇聚到项目组合的结构化管理;②甘特&里程碑:用于多项目推进与节奏对齐;③依赖:更常服务于项目群与组合层面的协同;④关键路径:通常与情景/容量分析一起看“真正影响交付的瓶颈”;⑤基线:更强调组合治理下的计划版本与对比;⑥资源/容量:突出 availability、skills、workloads 的实时可视化,以及资源分配与容量管理,适合资源冲突常态化的大型组织,但落地高度依赖数据口径与治理纪律。
局限与体验:实施与数据治理要求高;如果组织计划纪律不足,系统很容易“强而难用”。

12)Spider Project

一句话结论:如果你的核心痛点是“资源受限导致计划不可信”,Spider Project 以资源/成本/材料约束优化为卖点,值得纳入小众备选。
核心功能:强调对资源、成本、材料受限计划与预算的优化。
①WBS/阶段:面向复杂项目/组合的结构化计划;②甘特&里程碑:服务于受限条件下的排程呈现;③依赖:与网络计划结合使用;④关键路径:更强调在约束条件下识别影响交付的关键链;⑤基线:用于对比优化前后/执行偏差;⑥资源/成本/材料:核心卖点是对 resource、cost、material constrained schedules & budgets 做优化(而非仅手工排期),适合资源与材料约束极强的行业型项目,但生态与人才供给需评估。
局限与体验:协作与生态、人才供给需评估;落地依赖方法论与数据治理。

13)Merlin Project

一句话结论:Merlin Project 的“动态基线对比”概念对管理者复盘计划演进很友好,适合苹果生态下的计划表达与复盘。
核心功能:任务、依赖、里程碑、工作负载组织进甘特,并强调 Dynamic Baseline 用于对比当前状态与历史规划阶段。
①WBS/阶段:支持活动结构与阶段拆解;②甘特&里程碑:以可视化计划表达为强项;③依赖:可表达依赖与计划逻辑;④关键路径:更多服务于管理者理解“哪里卡住”;⑤基线:官方说明 baseline 会为活动/资源/分配自动保存,并可与任意历史状态做精确对比;⑥资源/治理:更适合苹果生态下的计划表达与复盘,尤其“动态基线(按参考日期回看计划预期)”对管理层复盘很友好,但企业级协作与深度集成需按组织现状评估。
局限与体验:企业级协作、研发工具链深集成与治理能力需要谨慎评估。

瀑布管理工具 FAQ:

Q1:瀑布管理工具一定要有“基线”吗?
A:强建议有。基线是进度快照,用于对比偏差与识别计划变化;没有基线,偏差讨论很难“讲证据”。

Q2:依赖关系为什么比甘特图本身更重要?
A:因为依赖才是“计划逻辑”。工具至少应支持 FS/SS/FF/SF 依赖类型,才能覆盖复杂工程的真实约束。

Q3:硬件研发里程碑如何不沦为“打卡点”?
A:把里程碑升级为“关口治理点”:绑定评审包、交付物清单与V&V证据(尤其合规行业)。

Q4:ONES 更适合什么类型的瀑布管理?
A:更适合“研发型瀑布”:强调 WBS、依赖、里程碑、基线对比与变更追溯,并联动研发执行与资源饱和度。

很多企业真正的“研发浪费”,并不发生在开发阶段,而发生在立项那一刻:立得太快,撤得太难;一旦启动就像上了传送带,范围膨胀、资源被锁死,最后交付了却没有业务结果。把产品立项评审当成一场严肃的投资决策:用证据说话、用机制防走偏、用阶段门控制承诺强度,才能把组织的研发投入放在最值得的地方。

本文关键词:产品立项评审、产品立项评审流程、立项评审会议、立项评审材料清单、立项评审表/模板、阶段门(Stage-Gate)、Business Case(商业论证)、Go/Kill、条件性 Go、PMO 立项治理、持续商业合理性、撤项机制、资源池透明化

产品立项评审的三个典型痛点

我在企业里最常听到两句话:“我们不是不努力,是项目太多“;“不是我们不想做价值,是排期已经排满了”。表面看是资源问题,深一层其实是治理问题:组织缺少一套能把“想法”变成“可下注的投资”的机制。产品立项评审之所以容易走过场,往往会呈现三类症状。

1)把立项当“批准开工”,而不是“投资决策”

很多评审会的真实目标,是“把事情定下来”,而不是“把钱花明白”。于是会议变成了:谁讲得顺、谁级别高、谁更会做PPT,谁就更容易赢。

但投资决策的关键不在“热闹”,在比较:

  • 不做,会损失什么?
  • 做小一点,能不能先验证?
  • 做这件事,意味着哪件事要让路?

如果评审没有回答这些比较性问题,本质上只是“启动仪式”。

2)只评“想做什么”,不评“凭什么能成”

“想做什么”属于愿景,“凭什么能成”才是决策依据。你会发现许多立项材料写得很满:行业趋势、竞品分析、功能列表,但一问关键证据就虚:

  • 用户痛点是“真实的”还是“脑补的”?
  • 业务收益是“可归因的”还是“愿望型KPI”?
  • 技术难点是“可控的”还是“未知的深坑”?

成熟治理强调:把项目拆成一串可验证假设,让证据链逐段补齐,而不是一次性“押注全量方案”。

3)只做一次评审,缺少“持续商业合理性”机制

这点在中国企业尤其常见:项目立项通过后就进入“惯性推进”。市场变了、战略变了、客户不要了,但团队仍然做下去,因为没人愿意承担“叫停”的责任。

而 PRINCE2 强调“持续商业合理性(continued business justification)”:项目必须一直“值得做”,否则就该调整甚至停止。这不是“冷酷”,是对组织资源负责。

你会发现:真正成熟的组织不是“从不失败”,而是“失败得更早、更便宜、更可复盘”。

把产品立项评审定义为阶段门(Gate)决策

要让产品立项评审不走过场,首先得统一底层定义:

产品立项评审 = 在信息不完美下,做一次“有限承诺”的资源释放(投资决策)。

这句话很关键,因为它决定了评审的尺度:信息不完美是常态,因此决策不是“要么全做、要么不做”,而是“先承诺最小必要资源,换取下一阶段的关键证据”。

这与 Stage-Gate 的治理逻辑高度一致:进入下一阶段前必须过 Gate;Gate 是 Go/Kill 与资源配置的决策点,高层评估业务价值、准备度与优先级,再决定是否释放更多资源。

同时,你需要把 Business Case 放回它应有的位置:它不是“财务表格”,而是“组织下注的理由”。APM 对 Business Case 的定义很直接:它用于论证为什么要做,并评估不同选项的收益、成本与风险,为偏好方案提供依据。

共识底座一旦建立,流程、材料与会议就有了清晰目的:不是为了“写齐”,而是为了“可比、可控、可撤”。

产品立项评审流程(7步):PMO 可直接落地的标准做法

下面这套 7 步流程,我不追求“最完整”,追求“最能改变组织行为”。每一步都围绕一个问题:它帮助决策变聪明了吗?

1)需求入口:所有想法先“归口”,再讨论立不立

要解决的决策问题:我们到底有多少机会?哪些是战略必须、哪些是可试验?

PMO抓手:统一入口(机会池/需求池)、分类分级(战略/合规/增长/效率/体验/技术债)、设最小门槛(目标用户、指标、粗成本级别)。
常见坑:入口形同虚设——“真正重要的需求绕过入口直接立项”。
解决办法:把资源承诺与入口绑定:不进池,不进入排期;用资源约束推动流程落地。

落地提示:很多组织在“归口”这一步失败,不是没制度,而是缺一个可追溯的统一载体。如果团队使用类似 ONES 的研发管理平台,把需求/工作项集中在同一个系统里推进,至少能把“谁提的、依据是什么、现在到哪一步”变得可查可追。

ONES 需求池、看板

2)立项简报(1~2页):把问题讲透,比把方案讲大更重要

要解决的决策问题:这件事值得继续投入论证吗?

建议固定四块:问题是什么、影响有多大、证据在哪里、有哪些选项。
常见坑:用功能列表替代问题定义,导致讨论陷入“做什么功能”。
顾问经验:问题定义不清,后面越做越贵;问题定义越清,方案越容易变小、变快、变可控。

3)快速验证(Discovery):先打穿关键假设,再谈立项规模

要解决的决策问题:最大不确定性是什么?能否用最小成本验证?
把假设分三类:价值假设、可行性假设、可交付假设;并形成“证据清单”(访谈、数据回溯、原型测试、技术Spike、试点客户)。
常见坑:把验证做成“调研报告”,时间很长、结论很虚。
改法:每个验证都必须回答:如果不成立,我们怎么办?否则它只是知识,不是治理。

4)形成 Business Case(商业论证):用同一套口径比较“值不值”

要解决的决策问题:在众多候选中,为什么它更值得?资源有限时怎么取舍?Business Case 的核心不是“算得准”,而是“可比较”。APM 明确指出:它应评估备选方案的收益、成本、风险,并给出偏好解的理由。
建议至少包含:目标与成功标准、方案选项(至少做/不做)、成本(含运营承接)、收益(含归因口径)、风险与依赖、阶段节奏(下一次Gate)。
常见坑:收益写成愿望(“提升体验”“赋能业务”),成本只算研发人天。
顾问建议:把上线后的运营承接算进去;很多项目不是“做不出来”,而是“做出来没人用、没人接”。

5)跨部门预评审(Pre-Gate):把冲突前置化,别把评审会变成吵架会

要解决的决策问题:正式评审能不能只讨论“决策所需信息”?
预评审让架构/安全/法务/运营提前给出结论:可行/不可行/可行但有条件,并把条件写进“条件性Go”。
常见坑:预评审变成“背靠背抱怨会”。
改法:预评审只讨论“门槛与证据”,不讨论细节方案;细节留给方案评审Gate。
落地提示:预评审最怕“意见散落在群聊里”。在系统里把“条件”固化成审批条款,能显著减少会后反复。ONES 审批管理的思路值得借鉴:它支持搭建审批表单与流程节点,并可追踪审批进度与历史记录。

6)正式立项评审会(Gate):只讨论“下注规模与条件”,不讨论“热闹”

Stage-Gate 对 Gate 的描述非常清晰:它是 Go/Kill 与资源配置的决策点。
建议输出固定为四类:
Go:同意立项并释放资源
Go(带条件):补齐证据/先做试点/MVP 后再释放资源
Hold/Recycle:暂缓/调整后再评
Kill:终止并沉淀原因
关键是“条件性Go”:它是中国企业最实用的一种治理策略——既不伤业务积极性,又避免“一次性全量承诺”。条件必须写清:补齐什么证据、谁负责、何时完成、下一次Gate何时开。
落地提示:如果你希望“条件性Go”真正可执行,系统要能做到两点:1)条件未满足前,关键字段不被随意改动;2)条件满足后,有版本与审计痕迹。ONES 在“业务审批规则/工作项审批”场景里提供了一个典型做法:审批中可锁定工作项属性,审批通过后还能生成历史版本以记录变更轨迹。

7)评审后治理:立项不是终点,而是“承诺开始”

如果你只做立项、不做后续Gate,评审会必然越来越形式主义——因为组织会发现“反正立了也没人追”。
PRINCE2 的“持续商业合理性”意味着:商业理由要能被持续检验,必要时可以调整甚至关闭项目。
PMO最低配三件事:项目章程/立项令(边界、里程碑、预算、权限)、下一次Gate、关键假设纳入风险清单并月度复盘。
落地提示:很多“复盘不落地”的根因,是提醒和检查不成体系。类似 ONES Automation 这类流程自动化能力,可以用规则把“到期未补证据提醒、状态联动、定时检查”等动作自动化,并保留运行日志,减少 PMO 的人工催办成本。另外,项目结束后“归档只读”也很关键:它让组织资产可查,但避免历史项目被随意改写。ONES 帮助中心里就提到过“项目归档后普通成员只读”的机制思路。

谁负责“提案”,谁负责“把关”,谁负责“拍板”

产品立项评审最怕“人人都有意见,但没人对结果负责”。我推荐三层角色,目的不是“分工好看”,而是责任链闭环。

1)提案方(Proposal Owner)
对三件事负责:问题定义、证据链、结果交付。治理要明确:提案方不能“立完就走”;否则立项会变成“甩锅机制”。

2)把关方(Gatekeepers)
PMO + 财务 + 技术/架构 + 合规/安全 + 运营/交付(视行业)。把关方的价值不是“否决”,而是让风险、成本与依赖显性化,让决策更聪明。PMO 的独特作用,是把争论从“你对我错”转成“证据不足/资源冲突/优先级不对齐”。

3)决策方(Approvers)
事业部总经理/产品委员会/投资委员会对两件事负责:优先级取舍、资源承诺兑现。因为 Gate 的本质就是资源配置决策点。

产品立项评审材料清单

材料的本质不是“证明你很努力”,而是“让组织做出可审计的决策”。最好的材料,是把不确定性拆开、把选项摆在桌面上比较。

必交(建议≤15页 + 附录)

  • 立项简报(问题、目标、范围边界、成功标准)
  • 证据附件(数据/访谈要点/客户反馈/工单聚类,附录即可)
  • 选项对比(做/不做;大/小;自研/采购,至少两项)
  • Business Case(商业论证):收益、成本、风险、备选方案与偏好解理由(强调“可比较”)
  • 资源与计划:关键岗位、关键依赖、阶段交付物与下一次Gate
  • 风险与假设清单:列出“决定成败的三件事”及验证计划
  • 上线与运营承接:监控、运维、人力、培训、客服、合规检查点

按需(复杂/高风险项目)

架构与安全评估、合同/法务评估、数据治理与权限设计、试点方案与推广路径等。常见坑包括材料越写越多,关键信息越模糊。

三条红线:

  • 收益必须有归因口径;
  • 成本必须覆盖运营承接;
  • 风险必须对应可执行缓解动作(不是“加强沟通”)。

落地提示:如果你希望“材料清单”不再靠人工查漏补缺,一个常见做法是把它做成审批表单的必填项。例如 ONES 支持用多种控件(输入、单/多选、附件、成员、项目、工作项等)搭建审批表单,减少“材料不全却硬上会”的概率。

立项评审会议怎么开才不走过场

很多公司评审会“看起来很认真”,但结果很差,原因通常不是议程不对,而是问法不对:问法决定你能不能把不确定性拆开,把分歧显性化。

1)推荐议程(60~90分钟)

  • 5’:PMO声明会议规则:今天只做Gate决策(Go/Kill/Hold/条件)
  • 15’:提案方陈述:问题、证据、选项对比、建议决策
  • 20’:把关方逐一给“结论 + 条件”(不做长演讲)
  • 20’:围绕“分歧点”讨论(只讨论3个最关键分歧)
  • 10’:决策与条件确认(责任人/截止时间/下一次Gate)
  • 5’:PMO复述结论并发布纪要

2)评审问题清单(可直接复用)

  • 价值类(避免愿望)
  • 如果只做一半,你会保留哪一半?为什么?
  • 不做会损失什么?损失能否被量化或被替代?
  • 可行类(避免乐观)
  • 最可能导致延期/超支的单点风险是什么?怎么验证?
  • 关键依赖是谁?如果对方不配合,我们的备选方案是什么?
  • 优先级类(避免政治化)
  • 如果资源只能做两件事,这件事凭什么排进前二?
  • 为了做它,你愿意让哪件事让路?(把取舍显性化)

3)一个“够用”的评分框架:让分歧可视化,而不是求平均分

用 5 维度(1~5分):战略匹配度、价值确定性(证据强度)、可行性、财务合理性、组织准备度。主持要点:不要急着算总分,先看“分歧最大的一项”——那往往是下一步要补证据/做试点/改方案的方向。

一页速查:产品立项评审(管理层/PMO)检查清单

  • 一句话定义:立项评审 = 有限承诺的资源释放(投资决策)
  • 四种决策输出:Go / 条件性Go / Hold / Kill
  • 三类证据:价值证据、可行证据、可交付证据
  • 必交材料:立项简报 + 证据附件 + 选项对比 + Business Case + 资源计划 + 风险/假设 + 运营承接
  • 三条红线:收益可归因、成本含承接、风险有动作
  • 下一次Gate:必须写清(何时、检查什么证据、谁负责)
  • 系统固化:把“材料清单/条件条款/审批记录”固化在系统里,减少口头决议与事后扯皮;例如审批表单、审批流程节点、动态审批人、审批进度与历史记录等能力,能让“条件性Go”更容易被执行与审计。

FAQ:高频搜索问题

Q1:产品立项评审要评什么?
A:评三件事:值不值得(价值与优先级)、能不能成(可行性与依赖)、做得下去吗(资源与交付准备度)。关键是用证据把假设“打穿”。

Q2:产品立项评审流程怎么做最有效?
A:用阶段门思路:先做有限承诺(Go/条件性Go),用下一阶段证据换更多资源,避免一次性全量下注。

Q3:立项评审材料清单有哪些?
A:立项简报、证据附件、选项对比、Business Case、资源计划、风险/假设清单、上线与运营承接(含成本)。

Q4:立项评审会议怎么开才不走过场?
A:把讨论聚焦在“下注规模与条件”,用问题库把分歧显性化,并把条件写清责任人与截止时间。

Q5:什么是条件性 Go?为什么适合中国企业?
A:条件性 Go 是“先批准最小资源,但要求补齐证据/试点/MVP后再进入下一阶段”。它兼顾业务推进与风险控制,降低拍脑袋立项概率。

产品立项评审不是为了“挡项目”,也不是为了“显得管理严格”,而是让组织获得一种长期能力:在不确定中,用证据做有限承诺;在资源有限时,敢于取舍并兑现承诺;在环境变化时,持续检验商业理由,及时纠偏乃至止损。

当你把立项评审做成“阶段门治理 + 可比较的Business Case + 条件性Go + 可撤项机制”,组织会从“忙而无功”走向“少而精准”:少立项、立好项、持续校准。这不是流程主义,而是把研发投入真正用在刀刃上的长期主义。

1 月 26 日,腾讯旗下 AI 助手元宝低调开启全新社交 AI 玩法“元宝派”内测。

 

从目前流出的内测截图来看,用户可以选择创建一个“派”,或者加入一个已有的“派”。用户可以在派内 @元宝 或引用元宝的话,让元宝 AI 总结派内聊天、创建健身、阅读等兴趣打卡活动,由元宝 AI 担任“监督员”。不止文字聊天,用户还可以在派内进行“图片二创”,将一张普通的照片变成有趣的“梗图”或表情包,在共同创作中激发乐趣。

 

 

据网传截图,元宝派后续公测还将开放上线“一起看”、“一起听”玩法,该玩法接⼊了腾讯会议的⾳视频底层能⼒,让⽤户可以邀请派内好友同步观看一部电影、一场比赛、听一首歌。

 

元宝派还打通了微信、QQ 等社交产品体验,用户可以把“派号”或者专属邀请链接分享到微信朋友圈、或者微信、QQ 好友,让好友一键丝滑加入元宝派。此前,元宝和微信、QQ 已深度打通,不仅可以在微信、QQ 添加“元宝”为联系人,随时随地和元宝 AI 互动,还能在公众号、视频号评论区 @元宝,让 TA 总结内容、拓展提问。

 

1 月 25 日,腾讯还宣布将在元宝 APP 内派发 10 亿现金红包。腾讯已经多年不参与春节“撒币”,本轮用 10 亿真金白银砸向元宝,在 AI 赛道加速的决心可见一斑。

 

腾讯路线:把 AI 带入群体交流中

 

腾讯将 AI 战局拉进了自身最擅长的“社交场”,试图用“元宝派"打开一种全新的人与 AI 交互的模式。此举标志着腾讯正将 AI 应用的探索方向,从提升个人效率的“工具”属性,延伸至连接人与人、增进群体互动的属性,为 AI 应用的发展提供一个新的解题思路。

 

对于 AI 更自然、更深入进入人们日常生活的方式,业界的探索路径逐渐分野:其一,让 AI 模拟人类行为、完成复杂任务的 Agent(智能体)被寄予厚望;同时,另一条路径也正浮现,即将 AI 带入群体交流中,使其成为社交互动的一部分,“元宝派”正是腾讯在此方向上的一次具体实践。 

 

多人沟通是人类最真实、最高频的沟通场景之一,也是对 AI 的上下文理解、多轮对话、意图识别等综合能力要求最高的场景。选择从这一场景切入,可以看出腾讯希望在最具挑战性的环境中,探索和打磨 AI 产品能力的决心。

 

另外,不同于追求任务执行效率的逻辑,可以看出“元宝派”更关注 AI 在群体中的“社交价值”。它试图回答的问题是:当 AI 拥有了理解群体氛围、参与群体讨论、辅助群体决策的能力时,它将如何改变我们的线上社交体验?这一定位,旨在破解当前 AI 应用普遍面临的用户粘性不足、使用场景单一的挑战,通过引入真实、多维的社交关系,为 AI 的演进提供更丰富的土壤。

 

社交探索之外,腾讯在 AI 赛道 2025 年下半年也动作不断。从全模态的模型布局,到密集引进高阶人才、组织变阵,再到各业务线加速完成 AI 改造,腾讯开始找到自己在 AI 马拉松进程中的节奏。

 

 近日,一篇关于 Claude 提示词(Prompt)的整理帖在海外技术社区迅速走红。发帖者是一位活跃在 X(原 Twitter)的国外网友,他声称自己系统性地收集了近一段时间在 Reddit、X 以及研究型社区中“被反复验证有效”的 Claude Prompt,并将其汇总成一份清单公开发布。

 

在帖子中,这位网友用了一种颇具传播性的说法来形容这些 Prompt 的效果——“可以在 60 秒内完成原本需要 10 小时的工作量”。尽管这一表述明显带有夸张成分,但并不妨碍该帖迅速在技术圈、研究圈和写作社区中被大量转发和收藏。

 

与常见的“帮我写方案”“帮我改文案”类 Prompt 不同,这份清单中的 12 条提示(原作者提到共 13 条提示,但有一条是重复的,故最终为 12 条提示)几乎没有一条是直接要求模型“产出结果”的。相反,它们更多聚焦于质疑、拆解、对照和反思——这些原本属于研究人员、审稿人或资深从业者的认知工作。

 

InfoQ 翻译整理了该网友提出的 12 条 Prompt,供参考:

 

1、“矛盾查找器”:非常适合用于论文、报告或长篇文档。

 

“列出所有内部矛盾、未解决的矛盾,或与证据不完全相符的论断。”

 

它能揭露人类忽略的事情。

 

2、“审阅者 #2”提示

 

“像持怀疑态度的同行评审员那样进行批判性评价。”

 

要严厉批评。重点关注方法论缺陷、缺失的控制因素和过于自信的论断。残酷。必要。

 

3、“将此内容转化为论文”提示

 

当你倾倒原始笔记、链接或不成熟的想法时,可以使用此功能。

 

“请将以下材料整理成一份结构化的研究简报。内容包括:关键论点、证据、假设、反驳论点和未决问题。”

 

标记任何薄弱环节或缺失之处。

 

4、“倒着解释”的技巧:非常适合检验真正的理解程度。

 

先解释这个结论,然后一步一步地倒推到假设条件。

 

如果逻辑崩溃,你会立刻发现。

 

5、“像科学家一样进行比较”提示,不是功能列表,而是真正的对比。

 

比较这两种方法:理论基础、失效模式、可扩展性和现实世界的限制。”

 

6、“什么会破坏它?”提示:用于预测。

 

描述一下这种方法会造成灾难性失败的场景。不是极端情况,而是实际存在的故障模式

 

大多数人从来不会问这个问题。

 

7、“是什么改变了我的想法?”通常用于结尾

 

“分析了所有这些之后,什么应该改变我目前的看法?”

 

这才是真正的研究人员的思考方式。

 

8、 “一页纸思维模型”

 

“把整个主题浓缩成一个我能记住的单一思维模型。”

 

如果文件无法压缩,说明你还没有拥有它。

 

9、“跨域翻译”提示

 

“请用一个完全不同领域的类比来解释这个概念。”

 

这不仅能带来理解,更能带来洞察力。

 

10、“窃取结构”技巧

 

这条往往被低估了。

 

通常用于分析文章的结构、流程和论证模式。在撰写优秀论文和文章时,请将其用于写作。

 

11、“像科学家一样进行比较”提示

 

不是功能列表,而是真正的对比。

 

比较这两种方法:理论基础、失效模式、可扩展性和现实世界的限制。

 

12、“假设压力测试”

 

这条信息直接来自研究论坛。

 

“列出该论点所依赖的每一项假设。现在告诉我哪些最脆弱,以及原因。

工具网址

进制转换器在线工具: https://see-tool.com/base-converter

工具截图:
Snipaste_2026-01-23_19-03-32.png

工具介绍

进制转换器使用文档
什么是数制(基数)?
数制,又称基数或进位制,定义了在位值计数法中使用多少个不同的数字来表示数值。日常生活中最常用的是十进制(基数10),使用数字0-9。计算机主要使用二进制(基数2),而程序员经常使用十六进制(基数16)和八进制(基数8)来更简洁地表示二进制数据。

进制转换原理
将一个数从一种进制转换为另一种进制涉及两个主要步骤:

将源数字转换为十进制(基数10):将每个数字乘以其位置值(基数^位置),然后求和
使用连续除法将十进制结果转换为目标进制:除以目标基数并收集余数
逆序读取余数,得到目标进制的最终结果

转换示例
二进制 1101 → 十进制: (1×8) + (1×4) + (0×2) + (1×1) = 13

每个二进制数位代表2的幂:从右到左依次为 2⁰=1, 2¹=2, 2²=4, 2³=8,以此类推。

背景

应用在运行过程中,开启性能分析(Profiling)通常是诊断性能瓶颈、内存泄漏和线程问题的关键手段。然而,持续开启 Profiling 会带来显著的性能开销(可能达 5%-20%),并可能生成大量数据,影响生产环境稳定性。动态开启 Profiling 允许开发或运维人员按需、实时地启动/停止数据收集,实现以下目标:

  1. 降低持续开销:仅在需要时启用,避免长期性能损耗;
  2. 精准问题定位:针对特定时段(如流量高峰或故障期间)进行分析;
  3. 在线诊断:无需重启应用即可获取生产环境实时性能快照;
  4. 灵活控制:可结合监控指标(如 CPU 飙升)自动触发,或在安全审计时手动开启。

通过动态控制,实现了观测能力与系统负载的平衡,保障了关键业务场景的效率和稳定性。

Flameshot

Flameshot 是一个基于 Sidecar 模式运行的轻量级自动性能剖析(Profiling)工具。它通过监控目标进程的资源使用情况(CPU/内存),在达到预设阈值时自动触发底层 Profiler(如 async-profiler ),从而实现无侵入的现场快照采集。

Flameshot 采用 Sidecar 容器 模式部署。它必须与业务主容器(Main Container)运行在同一个 Pod 中,并开启 PID 命名空间共享。

  1. 监控 (Monitor):Flameshot 持续轮询主容器内目标进程的资源水位。
  2. 触发 (Trigger):当满足阈值(如 CPU > 80%)或收到 HTTP API 请求时,触发采集任务。
  3. 执行 (Execute):根据配置的语言类型(目前支持 Java),调用对应的 Profiler 工具 attach 到目标进程。
  4. 收集 (Collect):生成的 Profile 文件(如 .jfr )存储于共享卷中,随后上传至数据观测中心。

观测云 datakit-operator1.7.0 版本开始支持工具 flameshots,实现动态开启应用 Profiling。

实践

当前在 K8S 环境上部署 JAVA 应用,当 CPU、内存使用率达到 20%(演示方便)则触发 Profiling 数据采集。

前提条件

  • 观测云帐号
  • K8S 环境

DataKit

DataKit 主要是用来采集数据并上报观测云。

1. 下载 & 安装

wget https://static.guance.com/datakit/datakit.yaml

2. 配置 datakit.yaml

配置 DataWay 数据网关地址

name: ENV_DATAWAY
value: https://openway.guance.com?token=tkn_xxxxx

DataKit 会默认开启主机相关采集器,这里需要追加 pyroscope

name: ENV_DEFAULT_ENABLED_INPUTS
value: cpu,disk,diskio,mem,swap,system,hostobject,net,host_processes,container,pyroscope

3. 启动

调整完配置后,启动 DataKit

root@root:~$ kubectl apply -f datakit.yaml
root@root:~$ kubectl get pods -n datakit
NAME                                READY   STATUS    RESTARTS   AGE
datakit-4zg7q                       1/1     Running   0          14h
datakit-wdtdq                       1/1     Running   0          14h

DataKit Operator

1. 下载

下载最新的 datakit-operator.yaml

wget https://static.guance.com/datakit-operator/datakit-operator.yaml

2. 配置 datakit-operator.yaml

主要调整 jsonconfig 下的 flameshots 内容,参考如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: datakit-operator-config
  namespace: datakit
data:
  jsonconfig: |-
    {
        "server_listen": "0.0.0.0:9543",
        "log_level":     "info",
        "admission_inject_v2": {
            ...
            "flameshots": [
                {
                    "namespace_selectors": ["default"],
                    "label_selectors":     [],
                    "image": "pubrepo.jiagouyun.com/datakit/flameshot:0.1.1",
                    "envs": {
                        "FLAMESHOT_DATAKIT_ADDR":     "http://datakit-service.datakit.svc:9529/profiling/v1/input",
                        "FLAMESHOT_MONITOR_INTERVAL": "1s",
                        "FLAMESHOT_PROFILING_PATH":   "/flameshot-data",
                        "FLAMESHOT_HTTP_LOCAL_IP":    "{fieldRef:status.podIP}",
                        "FLAMESHOT_HTTP_LOCAL_PORT":  "8089",
                        "FLAMESHOT_SERVICE":          "{fieldRef:metadata.labels['app']}",
                        "POD_NAME":                "{fieldRef:metadata.name}",
                        "POD_NAMESPACE":           "{fieldRef:metadata.namespace}",
                        "NODE_NAME":               "{fieldRef:spec.nodeName}",
                        "FLAMESHOT_TAGS":          "pod_name:$(POD_NAME),pod_namespace:$(POD_NAMESPACE),host:$(NODE_NAME)"
                        
                    },
                    "resources": {
                        "requests": {
                            "cpu":    "100m",
                            "memory": "128Mi"
                        },
                        "limits": {
                           "cpu":    "200m",
                           "memory": "256Mi"
                        }
                    },
                    "processes": "[{\"command\":\"java\",\"duration\":\"60s\",\"events\":\"--all\",\"language\":\"java\",\"jdk_version\":\"-\",\"tags\":[\"env:testing\",\"version:1.0.0\"],\"cpu_usage_percent\":20,\"mem_usage_percent\":20,\"mem_usage_mb\":1024}]"
                }
            ]
        },
        ...
    }

参数说明:

  • namespace_selectors: 空间选择,即哪些空间需要开启 flameshots
  • env: 配置环境变量信息
  • processes: 执行命令,如果为空,则 flameshots 不生效

processes 通用字段说明:

  • service (String): 选填,上报到观测中心的服务名称。
  • language (String): 目标进程语言。目前支持 java。
  • command (String): 匹配进程命令行的正则表达式。
  • duration (String): 单次采集时长(例如 30s1m)。注意:受限于执行超时,建议不超过 5 分钟。
  • tags (List): 自定义标签列表,建议包含 envversion 等元信息。
  • cpu_usage_percent (Int): CPU 触发阈值 (0-N)。多核环境下数值可能超过 100。
  • mem_usage_percent (Int): 内存使用率触发阈值 (0-100)。
  • mem_usage_mb (Int): 内存使用量绝对值触发阈值 (MB)。

当前配置 processes 可以实现所有 JAVA 服务,为了实践方便,当 cpu 使用率达到 20% 或内存使用率达到 20% 或内存使用值达到 1024m,则会触发执行 Profiling 操作。

"processes": "[{\"command\":\"java\",\"duration\":\"60s\",\"events\":\"--all\",\"language\":\"java\",\"jdk_version\":\"-\",\"tags\":[\"env:testing\",\"version:1.0.0\"],\"cpu_usage_percent\":20,\"mem_usage_percent\":20,\"mem_usage_mb\":1024}]"

3. 启动

root@root:~$ kubectl apply -f datakit-operator.yaml
root@root:~$ kubectl get pods -n datakit
NAME                                READY   STATUS    RESTARTS   AGE
datakit-4zg7q                       1/1     Running   0          15h
datakit-operator-849f868b78-zbcd9   1/1     Running   0          58s
datakit-wdtdq                       1/1     Running   0          15h

JAVA 应用

1. Yaml 配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: springboot-server
spec:
  selector:
    matchLabels:
      app: springboot-server
  replicas: 1
  template:
    metadata:
      labels:
        app: springboot-server
    spec:
      containers:
        - image: registry.cn-shenzhen.aliyuncs.com/lr_715377484/springboot-server:flameshots
          name: springboot-server
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort:  8080
              protocol: TCP

          securityContext:
            seccompProfile:
              type: Unconfined

2. 启动应用

root@root:~$  kubectl apply -f springboot-server.yaml
root@root:~$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
springboot-server-d55fc79dd-48c95   2/2     Running   0          3s

3. 查看 flameshot 执行日志

需要指定 containerName 为 -c datakit-flameshot

root@root:~$ kubectl logs -f springboot-server-d55fc79dd-48c95 -c datakit-flameshot
2026-01-15T03:55:58.090Z        ERROR        flameshot        flameshot/config.go:243        read config file failed, err:open /flameshot/flameshot.conf: no such file or directory
2026-01-15T03:55:58.092Z        INFO        flameshot        flameshot/monitor.go:78        start monitor, interval: 1s
2026-01-15T03:55:58.092Z        INFO        flameshot        flameshot/http.go:77        start http server on 10.187.217.101:8089
2026-01-15T03:55:58.092Z        INFO        flameshot        flameshot/http.go:78        profile start at /v1/profile
2026-01-15T03:55:58.092Z        INFO        flameshot        flameshot/http.go:79        prom http start at /metrics
2026-01-15T03:56:58.093Z        INFO        flameshot        flameshot/monitor.go:102        match: PID=7, name=java or cmd=java -jar app.jar

从启动日志上分析,已经找到了 java 服务,且 PID 为 7,等待触发事件

4. 触发阈值

访问应用

root@root:~$ kubectl exec -it springboot-server-d55fc79dd-48c95  -- /bin/bash 
Defaulted container "springboot-server" out of: springboot-server, datakit-flameshot
springboot-server-d55fc79dd-48c95:/home/app#
springboot-server-d55fc79dd-48c95:/home/app# curl http://localhost:8080/profiling/generator
write success!springboot-server-d55fc79dd-48c95:/home/app# 

再来看看 flameshot 执行日志,已触发了阈值 cpu_avg:36.60 且正常上报数据。

图片

之后恢复了正常,正常之后则不会再产生 Profiling 数据,除非再次触发了阈值。

观测云平台

登录观测云平台,访问「应用性能检测」-「Profling」可以查看到刚刚上报的 Profling 信息

图片

点击列表可以查看 Profling 详细信息,如 CPU 耗时、内存分配情况等,可以更深度的剖析应用代码性能损耗。

图片

图片
当前,AI for Science(AI4S)正从实验验证阶段快速迈向产业化落地的关键时期,从行业发展趋势看,AI 4S推动了研究机构"各自为政"的分散研发模式向"平台式构建"的模式演进,平台化的模式通过整合多模态大模型与自动化实验能力,能显著加速研发迭代进程。

但在AI赋能实际推进过程中,前沿研发领域仍面临多重瓶颈:生物、化学、物理等学科数据标准割裂,传统算法难以实现跨域关联;特定领域专家的经验无法有效转化为AI可理解的决策逻辑;另外,研发流程中从算法预测到实验验证环节仍依赖人工。

尤其在很多需要高度定制化的应用场景中,传统研发模式越来越可预见效率瓶颈。以化工行业为例,专用化学品等强定制化产品需要根据客户的具体应用和性能要求,进行个性化开发,传统依赖高经验技术人才"一对一"定制的方式在应对多样化需求时存在局限。

在这一背景下,枫清科技通过AI4S智能体体系与科研工作流协同,提供应对复杂参数组合和多样化目标的工具,让科研人员在模型的辅助下,降低试错成本,将精力聚焦于更高价值的创新构思与关键决策。

在业内人士看来,现阶段AI4S已应用于几类高价值场景,并创造了可验证的收益:一是在研发周期长、成本高的领域,AI的早期应用能快速验证技术路线,显著提升投资回报率;二是面对海量数据与复杂计算任务时,AI的高效处理能力可突破人工瓶颈;三是在需要探索高维设计空间(如微观结构、多元素组合)的场景中,AI能通过多模态学习与并行计算,快速筛选最优方案。而枫清科技AI4S智能体平台融合了文本、数据、知识图谱等多模态信息处理能力,为上述复杂科研场景攻克底层技术瓶颈,并提供从探索、设计到验证的全面支持。

在实践中,科研人员需要从海量文献、专利和多源异构数据中提取有效信息,而复杂科学问题的研究往往需要多轮迭代优化。枫清科技的智能体技术已展现出高效率、强数据处理能力与精准的微观结构设计能力。例如,在材料科学中,智能体可通过模拟不同元素组合的材料性能,优化新材料设计流程;在生物医药领域,则能加速分子筛选与结构预测。 

该智能体体系以"通用智能体+场景智能体"的双层架构,实现了从科研基础能力支撑到垂直场景的全面覆盖。通用智能体聚焦科研中的高频共性需求,如文献智能处理、专利解析与数据挖掘,通过自然语言交互提升知识获取效率;场景智能体则深入化工、生物医药等专业领域,结合行业知识解决特定问题。

在该架构下,智能体能够通过模型定向指引研究方向,并基于数据反馈持续优化算法。此外,智能体系统可嵌入"设计执行验证"的闭环中,帮助研究人员快速迭代方案。

同时,在数据层面,枫清科技智能体平台强调对科学数据的深度治理与复用,通过构建标准化、高质量的数据处理流程,整合多源异构数据,为科研创新提供更可持续的数字基座。通过自动化平台准备并提供数据,科研人员可在可靠的数据基础上开展场景开发,加速突破。

未来,通过共享不同领域的底层知识体系、优化人机协同机制,枫清科技智能体将成为支撑多学科交叉创新的基础工具,助力科研路径实现从"经验试错"到"理性设计"的跃迁。

Running a Cronjob Under Docker Container

当您想要安排计划任务,可以使用内置在 macOS 和 Linux 中的常见工具,比如 cron,或者像 AWS Lambda 这样的特殊工具。Cron 不如 AWS Lambda 强大,但它在 Unix 系统的后台任务中工作得很好,特别是在使用容器的情况下。然而,对于 Docker 来说这有点复杂,因为不能简单地从终端开始新的 cron 作业,并期望它工作。

How to Dockerize a Cron Job

要在 Docker 容器中运行 cron 作业,您需要使用 cron 并在 Docker 容器的前台运行它。

下面是一个如何设置的例子:

Create Cron File

创建一个文件,其中包含要在 Docker 容器下运行的所有 cron 作业。

cat cron

我们的示例文件如下:

* * * * * echo "Current date is `date`" > /var/log/cron

Create Dockerfile

接下来,创建一个安装 cron 服务的 Dockerfile,并将脚本复制到容器。

在这里,我们提供了 3 个 Dockerfile 示例,它们使用不同的操作系统。

Dockerfile with Alpine Linux

FROM alpine:3

# Copy cron file to the container
COPY cron /etc/cron.d/cron

# Give the permission
RUN chmod 0644 /etc/cron.d/cron

# Add the cron job
RUN crontab /etc/cron.d/cron

# Link cron log file to stdout
RUN ln -s /dev/stdout /var/log/cron

# Run the cron service in the foreground
CMD [ "crond", "-l", "2", "-f" ]

Dockerfile with Apache and PHP

FROM php:8.0-apache

# Install cron
RUN apt update && \
    apt -y install cron

# Copy cron file to the container
COPY cron /etc/cron.d/cron

# Give the permission
RUN chmod 0644 /etc/cron.d/cron

# Add the cron job
RUN crontab /etc/cron.d/cron

# Link cron log file to stdout
RUN ln -s /dev/stdout /var/log/cron

# Start cron service
RUN sed -i 's/^exec /service cron start\n\nexec /' /usr/local/bin/apache2-foreground

Dockerfile with Ubuntu Linux

FROM ubuntu:latest

# Install cron deamon
RUN apt update && apt install -y cron

# Copy cron file to the container
COPY cron /etc/cron.d/cron

# Give the permission 
RUN chmod 0644 /etc/cron.d/cron

# Add the cron job
RUN crontab /etc/cron.d/cron

# Link cron log file to stdout
RUN ln -s /dev/stdout /var/log/cron

# Run the cron service in the foreground
CMD ["cron", "-f"]

Build and Run Container

当前目录中有两个文件,一个是 cron, 它包含了 cronjob。 一个是 Dockerfile, 它有 Docker 的构建指令。运行以下命令使用 Dockerfile 构建 Docker 镜像。

docker build -t my_cron .

镜像构建成功后,启动容器:

docker run -d my_cron

这将启动容器下的 cron 守护进程,它将执行 cron 文件中定义的所有计划作业。

Test Setup

我们已经链接了 cron 日志文件 /var/log/cron/dev/stdout ,Cron 服务生成的所有日志
可以使用 docker logs 命令查看。

首先,使用 docker ps 命令查找容器 id 或名称。

docker ps

然后检查 Docker 容器的日志文件。

docker logs container_id

在 cronjobs 中,我打印了当前日期并把它们写入日志中。

Running Cronjobs in Docker

输出如上所示,这意味着 cron 作业在 Docker 容器下正常运行。

整理 | 华卫

 

用一个 PostgreSQL 主库和 50 个只读副本,就顶住了 ChatGPT 上的 8 亿用户!

 

近日,OpenAI 的工程师们不仅爆出了这一惊人消息,还直接把 Codex 的“大脑”给扒了个精光。在 OpenAI 官方工程博客主页,OpenAI 工程师、Technical Staff 成员 Michael Bolin 发布了一篇文章,以“揭秘 Codex 智能体循环”为题,深入揭秘了 Codex CLI 的核心框架:智能体循环(Agent Loop),并详细讲解了 Codex 在查询模型时如何构建和管理其上下文,以及适用于所有基于 Responses API 构建智能体循环的实用注意事项和最佳实践。

 

这些消息传出后,在 Hacker News 等技术论坛及社交平台上获得了高度关注。“看似平淡的技术最终会胜出。OpenAI 正在证明,优秀的架构远胜于花哨的工具。”

 

值得一提的是,有网友透露,前不久 Anthropic 的一位工程师称“他们用于 Claude Code UI 的架构糟糕且效率低下”。而就在刚刚,X 上出现一条爆料:Codex 已接管 OpenAI 100%的代码编写工作。

 

对于“你们有多少百分比的编码工作是基于 OpenAI 模型进行”的问题,roon 表示,“100%,我不再写代码了。”而此前,Sam Altman 曾公开发帖称,“roon 是我的小号。”

 

Codex 的“大脑”揭秘

“每个人工智能智能体的核心都是 Agent Loop,负责协调用户、模型以及模型调用以执行有意义的软件工作的工具之间的交互。”

 

据介绍,在 OpenAI 内部,“Codex”涵盖了一系列软件智能体产品,包括 Codex CLI、Codex Cloud 和 Codex VS Code 插件,而支撑它们的框架和执行逻辑是同一个。

 

Agent Loop 的简化示意图

 

首先,智能体会从用户那里接收输入,并将其纳入为模型准备的文本指令集,该指令集被称为提示词。下一步是通过向模型发送指令并要求其生成响应来查询模型,这个过程称为推理。推理过程中,文本提示词首先被转换为一系列输入 token,随后被用于对模型进行采样,生成新的输出 token 序列。输出 token 会被还原为文本,成为模型的回复。由于 token 是逐步生成的,该还原过程可与模型的运行同步进行,这也是众多基于大语言模型的应用支持流式输出的原因。实际应用中,推理功能通常封装在文本 API 后方,从而抽象化词元化的细节。

 

推理步骤完成后,模型会产生两种结果:(1)针对用户的原始输入生成最终回复;(2)要求智能体执行某项工具调用操作。若为第二种情况,智能体将执行该工具调用并将工具输出结果附加至原始提示词中。该输出结果会被用于生成新的输入内容,再次对模型进行查询;智能体随后会结合这些新信息,重新尝试完成任务。这一过程会不断重复,直至模型停止发出工具调用指令,转而生成面向用户的消息(在 OpenAI 的模型中,该消息被称为助手消息)。多数情况下,这条消息会直接解答用户的原始请求,也可能是向用户提出的跟进问题。

 

由于智能体可执行能对本地环境进行修改的工具调用,其 “输出” 并不仅限于助手消息。在很多场景下,软件智能体的核心输出是在用户设备上编写或编辑的代码。但无论何种情况,每一轮交互最终都会以一条助手消息收尾,该消息是智能体循环进入终止状态的信号。从智能体的角度来看,其任务已完成,操作控制权将交还给用户。

 

多轮智能体循环

 

这意味着,对话内容越丰富,用于模型采样的提示词长度也会随之增加。而所有模型都存在上下文窗口限制,即其单次推理调用可处理的 token 最大数量,智能体可能在单次对话轮次中发起数百次工具调用,这有可能耗尽上下文窗口的容量。因此,上下文窗口管理是智能体的多项职责之一。

这套智能体循环如何运行?

据介绍,Codex 正是借助响应 API 来驱动这套智能体循环的,博文曝出许多背后的实际运行细节,包括:

  • Codex 不会把用户的话直接给大模型用,而是会主动“拼接”出一整套精心设计的提示词结构,且涵盖多个角色的指令、用户输入的一句话在结尾才出现。

  • 模型推理与工具调用之间可能会进行多轮迭代,提示词的内容会持续增加。

构建初始提示词

作为终端用户,在调用响应 API 时无需逐字指定用于模型采样的提示词,只需在查询中指定各类输入类型,由响应 API 服务器决定如何将这些信息组织为模型可处理的提示词格式。在初始提示词中,列表中的每个条目均关联一个角色。该角色决定了对应内容的权重占比,优先级从高到低分为以下几类:系统、开发者、用户、助手。

 

响应 API 接收包含多个参数的 JSON 负载,其中三个核心参数有:

  • 指令:插入模型上下文的系统(或开发者)消息

  • 工具:模型生成回复过程中可调用的工具列表

  • 输入:向模型传入的文本、图片或文件输入列表

 

在 Codex 中,若已配置,指令字段的内容会从~/.codex/config.toml 配置文件中的模型指令文件读取;若未配置,则使用与该模型关联的基础指令。模型专属指令存储在 Codex 代码仓库中,并被打包至命令行工具中。工具字段为符合响应 API 定义的模式的工具定义列表。对于 Codex 而言,该列表包含三部分工具:Codex 命令行工具自带的工具、响应 API 提供且开放给 Codex 使用的工具,以及通常由用户通过 MCP 服务器提供的自定义工具。JSON 负载的输入字段为一个条目列表。在添加用户消息前,Codex 会先向该输入中插入以下条目:

 

1. 一条角色为开发者(role=developer)的消息,用于描述仅适用于工具部分中定义的 Codex 内置 Shell 工具的沙箱环境。也就是说,其他工具(如由 MCP 服务器提供的工具)并不受 Codex 的沙箱限制,需自行负责实施自身的防护规则。该消息基于模板构建,核心内容均来自打包在 Codex 命令行工具中的 Markdown 代码片段。

2.一条角色为开发者的消息,其内容为从用户的 config.toml 配置文件中读取的 developer_instructions 配置值。

3.一条角色为用户的消息,其内容为用户指令;该内容并非来源于单个文件,而是从多个数据源聚合而来。一般而言,表述越具体的指令,排序越靠后:

  • 加载 $CODEX_HOME 目录下 AGENTS.override.md 和 AGENTS.md 文件的内容

  • 在默认 32 千字节的大小限制内,从当前工作目录对应的 Git / 项目根目录(若存在)向上遍历至当前工作目录本身,加载任意 AGENTS.override.md、AGENTS.md 文件的内容,或加载 config.toml 配置文件中 project_doc_fallback_filenames 参数指定的任意文件内容

  • 若已配置相关技能,则补充以下内容:关于技能的简短引言、各技能对应的技能元数据、技能使用方法说明章节。

4. 一条角色为用户的消息,用于描述智能体当前的运行本地环境,其中会明确当前工作目录及用户所使用的终端 Shell 信息。

 

当 Codex 完成上述所有计算并完成输入初始化后,会追加用户消息以启动对话。需注意的是,输入中的每一个元素都是一个 JSON 对象,包含类型、角色和内容三个字段。当 Codex 构建好要发送至响应 API 的完整 JSON 负载后,会根据~/.codex/config.toml 中响应 API 端点的配置方式,携带授权请求头发起 HTTP POST 请求(若有指定,还会添加额外的 HTTP 请求头和查询参数)。当 OpenAI 响应 API 服务器接收到该请求后,会使用 JSON 数据来推导出模型的提示信息,(需要说明的是,Responses API 的自定义实现可能会采用不同的方法)。

 

可见,提示词中前三项的顺序由服务器决定,而非客户端。也就是说,这三项里仅系统消息的内容同样由服务器控制,工具与指令则均由客户端决定。紧随其后的是 JSON 负载中的输入内容,至此提示词拼接完成。

模型采样

提示词准备就绪后,模型才开始进行进行采样。

 

第一轮交互:此次向响应 API 发起的 HTTP 请求,将启动 Codex 中对话的第一轮交互。服务器会以服务器发送事件(SSE)流的形式进行响应,每个事件的数据均为一个 JSON 负载,其 type 字段以 response 开头。Codex 接收该事件流并将其重新发布为可供客户端调用的内部事件对象。`response.output_text.delta`这类事件用于为用户界面实现流式输出功能,而`response.output_item.added`等其他事件则会被转换为对象,附加至输入内容中,为后续的响应 API 调用所用。

 

若首次向响应 API 发起的请求返回两个`response.output_item.done`事件,一个类型为推理(reasoning),一个类型为函数调用(function_call),那么当结合工具调用的返回结果再次向模型发起查询时,这些事件必须在 JSON 的输入字段中进行体现。后续查询中用于模型采样的最终提示词结构如下:

 

需要特别注意的是,旧提示词是新提示词的完整前缀。这一设计是有意为之的,因为它能让用户借助提示词缓存提升后续请求的效率。

 

在 Codex 命令行工具中,会将助手消息展示给用户,并聚焦输入编辑区,以此提示用户轮到其继续对话。若用户做出回应,上一轮的助手消息以及用户的新消息均需附加至响应 API 请求的输入字段中,从而开启新一轮对话。同样,由于对话处于持续进行的状态,发送至响应 API 的输入内容长度也会不断增加。

 

弃用简单参数费力做优化,就为了用户隐私?

“在对话过程中,发送至响应 API 的 JSON 数据量,是否会让智能体循环的时间复杂度达到二次方级别?”答案是肯定的。

 

据悉,尽管响应 API 支持通过可选的 previous_response_id 参数缓解这一问题,但目前 Codex 并未启用该参数,主要是为了保证请求完全无状态,并兼容零数据保留(ZDR) 配置,即不存储用户对话数据。

 

取而代之的,是两套需投入大量研发精力、涉及复杂实施流程的技术策略。文中,OpenAI 详细介绍了这两项硬核优化的具体方案。

 

通常,模型采样的开销远高于网络传输的开销,采样环节会成为优化效率的核心目标,这也是提示词缓存至关重要的原因,它能复用前一次推理调用的计算结果。当缓存命中时,模型采样的时间复杂度将从二次方降至线性。OpenAI 相关的提示词缓存文档对这一机制有更详细的说明:仅当提示词存在完全匹配的前缀时,才有可能实现缓存命中。为充分发挥缓存的优势,需将指令、示例等静态内容置于提示词开头,而将用户专属信息等可变内容放在末尾。这一原则同样适用于图片和工具,且其内容在各次请求中必须保持完全一致。

 

基于这一原则,Codex 中可能有以下导致缓存未命中的操作:

  1. 在对话过程中修改模型可调用的工具列表;

  2. 更换响应 API 请求的目标模型(实际场景中,这会改变原始提示词中的第三项内容,因该部分包含模型专属指令);

  3. 修改沙箱配置、审批模式或当前工作目录。

 

因此,Codex 团队在为命令行工具开发新功能时,必须审慎考量,避免新功能破坏提示词缓存机制。例如,他们最初对 MCP 工具的支持曾出现一个漏洞:工具的枚举顺序无法保持一致,进而导致缓存未命中。需要注意的是,MCP 工具的处理难度尤为突出,因为 MCP 服务器可通过 notifications/tools/list_changed 通知,动态修改其提供的工具列表。若在长对话过程中响应该通知,极易引发高成本的缓存未命中问题。

 

在可能的情况下,针对对话过程中发生的配置变更,他们会通过在输入中追加新消息的方式体现变更,而非修改已有的早期消息:

  • 若沙箱配置或审批模式发生变更,我们会插入一条新的role=developer消息,格式与原始的条目保持一致;

  • 若当前工作目录发生变更,我们会插入一条新的role=user消息,格式与原始的条目保持一致。

 

据介绍,为保障性能,OpenAI 在实现缓存命中方面投入了大量精力。除此之外,他们还重点管理了一项核心资源:上下文窗口。

 

其规避上下文窗口耗尽的通用策略是:一旦词元数量超过某个阈值,就对对话进行压缩。具体来说,会用一个更精简、且能代表对话核心内容的新条目列表替代原有输入,让智能体在继续执行任务时仍能理解此前的对话过程。早期的压缩功能实现方案,需要用户手动调用/compact 命令,该命令会结合现有对话内容和自定义的摘要生成指令,向响应 API 发起查询;Codex 则会将返回的、包含对话摘要的助手消息,作为后续对话轮次的新输入。

 

此后,响应 API 不断迭代,新增了专用的/responses/compact 端点,能以更高效率完成压缩操作。该端点会返回一个条目列表,可替代原有输入继续对话,同时释放出更多的上下文窗口空间。该列表中包含一个特殊的 type=compaction 条目,其附带的 encrypted_content 加密字段为透明化设计,可保留模型对原始对话的潜在理解。

 

现在,当词元数量超过 auto_compact_limit 自动压缩阈值时,Codex 会自动调用该端点对对话内容进行压缩。

极限扩容:用 1 个数据库扛住了 8 亿用户

在另一篇技术博文中,OpenAI 工程师 Bohan Zhang 介绍, OpenAI 通过严苛的技术优化与扎实的工程实践,对单个数据库 PostgreSQL 进行深度扩容,实现以单套体系支撑 8 亿用户、每秒数百万次查询的访问需求。

 

据称,多年来,PostgreSQL 一直是支撑 ChatGPT、OpenAI API 等核心产品的核心底层数据系统之一。过去一年,公司 PostgreSQL 的负载增长超 10 倍,且这一增长趋势仍在持续加速。OpenAI 称,PostgreSQL 的横向扩展能力远超此前行业普遍认知,能够稳定支撑规模大得多的读密集型工作负载。“这套最初由加州大学伯克利分校的科学家团队研发的系统,助力我们通过单主节点 Azure PostgreSQL 弹性服务器实例,搭配分布在全球多个区域的近 50 个只读副本,承接了海量的全球访问流量。”

 

而且,OpenAI 表示,其扩容在实现规模提升的同时,始终将延迟控制与可靠性优化放在核心位置:生产环境中,客户端 99 分位延迟稳定保持在十几毫秒的低水平,服务可用性达到五个九标准;过去 12 个月内,PostgreSQL 仅出现过一次零级严重故障,该故障发生在 ChatGPT 图像生成功能爆红上线期间,一周内超 1 亿新用户注册导致写流量突发暴涨超 10 倍。

 

尽管 PostgreSQL 的扩容成果已达预期,OpenAI 仍在持续探索其性能极限。目前,他们已将可分片的写密集型业务负载迁移至 CosmosDB 等分片式数据库系统;对于分片难度更高的剩余写密集型负载,相关迁移工作也在积极推进,以此进一步减轻 PostgreSQL 主节点的写压力。同时,OpenAI 正与微软 Azure 团队展开合作,推动级联复制功能落地,实现只读副本的安全、大规模扩容。随着基础设施需求的持续增长,其将继续探索更多扩容方案,包括基于 PostgreSQL 的分片架构改造、引入其他分布式数据库系统等。

 

有网友评价道,“这招的高明之处,就在于极简。他们没用什么花里胡哨的冷门技术,不过是把最佳实践做到了极致。过去十年,行业里全是 ‘一切皆分片、拥抱 NoSQL、全面分布式,为 CAP 定理折腰’ 的论调,而 OpenAI 倒好, 服务十亿级用户的解法,居然只是一句‘试过加只读副本吗?’”

 

参考链接:

https://openai.com/index/unrolling-the-codex-agent-loop/

https://openai.com/index/scaling-postgresql/

研讨会回顾

日前,由Atlassian全球白金合作伙伴——上海龙智主办的《解锁服务管理新效能:Jira Service Management + AI 实战指南》网络研讨会圆满落幕。

研讨会上,龙智资深技术顾问张晓乐带来主题演讲,围绕服务管理的典型挑战、Jira Service Management(JSM)的核心能力、AI在服务支持中的实际应用、Cloud环境下的数据安全等展开探讨,并通过新员工入职流程的Demo演示,直观展示了JSM + AI如何显著提升服务效率。

以下为演讲实录,欢迎收藏阅读!


大家好,我是龙智的资深技术顾问张晓乐。本次研讨会聚焦 Jira Service Management + AI实战指南,旨在探索如何将 Atlassian 服务管理与人工智能相结合,为企业的现代服务管理带来新思路。希望能为大家带来实用启发。

服务管理面临的挑战

随着社会的进步及数字企业的兴起,全天候运作的服务和支援成为必然趋势,数字经济的蓬勃发展也使得远程协作模式逐渐成熟。这就要求支持服务时刻在线,满足客户随时可能产生的服务需求,而分散在各地的支持团队成员也需要无缝协作,来保障工作的顺畅进行。

但是服务管理领域的支持团队却面临着诸多挑战,例如:

  • 由于缺乏足够的历史经验和服务运营数据,团队难以精准把握运营状况,无法对服务方式及质量进行有效优化;
  • 服务台负荷过载,大量的服务请求让支持人员疲于应对,导致服务质量下降;
  • 处理客户问题的周期过长,不仅服务效率低下,还可能引发客户不满,影响企业口碑。

这些挑战相互交织,严重影响着服务管理支持团队的效能。

经过进一步的分析,我们发现导致这些问题的深层原因主要有:相互隔离的工具与团队、过时且杂乱的知识资产、效能不佳的人工智能没有给支持人员提供有效的信息和数据支撑;团队成员目标不一致、沟通效率低下,且复杂的解决方案增加了支持人员相互协作的难度,从而导致客户问题处理周期过长、服务台负荷过载,对服务质量也较难进行有效的优化。

Atlassian服务管理解决方案:Jira Service Management

为了有效解决这些问题,Atlassian推出了专业的服务管理解决方案——Jira Service Management(JSM),它是服务管理领域的有力工具,能为企业解决诸多难题。

那么 Jira Service Management(JSM)是如何运作、有哪些功能呢?

JSM的工作机制是:客户在服务台寻求帮助或提单,内部支持人员接收并处理这个工单,客户及支持人员可以在线沟通讨论相关问题,支持人员完成工单并反馈给客户后,客户可以提交对服务的满意度。

另外呢,由于客户分散在各地,常用的沟通工具和习惯都有所不同。为了提供更好的服务,JSM提供了多渠道一键提单、基于不同的业务需求自动assign/分类工单给特定支持团队、用SLA衡量服务质量、自动化服务,以及利用Assets实时透明地管理企业资产等功能。

接下来,我们逐步来看JSM是如何针对性解决服务管理中存在的问题的。

项目模板,轻松开启服务管理

为了更好地服务不同地区、不同领域的客户,降低企业的使用门槛,JSM提供了各类预置的服务模板,例如:HR服务、IT服务等,各模板里包括专用的请求类型、工作流、界面等,供大家开箱即用。另外,这些预置服务模板十分“全能”,能够针对不同团队的具体场景做到快速落地,一键创建,操作极为便捷。

统一入口,专属门户

JSM支持多渠道一键提单(例如通过聊天工具Slack/Teams,以及门户、Email,甚至在Confluence中都可以一键提单),不论客户通过何种渠道提交工单,都能在系统中统一呈现,避免了信息分散。

JSM还内嵌了知识库,支持客户自助搜索,以快速解决常见问题。另外JSM具有统一的帮助中心,还可以针对不同项目定制专属门户,用户可在帮助中心快捷查询所有项目,从而打破项目壁垒,让信息流通更顺畅。

会话式工单处理

支持人员在处理工单或与客户沟通时,JSM采用会话式工单处理方式,条理清晰,可看性更强。

知识驱动的服务

为了缩短服务的整体时间、提高服务响应速度,各企业都在提倡服务左移(即尽量让客户通过自助服务解决问题),而知识驱动是服务左移的基础,也是提升服务效能的关键。

JSM内置知识库,客户可在提单时自助搜索匹配相关信息,自行解决常见问题,从而显著减少工单数量,减轻支持团队的工作量,使支持团队将精力集中在更复杂的问题上,有效提升首次解决率与回应速度。

队列管理,高效分流

另外,为了实现服务资源的更优配置,优先聚焦关键服务事项,JSM提供了队列功能,可基于预设规则自动为工单分配支持人员、确定工单处理顺序,同时也可进行队列的快速切换和灵活调度,让服务管理更加高效、有序。

SLA 管理,透明可控

清晰定义的服务承诺是高质量服务管理的基础,而JSM提供了SLA目标自定义功能,能够基于客户要求自定义SLA服务。通过实时追踪SLA,支持团队还能够及时发现服务过程中的问题和偏差,进而管控客户预期,提升客户满意度。

知识库复用,持续沉淀

JSM基于与Confluence的集成,提供高效链接、管理Confluence文档的功能,可利用AI实时总结工单的解决过程及方式,形成有效的业务经验并自动更新至知识库,实现新知识即时沉淀、形成问题标准化解决方案,提高支持人员回应的一致性。另外,JSM还支持按支持人员和外部客户身份区分知识库权限,在提供最新知识的同时,有效保障信息安全。

Dev & Ops 真正协同

Dev与Ops真正协同是现代服务请求支持的关键一环。

JSM可与Jira Software无缝衔接,使支持团队与开发团队深度集成。从提出服务需求到问题解决,确保任务的精准分配与高效执行,实现完整的项目管理闭环,确保全流程可控、可追溯。这意味着可以打破部门间的隔阂,实现信息与资源的高效共享,有效提升服务质量和客户满意度。

资产与配置管理

企业资产也是服务管理中必不可少的一环。

JSM系统中的资产管理模块(Assets)可用于对企业至关重要的软件、硬件、服务、人员等资产进行自定义设置、实时跟踪和可视化管理,成为企业的实时资源库。通过动态追踪资产的使用状况及状态,企业可以及时发现潜在问题,提前做好维护或调整,避免因资产故障影响业务开展。还将资产对象与服务工单进行轻松关联,从而提高工作效率,减少沟通成本,让企业的管理流程更顺畅。

零编码的自动化规则构建器

Automation是JSM中协助支持团队做好服务管理的另一强大工具。针对可规则化的重复性服务需求,JSM支持零编码构建“触发器—条件—行为动作”的自动化规则,以系统自动执行来替代人工重复劳动,从而提高工作效率,让员工有更多精力投入到创造性的工作中。

虚拟智能助手

Atlassian 推出了虚拟智能助手(Virtual Intelligent Assistant),融合人工智能与自然语言处理技术,能够通过对话理解用户问题,快速响应并实时提供解决方案。同时,它还支持监控助手表现,便于用户有针对性地优化训练,持续提升其服务能力,从而显著增强企业客户服务的效率与质量。

综上所述,JSM 的各项功能有效应对了前述服务管理挑战,已成为众多企业实现高效、优质服务管理的首选方案。

Atlassian AI如何赋能现代服务请求支持

2025年,Atlassian进一步将Jira Service Management(JSM)、Customer Service Management(CSM)、Assets 和Rovo集成为全新的Service Collection解决方案推向市场。这是一个基于人工智能的服务管理解决方案,旨在帮助企业更智能、更高效地预防和应对各类服务问题。

JSM 和 Assets 的功能前面已作介绍,客户服务管理 CSM 不是本次研讨会的重点,此处不再展开。接下来,我们将目光聚焦到 Rovo 上。

认识Atlassian AI助手——Rovo

Rovo是Atlassian的全新AI产品,通过释放AI潜力帮助用户将信息瞬时转化为行动。Rovo的目标是让Atlassian平台从一个优秀的“工作系统”,进化为理解用户、辅助用户甚至能主动为用户工作的“智能工作伙伴”——这也是我们迎接智能未来的方式。

Rovo 由 OpenAI 和 Google 的大语言模型驱动,具备强大的语言理解与生成能力。同时,它深度集成 Atlassian Cloud 的核心引擎——团队知识图谱(Teamwork Graph),可自动聚合并识别企业团队在信息、工作内容、目标规划与知识沉淀之间的关联。通过结合 AI 模型的语言能力与结构化知识网络,Rovo 为高效服务管理提供有力支撑。

此外,Rovo 还可集成企业外部应用,快速分析和处理海量用户与服务数据,并通过三种主要模式——智能搜索(Rovo Search)、对话交互(Rovo Chat),以及开箱即用与可定制的AI助手(Rovo Agent)——为用户提供即时、精准的服务支持,助力团队从容应对复杂的工作场景。

JSM:AI驱动的智能服务台

JSM集成Rovo后成为AI驱动的智能服务台,通过Rovo、虚拟代理和知识库为用户提供全渠道的自助服务,实现服务左移。另外JSM平台通过深度整合Jira生态,打破团队壁垒,支持跨产品协作与自动化流程,涵盖IT、HR、一般服务管理等多种应用场景。同时支持外部知识整合及全生命周期资产管理,提供开箱即用的报表、服务管理分析工具等等,助力企业高速构建、部署和运行新服务。

那么,Rovo是如何助力企业进行高效服务管理的呢?

写作助手及智能摘要

Rovo在服务管理中的应用非常广泛。无论是日常知识的构建、更新与沉淀,还是与外部客户的沟通,它都能充当写作助手——不仅帮助用户总结、提炼、扩写、优化和翻译内容,还可以基于工单解决过程及用户沟通的上下文,自动归纳总结问题及解决方案,并将其创建、更新为最新的知识库经验。这有效解决了企业信息更新不及时、历史经验难以沉淀等问题。

智能建议及分类

Rovo还可根据项目和服务队列的实际情况,为工单给出智能建议,实现工单的精准分类与自动分派,大大提升支持人员的工作效率和决策质量。

智能搜索(Rovo Search)

Rovo智能搜索主要以三种形式服务用户:

  • 跨平台智能搜索:搜索信息时可跨平台显示搜索结果,例如用自然语言搜索信息后,搜索结果不仅包含Jira/JSM里的工单,也包括Confluence里的内容,从而打破平台壁垒,提高效率;
  • 针对用户权限及习惯,个性化显示搜索结果;
  • 通过不断迭代更新知识体系,提升系统性能和用户的搜索体验。

对话式AI(Rovo Chat)

Rovo Chat是一个对话式的AI伙伴,用户可通过自然对话与其互动,获得即时、有效的反馈。无论是撰写、修改、总结、查找内容,还是按需呈现信息,它都能轻松完成,真正实现“对话即自动化”。基于聊天上下文和企业产品数据,Rovo Chat能够智能生成回复并推荐后续问题,且随着团队的持续使用不断进化,变得越来越智能。

智能代理(Rovo Agent)

Rovo提供了开箱即用的智能代理(Agent),可将其看作是能基于用户需求执行相关任务的“AI同事”,例如自动处理工单、生成经验总结、智能分类、提供智能回复等,真正实现“动手”替你干活。

同时,Rovo Studio赋予企业定制Agent的能力——通过使用自然语言和低代码方式,基于企业的实际业务构建专属AI助手,并灵活定义其技能,如创建/更新/评论工单等,满足个性化服务管理需求。

智能自动化:Rovo和Automation

此前我们已经介绍过,JSM的Automation功能可帮助处理大量的重复性事务。结合Rovo的AI功能后,Automation得以进一步升级,真正实现智能自动化。

对于不熟悉Automation配置的用户来说,可通过Rovo使用自然语言轻松创建自动化规则,降低配置门槛,带来更好的用户体验。另外,企业也可基于实际的业务需求,将Rovo Agent集成进Automation规则中,将传统“规则驱动”的自动化升级为“AI智能驱动”——不仅能执行预设规则,还能在规则执行过程中理解业务上下文、预测需求并主动推荐下一步行动,真正实现从”自动化任务”到”自动化决策”的跨越,助力Atlassian 平台真正成为企业的智能协作中枢。

Atlassian Cloud跨区域协作优势与数据安全

接下来,我们来探讨大家关心的另一个话题:Atlassian Cloud跨区域协作的优势以及数据安全机制,希望能有效解答部分客户对这两方面的顾虑。

Atlassian Cloud跨区域协作优势:

  • Altassian在全球多区域部署基于AWS的公有云基础设施,支持用户就近接入;
  • 提供自动负载均衡功能,承诺高达99.9%的SLA目标,保障服务的高可用性;
  • 统一数据源及实时更新,所有的工单、文档、代码集中存储于云端,多地团队能即时查看同一版本,避免副本冲突;
  • 支持多种语言及时区,降低跨国团队的理解成本,避免跨时区排期错误。

Atlassian Cloud通过多重措施保障数据安全:

  • 安全工具Atlassian Guard可通过访问控制、单点登录 (SSO) 和多因素身份验证 (MFA)等措施,保证用户数据安全;
  • Cloud产品传输数据时,Atlassian会对数据进行加密,同时利用 AWS定期对加密、解密和密钥管理等流程进行内部检查和验证等,共同保障数据安全;
  • Atlassian也对分布于不同区域的多个数据中心制定了全面的备份计划,通过定期测试灾难恢复和业务持续性计划来提供服务保障,即使遇到突发情况,也能迅速恢复数据,确保业务的连续性,降低损失。

这几重保障相互配合,为用户和服务的数据安全保驾护航,让用户能够更加放心地使用Atlassian Cloud服务。

Rovo数据权限及隐私:

部分用户可能因Rovo可结合开源的AI模型,而对其数据安全有所顾虑,在此,我们专门做个解答。

  • Rovo严格遵循产品现有的权限设置,杜绝将数据用于跨客户的模型训练,对用户数据的使用边界有清晰的界定,能够保障不同客户的数据独立性和安全性;
  • Atlassian承诺用户数据不会用于改进任何大语言模型或服务,与第三方托管模型的数据交互是通过SSL加密服务单独发送的,进一步强化了数据隐私保护,企业无需担心数据泄密问题;
  • 符合条件的客户可申请仅使用Atlassian托管的大语言模型,将大语言模型的使用范围限制在Atlassian云平台内。

希望这一列的安全保证措施,能够解答大家对Atlassian Cloud产品数据安全的顾虑。

Demo演示:利用Jira Service Management + AI,高效处理新员工入职全流程

最后,我们以新员工入职流程为例,演示 JSM 与 AI 深度集成后在实际场景中的高效应用。

https://www.bilibili.com/video/BV1hQzNBhE7g/?page=1

Atlassian全球白金合作伙伴—上海龙智

作为Atlassian全球白金合作伙伴,以及大中华区第一家获得Cloud Specialization 和ITSM Specialization 认证的企业,龙智提供:

– Jira Service Management 规划与实施

– Atlassian平台整合、迁移与自动化设计

– DevOps流程与ITSM落地咨询

– 企业级培训与本地技术支持等服务

进一步了解Jira Service ManagementRovo如何帮助您的企业升级服务管理

从零开始使用ComfyUI:镜像部署与工作流操作全指南

本文基于实际Linux云实例操作场景,详细讲解从ComfyUI镜像环境到成功进入工作流的完整流程,涵盖环境排查、服务启动、访问验证等核心步骤,适配润云平台ComfyUI镜像及类似环境。

一、什么是comfyui

ComfyUI就像拥有一支神奇魔杖,可以轻松创造出令人惊叹的AI生成艺术。从本质上讲,ComfyUI是构建在Stable Diffusion之上的基于节点的图形用户界面(GUI),而Stable Diffusion是一种最先进的深度学习模型,可以根据文本描述生成图像。 但ComfyUI真正特别之处在于,它如何让像你这样的艺术家释放创造力,将你最疯狂的想法变为现实。

想象一下有一块数字画布,你可以通过连接不同的节点来构建自己独特的图像生成工作流,每个节点代表一个特定的功能或操作。 就像为你的AI生成杰作构建一个视觉食谱!

二、ComfyUI的准备

2.1 前置准备

进入润云平台,创建实例时选择ComfyUI镜像

创建实例成功之后,进入刚创建的实例Jupyter页面,并打开终端

2.2 确认ComfyUI安装路径

首先定位ComfyUI核心启动文件main.py,执行以下命令全局查找:


find / -name "main.py" 2>/dev/null | grep -i comfy

示例输出(本文实操路径):


/home/ComfyUI/main.py

若输出为空(镜像未预装ComfyUI),手动安装:


cd /root/workspace
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt

2.3 查看实例公网IP

访问ComfyUI需实例公网IP,执行命令快速获取:


curl ifconfig.me

示例输出(本文实操IP):


221.5.60.2

2.4 检查端口占用

ComfyUI默认端口为8188,本文实操使用8888/8889端口,先检查端口是否被占用:


# 检查8888端口
netstat -tuln | grep 8888
# 检查8889端口
netstat -tuln | grep 8889

若输出包含LISTEN,说明端口被占用,需更换端口。

三、启动ComfyUI服务

3.1 基础启动命令(前台运行)

进入ComfyUI主目录,启动服务并指定外网访问权限及端口:


# 进入ComfyUI目录(根据实际路径调整)
cd /home/ComfyUI
# 启动服务(使用8889端口,避开占用)
python main.py --listen 0.0.0.0 --port 8889

启动成功标志:终端最后输出以下内容,说明服务已正常运行:


Starting server
To see the GUI go to: http://0.0.0.0:8889

3.2 后台运行(推荐)

避免关闭终端导致服务停止,使用nohup命令后台启动,同时记录日志:


cd /home/ComfyUI
nohup python main.py --listen 0.0.0.0 --port 8889 > /root/workspace/comfyui.log 2>&1 
  • 日志查看tail -f /root/workspace/comfyui.log 实时监控启动状态
  • 停止服务

      `# 查找ComfyUI进程ID

    ps aux | grep comfy

    3.3 常见启动报错解决

报错类型解决命令
python: command not foundapt update && apt install -y python3 python3-pip && ln -s /usr/bin/python3 /usr/bin/python
No module named xxx(缺少依赖)cd /home/ComfyUI && pip install -r requirements.txt
address already in use(端口占用)更换端口(如8889)重新启动服务
xformers依赖报错(TypeError: JITCallable._set_src()pip uninstall -y xformers && pip install xformers==0.0.27.post2 --force-reinstall

四、访问ComfyUI工作流界面

进入实例详情页增加上面的开启的端口,复制访问地址至浏览器即可看到ComfyUI可视化工作流编辑界面(左侧为节点面板,中间为画布,右侧为控制栏)。

五、首次使用工作流

5.1 加载内置工作流

  1. 进入界面后,点击左上角 LoadLoad WorkflowFrom Examples
  2. 选择 basic_text_to_image.json(基础文生图工作流),画布将自动加载预设节点;
  3. Checkpoint Loader 节点下拉选择模型(如SD 1.5,需提前放入模型文件至/home/ComfyUI/models/Stable-diffusion目录);
  4. CLIP Text Encode 节点输入正向提示词(如“a cute cat, 4k, detailed”)和反向提示词(如“low quality, blurry”);
  5. 点击右上角 Queue Prompt 运行工作流,生成的图片将在 Preview Image 节点实时显示。

5.2 保存与复用工作流

工作流调试完成后,点击顶部 SaveSave Workflow,将工作流保存为JSON文件,后续可通过 Load Workflow → From File 上传复用。

5.3 核心界面与节点详解

ComfyUI界面分为三大区域,掌握各区域功能是灵活使用的基础:

  • 左侧节点面板:按功能分类存放所有节点,可通过顶部搜索框快速查找(如输入“Lora”定位Lora加载节点)。核心分类包括:
    模型加载类(Checkpoint Loader、Lora Loader、VAE Loader):用于加载基础模型、微调模型及解码模型;
  • 提示词处理类(CLIP Text Encode、CLIP Text Encode (Advanced)):用于解析正向/反向提示词,控制生成内容;
  • 采样生成类(KSampler、EulerSampler):核心生成节点,控制采样步数、CFG值、生成尺寸等关键参数;
  • 后处理类(Preview Image、Save Image):用于预览生成结果及保存图片到本地。

中间画布区域:工作流编辑核心区,可拖拽节点、连接端口、调整节点位置。操作技巧:

连接节点:点击一个节点的输出端口(右侧小圆点),拖拽到目标节点的输入端口(左侧小圆点),松开即可建立连接;

删除节点:选中节点后按Delete键,或右键节点选择Remove

清空画布:右键画布空白处,选择Clear Workflow

右侧控制栏:包含工作流队列、历史记录、设置等功能。队列面板可查看当前生成任务进度,历史记录可回溯之前的生成结果及对应工作流配置。

5.4 自定义工作流搭建(以图生图为例)

除了加载内置工作流,也可手动搭建自定义流程,以图生图为例,步骤如下:

  1. 加载基础模型:从节点面板拖拽Checkpoint Loader到画布,选择SD 1.5或SDXL模型,同时拖拽VAE Loader加载对应VAE模型(优化图像质量);
  2. 导入参考图:拖拽Load Image节点,点击节点上的Upload按钮上传本地图片,作为生成参考;
  3. 图片预处理:拖拽Image Scale节点,连接Load Image的输出端口,设置目标生成尺寸(如512×512),勾选cropresize调整图片适配尺寸;
  4. 提示词配置:拖拽两个CLIP Text Encode节点,分别输入正向提示词(如“a beautiful landscape, oil painting style”)和反向提示词(如“ugly, distorted, low resolution”);
  5. 采样生成:拖拽KSampler节点,依次连接以下端口:
    model端口:连接Checkpoint Loader的model输出;
  6. positive端口:连接正向提示词节点的输出;
  7. negative端口:连接反向提示词节点的输出;
  8. latent_image端口:连接Image Scale的输出(需先拖拽VAEDecode节点转换图像格式);
  9. 结果预览与保存:拖拽Preview ImageSave Image节点,均连接KSampler的输出端口,设置保存路径(默认保存在/home/ComfyUI/output);
  10. 运行工作流:点击右上角Queue Prompt,等待生成完成,在Preview Image节点查看结果。

5.5 常用功能拓展(插件与模型管理)

ComfyUI支持通过插件拓展功能,核心拓展方式如下:

5.5.1 插件安装(以ComfyUI-Manager为例)

ComfyUI-Manager已预装在当前镜像中,可通过它快速安装插件:

  1. 进入ComfyUI界面,点击左侧节点面板顶部的ComfyUI-Manager按钮;
  2. 在弹出的窗口中选择Install Custom Nodes,搜索需要的插件(如“ControlNet”“UltimateSDUpscale”);
  3. 点击插件右侧的Install,安装完成后重启ComfyUI服务,插件节点将自动显示在左侧面板。
5.5.2 模型管理与加载

不同类型的模型需放在对应目录,否则无法加载:

模型类型存放目录加载节点
基础模型(.ckpt/.safetensors)/home/ComfyUI/models/Stable-diffusionCheckpoint Loader
Lora模型(.safetensors)/home/ComfyUI/models/LoraLora Loader
ControlNet模型(.pth)/home/ComfyUI/models/ControlNetControlNet Loader
VAE模型(.ckpt/.safetensors)/home/ComfyUI/models/VAEVAE Loader
模型上传方式:通过云实例文件管理工具,将本地模型上传至对应目录,重启ComfyUI后即可在节点中选择加载。

六、关键注意事项

  1. 核心路径:本文实操中ComfyUI主目录为/home/ComfyUI,启动文件为main.py,实际路径需根据查找结果调整;
  2. 端口选择:优先使用未被占用的端口,避免与Jupyter、Nginx等服务冲突;
  3. 报错处理depthanythingv2nodes_audio.py等扩展节点报错仅影响小众功能,文生图、图生图、ControlNet等核心工作流不受影响,可后续按需修复;
  4. 后台运行:生产环境建议使用nohup后台启动,同时定期清理日志文件,避免占用过多存储空间。

七、常见问题排查

问题现象排查方向
浏览器无法访问界面1. 公网IP是否正确;2. 端口是否放行;3. ComfyUI服务是否正常运行;4. 实例是否处于运行状态
启动后无界面提示1. 启动命令是否包含--listen 0.0.0.0(允许外网访问);2. 端口是否被占用;3. 查看日志定位报错原因
运行工作流生成图片失败1. 模型文件是否存在且路径正确;2. GPU显存是否充足(建议RTX 3060及以上);3. 节点连接是否完整;4. 提示词是否合规

慕了!内存芯片巨头人均发 64 万年终奖;月之暗面总裁张予彤:Kimi 仅使用美国顶尖实验室 1% 的资源;32 岁程序员猝死背后公司:不配合工伤认定,曾给 39 万“封口费”;黄仁勋现身上海菜市场;大清洗!大众裁员 3.5 万人,包括 1/3 高管;微信聊天不能导出和分析;腾讯回应开源项目被下架;苹果 Siri「偷听」集体诉讼和解,美国用户开始获赔 9500 万美元;传阿里旗下芯片公司平头哥拟独立上市;马斯克:星舰今年目标全复用,成本将下降 99%;TikTok 宣布“美国方案”:成立数据安全合资公司,字节保留算法知识产权;黄景瑜成为中国首批商业航天太空旅客……

 

行业热点

 

慕了!内存芯片巨头人均发 64 万年终奖

 

1 月 19 日,据韩媒报道,全球内存芯片行业的三巨头之一 SK 海力士宣布,将向全体员工发放人均超 1.36 亿韩元(约合 64 万元人民币)的绩效奖金,创公司历史最高纪录。据报道,SK 海力士为员工提供以公司股票形式领取绩效奖金的选项,即“股东参与计划”。根据股东参与计划,员工可以选择将其年终奖的最多 50%以公司股票形式领取。持有这些股票满一年的员工,将获得相当于购买金额 15%的额外现金奖励。例如,一位获得 1 亿韩元年终奖的员工如果选择顶格持股,将获得价值 5000 万韩元的股票。若持有一年,该员工还将额外获得 750 万韩元。

 

2024 年,由于半导体行业低迷,SK 海力士推出了该计划。但由于当年仅发放了慰问金而未发放绩效奖金,因此当时未能实施。该计划从去年开始向员工提供购股选择。随着去年下半年劳资双方达成的新指南于本月底生效,SK 海力士员工的奖金金额预计将大幅增加。根据新协议,此前绩效奖金发放最高限额为 1000%(即 10 个月基本工资)的规定已被废除。取而代之的是,以上一年度营业利润的 10%作为年终奖,其中 80%的绩效奖金在当年发放,剩余 20%分两年递延发放,并享受每年 10%的利息。

 

鉴于 SK 海力士去年全年营业利润预计为 45 万亿韩元,员工总数为 3.3 万人,因此预计每位员工的绩效奖金约为 1.36 亿韩元(约合 64 万元人民币)。不过,“股东参与计划”也存在潜在变数。SK 海力士在公告中提示,韩国国会正在推进《公司法第三次修订案》审议,其中明确要求企业回购的自有股必须注销。若法案在本月或 3 月正式通过,企业将无法用自有股开展员工激励,本次持股计划或面临调整甚至取消。相关修订案将于 1 月 21 日进入议案审查小组讨论环节。行情数据显示,得益于人工智能热潮,SK 海力士的股价在 2025 年内涨幅达 275%。同时,今年年初,SK 海力士就表示其 2026 年的全部芯片产能已售罄。

 

月之暗面总裁张予彤:Kimi 仅使用美国顶尖实验室 1%的资源

 

1 月 21 日,月之暗面 Kimi 总裁张予彤出席在瑞士达沃斯举行的世界经济论坛 2026 年年会时表示,Kimi 仅使用美国顶尖实验室 1%的资源,就开放出 Kimi K2、Kimi K2 Thinking 这样全球领先的开源模型,甚至在部分性能上超越美国的顶尖闭源模型。张予彤透露,Kimi 投入大量精力将工程化思维引入研究环节,确保所有算法创新都能在生产系统中大规模稳定运行,据她透露,Kimi 最新模型将很快发布。

 

1 月 19 日,据外媒报道,两位知情人士透露,月之暗面 Kimi 在最新一轮融资中估值达到 48 亿美元(约合 330 亿元人民币),而就在几周前,该公司的估值还为 43 亿美元。消息人士称,由于市场需求旺盛,此轮融资可能很快就会完成。截至本文发布时,月之暗面尚未回复置评请求。消息人士补充说,由于市场对中国 AI IPO 候选企业的兴趣激增,该公司在后续几轮融资中的估值可能会更高。

 

32 岁程序员猝死背后公司:不配合工伤认定,曾给 39 万“封口费”

 

2025 年 11 月 29 日,32 岁程序员高广辉(视源股份任职 7 年)因长期工作强度大、频繁熬夜,在身体不适晕倒送医后抢救无效死亡,病历标注其“经常熬夜,工作强度大”。事发当日,他送医前仍叮嘱妻子“带上电脑”计划住院工作,急救期间及离世 8 小时后仍收到同事工作消息,当日曾 5 次登录公司 OA 系统,但公司隐藏后台时间,给工伤认定带来阻碍。

 

高广辉的工作状态极具代表性:公司实行“弹性工作制”却无加班费,他需同时承担研发、管理、售后、拉业务等多项职责,入职 7 年底薪始终 3000 元,依赖“多劳多得”维持税前 2.9 万元月薪,且面临每季度末位淘汰压力,长期深夜甚至凌晨回家成为常态。他曾在 GitHub 开源“反 996”项目,提醒同行“不要被任务压垮”,其离世后该项目被大量悼念留言刷屏。

 

事发后,视源股份的处理引发争议:6 天后向家属支付 39 万元“人道主义抚恤金”,实则附带“负面评价需支付 50 万违约金”的“封口费”条款;删除高广辉企业微信工作号、撤掉工位、丢失部分遗物,并要求全体员工不得提及此事,且不配合工伤认定相关调查。

 

“大概就是炒掉我老公的 N+1 钱,其实就是封口费,说如果我对公司造成负面评价违约金 50 万,当时被逼的没办法所以签了。”高广辉妻子对凤凰网说道,后续因为高父想要提前分遗产,分走了三十多万元,“其实(这笔钱)我只拿到四到六万。”

 

据报道,视源股份是一家业务涵盖教育、办公、AI、汽车电子等多领域的上市公司,技术人员占比超 58%,资料显示“无刚性考勤、人性化管理”,且福利优厚,但背后是普遍的强制加班文化。前员工反映,加班至深夜是常态,休假、就医需随身携带电脑,拒绝加班会影响绩效,部分员工因长期高压出现躯体化症状。公司近年盈利持续下滑,正推进 H 股上市,业务扩张压力最终转嫁至一线员工。

 

目前高广辉的工伤认定仍在调查中,律师表示,若能提供工作记录、加班文化等证据证明猝死与工作高度相关,可认定为工伤,居家办公也可视为工作时间延伸。高广辉家属希望此事能敲响职场警钟,推动职场环境改革,避免类似悲剧重演。

 

黄仁勋现身上海菜市场

 

昨天,黄仁勋现身陆家嘴街道乳山路锦德菜市场,体验上海市井风俗。此前,多位知情人士透露,黄仁勋再度来华,首站到访了英伟达位于上海的新办公室,与员工见面并回答了诸多员工关注的问题,同时回顾公司 2025 年主要事件。

 

大清洗!大众裁员 3.5 万人,包括 1/3 高管

 

1 月 21 日,德国汽车制造商大众汽车周三表示,其核心品牌集团计划削减管理岗位并整合生产平台,目标是到 2030 年节约 10 亿欧元。该公司在声明中表示,计划在 2026 年夏季前将大众核心品牌集团的董事会成员数量减少约三分之一。报道称,这意味着董事会职位将从 29 个减少到 19 个。

 

该公司补充说,大众乘用车、斯柯达和西雅特/Cupra 等品牌未来将各有四名董事会成员——一位首席执行官,加上财务、销售和人力资源主管--而开发、采购和生产将由位于沃尔夫斯堡的汽车制造商总部处理。它表示,将在中期内进一步逐步精简核心品牌集团内部的管理结构。该公司表示,核心品牌集团的 20 多家全球运营工厂将被组织成五个生产区域,区域经理将承担跨品牌和跨国家的责任。

 

大众汽车正努力应对工业放缓、来自中国的激烈竞争和昂贵的关税,到 2030 年将在德国削减 3.5 万个工作岗位。媒体曾报道称,大众核心品牌集团首席执行官托马斯·谢弗预计的节约成本由 6 亿欧元的人力成本和 4 亿欧元的生产效率组成。大众汽车的此次改革,远不止于财务上的“节流”。它标志着集团在向电动化与数字化转型的关键时期,正试图重塑其庞大的管理体系——通过削减层级、整合资源与强化区域协调,构建一个更敏捷、更高效的运营模式。

 

微信聊天不能导出和分析?腾讯回应开源项目被下架

 

1 月 22 日下午消息,近日在小红书等社交媒体上,有用户发帖表示,腾讯要求全球最大代码托管与协作平台 GitHub 全面下架一批微信开源项目,相关项目主要涉及“允许用户导出或分析自己微信聊天记录”。

 

这一话题引发网友讨论,部分网友质疑表示,像导出个人聊天记录、清理微信缓存这类基础功能工具,本该是提升用户体验的标配,可微信不仅自己不提供,还不允许用户自主优化使用体验。这是否说明用户对微信数据没有自主权。

 

对此,腾讯方面回应称,部分读取微信聊天记录的开源项目,是通过对微信客户端进行逆向工程等手段,破解本地数据库的密钥,以绕过微信客户端的加密措施,威胁用户本人及第三方数据隐私与客户端安全,且极易被黑灰产利用。腾讯依据相关法规向开源平台提出请求,并获得了平台支持,大部分项目也在平台沟通后选择主动移除违规内容。

 

苹果 Siri「偷听」集体诉讼和解,美国用户开始获赔 9500 万美元

 

苹果去年年初就 Siri「非法且故意录音」集体诉讼达成和解。该事件可追溯至 2019 年,苹果曾否认指控并加强隐私保护。从去年年中起受影响用户可提交索赔申请,如今部分用户已陆续收到赔付款。用户需在 2014 年 9 月 17 日至 2024 年 12 月 31 日购买过支持 Siri 的设备且经历过「非预期激活 Siri」才能申请。本次赔付总价值 9500 万美元,每名用户最多申报 5 台设备,最初预计每台赔 20 美元、单人最多 100 美元,最终每台约 8.02 美元、最多 40.1 美元。成功参与和解的用户,直接转账的赔付款从前天开始陆续到账,选择支票 / 礼品卡形式的需留意邮箱或实体邮箱。

 

传阿里旗下芯片公司平头哥拟独立上市

 

1 月 22 日下午消息,接近市场人士称,阿里巴巴集团已决定支持旗下芯片公司平头哥未来独立上市。平头哥是阿里巴巴集团旗下全资芯片公司,2018 年成立以来,在行业中非常低调,是阿里雪藏多年的“核武器”。如今平头哥芯片正式浮出水面。阿里方面对此消息未作评论。

 

截至目前,平头哥在算力芯片领域推出 AI 推理芯片含光 800、CPU 倚天 710 以及 AI 芯片 PPU,在存储芯片领域推出 SSD 主控芯片镇岳 510,在网络芯片领域据称也将推出相关芯片,已布局数据中心全栈芯片。平头哥还在端侧芯片推出羽阵 IoT 芯片,已实现数亿出货,布局覆盖云端和终端。此外,2026 年 1 月 2 日,百度集团宣布,昆仑芯已于 1 月 1 日通过其联席保荐人向香港证券交易所提交了上市申请表。在拟议的分拆完成后,昆仑芯预计仍将作为子公司。

 

马斯克:星舰今年目标全复用,成本将下降 99%

 

2026 年 1 月 22 日,特斯拉首席执行官埃隆·马斯克在达沃斯世界经济论坛与贝莱德首席执行官拉里·芬克交谈时,阐述了其在太空探索、人工智能、机器人及自动驾驶领域的愿景与规划。

 

在太空探索领域,马斯克表示 SpaceX 今年的目标是实现“星舰(Starship)”的完全可重复使用。作为有史以来最大的飞行器,星舰若达成该目标,将使进入太空的成本降至当前的 1%(每磅 100 美元以下)。此外,他还提及未来两到三年计划发射太阳能驱动的人工智能卫星,由于太空中太阳能持续充足且无大气干扰,太阳能电池板效率将是地球的五倍,未来太空或将成为部署人工智能成本最低的地方,而此前他曾提出未来四到五年内将大规模人工智能系统部署到轨道的设想。

 

在机器人领域,马斯克透露特斯拉计划明年年底向公众销售人形机器人 Optimus,目前该机器人已在工厂执行简单任务,预计今年年底将具备更复杂功能。

 

自动驾驶方面,马斯克称自动驾驶汽车“基本是已解决的问题”,特斯拉“全自动驾驶”软件每周都会更新,部分保险公司已为使用该技术的客户提供半价保险。目前特斯拉已在美国多个城市推出自动驾驶出租车服务,计划今年年底在美国大规模推广,欧洲则有望下月获得全面自动驾驶监管批准。

 

此外,马斯克此前在社交媒体 X 上表示,Cybercab(无人驾驶出租车)和 Optimus 的生产速度将呈 S 型曲线逐步加快。他还展望,今年年底或最迟明年,人工智能将“比任何人更聪明”,其公司的总体目标是“最大限度提高人类文明拥有美好未来的可能性”,并“将意识扩展到地球之外”。

 

资本市场上,商业航天概念板块热度颇高,价格波动情况受到市场广泛关注。

 

TikTok 宣布“美国方案”:成立数据安全合资公司,字节保留算法知识产权

 

北京时间 1 月 23 日,TikTok 发布公告称已成立 TikTok 美国数据安全合资有限责任公司,负责 TikTok 美国的数据保护等业务,字节跳动继续拥有 TikTok 算法知识产权并授权其使用。TikTok 美国公司由字节跳动全资控股,负责电商等商业活动及全球产品互联互通。这意味着 TikTok 美国方案正式落地,超 2 亿美国用户可继续使用。合资公司中,甲骨文、银湖资本、MGX 各持股 15%,字节跳动保留 19.9% 股份为最大单一股东,由七人董事会管理。TikTok 美国公司保障产品全球内容互联、体验一致,其商业活动是重要收入来源。

 

黄景瑜成为中国首批商业航天太空旅客

 

1 月 22 日,黄景瑜以「009 号太空游客」身份官宣成为中国首批商业航天太空旅客,计划 2028 年搭乘国产可重复使用载人飞船飞赴亚轨道太空,同行者包括中国工程院院士李立浧等人。他们将乘坐亚轨道载人飞船穿越卡门线,体验至少 5 分钟失重并俯瞰地球。

 

据穿越者此前消息,穿越者已开启船票预售,预售船票 300 万/张,预付 10%可锁定名额,目前已签约来自学界、商界、航天界、艺术界、娱乐界、网红界等领域的十余位付费太空游客。

 

智元机器人 CMO 邱恒是“中国 001 号商业航天员”。邱恒于 2023 年自费购买中国首张商业航天“太空船票”,成为首位签约亚轨道飞行的普通人。他表示,人形与四足机器人能创造无限生产力,这样的生产力正加速服务工业、商业,未来也有可能助力人类拓展新的疆域。

 

2023 年 11 月,穿越者与首位太空游游客签约。据穿越者官方消息,目前穿越者载人飞船的签约游客有中国工程院院士李立浧、旅美诗人林小颜、广州正佳集团副董事长兼首席执行官谢萌、星河动力 CEO 刘百奇、航天垂类大 V 博主 @NASA 爱好者等。

 

1 月 18 日,穿越者自主研制的穿越者壹号(CYZ1)载人飞船试验舱,完成着陆缓冲系统的综合验证试验。穿越者介绍,这是我国商业航天领域首个载人飞船全尺寸试验舱着陆缓冲关键技术验证项目,此次试验的成功,标志着穿越者已成为全球第三家研发并验证了载人飞船着陆缓冲技术的商业航天企业。

 

穿越者官方资料显示,穿越者成立于 2023 年 1 月,是中国首家商业的“载人航天科技”有限公司,专注可重复使用载人飞船研制和太空旅游运营,计划 3-4 年首先完成亚轨道可重复使用载人飞船研制,2028 年前后实现中国乃至亚洲的太空旅游。

 

OpenAI 计划于今年下半年推出首款硬件设备

 

1 月 19 日消息,据 Axios 网站报道,OpenAI 政策主管克里斯 · 莱恩周一在达沃斯论坛透露,公司“正按计划”于 2026 年下半年推出其首款设备。OpenAI 首席执行官萨姆・奥特曼和苹果前首席设计师乔尼・艾维去年 5 月份曾透露,该公司正在研发一系列硬件产品,有望于 2026 年正式亮相。彭博社记者马克・古尔曼去年 11 月曾爆料,OpenAI 正在从苹果的硬件工程团队中大肆挖人。

 

据悉,其合作开发的神秘 AI 硬件已拥有首个原型机,奥尔特曼称原型机的表现“令人惊叹”,并表示项目正按预期推进,并透露该产品将在两年内投入生产。在本次活动中,两人阐述了该设备的核心理念:彻底改变人们使用计算机的方式。他们认为,当前的智能设备如同“走在纽约时代广场”,充斥着各种干扰信息,无法带来平静。因此,这款新设备旨在创造一种“坐在湖边小屋”般的宁静体验,让用户能专注于真正重要的事情。

 

大模型一周大事

 

重磅发布

 

DeepSeek 新模型“Model 1”曝光,疑似“高效推理模型”

 

1 月 21 日下午消息,DeepSeek 于官方 GitHub 仓库更新了一系列 FlashMLA 代码,在这些更新中,一个名为“Model 1”的模型引起了广泛关注。据悉,目前这个还很神秘的 Model1 不仅出现在了代码与注释中,甚至还有与 DeepSeek-V3.2 并驾齐驱的文件。这也不禁引发广大网友猜测,认为 Model 1 很可能就是传闻中 DeepSeek 将于春节前后发布的新模型代号。

 

最新消息显示,Model1 是 DeepSeek FlashMLA 中支持的两个主要模型架构之一,另一个是 DeepSeek-V3.2。这很可能是一个高效推理模型,相比 V3.2 内存占用更低,适合边缘设备或成本敏感场景。此外,它也可能是一个长序列专家,针对 16K+序列优化,适合文档理解、代码分析等长上下文任务。

 

阿里推出 AIGC 设计应用“呜哩 (Wuli)”,集成通义千问图像模型

 

1 月 20 日,阿里巴巴推出了一款名为“呜哩”的 AIGC 创意设计生产力平台,并已正式开启测试。该平台旨在为内容创作者、设计师及营销人员提供一套高效多元的 AI 创意生成解决方案。平台深度整合了通义千问团队研发的多款图像大模型,形成一个模型全家桶。其中包括主打高质量的 Qwen Image25.12 生成模型、追求极致响应速度的 Qwen Image Turbo 模型,以及专注于细节调整的 Qwen Image25.11 编辑模型。用户可根据不同创作需求,在生成质量、速度与可控性之间灵活选择。

 

在功能层面,呜哩平台提供了从图片生成、视频生成到灵感联想、翻译辅助及资源库支持的完整具集,可帮助用户跨越创意瓶颈。用户通过输入简单的描述,即可快速生成如 3D 艺术字体、电影风格海报、电商场景图在内的丰富内容。

 

百川推出最低幻觉循证增强医疗大模型 M3 Plus

 

1 月 22 日,百川智能正式发布 Baichuan-M3 Plus,严肃医疗场景下的问答准确性、可靠性,再次刷新了刚刚推出的 M3 所创下的世界纪录。凭借独创的六源循证技术与 M3 基座结合,M3 Plus 将幻觉率降低至 2.6%,低于 Open Evidence,达到全球最低水平;首创“证据锚定”技术,不仅给出引文来源,还能将模型生成的每一句医学结论,精确锚定到原始论文中的对应证据段落。

 

微软 Copilot 测试 Real Talk 和视频生成功能

 

微软正邀请全球用户测试 Copilot 的 Real Talk 功能,并开始测试视频生成能力,以应对 Google Gemini 和 ChatGPT 的竞争。网络分析公司 SimilarWeb 数据显示,Copilot 网页端市场份额约为 1%。为提升竞争力,微软推出两项核心更新:Real Talk 模式与视频生成功能。

 

Real Talk 模式通过“深度”和“写作风格”两个维度调整 AI 回应方式。系统可根据对话历史自动选择对话深度(如标准、压缩)和风格(如休闲),并允许用户随时查看 AI 的思维过程,旨在实现更接近人类的对话体验。该模式下,Copilot 不再以程式化方式回应问题,而是表现出真实的好奇心。面对不合理提问时,会主动反驳并表达对特定话题的兴趣,而非对所有问题均表现出虚假热情,从而提升互动活跃度。

 

在安卓版 Copilot 中已发现“生成视频”功能开关,测试表明可创建最长 8 秒且包含音频的视频片段。目前尚不明确该视频功能基于微软自研或 OpenAI 的 Sora 模型,但已在基础版 Microsoft 365 订阅提供,未设置额外付费门槛。

 

文心 App 秘密筹划界面改版,将新增“多人多 Agent”群聊功能

 

1 月 21 日消息,文心 App 近期将启动交互界面改版,新增“多人、多 Agent 群聊”功能,以更加社交化、活人感的方式进行用户交互。目前,文心 App 群聊功能已开启内测,将很快与用户见面。据百度内部人士透露,这是国内 AI 应用首次从“一对一助手”进化为参与人类社交与协作的“智能成员”。

 

据介绍,文心 App 群聊功能将支持用户在同一群聊中调动多个 AI 角色,适用职场创意脑暴、办公协作、家庭成员间生活协同、趣味互动等场景。AI 能理解群聊上下文、识别成员意图,并根据讨论氛围精准判断介入时机,主动应答。

 

据相关人士透露,预计今年 2 月,文心 App 还将新增支持群聊内给自己或别人布置日程提醒,支持自定义个人的文心助手人设和回复风格,支持图生图能力和特色玩法类 Agent。

 

目前,文心 App 群聊功能已在内测阶段。百度内部人士表示:“我们其实没有考虑过要做一个微信或者取代微信,目前没有考虑,我相信大家也都感觉这个不现实,我们都是从需求和任务本身去出发的,大家如果真的有特定的任务,比如说家庭健康的任务、小组作业的任务、旅游规划的任务,或者是一些特别复杂的决策,我们希望提供一个平台给大家,大家可以尝试在这里面跟你的一些同事朋友去借助 AI 的能力,更好地完成你们的任务。”

 

X 平台正式开源推荐算法,马斯克:没有其他社交媒体这么做

 

1 月 20 日,马斯克宣布正式开源新的 X 平台算法,该算法由与 xAI 的 Grok 模型相同的 Transformer 架构驱动。马斯克坦言,我们知道这种算法很笨拙,还需要大幅改进。但至少可以看到 X 平台在实时、透明的情况下努力让它变得更好,没有其他社交媒体公司这样做。

 

据悉,该算法与当前运行的生产系统相同,并由 xAI 的 Grok 提供支持。完整代码已发布在 GitHub 上,并将每 4 周更新一次。用户的推荐内容会结合关注账号的帖子与 X 上发现的帖子,然后使用基于 Grok 的转换器进行排序。该转换器预测用户可能喜欢、回复、转发、点击或观看的几率。模型不仅预测单一分数,而是预测多种行为并综合它们,以实现更细致的排序。所有内容均直接从用户行为中学习。

 

特斯拉发布第二代人形机器人摆件:199 元

 

1 月 20 日,特斯拉中国官网发布 Tesla Bot 摆件(生肖盲盒版),售价 199 元,将于 1 月 21 日 10:00 开售。据介绍,Tesla Bot 系列摆件是以 1:10 比例打造的可动收藏玩偶,由 40 多个独立零件组成,配备 20 个关节点。

产品尺寸为 5.5cm x 18.2cm,净重约 25 克。无论是外观细节还是动作表现,均高度还原第二代人形机器人。用户可以自由调整摆件姿势,如双手抱拳的拜年造型、手持节日道具的俏皮模样。

据了解,盲盒内还有神秘嘉宾,将以 10% 的概率随机出现,可能是身穿新年限定服饰的 Tesla Bot(马年生肖特别版),也可能是 Tesla Bot 的神秘好友。

 

苹果内部“ChatGPT”曝光:能 AI 写代码、改文案、分析文件等

 

1 月 22 日消息,日前,据外媒报道,苹果公司于 2025 年 11 月在内部推出名为 Enchanté 的类 ChatGPT 聊天机器人,以及名为“企业助手”(Enterprise Assistant)的知识中心应用。消息称 Enchanté 界面酷似 macOS 版 ChatGPT,但专为苹果严格的安全需求定制。媒体援引博文介绍,Enchanté 仅运行苹果批准的模型(含苹果自研基础模型以及 Claude 和 Gemini),且完全在本地或私有服务器上运行。该工具不仅能协助员工完成创意构思、代码开发和校对工作,还能深度分析员工上传的文档和图像,且杜绝了任何向第三方发送敏感数据的风险。

 

另一款名为“企业助手”(Enterprise Assistant)的应用则更具针对性,它充当了苹果员工的中央知识库。该工具完全基于苹果内部的大语言模型(LLM)构建,整合了海量的内部政策与技术文档。员工可通过它快速查询高管职责、商业行为准则、健康保险福利,甚至包括“如何在 iPhone 上配置 XXX”等具体技术指南,极大地简化了信息检索流程。这两款应用均内置了反馈机制,允许员工对 AI 的回答质量进行评分,甚至能将苹果自研模型的回答与第三方模型进行“同屏比对”。

 

虽然苹果尚未公开具体细节,但行业普遍认为,这些来自工程、设计及营销等跨部门的高质量内部数据,将直接用于训练和微调其基础模型。该媒体认为这种“内部试错”的模式,或许正是苹果在 Apple Intelligence 发展受阻的背景下,试图通过提升模型硬实力来打破僵局的关键一步。

 

企业应用

 

  • 1 月 22 日,手机厂商 vivo 在近期叫停了 AI 眼镜项目。这一项目此前已秘密筹备半年时间,并已与歌尔、中科创达在内的多家 ODM 厂商合作 demo。原因是 vivo 执行副总裁胡柏山在内的多位高层判断,其 AI 眼镜“在当下很难做出差异化”。报道指出,叫停 AI 眼镜项目之后,vivo 将继续聚焦混合现实(MR)方向。

  • 1 月 20 日,OpenAI 宣布,将为旗下 ChatGPT 个人版推出年龄识别模型,助力这家人工智能企业识别出未满 18 周岁用户的账号。该公司表示,此模型的运行依托账号数据信号与用户行为数据信号的结合分析。具体信号涵盖用户长期使用习惯、账号注册时长、日常活跃时段以及用户自行填报的年龄信息。管理解决方案提供商 ServiceNow 达成三年期协议,将 AI 模型集成进后者的业务软件。

引言

消息队列的存储架构是决定其可靠性、吞吐量、延迟性能的核心因素,直接影响业务场景适配能力。本文聚焦三款主流消息队列 ——Kafka(LinkedIn 开源,侧重高吞吐)、RocketMQ(阿里开源,金融级特性突出)、JMQ(京东开源,侧重高可用与灵活性),从存储模型、数据组织、索引设计等维度展开深度对比,为技术选型与架构优化提供参考。​

本文将从概念辨析出发,系统拆解主流存储模型与存储引擎的设计逻辑,对比 JMQ、Kafka、RocketMQ的技术选型差异与架构设计。​
一、Kafka存储架构
1.1 核心存储模型:分区日志流
在这里插入图片描述

Topic - 主题

Kafka学习了数据库里面的设计,在里面设计了topic(主题),这个东西类似于关系型数据库的表,此时我需要获取中国移动的数据,那就直接监听中国移动订阅的Topic即可。

Partition - 分区

Kafka还有一个概念叫Partition(分区),分区具体在服务器上面表现起初就是一个目录,一个主题下面有多个分区,这些分区会存储到不同的服务器上面,或者说,其实就是在不同的主机上建了不同的目录。这些分区主要的信息就存在了.log文件里面。跟数据库里面的分区差不多,是为了提高性能。

至于为什么提高了性能,很简单,多个分区多个线程,多个线程并行处理肯定会比单线程好得多。

Topic和partition像是HBASE里的table和region的概念,table只是一个逻辑上的概念,真正存储数据的是region,这些region会分布式地存储在各个服务器上面,对应于kafka,也是一样,Topic也是逻辑概念,而partition就是分布式存储单元。这个设计是保证了海量数据处理的基础。我们可以对比一下,如果HDFS没有block的设计,一个100T的文件也只能单独放在一个服务器上面,那就直接占满整个服务器了,引入block后,大文件可以分散存储在不同的服务器上。

注意:
1.分区会有单点故障问题,所以我们会为每个分区设置副本数
2.分区的编号是从0开始的

在这里插入图片描述




Kafka 以「主题(Topic)- 分区(Partition)」为核心组织数据,每个分区本质是一个 append-only 的日志流,消息按生产顺序追加存储,保证分区内消息有序性。​

优点:可以充分利用磁盘顺序读写高性能的特性。存储介质也可以选择廉价的SATA磁盘,这样可以获得更长的数据保留时间、更低的数据存储成本。
1.2 数据组织:分段日志文件
•每个分区拆分为多个 Segment 文件(默认 1GB),命名格式为「起始偏移量.log」(如 00000000000000000000.log)​,做这个限制目的是为了方便把.log加载到内存去操作
•配套两类索引文件:.index(偏移量→物理地址映射)、.timeindex(时间戳→偏移量映射)​​

在这里插入图片描述




这个9936472之类的数字,就是代表了这个日志段文件里包含的起始offset,也就说明这个分区里至少都写入了接近1000万条数据了。

Kafka broker有一个参数,log.segment.bytes,限定了每个日志段文件的大小,最大就是1GB,一个日志段文件满了,就自动开一个新的日志段文件来写入,避免单个文件过大,影响文件的读写性能,这个过程叫做log rolling,正在被写入的那个日志段文件,叫做active log segment。
1.3 消息读/写过程
在这里插入图片描述

写消息:
•Index文件写入,Index文件较小,可以直接用mmap进行内存映射,避免频繁的磁盘I/O操作,提高写入性能;由于Index文件是稀疏索引,只需要记录关键位置的偏移量,因此即使使用mmap,写入的开销也相对较低。
•Segment文件写入,Segment文件较大,可以采用普通的写操作(FileChannel.write),由于Segment文件是顺序写入的,并且Kafka会利用操作系统的PageCache(页缓存)机制,写入操作会先写入到内存中,然后由操作系统在后台异步刷新到磁盘,可以进一步提高写入的性能。

读消息:
•Index文件读取,通常使用mmap方式读取,由于Index文件较小,且是稀疏索引,缺页中断的可能性较小。
•Segment文件读取,通常使用sendfile系统调用来实现零拷贝读取和发送,减少数据在用户空间与内核空间之间的拷贝次数,提高数据传输的效率。
1.4 关键技术

Kafka 作为高性能的消息中间件,其超高吞吐量的核心秘诀之一就是深度依赖 PageCache + 顺序 I/O + mmap 内存映射的组合。

PageCache,中文名称为页高速缓冲存储器。它是将磁盘上的数据加载到内存中,当系统需要访问这些数据时,可以直接从内存中读取,而不必每次都去读取磁盘。这种方式显著减少了磁盘I/O操作,从而提高了系统性能。

mmap(Memory-mapped file)是操作系统提供的一种将磁盘文件与进程虚拟地址空间建立映射关系的核心技术,本质是让进程通过直接操作内存地址的方式读写文件,无需传统的 read/write 系统调用。核心价值在于零拷贝和内存式文件访问,尤其适合大文件、高吞吐、随机访问的场景。

将日志段(.log)文件映射到内存,生产者写入时直接写内存(内核异步刷盘),消费者读取时直接从内存读取,实现超高吞吐(Kafka 的 “顺序写 + mmap” 是其高性能核心);

在这里插入图片描述

零拷贝流程示意图

零拷贝过程:
1.用户进程发起sendfile系统调用,上下文(切换1)从用户态转向内核态
2.DMA控制器,把数据从硬盘中拷贝到内核缓冲区。
3.CPU将读缓冲区中数据拷贝到socket缓冲区
4.DMA控制器,异步把数据从socket缓冲区拷贝到网卡,
5.上下文(切换2)从内核态切换回用户态,sendfile调用返回。
1.5 设计优势
•顺序写磁盘:Segment 文件仅追加写入,规避随机 IO,吞吐量极高(单分区可达 10 万 + TPS)​​
•索引轻量化:仅维护偏移量与时间戳索引,降低存储开销​
•副本同步:基于 ISR 机制,仅同步已提交消息,兼顾一致性与可用性
二、RocketMQ存储架构

Kafka的每个Partition都是一个完整的、顺序写入的文件,但当Partition数量增多时,从操作系统的角度看,这些写入操作会变得相对随机,这可能会影响写入性能。
2.1 核心存储模型:分离式设计

RocketMQ采用「CommitLog + ConsumeQueue + IndexFile」三层结构,彻底分离数据存储与索引查询:​
•CommitLog:全局单一日志文件(默认 1GB / 个,循环覆盖),存储所有主题的原始消息​​
•ConsumeQueue:按主题 - 队列维度拆分的索引文件,存储「消息物理地址 + 偏移量 + 长度」,供消费者快速查询​
•IndexFile:哈希索引文件,支持按消息 Key 查询

CommitLog:消息的原始日记本

CommitLog是RocketMQ存储消息的物理文件,所有消息都会按到达顺序写入这个文件。你可以把它想象成一本不断追加的日记本——每条消息都是按时间顺序记录的新日记。

// 消息存储的核心逻辑简化示例(非源码)
public void putMessage(Message message) {

 // 1. 将消息序列化为字节数组
 byte[] data = serialize(message);
 // 2. 计算消息物理偏移量
 long offset = commitLog.getMaxOffset();
 // 3. 将数据追加到CommitLog文件末尾
 commitLog.append(data);
 // 4. 返回消息的全局唯一物理偏移量
 return offset;

}

消息写入CommitLog时有三个关键特性:
1.顺序写入:所有消息按到达顺序追加到文件末尾,避免磁盘随机寻址
2.内存映射:通过MappedByteBuffer实现文件映射,减少数据拷贝次数
3.文件分割:单个CommitLog文件默认1GB,写满后创建新文件(文件名用起始偏移量命名)

举个例子,当生产者发送三条消息时,CommitLog文件可能长这样:

0000000000000000000(文件1,1GB)
2|--消息A(offset=0)
3|--消息B(offset=100)
4|--消息C(offset=200)
500000000001073741824(文件2,起始偏移量1073741824)

温馨提示:虽然CommitLog是顺序写,但读取时需要配合索引结构,否则遍历文件找消息就像大海捞针。

消费队列ConsumeQueue:消息的快速目录

如果每次消费都要扫描CommitLog,性能会惨不忍睹。于是RocketMQ设计了ConsumeQueue——它是基于Topic和Queue的二级索引文件。

每个ConsumeQueue条目包含三个关键信息(固定20字节):

1| CommitLog Offset (8字节) | Message Size (4字节) | Tag Hashcode (8字节) |

这相当于给CommitLog里的消息做了一个目录:

TopicA-Queue0的ConsumeQueue
2|--0(对应CommitLog偏移0的消息A)
3|--100(对应CommitLog偏移100的消息B)
4|--200(对应CommitLog偏移200的消息C)

当消费者拉取TopicA-Queue0的消息时:
1.先查ConsumeQueue获取消息的物理位置
2.根据CommitLog Offset直接定位到CommitLog文件
3.读取指定位置的消息内容

关键设计点:
•ConsumeQueue采用内存映射+异步刷盘,保证高性能
•单个文件存储30万条索引,约5.72MB(30万*20字节)
•通过hashCode快速过滤Tag,实现消息过滤

索引文件IndexFile:消息的全局字典

如果需要根据MessageID或Key查询消息,ConsumeQueue就不够用了。这时候就要用到IndexFile这个全局索引。

IndexFile的结构类似HashMap:
1.Slot槽位(500万个):存储相同hash值的Index条目链表头
2.Index条目(2000万条):包含Key的hash值、CommitLog偏移量、时间差等信息

当写入消息时:

// 索引构建过程简化示意
public void buildIndex(Message message) {

// 计算Key的hash值
int hash = hash(message.getKey());
// 定位到对应的Slot槽位
int slotPos = hash % slotNum;
// 在Index区域追加新条目
indexFile.addEntry(hash, message.getCommitLogOffset());

}

查询时通过两次查找快速定位:
1.根据Key的hash值找到Slot槽位
2.遍历Slot对应的链表,比对CommitLog中的实际Key值

性能优化必知:
•消息体积差异大时,CommitLog仍然保持顺序写,但ConsumeQueue可能出现「稀疏索引」(相邻索引指向的物理位置间隔大)
•生产环境中CommitLog建议放在单独SSD磁盘,ConsumeQueue和IndexFile可放普通磁盘
•遇到消息堆积时,优先检查消费者速度,而不是无脑扩容Broker存储

理解这些底层机制,下次遇到消息查询性能问题或者磁盘IO瓶颈时,就知道该从CommitLog的写入模式还是ConsumeQueue的索引结构入手排查了。
2.2 数据流转机制
•生产者写入 CommitLog,生成全局唯一偏移量(PHYOFFSET)​
•后台线程异步构建 ConsumeQueue 索引,同步消息元数据​
•消费者通过 ConsumeQueue 定位 CommitLog 中的消息,避免全量扫描

存储过程全景图

现在把各个模块串起来看消息的生命周期:
1.生产者发送消息到Broker
2.Broker将消息顺序写入CommitLog
3.异步线程同时构建ConsumeQueue和IndexFile
4.消费者通过ConsumeQueue快速定位消息
5.按需查询IndexFile实现消息回溯

整个过程就像图书馆的管理系统:
•CommitLog是藏书库(按入库时间摆放)
•ConsumeQueue是分类目录(按题材/出版社分类)
•IndexFile是检索电脑(支持按书名/作者查询)
2.4 设计优势
•读写分离:CommitLog 仅负责写入,ConsumeQueue 负责查询,提升并发性能​
•事务支持:通过 CommitLog 中的事务状态标记 + 回查机制,实现分布式事务消息​
•刷盘策略:支持「异步刷盘(高吞吐)」「同步刷盘(金融级可靠性)」动态切换
三、JMQ存储架构

JMQ的消息存储分别参考了Kafka和RocketMQ存储设计上优点,并根据京东内部的应用场景进行了改进和创新。
3.1 核心存储模型:分区日志 + 队列兼容

在这里插入图片描述

JMQ存储的基本单元是PartitionGroup。在同一个Broker上,每个PartitionGroup对应一组消息文件(Journal Files),顺序存放这个Topic的消息。

与Kafka类似,每个Topic包含若干Partition,每个Partition对应一组索引文件(Index Files),索引中存放消息在消息文件中的位置和消息长度。消息写入时,收到的消息按照对应的PartitionGroup写入依次追加写入消息文件中,然后异步创建索引并写入对应Partition的索引文件中。

以PartionGroup为基本存储单元的设计,在兼顾灵活性的同时,具有较好的性能,并且单个PartitionGroup可以支持更多的并发。
3.2 消息读/写过程

在这里插入图片描述

写消息:

JMQ的写操作使用DirectBuffer作为缓存,数据先写入DirectBuffer,再异步通过FileChannel写入到文件中。
•消息写入DirectBuffer后,默认写入该节点成功(数据的高可靠是通过Raft协议复制,用多个内存副本来保证),相对Kafka的写操作来看,JMQ响应写入请求的处理过程没有发生系统调用,在京东内部的大量单条同步发送的场景下开销更低、性能更优。
•同时也避免使用MappedByteBuffer(Mmap方式)产生Page Fault中断,OS在中断中将该页对应磁盘中的数据拷贝到内存中,在对文件进行追加写入的情况下,这一无法避免的过程是完全没有必要,反而增加了写入的耗时的问题。

读消息:

JMQ采用定长稠密索引设计,每个索引固定长度。
•定长设计的好处是,直接根据索引序号就可以计算出索引在文件中的位置:索引位置 = 索引序号 * 索引长度。这样,消息的查找过程就比较简单了,首先计算出索引所在的位置,直接读取索引,然后根据索引中记录的消息位置读取消息。
•在京东内部应用场景中,单条消息处理耗时高是比较常见的,微服务架构下用户一般会申请更多的消费节点,让每个消费节点单次拉取较小批量的消息进行处理,以提升消费并行度,这样消费拉取请求的次数会比较多,稠密索引的设计会更适用内部的应用场景。

JMQ消费读操作99%以上都能命中缓存(JMQ设计的堆外内存与文件映射的一种缓存机制),避免了Kafka可能遇到的Cache被污染,影响性能和吞吐的问题。同时直接读内存也规避了RocketMQ在读取消息存储的日志数据文件时容易产生较多的随机访问读取磁盘,影响性能的问题。(当没有命中缓存时,会默认降级为通过Mmap的方式读取消息)。
四、竞品对比分析


JMQ

Kafka

存储模型

以PartitionGroup为基本存储单元,支持高并发写入

以Partition为基本存储单元,支持灵活的数据复制和迁移

消息写入性能

- 单副本异步写入性能与 Kafka 相当 - 三副本异步写入性能优于 Kafka

- 单副本异步写入性能与 JMQ 相当 - 三副本异步写入性能略低于 JMQ

同步写入性能

- 同步写入性能稳定,几乎不受网络延迟影响

- 同步写入性能受网络延迟影响较大,稳定性略逊于 JMQ

多分区性能

- 多分区异步写入性能与 Kafka 相当 - 同步写入性能略低于 Kafka

- 多分区同步写入性能更稳定,适合高并发场景

副本机制

支持异步复制,副本间数据同步性能较好

支持异步和同步复制,副本机制成熟,适合复杂部署

跨机房部署

- 同步写入性能基本不受影响 - 异步写入性能下降

- 同步写入性能受网络延迟影响较大 - 异步写入性能下降

适用场景

- 对同步写入性能要求高 - 副本异步吞吐要求高 - 大规模微服务集群

- 复杂分区的高并发同步写入 - 大规模分布式系统 - 多语言生态支持丰富

在单副本场景下,JMQ与Kafka的单机写入性能均十分出色,均可达到网络带宽上限。

然而,在更贴近生产环境的三副本场景中,两者特性出现分化:

JMQ在三副本异步写入下的极限吞吐优势明显,且在跨机房部署时,其同步写入性能表现良好,几乎不受网络延迟影响;而Kafka则在多分区同步写入场景下展现出更稳定的性能,衰减小于JMQ。在大部分异步吞吐场景及不同消息体下的性能趋势上,两者表现相当。

综上所述,JMQ尤其适合对同步写入性能和副本异步吞吐有极高要求的场景,而Kafka在复杂分区的高并发同步写入方面适应性更广。

此前,龙智联合 Perforce 公司共同参加了 VPS 2025 虚拟制作大会。活动现场,Perforce 解决方案工程师 Kory Luo 带来《从片场到银幕:使用 Perforce 简化虚拟制片流程》的精彩演讲,深入探讨了虚拟制作技术在影视行业的应用现状与核心挑战,并重点阐述了 Perforce 版本控制系统如何作为关键解决方案,赋能创意团队。

演讲指出,虚拟制作虽能提升效率与创意自由度,但也带来了海量数据管理、全球协作与流程变革的难题。Perforce P4 通过其独占文件锁、增量传输、联邦架构及Streams工作流框架等独特功能,有效解决了大型二进制文件的版本冲突、数据同步缓慢与工作流碎片化等问题。演讲结合 DNEG 与 Halo Entertainment 等顶尖工作室的成功案例,展示了 Perforce P4 如何将项目启动时间从数天缩短至分钟级,并保障数据安全与团队协作的流畅性。此外,演讲还介绍了 P4 One、P4 DAM 等面向艺术家与创作者的免费工具,旨在降低版本控制门槛,让技术无缝服务于创意,共同推动虚拟制作行业的创新与发展。

以下为演讲实录,欢迎收藏阅读!


大家好,欢迎来到VPS 2025创新影像周。今天我们想要与大家探讨一个正在改变游戏和影视行业的关键话题,即我们今天所提到的虚拟制作。

我们知道,随着LED墙、实时渲染以及云协作的广泛普及,虚拟制作已不再是一个概念性话题,它已经走到了现实的主流当中。但与此同时,我们也会遇到以下一些问题:例如,随着项目复杂度的急剧提升,您将面临数百万级别的文件或GB级乃至TB级的数据,以及全球团队的部署。这些都让传统工作流程面临着巨大的挑战。

在开始分享之前,我们想引发大家思考几个问题:

  • 如果您能将项目的启动时间从两天提升到20分钟,这对您的团队意味着什么?
  • 如果您能将海量数据同步到本地的速度提升十倍以上,是否会改变您的制作流程效率?
  • 如果您的团队能够分布式协作,而无需担心文件冲突或资产损坏,这是否能让创意实现真正的自由?
  • 如果您的艺术家或美术师只需在自己熟悉和喜爱的引擎(如虚幻引擎)中工作,而无需学习新的软件或插件,这是否能让他们真正解放,全身心投入到创意之中?

我们现在提到的这些场景已不再是想象,它们在现实中切实存在,并且许多顶尖创意工作室已将其结合到虚拟制作开发的过程中。因此,今天我们想向大家展示,顶尖工作室是如何借助Perforce版本控制软件,在虚拟制作中实施并缩短制作流程,让创意更快落地,提升团队协作效率,不再受工具或地域壁垒的限制,同时保障数据安全,让每一份资产都能无忧传输。

1、行业概况与挑战

首先来快速了解一下行业概况。

Perforce起步于游戏行业,但迅速扩展至影视、半导体、汽车与制造等大规模行业。我们来看一些真实的行业数据:

  • 在游戏项目中,构建文件可能达到数百万,数据总量可达数百GB,数字资产内容资源更是庞大,达到TB级别。
  • 在影视行业,无论是故事片还是剧集,都会面临数十万文件,数据体量同样为TB级别。
  • 在半导体行业,数据体量更为庞大,达到70TB左右,每天需提交7000次,单个服务器一天需处理4500万个命令行。
  • 在汽车与制造业,3D激光扫描数据达到PB级别,同时要求高度安全的数据传输保障,且团队遍布全球。

这些真实的数据告诉我们,传统的版本控制方式和工作流程已不适合当今快速发展的行业需求。Perforce 正是为这种规模而生,无论您是从事3D激光扫描还是影视管线制作,Perforce 的基础架构都能保持您的工作高速高效运转。

在虚拟制作领域,一提到虚拟制片,大家首先会联想到LED墙,但我想说明,虚拟制作不只是一套LED解决方案,它是一整套覆盖从拍摄空间到资产管理方方面面的解决方案。其核心是打造一个沉浸式环境,支持多场景虚拟拍摄,让导演和艺术家在不同空间切换场景,从而节省调度和布景时间,实现资源复用。如果能达到跨服务器共享资源,就无需重复创建已有资产,可以快速在仓库中找到适用于当前虚拟拍摄的资源进行复用,从而提升团队制作效率。

那么,在虚拟制作领域,我们遇到了哪些挑战?

首先是人才短缺。它毕竟是一项新技术,专业人员在进行In-Camera VFX时,需要了解渲染知识、懂得LED硬件的限制与品质、掌握正确的调试方法,并具备过硬的3D艺术场景创作技术。

第二个挑战是对变革的抵触。有些工作室明明可以通过虚拟制作完成创新或前所未有的内容拍摄,但因为它是新技术,所以害怕改变,墨守成规,继续采用传统方式拍摄。

第三个挑战与前两个密切相关,即在开发新的工作流程和管线时需要做出改变。传统拍摄的核心是在真实场景或绿幕下进行,后期制作在拍摄之后完成。而虚拟制作则不同,在拍摄现场即可看到接近成片效果的背景,拍摄在LED棚内进行,是一个实时渲染的逼真场景。由于大部分画面在前期已确认,后期只需做一些微调。这两种制作方式导致了流程上的巨大改变,需要让VFX团队尽早参与到制作和拍摄中。

在这一挑战中,Perforce可以帮助团队构建高效统一的工作管理流程,确保拍摄顺畅,现场调整的灯光、镜头和构图都可以通过Perforce进行版本控制。其强大之处在于,它几乎能与虚拟制作管线中所有主流工具无缝连接,例如游戏引擎。P4与虚幻引擎的内置集成非常强大,在虚幻引擎中即可找到P4的内置插件,完成绝大部分版本控制操作,无需花费额外时间和精力学习新工具。此外,Maya、3D Max、Blender等DCC软件,以及CI/CD、Jira或飞书等工具,也都能与P4完美集成。因此,越来越多的工作室通过Perforce助力并融合采纳虚拟制作,利用这项技术更安全、高效、快速且省钱地创造出之前根本无法创作的内容。

2、Perforce 在虚拟制片中的应用

接下来,我们探讨P4如何助力创意团队高效运作,保持工作流畅。这要归功于我们几大独有且行业其他版本控制软件不具备的热点功能。

第一是使用独占文件锁来防止合并冲突。我们知道,大型二进制文件资产不支持两个版本合并。如果一个美术师更改文件后,另一美术师同时更改,他们将无法合并,导致其中一人的工作白费。许多工作室在没有采用Perforce时经常遇到此类头疼问题。我们通过独占锁功能,从机制上禁止此类事件发生,让每个人的工作状态透明化,团队成员都知道他人正在对哪个文件进行改动,如果该文件被独占锁定,其他人就无法签出、更改,从而从根源上阻止合并冲突的发生。

第二是增量传输,这是市面上几乎所有版本控制软件都不具备的功能,能显著减少文件同步和提交的时间。其原理是,P4的智能增量传输通过算法将文件切割成小部分,比对前一版本与当前版本间的增量变化,仅将变化部分通过网络传输给服务器。对于一个几GB或十几GB的文件,相比传输整个文件,仅传输增量可能只有几MB,大大减少了传输时间。

同时,我们提供代理和边缘服务器。如果您的团队遍布全球或国内不同城市,通过代理和边缘服务器,可以为远端队友提供极速访问,其速度相当于访问本地服务器。

我们来看一下,如何通过P4的联邦架构实现规模化。如果您的团队迅速壮大,需要与世界各地的团队协作,例如进行外包项目,那么代理和边缘服务器就是我们可扩展的核心,也是联邦架构的基础。这种架构通过统一而灵活的分布式连接,保持所有人同步,并能轻松扩展基础设施以应对不断增长的需求。代理和边缘服务器可以快速实现数据和资产的下载同步。此外,我们还有备用服务器,当遇到不可抗力灾难,如主机突然断电或硬盘损坏时,它不会影响团队的项目工作流程,因为备用机可以瞬时启动代替主机,为团队提供数据和服务。通过我们的联邦架构,我们可以赋能团队发挥最佳表现。

P4不仅是一个版本控制系统,它与Git有很大不同,它更像一个框架或系统,可以帮助团队有序工作。其中一个非常强大的功能是Stream,它能迅速扩展工作流结构,提供一个可复用的框架。当您为某个项目制定好一个Stream框架,如果它对您的工作流程和效率有很大提升,您可以轻易地复制此框架应用到下一个项目中。这就是为什么我们能将项目启动时间大幅减少的原因,您可以复用某个成功项目的架构。例如,我们之前介绍的DNEG团队,您可以在官网上看到他们使用的技术架构,如果对此不了解,完全可以复用他们的架构应用到您的工作团队中。我们还可以根据性能或成本需求提供高级存储控制,例如归档仓或借助S3云存储来降低储存和运维成本,优化工作流程。我们的版本控制软件还提供完整的日志审计,通过日志可以看到每个人在每个时间点做了什么操作,涉及哪些资产,一切都可追溯。当遇到问题时,可以非常快速地解决,了解整个服务器在特定时间点发生的事情。

上图是一个常见的Stream框架图,中间是主流,下面连接的是开发流。开发流顾名思义,是进行日常工作的项目,例如在虚拟制作或渲染时产生的资产和数据都在开发流中进行。当项目比较完整或稳定时,可以将其同步合并到主流中。我们还可以根据项目所需的不同功能特性,例如视频、音频或程序员代码合并,为他们定制所需的Stream,让他们专门使用。这样,他们就无需面对整个庞大的数百万文件,只需聚焦于自己需要的部分。在项目逐渐稳定时,我们可以创建开发流,它相当于发布时当前版本所有状态的永久快照。如果进行版本修复,也可以在开发流中进行。从图中可以直观看到,每一个功能项在Stream框架里都做了完整的隔离,互相不打扰各自的工作流程进度。

3、Perforce 如何为技术总监赋能

技术总监是虚拟制作管线的粘合剂,他们需要确保艺术家、开发人员和工程师协同工作,因此需要制定非常规范、专一的流程。我们来看Perforce如何为技术总监赋能,帮助他们进行虚拟制作。

这里有一个真实案例,来自Halo Entertainment。如果大家了解这家公司,会知道他们参与过《阿凡达》、《少年派的奇幻漂流》、《鸟人》等获奖影片的预视觉化制作。因为其项目不断扩大,遇到了严重瓶颈。许多工作室在扩张过程中也会遇到类似麻烦:初期选择Git,但当项目变得如此复杂后,Git无法满足庞大且复杂的工作流程。因此,他们会采用Perforce进行版本控制和管理。但如果同时使用Perforce和Git,会发现流程变得更加碎片化。经过思考,他们最终决定全线采用Perforce进行版本控制。

具体措施是采用一个集中式P4服务器,为每个项目创建独立仓库进行专项管理。这种模式优化了工作流程,减少了管理错误,因为每个项目组成员都在同一仓库中进行版本控制,无需跳转到不同仓库或项目寻找文件。这一整体方案带来的改变非常可观,它将团队从繁琐流程中解放出来,让团队和艺术家更专注于艺术创作。项目启动时间从两天缩短到20分钟,并提升了协作效率,减少了电影过场动画工作流程中的瓶颈。

上图展示了Halo Entertainment工作室如何通过Perforce Stream实现规模化。它配备了多仓库的集中式Perforce服务器,每个仓库相应创建新的Stream。如果需要做大量开发工作,就创建开发流。他们将插件和虚幻引擎中的实际资产做了分割,插件存储在一个仓库,主要资产存储在另一个仓库。这种结构带来的优势是:它非常灵活,可以快速启动项目,无需重新设计工作流,可以完全复用Halo或DNEG已认证的工作流程来部署新项目。同时,它还能达到一致性,因为团队可以保持在统一的分支策略下,在同一个仓库里工作,更易于管理。

既然Halo已通过Perforce实现了效率飞跃和工作流程化,那么如果您的团队也面临相同问题,接下来该怎么做?

在虚拟制作中,由于规模和项目复杂度不断提升,您会发现工作流程碎片化问题非常严重,不同的项目、分支、工具导致合作效率低下且经常出错。控制这些问题的最佳实践是采用单一、统一的工作流。因为统一的规范能让团队保持清晰透明,减少沟通成本。更重要的是,实践中我们发现,单一工作流能让我们及早发现问题,从而尽早解决,避免因流程不一致导致的性能瓶颈。

4、Perforce推荐方案Stream

接下来,我们介绍P4版本控制软件中一个非常关键的工具——Stream。它不仅能实现我们所说的所有目标,还能彻底改变您的版本管理方式。如果您不了解Stream,我们来简单拆解一下这个概念。

简单来说,Stream是一个分支,但其功能远超分支。其核心价值在于可以定制工作区视图,让用户轻松切换视图。正如我们之前提到的,团队中职能各不相同,有开发人员、美术师、2D/3D视图、音频等不同职能人员,他们关心的资产文件不同。如果给每个人整个仓库的文件,他们会非常困惑或处理缓慢。如果每天都要下载数百万GB级别的文件,即使软件再快,也无法减少同步时间。因此,我们需要为他们定制特定的工作视图。您可以根据角色轻松进行视图的共享和切换。Stream有一个框架和走向,上层的Stream更稳定,例如发布流,其中的资产和代码都是稳定成熟的。往下是项目的主要文件,然后是开发流,用于新功能或新资产的变更,相对不稳定。通过Stream框架,可以清楚地让工作人员知道,在特定Stream中工作的意义和背后价值。例如,做美术、做代码、做开发的人员,看到的工作视图视角都不同。通过工作区在不同Stream间的切换,可以得到面对的不同资产文件。此外,Stream还有很多强大功能,例如可以导入模块,借鉴其他仓库的文件应用到现有版本仓库中,实现组件化。

我们还有其他类型的Stream,包括稀疏流和虚拟流。虚拟流是一个虚拟的流环境,它映射在父流上看到的一部分,相当于把纸卷成筒,通过视角看到想要的文件。在项目启动阶段,最简单有效的方法是只用一个Stream完成整个项目。如果您是小型工作室,创建一个Stream,把所有人都放在其中工作就完全足够了。随着项目推进,如果需要在稳定性和灵活性间找到平衡,可以创建开发流,日常工作在其中完成。当项目稳定时,可以将开发流中的文件通过合并方式复制到主流中,用主流文件做测试或演示。这种隔离让测试和开发环境互不打扰,减少风险,保持团队高效合作。当版本通过审核后,我们会创建发布流,永久保存该时间节点下版本的所有信息。发布流不仅支持版本冻结,还能让后续的热修复和开发在其中并行,避免影响主干。这意味着您的团队在发布后也可以继续修复问题,而不会打乱整体节奏。更重要的是,您可以按需创建新的发布流,例如发布1.0版本后进行后续开发,更新到1.1、2.0、2.1等版本,随时在项目成熟时通过发布流打标签。后续追溯文件或资产内容时,可以随时查看该时间节点的文件状态。有时,如果您不想创建新分支,但又需要为不同职能人员设定定制化视图,可以使用虚拟流。虚拟流是一个虚拟环境,创建时不会产生真实源数据,只是一个视图角度。

最后一个亮点是我们即将发布的LimitView。我们知道不同视角的视图是Stream的关键信息。LimitView在2025.2版本中允许客户端在规范中指定同步时不需要的文件及路径,其功能与虚拟流有重合,但虚拟流需要管理员创建,而工作区如果由您自己管理,使用LimitView就无需管理员为您创建不同的虚拟流,您可以自己管理需求,将不需要的文件从视角中删除。

我们再介绍一种新的流类型——稀疏流。它是一个全新的轻量级方案,用于小规模微调场景。如果您的项目非常庞大,有数百万文件和数百万GB数据,创建新流时需要将现有流中所有文件及元数据原原本本复制一遍,非常耗时。如果您只想对其中某些特定文件进行微调,创建完整分支就不是一个明智的选择,这时可以使用稀疏流。在传统流中,项目所有文件都要复制一份。但在稀疏流中,创建时不会复制父流中的文件,只有对产生更改的文件才会去复制文件、产生元数据,大大减少了元数据产生及存储空间紧张的困扰。存储大量文件非常耗资源并提升运维成本,合理减少新资产的产生对团队运维至关重要。

5、Perforce如何为3D艺术家和创作者赋能
我们讨论了Stream和工作流优化,但虚拟制作不仅是技术问题,更关乎创作。如何让3D艺术家和创作者——虚拟制作的核心——愿意接纳一个版本控制软件?在现实生活中,提到版本控制软件大家都会觉得很头疼,是否需要学习很多新技术、适应新工具?Perforce为3D艺术家和创作者完美消除了这一障碍,让创意与技术真正融合。

我们介绍新产品P4 ONE。它与传统版本控制工具不同,传统工具是让艺术家适应工具,而P4 ONE是来适应艺术家。我们完美了解您在工作流程中遇到的瓶颈和操作,使用P4 ONE无需改变您现有的一切。P4 ONE是一款免费的版本控制客户端,它可以让您的团队每天使用自己已有的创意工具,与版本控制无缝连接,第一天就能轻松上手。当您熟悉P4 ONE后,如果想与团队协作,可以使用我们的P4服务器,五人及以下免费,您可以为团队搭建工作流程和场景,体验版本控制如何在虚拟创作过程中为团队增效。

P4 ONE可以让创作者轻松预览2D和3D文件的真实缩略图,通过可视化时间轴追踪创意进度,并且在离线状态下也能完整进行版本控制操作,无需WiFi。您在创作资产时无需命名为1.0、1.1、1.2,当版本变更繁多,想要追溯历史某个时间段时,通过时间轴和P4 ONE,几次点击即可恢复任意历史版本。

在虚拟制作中,挑战不仅是版本控制。如果项目涉及数十万、数百万数字资产,如何快速找到想要的文件、预览素材、高效协作和审阅?这时会用到 P4 DAM,它是一个专业的数字资产库,可以精准检索、直观预览、高效审阅,快速定位资产。P4 DAM中有一个非常有用的功能——资产包。它是将相关资产分组的方式,其逻辑由您自己决定。例如,在游戏开发或虚拟制作场景中,如果需要一个人物角色,您可以将该角色的所有组成部分,包括模型、纹理、动画、材质等文件放入一个资产包。查找时,就能完美抓取所有相关文件信息。在电影场景中,您可以将所有素材打包,这些文件可能分散在不同仓库或文件夹,但通过资产包的逻辑关系,可以精准找到它们。P4 DAM为艺术和市场营销团队提供功能包括:交互式3D资产与动画预览,以及借助AI的自动识别功能。当数据提交到P4服务器时,AI会自动识别内容并打上标签,下次检索时,只需输入“黄色的椅子”,就能找到所有相关的数字资产。

回到全局来看P4的版本控制平台,它不仅包括 P4、P4 DAM 和 P4 ONE,还有 P4 Plan 和 P4 Code Review。

P4 Plan是一款实时规划工具,能在敏捷和传统方式融合的环境下,帮助团队追踪工作和整体进度。P4 Code Review是一个协作代码审查工具,开发人员可以对代码评论、提出修改意见,并在提交代码审查前采取自动化工作流程,保证高质量和一致性的代码输出。

通过P4的版本控制平台,我们的软件目标很明确:为团队中不同职能的人员量身打造,让您无需再去适应工具,工具可以完美地适应您。我们提供非常精细的权限控制,这是Git和其他版本控制软件无法提供的,它是一种细粒度的权限管理,能让团队成员仅查看需要查看的文件,规避不应涉及的文件范围。依托灵活架构,可以实现流水线的自动化。

最后,非常感谢大家的聆听,希望今天的分享能为您的团队提供一个新思路。在进行虚拟制作时,您可以将版本控制软件这个概念放在心中,因为这一版本控制软件对于数字资产至关重要。期待与您携手合作,共同推动虚拟制作的创新,让创意从场景到荧幕变得更简单、更高效、更安全。谢谢大家。

Perforce中国授权合作伙伴—上海龙智

如今,软件安全是重中之重。任何的安全漏洞都不能被忽视——尤其是开发嵌入式系统软件时,您的代码必须安全可靠,且没有编码错误。

提及软件安全,您可能想到的是密码和访问控制,或者是病毒、欺骗攻击(spoofing)和网络钓鱼攻击,这些是常见的安全问题。而数据加密和身份验证协议等安全功能可以缓解这些漏洞。

但即使已经实施了这些安全功能,软件仍可能受到攻击。

为确保软件安全,您需要从源头——代码层面——进行着手。否则,编码错误将会危及您的应用程序。

编码错误危及软件安全

据软件工程研究所(SEI)估计,高达90%的已报告安全事件是源于软件代码或设计中的漏洞被利用。这些漏洞使黑客能够访问私人数据或未经授权的控制系统。

可见,一个简单的编码错误就可能引发黑客攻击威胁——黑客可能会控制您的计算机、智能家居设备、家庭娱乐设备甚至是汽车。更糟糕的是,黑客甚至可能控制核电站

安全漏洞示例:C语言中的缓冲区溢出

为说明这种情况可能如何发生,我们来看一个例子。缓冲区溢出是C语言编程中常见的安全漏洞。

当数据被写入到已分配内存的边界之外时,就会发生缓冲区溢出。
为说明这种情况可能如何发生,我们来看一个例子。缓冲区溢出是C语言编程中常见的安全漏洞。

延伸阅读:什么是缓冲区溢出?如何防止缓冲区溢出漏洞?

例如:

char buff[10];
buff[10] = 'a';

此处声明了一个10字节的数组(索引范围0到9)。但程序随后试图向数组边界外的一个字节写入字符。若程序后续使用了数组相邻的内存区域,则会导致意外行为。

这已经够糟糕了,而情况可能会进一步恶化——缓冲区溢出可能使黑客获得系统控制权。

缓冲区溢出如何招致黑客攻击?

黑客可以利用缓冲区溢出漏洞进行攻击,致使程序崩溃、数据损坏,或直接窃取信息。

程序运行时会使用一块称为“栈”的内存区域。当前执行函数作用域内的变量将存储在栈中。函数调用的地址也会被存储,以便返回语句能返回到正确的位置。

当函数返回到调用函数时,程序将从上次中断的地方继续执行。因此,如果栈中的返回地址被篡改为指向某些恶意的替代指令,那么,这些指令将在函数返回时被执行。

如果程序正在接收数据——且未设置检查机制来确保输入缓冲区不会溢出——那么就有可能设计一个包含恶意代码的输入或“有效负载”。这种恶意代码会溢出输入缓冲区,并将栈中的返回地址覆盖为恶意代码的地址。

预防安全漏洞至关重要

预防缓冲区溢出等安全漏洞至关重要。而实现这一目标的方法,就是确保在编码时就杜绝可被利用的漏洞。

毕竟,如果窗户敞开着,加装再坚固的门锁也毫无意义。因此,提高安全性的关键,就是确保代码安全。

确保C语言代码安全的四种方法

编写安全的代码至关重要。在C语言编程中,有四个关键信息来源可帮助您确保代码安全。

1. CWE

您可以从通用缺陷枚举(CWE)中识别安全弱点。

什么是CWE?

CWE是由社区开发的C语言常见软件安全弱点列表,由MITRE公司维护。该列表可用作弱点识别、缓解和预防的基线。

CWE软件安全弱点列表

CWE列表对弱点进行了优先级排序。其中的“Top 25”(前25)条是综合了二十多个不同机构的意见评选出来的。他们根据弱点出现的频率和重要性对其进行评估。CWE中列出的(C语言程序中的)许多弱点都与缓冲区溢出有关。

这份Top 25列表还附带了一组有效的“强效缓解措施”。这些措施可帮助开发者减少甚至彻底消除Top 25中的整类安全弱点,同时也有助于应对CWE列表中记录的其他800多个弱点。

CWE致力于从源头遏制漏洞,其实现方式是教育设计人员、程序员和测试人员如何在软件发布前就消除常见错误。

2. CERT C

您可以将CERT C编码标准应用于您的代码。

什么是CERT C?

CERT C编码标准由软件工程研究所(SEI)的CERT部门发布。SEI是卡内基梅隆大学运营的研发中心,它的资金主要来源于美国国防部和国土安全部。

CERT C安全规则

安全编码专家会持续在维基平台上完善CERT C指南。每项指南包括:

– 标题

– 描述

– 不合规代码示例

– 合规解决方案示例

该指南涵盖编码和实现错误,以及低级设计错误。其目标是消除不安全的编码实践和可能导致漏洞的未定义行为。

    CERT C将漏洞定义为:一组允许攻击者违反明确或隐含安全策略的条件。

缺陷可能较为轻微,也可能不会影响软件的性能或运行结果,但它仍可能被攻击者利用,从而导致重大的安全漏洞。

3. ISO/IEC TS 17961:2013 "C Secure"

您可以应用ISO/IEC TS 17961:2013 “C Secure” 编码规则。

什么是ISO/IEC TS 17961:2013?

ISO/IEC TS 17961:2013制定了一套编码规则,这些规则使静态代码分析工具能够诊断超出语言标准要求的不安全代码。

C Secure编码规则

ISO/IEC TS 179671:2013包含了C语言安全编码的规则,每条规则都包含示例。

C Secure旨在制定可以自动强制执行的安全编码规则,用于检测C语言编程中的安全缺陷。要被视作安全缺陷,软件漏洞必须能被恶意用户或攻击者的行为触发。

实施这些规则的分析工具必须能够有效发现安全编码错误,且不会产生过多的误报。

4. MISRA C

您也可以使用MISRA来确保C语言的安全编码。

什么是MISRA?

MISRA为安全相关系统的开发提供最佳实践指南。其C语言编码标准已被多个行业广泛采用。

MISRA C 安全规则

MISRA C:2012 修订版1于2016年发布。该版本为C语言编程提供了额外的安全指南,包括新的规则和指令,并附有合规和不合规的代码示例。

这些指南可用于预防导致安全问题和安全漏洞的编码错误。

为什么MISRA C安全规则是嵌入式系统的理想选择?

MISRA C安全规则是嵌入式系统的理想选择。这是因为MISRA C的安全性可与其它C语言安全编码标准相媲美。此外,MISRA C在嵌入式系统行业中深受信赖,更是汽车行业首选的编码标准。

MISRA C安全规则示例

MISRA C安全规则可防止编码错误和安全漏洞,例如缓冲区溢出。

以下是MISRA C安全规则的示例:

MISRA C 规则 18.1

“对指针操作数进行算术运算后得到的指针,其地址应指向与该指针操作数相同的数组内的元素。”

此规则与以下CERT C规则作用相同:

ARR30-C

“请勿创建或使用越界指针或数组下标。”

两者都与C语言中的多个CWE漏洞相关,其中之一是:

CWE-119:对内存缓冲区边界内的操作限制不当

“该软件在内存缓冲区上执行操作,但可能读取或写入超出缓冲区预期边界范围的内存位置。”

遵循MISRA C规则或CERT规则可确保代码安全,并规避CWE中的常见漏洞。这是因为写入越界指针(或指针操作数)可能导致缓冲区溢出,从而产生易受攻击的代码;而读取越界指针(或指针操作数)则可能意外泄露信息给黑客。

因此,通过确保遵循这些规则,将避免严重的编码错误。您可以使用静态代码分析工具(如Perforce QAC)来强制执行MISRA和CERT规则。

MISRA C与其他标准的比较

MISRA C编码标准也适用于软件安全性比功能安全性更受重视的环境。

事实上,MISRA针对MISRA C:2012标准发布了两个附录,以帮助开发者将MISRA规则映射到C Secure和CERT C标准。

  • MISRA C和C Secure比较

MISRA C:2012 – 附录2展示了每条MISRA规则如何映射到ISO/IEC TS 17961:2013中的C Secure规则。

 MISRA C对C Secure的覆盖:90%规则,10%指令。

  • MISRA C对C Secure的覆盖:90%规则,10%指令。*

C Secure中的每条规则都对应MISRA C中的一条规则或指令。任何完全支持MISRA C的静态代码分析工具(如Perforce QAC),也将符合C Secure标准。因此,您可以灵活互换使用这些标准以确保安全。

  • MISRA C和CERT C比较

MISRA C:2012 – 附录3展示了每条规则如何映射到CERT C规则。

MISRA C对CERT C的覆盖:60%规则,20%指令,15%超出范围,5%未覆盖。

CERT C是为C11设计的。MISRA C:2012是为C99设计的。

在CERT C规范中,有15条特定于C11的规则超出了MISRA C:2012的范围。而在(MISRA C:2012范围内的)CERT C规则中,只有四条未被覆盖。因此,MISRA C覆盖了CERT C中的大部分安全规则。

注:使用Perforce QAC可自动检测这四条规则的全部违规情况。

将MISRA安全规则应用于您的代码

MISRA编码标准为确保C语言代码的安全性提供了一套最佳实践准则。采用MISRA安全规则是保障软件整体安全性的明智之选。

如果您需要采用一种编码标准,以增强对软件安全性的信心,建议考虑MISRA C标准。该C语言编码规范内容全面,并已在安全与关键任务项目中被证明行之有效。

使用Perforce QAC编写安全代码

您可以借助Perforce QAC 自动执行MISRA规则(适用于C或C++语言),这将大幅减少手动代码审查所需的时间,从而释放开发资源,确保项目按时交付,同时提升软件质量。

Perforce QAC 主要通过以下机制帮助开发人员高效编写安全代码:

1. 精准定位违规代码,即时修复

  • 实时诊断:支持 MISRA C 和 CERT C 标准,能在 IDE 中直接以“气泡”形式标记违规代码,实现“边写边查”。
  • 增量分析:仅分析修改过的代码文件,无需等待全量编译,大幅提升修复效率。
  • 所见即所得:双击报错即可跳转至代码具体行(如死代码、非法指针转换),快速修正。

2. 风险分级,聚焦核心

  • 严重性过滤:允许开发者通过过滤器(Severity Filter)屏蔽次要警告,优先解决“除以零”、“空指针”等高危致命漏洞。
  • 复杂度监控:自动计算函数圈复杂度,帮助团队快速识别出难以维护、易藏漏洞的“高风险代码块”进行重构。

3. 闭环管理,审计无忧

  • 合规例外管理:针对无法修复的规则违规,提供规范的“抑制(Suppression)”与“偏差(Deviation)”审批流程,杜绝随意忽略报错。
  • 自动化报告:一键生成详细的合规性报表与趋势图,为项目安全交付和外部审计提供可追溯的证据。

Perforce中国授权合作伙伴——上海龙智