← 2026-03-19 📂 All Days 2026-03-21 →
🏗
🏗 System Design
🏗 系统讟计 Day 7 (3 min read) / System Design Day 7
▌

🏗 系统讟计 Day 7 (3 min read) / System Design Day 7

Database Types: SQL vs NoSQL — 数据库类型关系型 vs 非关系型


想象䜠圚讟计䞀䞪新的瀟亀媒䜓平台 

䜠的甚户数据敎霐划䞀每人郜有 ID、甚户名、邮箱、泚册时闎。这埈适合甚 SQL 数据库 — 就像䞀匠结构枅晰的 Excel 衚栌行和列敎敎霐霐。

䜆是甚户发的垖子呢有人只写文字有人附囟片有人嵌入视频有人加了䜍眮标筟  每条垖子的结构郜䞍同。这时候 NoSQL 就倧攟匂圩 — 像䞀䞪灵掻的 JSON 文档想攟什么字段就攟什么。


架构对比 / Architecture Comparison

SQL Database NoSQL Database ┌─────────────────────┐ ┌─────────────────────────┐ │ USERS TABLE │ │ users collection │ ├──────┬──────┬──────── │ │ │ id │ name │ email │ │ { id: 1, │ ├──────┌──────┌──────── │ name: "Alice", │ │ 1 │Alice │a@x.com│ │ email: "a@x.com", │ │ 2 │ Bob │b@y.com│ │ preferences: {...}, │ └──────┮──────┮───────┘ │ badges: ["🏆","⭐"] } │ └─────────────────────────┘ Schema enforced upfront Schema flexible / per doc JOIN across tables Embed related data ACID transactions Eventual consistency (often) Scale: vertical (bigger server) Scale: horizontal (more servers)

栞心抂念 / Key Concepts

SQL (关系型数据库) — MySQL, PostgreSQL, SQLite

  • 结构化数据: 衚、行、列schema 固定
  • ACID 事务: Atomicity原子性, Consistency䞀臎性, Isolation隔犻性, Durability持久性— 银行蜬莊䞍胜䞢数据
  • JOIN 操䜜: 倚衚关联查询数据䞍冗䜙
  • 区䞀臎性: 写入后立即可读

NoSQL — MongoDB (文档), Redis (键倌), Cassandra (列族), Neo4j (囟)

  • 灵掻 schema: 每条记圕结构可以䞍同
  • 氎平扩展: 分片sharding蜻束加机噚
  • 最终䞀臎性: 写入后可胜有短暂延迟才党局可见
  • 高吞吐量: 读写速床极快尀其键倌存傚

䞺什么这样讟计How to Choose?

场景掚荐原因
甚户莊户、订单、莢务SQL需芁 ACID数据关系明确
甚户䌚话、猓存、排行抜Redis (NoSQL)极速读写TTL 支持
产品目圕、内容管理MongoDB (NoSQL)结构倚变嵌套文档
瀟亀囟谱、掚荐系统Neo4j (Graph)关系查询是栞心需求
日志、时序数据Cassandra (NoSQL)海量写入时闎范囎查询
**经验法则**: 先问"我的数据关系是吊倍杂事务是吊关键" → 是则 SQL。"数据量是吊巚倧结构是吊倚变" → 是则 NoSQL。

现实䞭䞀者共存

  • Instagram: PostgreSQL甚户/垖子关系 + Cassandra掻劚 feed + Redis猓存
  • 单䞀数据库解决所有问题是反暡匏

别螩这䞪坑 / Common Mistakes

❌ "NoSQL 比 SQL 曎快" — 错取决于䜿甚场景。倍杂 JOIN 查询 SQL 曎高效简单键倌查扟 Redis 秒杀䞀切。

❌ "NoSQL 䞍支持事务" — MongoDB 4.0+ 已支持倚文档 ACID 事务只是䜿甚场景䞍同。

❌ "选了就䞍胜换" — 实践䞭随着䞚务挔进经垞需芁匕入第二种数据库。提前规划数据访问层DAL让切换曎容易。

❌ 过早䌘化 — 99% 的创䞚公叞甚 PostgreSQL 就借了。等真正有 scale 问题再匕入 NoSQL。


📚 深入孊习 / Learn More:

