Claude Tag 产品分析

Claude Tag 这个产品市面上的仿品很多,但我看到的绝大多数的产品仿品仿其型而未有仿其神。这背后是本身绝大多数仿品的团队都是 TO C 创业者出身,导致对于他们来说,并未看出背后的很多设计的原因。而作为一个真的干过 TO B 的产品经理,我觉得大家其实做的都还是 TO C 的产品,由于实在看不过眼(觉得在座的都是垃圾),我决定自己写一篇对于 Claude Tag 的拆解,方便大家参考和使用。

对于 Claude Tag 来说,其神在于:

  1. 针对 Slack 的深度定制,包括和 Workspace、Channel 的绑定和各级管控;
  2. Claude Tag 的多级 Memory 系统,真正让 Agent 能够持续使用,产生价值;
  3. 一套可组合的 Access Bundle,帮助你把多角色,应用在企业内。

如何开通 Claude Tag

花钱就行,50 刀起步;我花了 70 刀;50 刀是用来开 Claude Teams 权限;剩下 20 刀是 Claude Tag 日常消耗的(我觉得对于很多小公司来说,Claude Tag 的一大痛点可能在于成本太高,因为不是按照订阅算的 Token,而是按照真实的消耗算的 Token,那你可能真的得思考,我真的有必要上 Claude Tag 么?以及会考虑选择使用更便宜的 Sonnet 模型作为 Claude Tag 的主模型)。

Claude Tag 怎么使用

比较简单粗暴,当你完成 Claude Tag 连接之后,接下来直接 at Claude 做事就行;过程中可能会涉及到你要去做一些前置授权等。

但需要注意的是,目前 Claude Tag 的所有使用必须放在 Channel 中进行;私聊是无法使用 Claude Tag 的,它只能在 Channel 中使用,你需要把它放在任何一个 Channel 中使用;不过好在是,我测试了,其实你可以在 Private Channel 中使用 Claude Tag。所以你依然可以和他一起工作。只是 Private Channel 会在管理后台看不到 Channel Name

私聊 Claude Tag 的响应
看不到名字的 C0C0 隐藏频道

Claude Tag 产品原语

在看 Claude Tag 的细节功能上,我们需要先理解 Claude Tag 的产品原语,以便于我们对齐对于 Claude Tag 的理解,并且让你对于 Claude Tag 的产品理解有一个更加形象的认知,避免快速沉浸到产品的具体功能细节里。同时也更好的帮助理解不同功能的服务层级。

整个 Claude Tag 从产品原语上,你可以定义包括三个大类:Space(任务和行为发生在哪)、Capability(能执行和发生什么样的任务)、Control(如何控制这些任务的发生)。

Space 又可以进一步细分为 Organization、Workspace 和 Channel,后两者可以直接对应到 Slack 的相同概念(Claude Tag 如今还是和 Slack 有较深的绑定),且 Channel 是会话中的最小单元。和 Slack 一一对应可能是源自 Claude 团队自己在用,所以也就没做更多其他品类的兼容。Session 和 Routines 则是会发生在这些 Space 中的具体的会话;Session 是由人类触发的行为,而 Routines 则是由 时间触发的行为。底部的 Environment 则是两个 Session 的运行环境;

Capability 则可以细分为四个子类:Repositories、Domains、Plugin、Credentials ; Repositories 可以提供让 Claude Tag 访问的权限,你可以同时链接多个不同 Github Org 的多个 Repo,从而让 Agent 可以在多个 Repo 中协作。Domains 则给 Claude Tag 了网络访问权限, 通过 Domains 的配置,让 Claude 可以访问到目标的网站,从而获取到必要的信息,从而确保 Agent 的网络行为是可管控的,避免出现信息异常出网的情况。credentials  则提供了不同 SaaS 服务的链接能力,在完成授权后,Agent 会获取到对应的授权,以及一些预制好的 API 请求方式,从而你可以让 Claude Tag 在整个过程中,可以访问到一些外部的 SaaS,从而搞定所有的工作。Plugin 则是一个我们大家相对熟悉的概念,之前在 Claude Code 当中就有,Claude Tag 使用的 Plugin 基本上是一致的;不同的是 Claude Tag 不会执行其中的 Hook,但对于 Skill 和 MCP 都是完全支持的。

在 Capabilities 最下方,还有一个虚线的 Access Bundle;Access Bundle 是一个 Capabilities 的打包合集,其中包含了Repositories、Domains、Plugin、Credentials、Instructions。你可以在某个 Channel 中找到专属的配置,也可以直接添加一个 Access Bundle,来批量管理这些内容;从而,你可以非常快速的将一组预设好的 Access Bundle 给应用到某个特定的 Channel 上。从而快速完成不同 Channel 的配置。这里有一个特殊的是,Instruction 也是可以放在 Access Bundle 当中一起传递的;不过在产品的原语中,我将他放在了 Control 中。所以这里 Access Bundle 横跨了 Capabilities 和 Control。

在 Control 中,则汇聚了各种对于 Agent 的控制能力(aka:让 Agent 更好的做事),这里包括了我们刚刚提到的 Custom Instruction、Memory、Auto mode allow rules、Channel name rules、Channel name rulesd等一系列细节产品功能,这里比较重要的是 Custom Instruction 和 Memory。Custome Instrucion 会出现在 Org、Channel 级别的配置当中,对应的描述会出现在 Agent 的 System Prompt当中,引导 Agent 行为。Memory 则记录了你在和 Agent 之间的交互中产生的信息,支持频道级别的 Memory 和 全局的 Memory ,从而可以实现一些很有意思的用法(比如 Claude Tag 宣发中的一个 Case: 不同用户在不同 Channel 中和 Claude 聊同一件事,Claude Tag 会主动告知另外一个用户所做的决策)。其他我们就不再专门讲述,稍后会按照具体的功能细节时再说。

当你了解了 Claude Tag 的产品原语、定位和他们之间的关系之后,我们就可以来看看他的一些底层设计机制和数据状态了,能帮你更好的理解后续的一些功能设计。

Claude Tag 的一些数据设计

