先说清楚一件事:当下对AI编程能力的叙述充斥着夸大。
Matt Welsh说这是"编程的终结",Andrej Karpathy管它叫"Vibe Coding"。社交媒体上到处是"产品经理用自然语言描述需求,几秒后拿到完整代码库"的演示视频。但现实是:FeatBench的基准测试显示,当前AI代理实现新功能的成功率只有约30%——十个需求里七个搞不定或搞出问题。AI倾向于"激进实现":为了满足你的prompt,它会静悄悄地破坏已有架构、跳过错误处理、忽略安全控制。Unit 42的安全报告发现,Vibe Coding产出的代码大量缺乏身份验证和速率限制这些最基本的防线。
AI写代码,今天远没有宣传的那么靠谱。
但这不意味着什么都没改变。即使成功率只有30%,AI也确确实实地让代码生成的速度和总量爆炸式增长了。一个开发者用AI半天生成过去一两周的代码量,AI代理群可以作为开发者、测试者、设计师、项目经理…互相斗而不破,协作完成大规模项目。这一切已经在真实发生。代码的质量在上升,代码的生产成本在急剧下降——也许还没降到零,降到原来的千分之一,但方向不可逆,速度在加快。
这意味着一件事:代码正在变成大宗商品。当所有人都能快速生成功能差不多的软件时,代码本身不再是竞争优势。那什么才是?
答案不是更好的代码,而是更好的用户理解。谁能更精确地模拟自己的用户——他们的焦虑、困惑、耐心极限、非理性决策——谁就能构建出真正被人用、被人爱的产品。竞争的焦点正在从"构建软件"转向"构建用户"。
这篇文章要讲的,就是这个转变:
Build your “users,” not your software.
构建用户,而不是构建软件。用有性格、有情绪、会犯蠢的AI模拟用户来理解真实用户,让这种理解成为你的核心竞争力。