🧒 ELI5: A SQL database is like a super organized binder with divider tabs where everything goes in exactly the right slot; a NoSQL database is like a big backpack where you can throw in anything — a book, a lunchbox, a basketball — whatever shape it is.

💻
💻 Algorithms
💻 算法 Day 7 (4 min read) / Algorithms Day 7
▌

💻 算法 Day 7 (4 min read) / Algorithms Day 7

#238 Product of Array Except Self (Medium) — Arrays & Hashing / Prefix Products

🔗 LeetCode #238: Product of Array Except Self 🟡 Medium

📹 NeetCode Solution


🌎 Real-World Analogy / 现实类比

想象䜠是䞀家工厂的莚检员流氎线䞊有 N 䞪零件每䞪郜有䞀䞪重量。䜠的任务是对于每䞪零件快速计算出其他所有零件的总重量之积䞍胜把该零件自己算进去。

最笚的方法每次郜把其他所有零件重新乘䞀遍 — O(n²)倪慢了。

聪明的方法先从巊到右算䞀遍"前猀积"再从右到巊算䞀遍"后猀积"䞀䞪䞀乘就埗到答案


📋 Problem Statement / 题目

Given an integer array nums, return an array answer such that answer[i] is equal to the product of all elements of nums except nums[i].

给定敎数数组 nums返回数组 answer䜿埗 answer[i] 等于 nums 䞭陀 nums[i] 之倖所有元玠的乘积。

Constraint: Must run in O(n) time, without using division (䞍胜甚陀法).

Example:

Input:  nums = [1, 2, 3, 4]
Output:       [24, 12,  8,  6]

Check: 
  answer[0] = 2 * 3 * 4 = 24  ✓
  answer[1] = 1 * 3 * 4 = 12  ✓
  answer[2] = 1 * 2 * 4 =  8  ✓
  answer[3] = 1 * 2 * 3 =  6  ✓

🔍 Step-by-Step Walkthrough / 逐步分析

Key Insight: For position i, the answer = (product of everything to the LEFT of i) × (product of everything to the RIGHT of i)

nums =   [ 1,   2,   3,   4 ]
index:     0    1    2    3

Left prefix products (prefix[i] = product of nums[0..i-1]):
prefix = [ 1,   1,   2,   6 ]
          ^     ^    ^    ^
          i=0   1*1  1*2  1*2*3
         (nothing (only (1,2   (1,2,3
          left)   nums[0])  left) left)

Right suffix products (suffix[i] = product of nums[i+1..end]):
suffix = [24,  12,   4,   1 ]
          ^     ^    ^    ^
        2*3*4  3*4   4   (nothing
                          right)

answer[i] = prefix[i] * suffix[i]:
  [0]: 1 * 24 = 24
  [1]: 1 * 12 = 12
  [2]: 2 *  4 =  8
  [3]: 6 *  1 =  6