对于整个 Claude Tag 来说,你可以认为数据大概是这个样子的。

  1. 所有的数据都归属于某个特定的组织;组织下可以拆分多个不同的 Workspace(就像你可以是 Openai + 对应的 FDE 组织)。图的上部
  2. 每个 Workspace 里可以有一整套独立的 Channel、Memory 等机制;图的中左部。
  3. 当你进入到每个 Workspace 之后,你会看到 Workspace 内部的 Memory(组织级别的),然后里面可以有不同的 Channel 来进行日常的沟通和不同工作的分配。比如有的做 A,有的做 B;有的做 C;大家分布在不同的 Channel 里;图的中下部
  4. 每个 Channel 中有自己的 Channel Memory 、Custom Instruction、Access Bundle、Plugin、Credentials、Repository 等一系列 Agent 运行所需要的信息。用户可以根据自己的需要选择合适的内容。图的中右部。
  5. Channel 内部,会同时出现多个 Session 或 Routine。且由于存在自定义 Environment 的能力,可能会出现部分运行在 Anthorpic 的 Runtime 里,部分运行在用户自建的 Runtime 里。

上面的这种数据组织方式,很好的满足企业对于数据的管理诉求:

Claude Tag 的一些产品设计细节

围绕这上述的产品原语、产品数据设计;和面向 To B 的产品设计,里面出现了大量很符合 To B 产品直觉的产品设计。

  • Claude Tag 是组织买给你的,所以组织、Workspace、Channel 当中,都要能够给你的 Channel 设定不同的 Custom Instruction,从而确保你在使用 Claude Tag 做应该做的事情。正常情况下时按照顺序一层层拼接。
  • 一个公司可能会存在不同的部门和分公司;不同的产品团队也可能会使用不同的 Slack Workspace ,从而更好的做好权限管控。因此,要支持一个 Claude Tag 能连接多个 Slack workspace。
  • 一个 Agent 想要完整的完成一系列工作,不是简单的 Prompt 、Skill 就能解决,依赖MCP、鉴权、Skill和一定的指引。如果一个 Agent 要被持续复用(比如做客服 Channel 用),那么提供一个打包的 Access Bundle 就是必要的。
  • 由于每个 Channel 都不是从 Day 1 就开始思考 Access Bundle,和目前这种 Channel 中除了 Access Bundle 还能单独配置 Credentials(在单独Channels 里叫 Connector )、Plugin 的能力,我猜测大概率他们是先有 Channel 级别的单独配置,后面共享多了,干脆提供了单独的 Acess Bundle。目前已经出现每个 Channel,很快可能就会去掉 Channel 级别的配置,直接改 Channel 上的默认的 Acess Bundle 就行。
  • 在让 Agent 工作时,会涉及到一个 Agent 可能有多种职能,因此允许 Access Bundle 的叠加
  • 由于在 Slack 的对话式交互中,进行权限审批是一个复杂和不好判断的事情,因此,设计了 Auto mode allow rules,允许用户根据需要,写一些简单的规则,来让 Agent 自己进行 Auto mode 下的判断。一方面相信 Agent 的能力;另一方面,也给了企业足够的控制权。对于 Claude 还不擅长的业务领域,提供了足够的逃生空间。
  • 因为要把 Claude Tag 用在对外客服,因此支持 Claude Tag 被 Guest 访问;但对于不把 Claude Tag 用作客服场景的企业来说,可以直接关掉这个 Feature。
  • Claude Tag 似乎改了一次计费逻辑;在上个月我刚开通的时候,是你充值多少用多少;上个月两个任务花了我 $10 ;我赶紧把默认模型改成了 Sonnet 5 ;但今天写这个 Blog 的时候发现,似乎也变成了 Credit 的机制。如果是这样的话, Claude Tag 还蛮香的。
但最后发现其实是推广活动送了 2500 刀 的 credit
  • 如果是将 Claude Tag 用在客服支持等场景,可能会出现某些特定规则的群名,这些群名可能是希望 Claude Tag 加入或者不加入的,所以这里还会有专门的 Channel Name Rule;有白名单有黑名单;白名单会自动加入;黑名单则是绝不加入。对于一些做客服的场景,完全可以把 Channel 名写成 [Channel Support],然后等 Claude Tag 自己进去做支持。

Claude Tag 的 Memory

Memory 是如此的重要,以至于我认为我一定要专门开一章来写它。如果你要做仿品,只做一件事,那我认为就是做这个 Memory 体系。

Claude Tag 也为其产品设计了 Memory 的机制,

Workspace 级别入口
Channel 级别入口

你可以看到,Claude Tag 的 Memory 是以树的形式来组织的:

你会先在 workspace 级别的 Memory 中,看到 每个 Channel 中的 Memory ,但这里其实是各 Memory 的 Channel 的总结,更多是一个 Summary;而不是完整的 Memory;

而 Channel 级别的 Memory,你需要切换到 Channel 的选项中,查看详情。

在实际的使用时,memory.md 会作为索引,加载到 System prompt 中,Agent 根据需要,自己加载别的文件

且系统会根据相关性,通过对 Description 的二次判断,正式判断是否需要加载 Memory 当中的细节,并取 前4K 放在 context 中,方便 Agent 进一步自己去读。

Claude 一个 Channel 中可以有多个 Session (每个 Threads 都是一个新的 Session),Claude Tag会在开始处理任务的时候加载 Memory,因此,如果某个 Threads 写入了 Memory,另外一个 Threads 大概率需要到下一次调用时才能加载到。

在写入 Memory 的时候,Claude Tag 是在本地以文件夹和文件的方式组织 Memory, Agent 在必要的时候,写入相关的 Memory,当然,你也可以自己主动和他说。

Claude 会把 Memory 写入到 Channel 和 Silo 文件夹;这两个文件夹的区别主要在于silo存储的是 workspace 级别的 Memory;而 Channel 存储的是本 Channel 自身的 Memory,这样就可以同时兼顾本 Channel 和全局的 Memory,从而确保 Agent 能及时获得必要的 Memory;同时,因为 Agent 可以同时看到两组 Memory,就可以有所取舍,将 memory 放在合适的位置。