传统的"用户理解"靠什么?用户画像文档、焦点小组、A/B测试、问卷调查。这些方法的共同问题是:慢、贵、样本小、且只能在产品已经上线后才能获得反馈。
传统的测试脚本也不解决这个问题。Selenium机械地执行"点击A,输入B,断言C",没有记忆,没有情绪,不会困惑。它能告诉你按钮是否能点,但永远不会告诉你用户为什么不想点。
新一代的模拟用户(Synthetic Users)试图改变这一点。它们是基于LLM构建的自主智能体,有三个关键特征:
持久化的人格。 不是匿名的test_user_01,而是"Lisa,45岁,急诊科护士,技术水平低,正处于高压力状态"。
状态与记忆。 它们记得交互历史,并随之改变内部状态。系统连续三次报错,Lisa的挫败感会累积上升。
目标导向行为。 它们有模糊的目标("我想请假"),会像真人一样在界面中探索、迷路、尝试、放弃。
但最关键的技术是"情感链"(Chain-of-Feeling)。
传统prompt工程用"思维链"(Chain-of-Thought)诱导逻辑推理。但真实人类的决策大多由情绪驱动——卡尼曼说的"系统1",快速、直觉、非理性。情感链技术就是模拟这种非理性决策的。它包含几个核心组件:
- OCEAN人格特质:基于大五人格模型设定行为基线。Lisa的高神经质意味着她对错误信息极其敏感。
- 情绪状态向量:动态追踪效价(正面/负面)和唤醒度(兴奋/低落)。因连续值班,Lisa的认知资源已经耗尽。
- 躯体标记(Somatic Marker):模拟达马西奥的"躯体标记假说"——直觉。Lisa看到复杂表单,立刻产生逃离冲动。
- 认知偏差注入:现状偏差让Lisa拒绝尝试新功能,坚持使用旧入口。
有了这套架构,当面对一个设计糟糕的UI时,普通脚本会成功点击按钮(只要元素存在),但Lisa会在日志中记录:*"我找不到请假按钮,这让我非常焦虑,我担心因为排班错误被责骂,我决定直接给护士长打电话,不再使用这个App。"*
这不是在测试功能。这是在理解用户。
斯坦福HAI的里程碑研究提供了初步验证:研究者用真实人类的深度访谈构建了1000个生成性智能体,让它们参加通用社会调查(GSS),结果与真人回答的吻合度达到85%——接近人类自己两周后重测的一致性。而经济上更是碾压:传统用户研究招募50人、安排访谈、整理数据,耗时数周,成本数万美元;模拟用户在云端实例化50个Agent并发运行,几分钟完成,成本几美元。
这意味着"深度理解用户"这件事,第一次有可能变得廉价、快速、可规模化。
有了模拟用户,一种新的开发思路自然浮现——模拟驱动开发(Simulation-Driven Development, SDD)。
它的核心理念不是"用AI测Bug",而是在产品成型之前,先用模拟用户群体来探索产品的可能性空间。工程师不再编写具体测试用例,而是定义模拟受众,然后观察这些受众如何与产品交互、在哪里崩溃、为什么放弃。
微软研究院的TinyTroupe提供了一个绝佳案例。开发者构建了一个叫"Git-Cleaner"的工具:30分钟后自动删除未提交代码,逼开发者保持专注。代码逻辑完美,单元测试全过。然后引入两个模拟用户:
- Lisa(资深DevOps,怀疑论者):一看到就说——"这是伪装成生产力工具的恶意软件,我绝对不会用。"
- Chad(初级开发,盲目进取者):觉得挺酷,但建议——"能不能改成暂存而不是删除?"
几秒钟的模拟就暴露了核心问题:不是代码写错了,而是产品概念在心理层面不可接受。没有任何assert语句能抓到这个。但两个模拟用户瞬间把它暴露了——因为他们代表了真实用户的心理反应模式。
这个案例揭示了SDD的本质:它不是更高级的QA工具,而是一种产品设计方法。你在构建产品的同时构建你的用户群体模型,然后让产品和用户在模拟中反复碰撞、磨合,直到找到真正的契合点。
SDD同时引入了一种新的缺陷分类——体验缺陷(Experience Bugs)。传统Bug是空指针、崩溃、逻辑错误。体验缺陷是代码逻辑正确,但用户认知或情绪崩溃的问题。
这些缺陷有一个共同特征:它们只有在你真正理解用户时才能被发现。代码审查抓不到,单元测试抓不到,甚至传统的可用性测试也经常遗漏——因为样本太小、场景太有限。但如果你拥有一个高保真的模拟用户群体,这些缺陷会自然浮现。
把模拟用户从几十个扩展到上万个时,量变引发质变。我们不再只是模拟个体用户与产品的交互,而是在模拟用户群体之间的社会动力学。AgentSociety等框架已经能支持10,000+个Agent在共享环境中交互。