Space Optimization: We can do this in O(1) extra space (output array doesn't count) by computing prefix in the output array first, then multiplying suffix on-the-fly from right to left.


🐍 Python Solution / Python 解法

def productExceptSelf(nums: list[int]) -> list[int]:
    n = len(nums)
    answer = [1] * n
    
    # Pass 1: Fill answer[i] with the PREFIX product (product of everything LEFT of i)
    # After this pass: answer = [1, 1, 2, 6] for input [1, 2, 3, 4]
    prefix = 1
    for i in range(n):
        answer[i] = prefix      # store product of everything before i
        prefix *= nums[i]       # update running prefix
    
    # Pass 2: Multiply answer[i] by the SUFFIX product (product of everything RIGHT of i)
    # We traverse right-to-left, tracking running suffix product
    suffix = 1
    for i in range(n - 1, -1, -1):
        answer[i] *= suffix     # multiply in the suffix product
        suffix *= nums[i]       # update running suffix

    return answer

# Test it:
print(productExceptSelf([1, 2, 3, 4]))    # → [24, 12, 8, 6]
print(productExceptSelf([-1, 1, 0, -3, 3]))  # → [0, 0, 9, 0, 0]

Trace with [1, 2, 3, 4]:

After Pass 1 (prefix):
  i=0: answer[0] = 1,  prefix = 1
  i=1: answer[1] = 1,  prefix = 2
  i=2: answer[2] = 2,  prefix = 6
  i=3: answer[3] = 6,  prefix = 24
  answer = [1, 1, 2, 6]

After Pass 2 (suffix, right to left):
  i=3: answer[3] = 6  * 1 = 6,   suffix = 4
  i=2: answer[2] = 2  * 4 = 8,   suffix = 12
  i=1: answer[1] = 1  * 12 = 12, suffix = 24
  i=0: answer[0] = 1  * 24 = 24, suffix = 24
  answer = [24, 12, 8, 6]  ✓

⏱ Complexity / 倍杂床

Complexity
TimeO(n) — two linear passes
SpaceO(1) extra (output array doesn't count per problem rules)

䞟䞀反䞉 / Pattern Recognition

The Prefix/Suffix Pattern unlocks many problems:

Follow-up interview questions:

  1. "What if the array contains zeros?" → The code already handles it correctly (the zero propagates into the suffix/prefix)
  2. "Can you solve it with O(n²) first, then optimize?" → Always a good way to start
  3. "What about overflow?" → Use Python (arbitrary precision) or modular arithmetic

📚 深入孊习 / Learn More:

🧒 ELI5: If you have 4 friends and you want to know how many handshakes happen when you're NOT included, you count all the handshakes to your left, then all the handshakes to your right, and multiply them together — that's your answer!

🗣
🗣 Soft Skills
🗣 蜯技胜 Day 7 (2 min read) / Soft Skills Day 7
▌

🗣 蜯技胜 Day 7 (2 min read) / Soft Skills Day 7

Technical Leadership: "Tell me about a time you simplified a complex system"

技术领富力"讲䞀䞪䜠简化倍杂系统的经历"


䞺什么这埈重芁 / Why This Matters

这道题考查的䞍是"䜠删了倚少行代码"而是

  1. 䜠胜识别真正的倍杂性来源accidental vs essential complexity
  2. 䜠有勇气诎"这䞪可以曎简单"并掚劚改变
  3. 䜠理解简化的代价 — 有时候"倍杂"是有原因的

Senior/Staff 工皋垈最重芁的技胜之䞀抵抗系统熵增䞍让倍杂性悄悄积环。

This question tests whether you can identify the root of complexity, have the courage to push for change, and understand the tradeoffs of simplification.


STAR Framework Breakdown / STAR 框架拆解

Situation (情境):

描述系统状态 + 䞺什么它变倍杂了

  • 关键信息系统规暡、团队背景、倍杂性的历史原因
  • 䟋"我们的支付服务经历了 3 幎迭代有 7 䞪埮服务倄理同䞀笔亀易的䞍同阶段 "

Task (任务):

䜠的角色 + 䞺什么这䞪简化埈重芁

  • 䞍只是"我莟莣这䞪" — 诎枅楚商䞚圱响
  • 䟋"每次新支付方匏䞊线需芁 6 呚竞对只需 2 呚。我䞻富了简化工䜜。"

Action (行劚):

这是最重芁的郚分展瀺技术深床

  • 䜠劂䜕诊断倍杂性来源画架构囟远螪请求铟路
  • 䜠劂䜕区分哪些倍杂性可以去掉哪些必须保留
  • 䜠劂䜕获埗团队 buy-in技术评审、数据支撑、析进迁移
  • 䜠劂䜕降䜎风险feature flags、灰床发垃、监控

Result (结果):

量化圱响䞍芁含糊

  • ✅ "䞊线时闎从 6 呚降至 1.5 呚"
  • ✅ "代码行数减少 40%P99 延迟从 800ms 降到 200ms"
  • ✅ "新工皋垈䞊手时闎从 2 呚猩短到 3 倩"

❌ Bad Approach vs ✅ Good Approach

❌ Bad:

"我们的旧系统埈乱我重写了它。现圚奜倚了代码曎干净倧家郜埈满意。"

问题所圚

  • 没诎枅楚倍杂性的来源
  • "重写"是危险词没提风险管理
  • 结果暡糊没有数据
  • 听起来像䞪人英雄䞻义䞍像团队领富力

✅ Good:

"我们有䞀䞪支付猖排服务最初讟计是 2021 幎给 3 种支付方匏甚的到 2023 幎已经支持 12 种服务里充满了 if/else 分支和特殊 case 倄理。每次新方匏䞊线QA 芁测试所有 12 种因䞺改劚圱响面䞍可预测。
我花了䞀呚时闎梳理请求流发现栞心问题所有支付方匏被平等对埅䜆实际䞊 80% 的代码只和 2 种高倍杂床方匏有关。我提出甚策略暡匏Strategy Pattern重构让每种支付方匏封装自己的逻蟑。
诎服团队是最隟的郚分 — 倧家怕改出 bug。我做了䞀䞪 spike证明可以圚䞍改变任䜕倖郚 API 的情况䞋完成重构并甚 feature flags 控制灰床。我们花了 6 呚分批迁移每批芆盖 2 种支付方匏。
最终新支付方匏䞊线时闎从 6 呚降至 1.5 呚QA 测试范囎减少 60%事故率䞋降了 35%。"

Scenario Template to Adapt / 可倍甚场景暡板

Context: [系统名] had grown from [原始状态] to [圓前状态] over [æ—¶é—Ž],
         resulting in [具䜓问题].

My Role: As [䜠的角色], I was responsible for [范囎].
         The business impact was [圱响] — [量化].

Diagnosis: I [诊断方匏 — 画囟/远铟路/分析指标], and identified that
           the core source of complexity was [根本原因].

Solution: I proposed [方案], which addressed [栞心问题] while
          preserving [必须保留的倍杂性原因].

Risk Management: To validate, I [验证方法]. For rollout, I [迁移策略].

Result: [定量结果 1], [定量结果 2], [定量结果 3].

Senior/Staff Level Tips / Senior/Staff 级别加分点

🎯 区分 accidental vs essential complexity

  • Essential: 䞚务本身就是倍杂的监管芁求、倚租户架构— 必须接受
  • Accidental: 历史债务、过床工皋、沟通问题富臎的 — 可以消陀
  • 圚回答䞭明确诎"这郚分倍杂性是必芁的我们保留了它"

🎯 诎枅楚䜠是劂䜕 sell 这䞪方案的

Staff 工皋垈的简化工䜜埀埀需芁跚团队协䜜。诎诎䜠劂䜕

  • 甚数据/可视化诎服怀疑者
  • 倄理"劂果没坏䞺什么芁修"的反对声
  • 建立析进迁移计划让团队安心

🎯 提到䜠保留了什么

最奜的答案䌚诎"我们考虑过把 X 也简化掉䜆决定保留因䞺 " — 这䜓现了成熟的刀断力。


关键芁点 / Key Takeaways

  1. 简化䞍是删代码是降䜎讀知莟担 — 衡量标准是新工皋垈理解系统需芁倚久
  2. 诊断先于方案 — 先诎"我劂䜕扟到问题根源"再诎方案
  3. 量化䞀切 — 䞊线时闎、延迟、事故率、代码规暡
  4. 展瀺工皋领富力 — 技术刀断 + 团队掚劚 + 风险管理

📚 深入孊习 / Learn More:

🧒 ELI5: Simplifying a complex system is like cleaning your messy backpack — you take everything out, throw away what you don't need, and put the rest back in a way that makes it easy to find your pencil without dumping everything on the floor.

🎚
🎚 Frontend
🎚 前端 Day 7 (2 min read) / Frontend Day 7
▌

🎚 前端 Day 7 (2 min read) / Frontend Day 7

CSS Positioning: relative, absolute, fixed, sticky

CSS 定䜍盞对、绝对、固定、粘性


猜猜这段代码蟓出什么/ What does this code output?

<style>
  .container {
    position: relative;
    width: 200px;
    height: 200px;
    background: lightblue;
  }

  .box {
    position: absolute;
    top: 20px;
    left: 30px;
    width: 60px;
    height: 60px;
    background: coral;
  }
</style>

<div class="container">
  <div class="box"></div>
</div>

Where does the coral .box appear?

A) 20px from the top of the page, 30px from the left of the page

B) 20px from the top of .container, 30px from the left of .container ← ✅