===== Claude Tag 的 memory 结构 =====
/tmp/claude/memory
`-- team
    |-- channel
    |   |-- .memory-sync
    |   |-- .memory-sync-basis
    |   |-- MEMORY.md
    |   |-- bestony-language-and-timezone.md
    |   |-- claude-tag-custom-instructions-layering.md
    |   |-- claude-tag-primitives-review.md
    |   `-- report-delivery-format.md
    `-- silo
        |-- .memory-sync
        |-- .memory-sync-basis
        `-- channel
            |-- C0BQB2J46D6
            |   |-- MEMORY.md
            |   `-- report-delivery-format.md
            `-- C0BQB5WPQD6
                |-- MEMORY.md
                `-- bestony-timezone.md
7 directories, 13 files

Code language: Bash (bash)

Claude Tag 的审计功能

作为一个 To B 的产品,审计功能是必须的。 Claude Tag 也提供了一些基础的审计能力,分三个大类:Scheduled Work、Memory 和 Network Event。

Scheduled Work 能够查看 Agent 的定时任务;不过也会发现 Agent 在执行任务的时候,也会把一次性任务当成 Scheduled Work 录入,从而导致展示在这里。

memory 则是整个 Org 级别 Memory 的展示,你可以根据需要查看和编辑某些 Memory。

Network Event 则是可以真的查询某个 Agent 对于网络的调用情况(还记得前面配置的 DOMAIN 么?)。

选择要查询的时间范围,就可以查询对应时间范围内的网络请求并分析。

Claude Tag 的 Custom Runtime

作为一个企业级产品,企业肯定会希望能够让运行行为发生在企业可控的网络环境,这样就可以充分利用企业内部的各项资源来完成这个目标。

Claude 支持创建一个 Self Hosted Environments ,来控制 Cloud Session 运行在哪个服务上

可以通过后台的配置,创建一个新的 Self Hosted Environment 来配置自己的 Runner,从而在企业内部使用的时候,就可以直接使用内网的设备来运行任务,执行各项内部基建。

再配合 Access Bundle 中的 Domains 的配置,可以开启对内网服务的访问权限。

辅以 Federated cloud access 链接到内部的 Gateway、授权服务,来实现整个内部的权限管控、安全控制,从而更好的服务企业,让企业更敢于使用 Claude Tag。

Claude Tag 的统计看板

Claude Tag 为用户提供了一个非常简单的统计看板

不过,最核心的 —— 哪个 Channel 最烧钱依然是有的

Access Bundle 的一些细节

  • Access Bundle 的 Credentials 除了已经提前集成好的服务,还可以加入自己自定义的 MCP 和 API Server

在使用 API & MCP 接入的时候,可以配置多种不同的授权方式,来满足绝大多数常见的业务场景,确保你能接入绝大多数业务。

Repositories 的的支持需要你将 Claude 的 App 安装到你的 Org 里,才能使用。

如果你有多个 repo ,也可以配置具体要用哪个 repo

我觉得比较好玩,但觉得很合理的设计包括:给用户一个 prompt,发给 github account owner 来做 link

在配置 Plugin 的时候,你可以选择多个 Plugin 放在同一个 Bundle 里,来方便使用和配合。还可以接入组织自己的 Organization,来方便使用组织内部特有的 Skill & MCP。

总结

这篇文章一边写一边截图,花费了将近 3 个小时,希望内容能帮到你,更好的思考 —— Claude Tag 到底给用户提供了什么。绝不是简单的将模型链接到 Slack 上;

背后的功能、实现,对于 TO B 功能的考究,都是很值得学习的。

都看到这了,我猜你肯定想试试看这类产品?那不妨试试我最近参与开发的一个开源项目 —— https://github.com/first-tree-ai/opentag 。我承认,我们还没做到很多这篇文章中提到的 Claude 的功能,但,在路上了,不是么?也欢迎你参考进来一起开发。

如何选择 DeepSeekHarnes / Claude Code/Codex/ Pi

文章将 Agent 工具分为 Coding Agent 产品、Agent SDK 和 Agent Framework,建议先根据使用目的选择类别,再比较具体工具。Coding Agent 的选择取决于预算、模型偏好、自定义需求以及是否想尝试递归自进化。

Agent SDK 适合保留现有 Coding Agent 能力并接入自定义交互界面;Agent Framework 则用于自行定义 memory、工具和 Agent loop。作者认为 DeepSeek Harness 目标宏大、仍在发展,短期不作为主力工具,但其递归自进化方向值得持续关注。

最近会和一些朋友聊到关于不同的工具选型,我发现很多朋友对于不同的 Agent 开始有一些混淆的理解,为了帮助大家更好的选择不同的工具,我写了这篇文章,希望帮助到你做选择。

你要做什么?

大家虽然在聊 Agent,但可能聊的不是同一个 Agent;有的人需要一个开箱即用的 Agent;有的人需要一个能够丰富自定义的 Agent,方便发挥自己的想法;有的人需要感受“未来科技”;还有的人,只是要开发一个自己的 Agent。

这里面会存在不同的需求,对应需要的东西也有所不同;简单来说,你可以在这个表里找到答案

类型目的选择
Coding Agent 产品我想用 AI 写代码Codex
Claude Code
Pi
OpenCode
Grok Build
?DeepSeek Harness
Agent SDK我想编程式调用 Coding AgentCodex Agent SDK
Claude Code Agent SDK
OpenCode SDK
Pi SDK
Agent Framework我想定制一个自己的 Agentpi
?deepseek-harness

这里面每个分类对应的是不同的人,首先,你需要先根据自己的目的,把自己分到对应的分组类型里,然后再在分组类型内部,找合适的配合。

Coding Agent 产品怎么选

Coding Agent 产品也会分不同的人和喜好:

  • 如果你是拿来干活,且预算充足,那么官方的 Claude Code 和 Codex 一定是你最优解,使用最尖端的模型,帮你把事快速干完;如果你想要做一些配置,市场上基本上能看到你所需要的绝大多数教程,应有尽有。Grok Build 是上面二者的平替;如果你是 Twitter(现 X.com)的蓝 V 用户,那么 Grok 还送了你免费额度,也很不错。
  • 如果你是拿来干活,但缺少预算,或者更倾向于使用国内的模型,那么 OpenCode 是一个不错的选择,也是一个成型的产品,拥有不错的 TUI 和交互;能够帮助你快速landing,教程的量级也不错,能够找到绝大多数的教程和说明。
  • 如果你已经体验过了上面的两个 Coding Agent,但同时也有自己的想法,觉得他们太过冗余,或者是有太多你用不上的功能,那么极简,但带有插件机制的 Pi 是你的最优选择。相比于同样拥有插件机制的 dsh,pi 其实拥有更稳定的核心和插件生态,能够帮你快速先构建属于你自己风格的 Coding Agent。
  • 如果你想试试 RSI(Recursive Self-Improvement,递归自进化),那么 DeepSeek Harness 就是一个不错的选择, 你可以让 Agent 给自己写插件,一边开车,一边换轮子。

Agent SDK 产品怎么选

如果你想要使用现存的 Coding Agent,但又不喜欢它们所提供的交互界面,那么你可以考虑使用 Agent SDK,自己构建交互的界面。比如把 OpenCode 接入到你的飞书上,那么就要考虑使用 Agent SDK。它可以帮助你在保留原有 Agent Harness 设计的基础上,让你拥有可编程调用的能力,从而接入你自己实现的交互界面。

在这个部分,选择主要取决于你在用什么 Coding Agent 和其 Harness,选择其官方提供的 Agent SDK 即可;有的是通过 Http Server 调用,有的是通过进程调用,但总体来说,都帮你封装了底层 Harness 的复杂度,你主要围绕 Agent 和 Session 的概念去设计你的交互界面即可。

Agent Framework 怎么选?

到了 Agent Framework,基本上已经比较深了,你可能在定制一个自己的 Agent,比如我最近在定制一个翻译的 Agent,就是要自己去定义它的 memory、tool、agent loop 等不同的方案,这个时候我就需要 Agent Framework;

这个时候你可以选择自己手搓一个 Agentloop,或者也可以像我一样,直接引用 Pi 的 agent-core 和 pi-ai 来完成 agent 的开发。

deepseek harness 也是一个不错的选择,社区有插件来帮助你去实现功能。

我自己对于 DeepSeek Harness 的看法

我觉得 DeepSeek Harness(DSH)要解决的问题很宏大,这意味着不会很快;再加上当下 DSH 还是按照一个软件工程产品在开发,所以我短期不会把它用作主力的 Coding Agent;但递归自我改进(Recursive Self-Improvement,RSI)本身是有意思的,是值得关注的,所以 DSH 我会持续关注和尝试,作为一个观测对象来学习。

什么时候卖出?

作者回顾了从基金到股票、再回到基金的投资经历,认为买入相对容易,卖出则难以判断。投资的本质是参与社会产出的分配,因此不应仅因市场变化或担心卖飞而出售资产。

卖出可分为换仓和变现:换仓应选择更有利于参与社会产出分配的资产,变现则应以实际资金需求为依据。若暂时用不到这笔钱,就不必卖出。

我从买基金,到买股票,再到买基金,其实经历了几个循环;目前持仓中,大头是基金。

在过去很长一段时间里,我都没想明白一件事 —— 什么时候卖?

买对我来说,不难。我本身就有保持储蓄的习惯,所以每个月固定存入一笔钱进行储蓄;然后购买资产。这已经成为我数年来的习惯了;也让我攒了一笔躺平保障金。但,如何卖是个很难的问题,怎么才能卖在合适的位置?怎么才能确保没有卖飞?

曾经我和 C 哥聊过卖期权,C哥的建议是:不要卖,等用到的时候再卖。我当时没太懂这个背后的原理;最近我终于明白了背后的逻辑。

投资我们到底在投什么?

我们投资本质上是参与社会整体产出的分配;分配有很多种,包括按劳分配(工资)、按资产分配(投资)等等多种多样。

我们的投资的目标是让自己能够更多的参与到社会产出的分配当中;如果我们只持有现金,就没办法很好的参与分配,因为现金只是现金,没有投入再生产,无法增强其自身效益。

而基于这个目标,我们什么时候应该卖出投资:我们认为不再需要参与到社会分配当中的时候;或者说,花掉这笔钱对我们更重要的时候。所以,答案很简单:用不到,就不卖。

    是真的不卖么?

    即使是卖,也分两种卖,一种是换仓,一种是变现;对于前者而言,判断标准也清晰很多:我们换仓的标的应该是比之前的标的能够更好的参与到社会产出分配当中。而对于后者而言,就回到前面的判断:不用不卖。

    观《牛来》后记

    先说评价:牛来这部电影在票价合适的时候,是可以考虑去看的;虽然制作稀烂,但故事本身的元素还行;现场也氛围很轻松,如果你去一个人很多的场次,会很欢乐。

    最近《牛来》很火,作为一个乐子人,我自然也想去凑热闹;于是便看看附近的影院是否有《牛来》上映。大多数排片都在晚上十一点以后了,对我来说太晚,就考虑跑远一点,最后在三公里外的大学门口的影院找到了一个九点五十开演的,果断买了票。

    买票的时候,惊讶的发现。。。接近满场最好的几个位置已经没有了,不过好在是个小场,所以我买了边座倒是也不影响。到了晚上快开场的时候,看到这场已经彻底满座了。

    观影体验

    电影制作

    坦诚的讲,《牛来》的制作极差,画质拙劣、镜头语言奇怪(会有一些奇怪的镜头,镜头之间的切换能让人产生眩晕)。

    在非主角牛的时候,建模之简单可以看下图

    给我一种 ——“诶,这个是大学生毕业习作吧。。。”的感觉。

    对应的音效也很廉价,虽然感觉不像是买来的成品音频,但也有点诡异。

    现场体验

    虽说制作比较拙劣,但现场体验不错,可能是因为大家本身对于《牛来》的预期并不高,甚至是负面预期来的,奔着“我倒要看看《牛来》有多么的拙劣”的理念来的,所以反而从一开始,大家就很开心,我们从开场笑到结尾。

    如朋友 bobo 所说,《牛来》其实和世界杯之类的线下观看,给大家了一个共同观赏的场域,给大家一个狂欢节,大家可以不用像看其他电影一样,不敢评论,不敢哈哈大笑。在《牛来》所有人都可以开怀大笑。

    这些体验,是当下压抑的我们一个不错的选择。

    因此,如果你要去看《牛来》,一定要选一个人多的场子,这样才好玩。

    故事

    《牛来》的故事其实底色还不错,讲述了一只小牛的成长的故事,其中杂揉了亲情、友情、成长、责任,还借助了南柯一梦的形式,在最后回溯到开始。

    整个故事中,牛群和豹拉的误解、牛妈妈的牺牲,都让牛来本身的故事性丰满。如果同样的剧本,用更新的技术去制作,可能是一个还不错的小电影(不一定能是大片级别,但绝对算不上差)。

    片尾曲

    《牛来》的片尾曲是导演的妈妈演唱的,唱法颇有60-70年代生人的习惯,吟唱和长音,对于我来说,颇有种听自己母亲唱歌的感觉。

    如果你想听原版,https://www.bilibili.com/video/BV13DbU6eEHe/?vd_source=bc2eca30591cc528ff3e3111c03da942 这个视频中有个盗录的版本,可以感受一下。网易云的版本(https://music.163.com/song?id=3422318789&uct2=U2FsdGVkX1/1O5dEeyaVq+DdVNFnVYekj94YfKKdztk=)会更好听,但没有原版的情绪那么充沛。

    总结

    如果你周围有 30 块钱左右一场,且人比较多的场次,去看看,还不错;但如果是自己在家看的话。。。我觉得大可不必折磨自己,这个电影还是去电影院感受一下氛围比较好。

    观《老式喜剧》后记

    因为小学背过《雷雨》,演过《雷雨》,我对于人艺就很好奇。后面从深圳去北京工作,有了机会,我就曽和太太一起去人艺看了《蔡文姬》,后面种种原因,就一直没看;那一场有杨立新和濮存晰,还挺好的,不过时间久了,有点忘了hhh。

    最近收到了人艺的新的推送,鬼使神差就点进去了,发现《老式喜剧》的演员是李幼斌(李云龙!)。于是就重新起了兴趣,决定去人艺看看老式喜剧。

    提前买票,然后坐车前往人艺,等待入场;在等待入场的时候,我还在人艺的文创书店买了杯咖啡,在等咖啡的时候,发现他们正在卖阿尔布卓夫的《戏剧六种》,我发现里面有老式喜剧的剧本,果断下单买了剧本来看。

    就老式喜剧这部剧而言:

    • 我个人觉得李幼斌演的很好。他和他太太一起演爱情戏剧很不错(真夫妻就是好磕)
    • 我是奔着给李幼斌一张票钱去的,毕竟以前也看过盗版的亮剑(我一直觉得应该买一份亮剑的盘存着,蛮好的电视剧)。
    • 我觉得老李的给人的感觉和这部剧很搭,剧中他扮演的是一个60岁的,从战场上下来的外科医生,和李云龙很搭。

    当然,也有一些事情让我感受到了话剧的有意思的地方:

    • 并不是完全按照剧本演的,因为我买了《戏剧六种》刚好就看到了一些台词,其实老李并没有讲,但并没有影响整个剧的情绪表达。很好!
    • 看这部剧给我种草了俄罗斯 Lube 乐队,他们的 Позови меня тихо по имени很好听

    给大家看点剧照,推荐大家去看看!很好!

    BTW,我觉得现在去看话剧真的是我圆梦的一部分,可以在线下看一些小时候看的电视剧的演员,蛮独特的体验。

    对平台存在敬畏

    我曾经一度对于「平台产品经理」是没感觉的。毕竟大家都是产品经理,做平台有什么了不起的?大家干的不都是产品经理的活么?你有什么差异。

    但,后面,发生了一件事,让我记忆犹新,从而对于「平台产品经理」和平台级业务的感知和敬畏加深。

    那时我刚加入飞书开放平台,作为飞书开放平台的技术型产品经理,我要去推动一个产品上的 API Breaking Changes。如果在产品发布前就触发了 Breaking Changes,就一定要提前告知客户,不然会直接出现事故,要追责。所以,我就发布了通告,进行客户的告知。

    看起来很正常,且做的事情逻辑也对,是么?

    但其实那次被定义为事故,事后组织了复盘。

    之所以被称为事故,是因为,我的客户告知,进行了一次大面积告知,我的通知告知了所有的开发者客户,但实际上真正可能受影响的客户并没有那么多,我的过度告知反而给平台带来了巨大的解释成本和服务成本。

    这个事情很小,但非常明显的体现出了普通产品和平台型产品的很大区别,普通产品大家的影响面可能是非常有限的,但平台型产品,特别是 TO B 的平台型产品,你的影响面可能是数以万计的用户和客户。一个处理不好,可能就是所有人要陪着你一起去跪客户的。

    我的 AI Coding Guide

    最新更新于 2026 年 6 月 29 日

    这个指南是我自己的 AI Coding 的经验总结,我认为在实际使用 AI Coding 的过程中,应该注意和遵循的规则。

    这篇文章是我实践后高度总结出来的结论,如果你想看更细致的内容,可以看 从“代码补全”到“全托管 Agent”:我的 2025 AI Coding 进化论半年过去了,我和 AI Coding 的关系有什么变化?

    精力管理

    当你开始使用 AI Agent 来辅助编程后,你很快会发现,最大的瓶颈是你自己的管理范畴和你的精力管理。

    1. Attention Is All You Need

    AI 时代,信息的生产变得无比简单,这导致我们看到的信息、要处理的信息进一步爆炸。因此,如何更好地利用 AI Agent,降低我们的决策成本、提升我们的信息信噪比,让我们可以少做决策,做正确的决策。

    2. Use the Strongest Model Where It Matters

    使用你能接触到的最贵的模型来进行开发;能用 Claude Opus ,就不要用 GPT 5.5 XHigh;能用 GPT 5.5 XHigh,就不要使用 GLM 5.2 。

    更贵的模型意味着对于你来说,可以更少的干预和决策,降低你对于 Agent 的管理成本。除非,某个任务对你来说,真的就是一句话任务,或者让他执行一个极其简单的任务。

    对于格式化、批量替换、简单脚本、低风险机械任务,可以使用更便宜、更快的模型。

    3. Prompt is Spec

    你写给 Agent 的 Prompt,本质上就是临时规格说明。模糊的 Prompt 会生产模糊的实现。一个好的任务应该包含:背景、目标、非目标、修改范围、验收标准、验证命令和风险边界。

    不要害怕给 Agent 长的 Prompt,相反,你应该尽可能榨干自己的脑子当中的想法,把和你的需求相关的事情全部写下来,即使只是很简单的个人倾向性的描述,也可以有助于帮你更快的完成自己的目标。

    4. Plan Before Your Build

    所有的工作,除了简单的日常动作(就是那种你觉得丢给随便哪个模型都能干的事情),只要是正常的工程工作(Feat / Bug / CI),都要使用 Plan Mode 先聊一轮。目标是在过程中澄清你的需求,避免似是而非的需求进入到研发队列,浪费你的时间和精力。

    把主要精力放在 Review Plan、Review Diff、Review Test Result 和风险项上,而不是逐行 Review Agent 写的每一行代码。你的精力终将不足以支撑传统意义上的全量 Code Review。

    对低风险、可逆、影响面小的细节,可以降低审查强度;对数据、权限、计费、迁移、鉴权、删除、生产发布等高风险改动,必须重点审查。

    5. Keep YOLO, But in a Reversible Sandbox

    作为 AI Agent 的管理者(Manager),你要做的是抓大放小,何为大?架构设计、方案设计;何为小?具体的细节操作的命令。保持使用 YOLO 模式(Codex 的 dangerously skip permissions 模式),可以帮助你减少微操。

    但是,不是无脑 YOLO。你需要确保即使是 Agent 在 YOLO 模式下发挥所造成的最灾难的状态,你是可接受的。

    可逆沙盒至少意味着:代码已经进入版本控制;Agent 工作在独立 branch 或 worktree;没有生产密钥;没有生产数据库写权限;危险操作有备份或 dry run;部署、数据迁移、删除类操作需要人工确认。

    工程管理

    和 Vibe Coder 不同,作为工程师,我需要交付的是有价值的产品。所以,还是要让工作尽可能的 Under Control,避免 Coding Agent 帮你办离职。

    6. Always Use Version Control and Remote Backup

    无论你的项目大还是小,都要上一个版本控制工具。可以是 Git ,可以是 SVN,也可以是 hg,但一定要有。你需要让 Agent 始终工作在版本控制工具的范畴内,即使出现了问题,你也能快速回滚。

    此外,一定要放在云上,这样即使是最极端的灾难情况 —— AI Agent 删除了你的所有代码,你也可以从云端找回一个历史的版本。

    此外,用好 worktree 之类的功能。

    7. Small Batches

    让 Agent 以功能 、特性为维度小步快跑,而不是一次性憋个大的。这对于要确认的你不友好;对于 Agent 也不友好。模型的注意力也会涣散,也会出现遗漏重点的问题。

    小的步骤配合着版本管理工具,可以帮助你更快的迭代,同时,更稳。

    8. Protect Production

    除非你知道你在让 Agent 做什么,不然不要试图让 Agent 直接操作你的生产环境;如果实在不知道怎么操作,最好的办法是让 Agent 给你一个操作手册,你跟着操作手册去执行,并要求 Agent 解释每个行为的意义和价值。

    我猜你不会想删库跑路的吧?

    快速反馈

    9. Fail Fast & Feedback Fast

    尽可能早的报错,不管是代码,还是逻辑;尽早报错可以帮助 AI Agent 更快的发现问题,从而更快的解决问题。而不是到线上才暴露问题。

    从这个视角来看,Typed Lang is better than non-typed lang。Golang、Rust、TypeScript 这类有强静态反馈的技术栈,更适合 AI Agent 协作;纯 JavaScript 这种反馈更晚、更依赖运行时和人工约束的方案,会显著增加 Agent 协作成本。

    除此之外,为你的 Coding Agent 构建尽可能多的反馈回路,让他除了写代码之外,还可以通过反馈回路来获得反馈,优化自己的代码和实现。这些反馈回路包括:

    • Type Check
    • Lint
    • Format
    • Testing
    • Cyclomatic Complexity

    让你的 Agent 在完成工作后,执行这些工具,尽快获得反馈,并自我修复,避免 Bad code smell 进入你的代码仓库。

    git hook 就是一个不错的选择:pre-commit 搞定 type check、lint、format;pre-push 搞定 testing 和 Cyclomatic Complexity。

    10. Work With CI/CD

    尽可能构建你自己的项目的 CI/CD流程,除了本地的 hook 和检查,你还需要更加强制的校验,确保符合要求的代码才能进入你的代码仓库主分支。

    确保你的 CI/CD 流程包含测试、e2e、复杂度、覆盖率分析、安全扫描,让你的代码尽可能的安全。

    CI 负责阻止不合格代码进入主分支;CD 负责让可发布版本以可审计、可回滚的方式进入环境。

    高并发工作

    11. Async Work

    由于模型的推理和 Agent 的工作需要时间,所以不要和 Agent 同步工作,而是尽可能的和 Agent 异步工作。通过 Plan 功能,前置让 Agent Review 和设计工作,并在确认后,让确认完的 Agent 工作;

    这样你可以有效的让你的 Agent 和模型的工作最大化的利用;这里最重要的是让 Agent 可以在过程中一次性把要确认的快速确认完,然后自己可以兢兢业业干半个小时,甚至更久。你只在他需要你的那一刻投注注意力,剩下的时间,安排好你的注意力。

    我最近比较喜欢用的是一个大的屏幕上同时开四个 Codex 干活;如果你是 Windows ,可以使用 wmux, mac 下则可以考虑 cmux 。这些都不错。

    对了,一个副作用是,你可能会发现,跑了多个 Agent 之后,你会需要一台更强悍的电脑(所以我买了 2026年的 MBP M5 MAX)

    12. Parallel Work

    和人类不同,Agent 每一个线程都是完全独立的;只要你的 message 是独立清晰的;Agent 是可以并行工作的。而唯一能限制你并行度的,就是你自己对于工作的拆分和理解。

    一个比较合理的方案是使用 git worktree 并行开发;同时尽可能避免让多个 Agent 处理同一个模块的事情,减少最后在合并回主分支时冲突的发生。

    但是,需要注意,尽量不要跨项目并发工作,你自己的上下文会不足以支撑切换。

    13. Sleep Work

    对于人类来说,睡眠是一个很好的休息的时间,但对于 Agent 来说,不是的。 Agent 不需要休息,但很显然,休息状态时,你不太可能去跟进 Agent 的决策,确保他的产出是符合你的预期的,所以,你需要一些能够深夜自动工作的任务,从而帮助你利用好你的睡眠时间。

    我一般会在深夜让 Agent 做这些事情:

    1. 写测试 & 补全测试:这些事情白天也能干,但白天可能在高频迭代,晚上让 Agent 补测试是个不错的选择。
    2. 代码重构:如果你的项目测试基建是足够好的,那么你的睡眠时间非常适合让 Agent 做自主重构,消解技术债务,帮助你的项目获得整体的高质量。

    代码是你的,不是 Agent 的。

    14. KISS(Keep it Simple Stupid)

    AI Agent 在写代码时,会很容易出现复杂,你无法理解的写法,导致代码对你而言,彻底无法维护。这个是一定要避免的,你需要学着控制你的项目的复杂度,让 Agent 写完后跑 Cyclomatic Complexity 检查,超标必须重构,避免项目过于复杂,导致你无法维护。

    即使你的代码是 Agent 写的,更加简单易于理解的逻辑,也会让你获得更好的结果。毕竟,你可能绝大多数的时候都能借助 AI Agent 搞定工作,但最终还是要确保自己有救济途径;可以接管 Agent 的工作。

    15. /init, but not only init

    无论是 Claude Code 还是 Codex,其实都有 /init 功能,来快速建立 AGENTS.md 和 CLAUDE.md 来帮助你建立一个项目级别的 Profile ,用来引导 Agent 执行;但实际在使用过程中,Agent 生成的文件是无法完整覆盖你对于这个项目的完整定义的。因此,你要学会配合使用不同的层级的 AGENTS.md 来帮助你做好架构。

    比如,我会同时使用全局的 AGENTS.md 和 项目级别的 AGENTS.md 来管理我的 AGENT 的行为。我会在全局(~/.codex/AGENTS.md) 中,会加入一些纲领性的指引,比如下面这个例子;

    # 基本设定
    
    - 交流使用中文;代码、注释、标识符、提交信息及代码块用 English;技术文档使用 English。
    - 处理 Github 相关操作优先使用 `gh` cli。
    
    # 核心原则
    - 约束优先级:显式规则 > 正确性/安全性 > 业务边界 > 可维护性 > 性能 > 代码长度 / 局部优雅。
    - 在写代码时,你会尽可能多的把可能后续 DEBUG 时所需的日志全部通过日志的方式打印出来,方便后续排查问题;并做好 Level 管理,方便在生产环境时通过 Level 只看最核心的日志。
    - 在写代码时,如果你发现单个文件过于复杂或太长,不利于维护,你会适当的拆解合适的模块。
    
    # 表达与风格
    - 重点放在设计清晰设计、抽象、正确性、稳定性、性能与可维护性
    
    
    ## 提交与协作
    
    - 提交信息遵循 Conventional Commits:`<type>[optional scope]: <description>`,例如 `feat(repos): add owner filter`。
    - 每次执行任务前,都先使用 git pull,确保 main 分支已经是最新。
    - 小步提交,完成一个任务后就提交(一个任务的范畴是未来可能一起回滚的),只 stage 自己相关的改动。每次完成任务记得提交;
    - 不要提交真实 `.env`、密钥、数据库连接串、OAuth token 或本地私有配置。
    - 当前项目会使用 .gitlock 来作为 git 锁;如果你准备 commit ,就要创建一个 .gitlock 文件到项目根目录;如果你 commit 完成,就删除这个文件。如果你准备 commit 时发现有这个文件,就等待 30 秒后再检查直至这个文件删除后再执行 commit
    Code language: PHP (php)

    然后,在项目级的 AGENTS.md ,我就不会再使用 commits 的约束,并更多的精力放在项目本身的描述上。

    以及如果你的项目最近架构发生了变化,记得重新生成 AGENTS.md 文件,避免旧的架构文件错误引导 Agent 工作。

    总结

    使用 AI Agent 编程,本质上是一次角色转变:你不再是那个逐行写代码的人,而是那个定义目标、划定边界、审查结果的 Manager。

    Agent 的能力上限,取决于你给它的上下文质量;你的精力上限,取决于你把注意力放在哪里。

    把决策权留给自己,把执行权交给 Agent,把验证权交给工具链。这三件事做对了,你的生产力才真正被放大——而不是被 Agent 带着跑。

    代码是你的,不是 Agent 的。

    2026 欧洲之旅:在意大利打车

    在意大利无法像在其他国家那样使用Uber X等网约车服务,需要下载专门的本地应用。appTaxi在佛罗伦萨覆盖率较高,而ItTaxi适用于罗马等地,范围更广。

    计费从司机接单驶向乘客时便开始,上车前可能已有费用产生。司机通过专用设备接单,信息有限,需再次确认目的地。可以使用信用卡支付,前往车站则应提前预约车辆。

    看到标题,你可能会好奇,诶?为什么是【在意大利打车】?在意大利打车和其他地方有什么不同么?

    是的,不同的。在意大利,你并不能像我们在国内这样方便的使用 App 打车!在法国,你可以直接使用 Uber 打车,但在意大利,不行,你没办法打 Uber X(我们一般意义上的网约车)

    https://x.com/i/grok/share/aa3d083c7f8248e58c2e8a47dc837a71

    So,如何打车?

    想要在意大利打车,你需要下载当地的 App,比如我下载了 appTaxi 和 ItTaxi 这两个 App 来专门打车;

    其中 appTaxi主要是在佛罗伦萨比较强,如果你是在佛罗伦萨,那么可能 appTaxi 能够更快的打到车;

    而 iTTaxi 我们则是在罗马使用的,他的覆盖范围也会更广一点。

    使用注意

    单纯 App 倒也没啥,我们可以说一些重要的注意事项

    1. 计费逻辑不同:不管是 appTaxi 还是 itTaxi ,实际上对接的都是当地的专业的 Taxi;他们的计费逻辑是从他们接到你的订单,开始朝你这里开的时候,就会开始计费。所以有些时候你上车的时候,会看到已经有一些费用就是这个原因。
    2. 当地 Taxi 通过专用设备接单:和国内大家普遍使用手机接单不同,当地的 Taxi 往往都是有专用的设备来接单的,就是下图这个设备。你可以看到,里面的信息相当有限,因此,大概率你上车后,要和司机再 Double Check 一下你得目的地。
    3. 可以使用信用卡支付:国外确实信用卡是刚需,你打车也可以使用信用卡来支付,非常方便,不用带太多的现金了。
    4. 如果要去车站,记得提前预约:因为逻辑和司机的量不同,导致你并不一定能很快打到车,如果你要去车站之类的明确有时间限制的地方,那就记得提前预约车辆,并预估大致的时间出发
    接单设备

    总结

    就记得意大利和其他地方不一样~得下载专门的 App 就行~

    2026 欧洲之旅:酒店

    作者第二次出国旅行时主要入住万豪系酒店,全程使用万豪App预订以便灵活调整行程。巴黎酒店房间和电梯偏小但价格划算,里昂万豪虽大且舒适但位置偏远,尼斯和佛罗伦萨的酒店位置尚可,罗马的AC酒店则过于偏僻,不适合观光。

    此次体验让作者更重视酒店与景点的距离,并意识到在高消费城市应控制预算,将资源留给后续行程以获得更高性价比。

    由于是我的第二次出国旅行,再加上这次的行程有很多不确定性的,所以这次订酒店和上次美国之旅有所不同,上次我少量入住了万豪/IHG的酒店,这次则是大量入住了万豪系的酒店。

    实际上这次只有在巴黎住的酒店是在携程上订的,剩下的全部是用万豪 App 来订的。用万豪 App 的一个好处就是,你可以随时退房,这样如果行程临时发生了变化,就可以非常方便的更换酒店了。

    巴黎

    在巴黎时,我们住的是 巴黎蒙帕纳斯阿维雅蓝宝石酒店(Avia Hôtel Saphir Montparnasse) 酒店,这个酒店的房间不是很大,你可以看到,房间放下两个 28 寸的箱子后,其实空间就很少了;左侧窗边也只有一个很小的过道。

    整个巴黎的酒店都还挺贵的,所以这个酒店就显得非常划算,我们住了 4 天,花了3400 块钱,日均 800 块钱。

    房间小倒是其次,我觉得更加关键的是 —— 电梯小。和国内往往都是一些大电梯不同,我们住的这家酒店的电梯异常的小,我倾向于这是因为这个酒店所使用的房子其实是老房子,所以没办法加装大电梯(毕竟位置倒是还不错)。电梯只能同时站下我们两个人 + 两个箱子(非常拥挤),如果是人比较多的话,可能会比较麻烦。如果你和我一样是个胖子,巴黎的电梯可能不会让你特别舒适。

    里昂

    里昂我们住的是 Lyon Marriott Hotel Cité Internationale。这个酒店就不一样了,又大又新;我们当时还住了一个临街房型,房间里还有阳台,住起来颇为舒适。

    我们住的房间就是这个效果(图源携程)

    不仅如此,这家酒店是给拖鞋的!之前一直觉得美国酒店的是没有拖鞋的,所以觉得欧洲可能也没有,这次就也自己带了拖鞋。结果,这家酒店是赠送拖鞋的,就让我对于万豪的好感 + 1;虽然贵,但最起码还是有点服务的。

    不过这家酒店有个问题 —— 太远,你如果是来逛里昂市区的各种风土人文的话,这家酒店还是有点远了。出门都一定要打车。此外,我觉得这家酒店还有点比较坑的是。。。他们楼下还有赌场。。。可能对于有担心的人来说,不一定是个好的选择。

    我自己下次去里昂,可能不会选择住这家酒店,而是选择一个更加市区的酒店。

    尼斯

    尼斯我们住在 Nice Centre Hotel,这家酒店的位置不错,如果你和我一样,是坐高铁抵达尼斯,从尼斯站出来步行 10 分钟就是这家酒店。不仅如此,这家酒店旁边,就是尼斯圣母殿。不过就是离海边稍微有一点远,走路过去需要 15 ~ 20 分钟才能走到。

    酒店空间

    房间有阳台,而且旁边就能看到圣母殿。

    不过高楼层带阳台也有坏处,就是你楼顶就是酒店的 Bar

    夜景无敌
    晨间的风光也不错。

    我觉得如果你第一次来,这家酒店还可以,旁边的店铺啥的都比较多,交通也方便,或者是你晚上到。如果第二次,你是来度假,纯看海躺平,那离海边更近的酒店更适合你。

    佛罗伦萨

    我们在佛罗伦萨住的时佛罗伦萨万豪AC酒店(AC Hotel Firenze)。这家酒店的位置不错,离城区有一定的距离,但也不会特别远,晚上我和太太还走路出去吃晚餐,附近有几家不错的中餐馆,还挺方便的。而且附近走一走,就有洗衣房和缆车站和公交站,很方便。

    我们的房间就是这个造型(图源携程)

    这家酒店的面积也很大,我们住起来非常的不错;

    果然,离开巴黎,你住的酒店都还行。。。

    罗马

    在罗马,我住在AC酒店克洛迪奥罗马(AC Hotel Clodio Roma)。总结来说:后悔,太后悔了,这家酒店的位置有点偏,感觉适合商旅,并不适合来旅游。导致我们在罗马的几天,一出门就要打很久的车,坐很久的车才能到景点,唯一近的是梵蒂冈城。。。

    虽然,酒店的房间还是不错的。。。我们的房间还带了个小阳台,晚上出来吹吹风体验不错。

    图源携程。

    总结

    这次欧洲之旅,给我了和美国之旅不同的体感,也有了新的对于酒店的选择思路;

    下次可能出国,我依然会考虑住万豪之类的酒店集团的酒店,但我会更加关注从酒店到我要去的景点的位置;同时,也会适当调整预算,比如像巴黎这种明显就是更贵的地方,就别折腾了。。。把预算留给后面的城市吧, ROI 更高!

    尝个鲜 — 健民辣丝

    尝个鲜系列是我尝试开启的一个新的系列,记录一些我吃的好玩的,不太「日常」的东西。

    忘了在哪里刷到了健民辣丝,在淘宝上买了两包健民辣丝。东西倒是不贵,两包 8 块钱(当然,可能作为一个咸菜是有点贵的,但对于我的消费能力能力倒还好)。

    这个东西在网络上的风评是【巨辣】,但确实从商品图上看不出来,好奇之下,买了两包健民辣丝,配着面条,试试看。

    第一眼感觉

    第一眼看到健民辣丝的时候,确实不觉得这玩意会辣…毕竟,白白净净的,见不到辣椒的红色;说芥末辣的话,也看不到芥末的绿色

    健民辣丝

    而看反面的配料表的话,其实也看不到什么能“辣”的元素。

    配料表

    口感

    健民辣丝吃上去的话,其实并不算辣;甚至口味还挺清淡,得益于配料表中的白糖,实际上你吃起来是酸甜口的,虽然芥菜丝是有一点点微辣的口感,但完全可以接受,不会出现太辣的问题。

    而真正让我感受到辣的 —— 是吃健民辣丝里面的花生米。这个花生米同样也是白白净净,但当你吃了一颗后,芥末味直冲心灵。

    刺激!

    总结

    我自己吃完健民辣丝,觉得其实还蛮不错的;很适合作为夏天的小凉菜,酸甜口不容易反感,芥菜丝的微微辣可以让你在甜酸口中再补一层独特的口感,非常惊艳。

    如果你不喜欢芥末味的话,不要吃里面的花生米,那就问题不大,整体的体验还不错。

    AI 回答

    我问了问 Grok,为什么健民辣丝里的花生米比芥菜丝更辣,这是Grok 的回答