设想一个打车软件修改了定价算法来提高司机收入。单元测试通过,小规模模拟中50个司机满意。但在10,000个Agent(乘客、司机、商家)的社会模拟中运行一周后:新算法导致司机过度集中在市中心,边缘城区叫不到车,整体订单量下降,乘客的社交媒体模拟中出现大量"歧视偏远地区"的负面舆情,最终触发了监管Agent的介入。
在传统测试中完美的算法,在社会模拟中暴露了系统性风险。这不是在测试代码,而是在测试产品与社会的关系。
更进一步,产品可以在与模拟用户群体的博弈中进化:LLM生成多个UI或算法变体(变异),投放给模拟市场(选择),保留最大化用户满意度的特征,淘汰导致困惑和流失的设计(遗传)。谁的模拟用户群体越真实、越庞大,谁的产品进化就越快、越精准。
这就是"构建用户"的终极形态:你不是在构建一个产品然后祈祷用户喜欢,你是在构建一个与产品共同进化的模拟用户生态,让产品在上线之前就已经经历了千万次的自然选择。
对模拟用户也要做诚实的审视。
斯坦福的85%吻合度确实令人印象深刻,但换个角度看:15%的偏差意味着每七个模拟判断里就有一个是错的。而且这个85%是在标准化社会调查这种高度结构化场景下测得的。真实的软件交互远比问卷复杂:用户的犹豫、走神、被微信打断、在地铁上单手操作——这些微妙的物理和社会语境,当前的模拟用户还远远无法捕捉。
"情感链"听起来很优雅,但说到底,LLM并不真的"感受"焦虑或挫败。它是在模式匹配——基于训练数据中人类描述焦虑时的语言模式来生成类似的输出。当场景足够典型时(比如护士面对复杂表单),这种模式匹配相当有效。但一旦遇到训练数据中稀疏的边缘情境,模拟就会悄然失真,而你可能根本察觉不到。
大规模社会模拟的问题更严重。上面讲的打车算法案例很有启发性,但必须承认:10,000个Agent运行一周后呈现的"涌现行为",到底有多少反映了真实社会动力学,有多少只是LLM的统计幻觉在大规模下的放大?这个问题目前没有好的答案。社会模拟的结果可以作为风险信号来引起重视,但如果把它当作可靠的社会预测来做决策,那就危险了。
所以当下的诚实判断是:模拟用户在典型场景的体验洞察上已经有用——比如发现流程困惑、认知摩擦、明显的情感错位。这些场景的信号足够强,即使保真度打折扣,核心发现仍然成立。但在边缘场景的行为预测和大规模社会动力学推演上,我们还处于非常早期的实验阶段。
不过这不影响核心论点。"构建用户"的价值不取决于模拟是否完美,而取决于它是否比现有替代方案更好。对大多数产品团队来说,现有的"用户理解"是什么?是几页PPT上的用户画像,是产品经理的直觉,是上线后才能看到的数据。一个粗糙但能实时交互的模拟用户群体,已经比这些好太多了。
当GPT-9能让任何人在几分钟内克隆出一个功能完备的Uber或淘宝时,企业的护城河在哪里?
不再是代码,而是对用户的理解深度。
新的护城河是私有模拟受众(Proprietary Simulated Audience)——用户群体的数字孪生。Capital One的核心资产不在于Java代码库,而在于它能否拥有5000万个模拟客户,这些Agent不仅包含人口统计数据,还包含极其细腻的心理特征:财务焦虑的触发点、什么情绪下容易透支、对复杂图表的认知负荷极限。Netflix的护城河在于能否模拟2亿个不同口味的观众,预判他们对一张海报是会点击,还是因为选择困难而关闭App。
代码可以被克隆,功能可以被复制,但一个经过多年真实用户数据训练和校准的高保真模拟受众,极难复制。这就是新时代的壁垒。
这也是合规的盾牌。在上线新的信贷审批模型前,银行可以先在包含所有少数族裔特征的模拟群体中运行,生成《算法公平性影响报告》,实现基于模拟的"预先合规"。
工程师的角色也随之蜕变。未来的核心能力不是手写红黑树,而是:
- 心理图谱建模:定义和参数化复杂心理模型。不是"User A",而是"User A,Openness 0.8, Neuroticism 0.6,高认知负荷状态"。
- 人格Prompt工程:编写赋予AI"灵魂"的系统提示词,设计情感链的触发机制。
- 涌现行为分析:像社会学家一样解读大规模Agent交互日志,理解系统为何在宏观上呈现某种倾向。
- 体验取证调试:当用户满意度指标报警时,深入Agent的思维链和情感链日志,像侦探一样重构导致体验崩溃的心理路径。
未来的IDE不会是VS Code那样的代码编辑器,而更像《模拟城市》——左侧调参数,右侧观察成千上万模拟用户在虚拟世界中穿梭、交易、抱怨、欢呼。工程师的工作,不是写更好的代码,而是构建更真实的用户。

Build your users, not your software.
这不只是一句口号。当代码变成大宗商品,唯一不能被廉价复制的,是你能够多么清晰地理解你的用户群。而“模拟用户”(或者说是用户agents)技术第一次让这种理解变得可编程、可规模化、可持续迭代。
我用"第一次"这个词是刻意的。模拟用户今天还粗糙,情感链还是模式匹配而非真正的共情,大规模社会模拟还更接近学术实验而非生产工具。但方向已经不可逆:谁先把自己的用户群体变成可交互的数字孪生,谁就在代码商品化的浪潮中握住了唯一不会贬值的资产。
在这个正在到来的新范式里,最稀缺的能力不是写代码,而是构建你的“用户agents”。理解他们的焦虑、困惑、耐心的极限、做决定时的非理性。
最值钱的不是全栈软件,而是用户体验。
最好的工程师不再堆砌代码,他们构建用户。
$软件ETF(SZ159852)$ $北美科技软件股指数ETF-iShares(IGV)$ $人工智能ETF易方达(SZ159819)$