C) 20px from the top of the viewport, 30px from the left of the viewport

D) It won't move — absolute positioning only works without a parent

Answer: B — because .container has position: relative, it becomes the containing block for .box.


🗺 Visual Map of All 4 Positioning Modes

┌─────────────────────────────────────────────────────────────┐ │ WEBPAGE │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ position: relative │ │ │ │ └─ stays in flow │ │ │ │ └─ offset from WHERE IT WOULD BE │ │ │ └─────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ position: absolute │ │ │ │ ┌─────────────────────────────┐ │ │ │ │ │ nearest positioned ancestor │ │ │ │ │ │ ← offsets from HERE │ │ │ │ │ └─────────────────────────────┘ │ │ │ └─────────────────────────────────────┘ │ │ │ │ ╔══════════════════════════════════════╗ ← VIEWPORT TOP │ │ ║ position: fixed ║ │ │ ║ └─ always relative to VIEWPORT ║ │ │ ║ └─ stays even when you scroll ║ │ │ ╚══════════════════════════════════════╝ │ │ │ │ ┌─────────────────────────────────────┐ │ │ │ position: sticky │ │ │ │ └─ relative UNTIL you scroll │ │ │ │ past threshold → then FIXED │ │ │ └─────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘

Code Examples / 代码瀺䟋

/* 1. RELATIVE — offset from its normal position, stays in document flow */
.badge{
  position: relative;
  top: -2px;   /* nudge up 2px from where it would normally sit */
  /* still takes up its original space in the layout! */
}

/* 2. ABSOLUTE — removed from flow, positioned relative to nearest 
   positioned ancestor (or <html> if none exists) */
.tooltip{
  position: absolute;
  top: 100%;     /* just below the parent */
  left: 50%;
  transform: translateX(-50%);  /* center it */
  /* KEY: the parent must have position: relative! */
}

/* 3. FIXED — always relative to the viewport, never scrolls away */
.navbar{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;  /* stay above everything */
}

/* 4. STICKY — hybrid: relative until threshold, then fixed */
.section-header{
  position: sticky;
  top: 60px;   /* becomes "fixed" 60px from top once scrolled past */
  background: white;
  z-index: 10;
}

䜠可胜䞍知道 / You Might Not Know

⚠ absolute 的"陷阱"containing block 是谁

absolute 定䜍是盞对于"最近的已定䜍祖先"nearest positioned ancestor = any element with position other than static。

劂果没有任䜕祖先讟眮了 position那就盞对于 <html> 根元玠

/* Common bug: forgot to add position: relative to parent */
.card{
  /* position: relative; ← forgot this! */
}
.card .badge{
  position: absolute;
  top: 10px;
  right: 10px;
  /* This badge will now position relative to the page, not .card! */
}

⚠ sticky 需芁高床限制

sticky 只圚其父容噚的范囎内有效。劂果父容噚倪短或者 overflow: hidden 被讟眮sticky 䌚"䞍工䜜"。这是最垞见的 sticky bug

/* sticky won't work if parent has overflow: hidden/scroll/auto */
.parent{
  overflow: hidden;  /* this BREAKS sticky! */
}
.child{
  position: sticky;
  top: 0;  /* won't stick — parent clips it */
}

🎯 Mini Challenge

Create a notification badge that sits in the top-right corner of an avatar image, like this:

┌──────────┐ │ 👀 │🔎 ← red dot badge, top-right corner │ │ └──────────┘

Write the HTML/CSS. (Hint: you need ONE element with position: relative and ONE with position: absolute.)

<details>

<summary>Solution / 答案</summary>

<div class="avatar-wrapper">
  <img src="avatar.png" alt="User" />
  <span class="badge">3</span>
</div>
.avatar-wrapper{
  position: relative;  /* containing block for the badge */
  display: inline-block;
  width: 60px;
  height: 60px;
}

.avatar-wrapper img{
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.badge{
  position: absolute;
  top: -4px;
  right: -4px;
  background: red;
  color: white;
  font-size: 11px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

</details>


📚 深入孊习 / Learn More:

🧒 ELI5: CSS positioning is like choosing where to put your toys — relative means "move a little from where you already are," absolute means "go to a specific spot inside your room," fixed means "stay on the door no matter where I walk," and sticky means "follow me around, but only once I've passed a certain point."

🀖
🀖 AI
🀖 AI Day 7 (2 min read) — AI 新闻速递 / AI News Roundup
▌

🀖 AI Day 7 (2 min read) — AI 新闻速递 / AI News Roundup

Week of March 17–20, 2026


📰 Story 1: Meta 甹 AI 替代内容审栞员

What happened: Meta 宣垃倧规暡掚出 AI 内容支持助手将倧幅减少对第䞉方内容审栞承包商的䟝赖。Meta 衚瀺 AI 系统将倄理"重倍性的囟圢内容审栞"以及诈骗、毒品销售等对抗性内容的识别。

䞺什么䜠应该关心 / Why you should care:

这䞍只是 Meta 的内郚决策 — 它标志着 AI 圚高风险刀断任务䞭正匏进入规暡化应甚。争议点圚于AI 审栞仍然䌚有偏差和挏刀而圓人类被从埪环䞭移陀谁来莟莣对于工皋垈而蚀这意味着 AI 安党和内容策略将成䞺未来几幎的关键工皋挑战。


📰 Story 2: Samsung 宣垃 730 亿矎元 AI 芯片扩匠计划

What happened: 䞉星宣垃 2026 幎将 AI 盞关投入增加 22%抌泚 Agentic AI 的算力需求激增。目标是超越 SK Hynix成䞺 Nvidia 最倧的 HBM高垊宜内存䟛应商。

䞺什么䜠应该关心 / Why you should care:

GPU 之争的䞋䞀䞪战场是 HBM 内存。LLM 掚理的瓶颈越来越䞍是算力本身而是内存垊宜 — 这也是䞺什么 Agentic AI需芁长䞊䞋文、倚蜮掚理䌚垊来劂歀巚倧的内存需求。关泚 Samsung vs SK Hynix 的竞争本莚䞊是圚关泚 AI 基础讟斜的䞋䞀䞪瓶颈。


📰 Story 3: Signal 创始人䞎 Meta 合䜜加密 AI

What happened: Signal 创始人 Moxie Marlinspike 宣垃其加密 AI 聊倩机噚人 Confer 将䞎 Meta AI 集成䞺 Meta 的 AI 提䟛端到端隐私保技技术。目标让 AI 对话内容对 Meta 服务噚本身也䞍可见。

䞺什么䜠应该关心 / Why you should care:

隐私保技 AIPrivacy-Preserving AI 是䞋䞀䞪重芁技术方向。目前几乎所有 AI 掚理郜圚云端完成服务商可以看到䜠的所有对话。Moxie 提出的方向结合 TEE/可信执行环境 + 同态加密劂果成功将圻底改变 AI 应甚的隐私暡型。这对医疗 AI、法埋 AI 等敏感场景意义巚倧。


📰 Story 4: Microsoft 发垃 MAI-Image-2 囟像生成暡型

What happened: 埮蜯发垃第二代 AI 囟像生成暡型 MAI-Image-2䞻打"增区照片真实感"和"囟像内文字生成曎可靠"。现已圚 Copilot 和 Bing Image Creator 䞊线。

䞺什么䜠应该关心 / Why you should care:

文字枲染text rendering in images䞀盎是囟像 AI 的"耻蟱角萜" — GPT-4 画出来的招牌字埀埀是乱码。MAI-Image-2 将文字生成列䞺栞心改进点这对营销、讟计、UI 玠材生成有盎接圱响。同时这也衚明埮蜯正圚摆脱对 OpenAI DALL-E 的䟝赖建立自己的囟像暡型胜力。


📰 Story 5: Amazon Alexa Plus 登陆英囜 — Agentic AI 助手銖䞪欧掲萜地

What happened: 亚马逊宣垃 Alexa Plus搭蜜 agentic AI 胜力的升级版圚英囜䞊线早期访问阶段免莹之后每月 £19.99纊 $26.50Prime 䌚员免莹。亚马逊特别区调其"genuinely British"——理解"cuppa"、"knackered"、"nippy"等英匏衚蟟。

䞺什么䜠应该关心 / Why you should care:

AI 助手本地化localization䞍只是翻译还包括文化理解和方蚀倄理。Alexa Plus 的"Agentic"定䜍意味着它䞍再只是问答而是可以执行倚步任务预订、莭物、控制智胜家居。这是 AI 助手从"聊倩机噚人"向"数字代理人"挔进的关键节点也是 OpenAI、Google、Apple 郜圚争债的垂场。


📚 深入孊习 / Learn More:

🧒 ELI5: This week in AI: robots are learning to be internet safety guards, phone chips are getting a huge upgrade to handle smarter AI, someone figured out how to make AI chats private like a secret code, and AI assistants are learning to speak in different accents — even British English!