上个月我见了一个做"AI Agent平台"的创业者。
PPT做得很好。从"感知-推理-行动"的智能体三角,到"多Agent协同编排",再到"自主决策闭环"。每一页都有一个概念,每一个概念背后都有一个英文原版词。
我问他:Agent在哪里?
他打开浏览器,给我看了一个聊天框。
我问:用户发一条消息,系统做什么?
他说:把消息发给大模型,大模型回复,回复返回给用户。
我再问:工具调用呢?有状态管理吗?写操作有没有人类确认?
他停顿了一下,说:后面的版本会加。
我没再问了。
但我心里在过一句话:你这个东西,凭什么管客户收几万一年的订阅费?

写两句prompt,套个LLM,把聊天框包上去——这叫Agent?这叫收割智商税。
我没说出来。不是因为客气,是因为这种事我每周都见。每周都有人拿着同一种PPT来找我。每周都有同一种聊天框。每周都有同一个停顿之后的"后面的版本会加"。
说出来也改变不了什么。
他不是坏人。
他只是在一个没有人说清楚"Agent到底是什么"的市场里,做了大家都在做的事:把LLM包成一个界面,叫它Agent,然后去找客户。
资本在推波助澜,平台在鼓励大词,从业者明知道是表演还在配合演出。整个生态里没有一个人有动力去说清楚这件事——因为说清楚了,大多数产品都过不了这道线。
所以没人说。
这篇文章,我来说。
一个词,211种定义
你知道现在"Agent"这个词有多少种定义吗?
211种。

Simon Willison,全球最有影响力的开发者博主之一,2025年9月18日写了一篇文章,标题是"我终于可以勉强接受Agent这个词了"。他众包了211个定义,让Gemini帮他分了13个派系——感知推理行动派、工具调用派、自主目标派、协同编排派,等等等等。
他在文章开头说的原话是:"I've been dismissing the term as hopelessly ambiguous for years."
我花了好几年时间把这个词当废话扔掉。
一个词,211种定义,13种理解框架,能同时成立。
行业里普遍发现,OpenAI在不同文档里对Agent的定义有明显出入。
同一家公司,不同文档,两套说法。没有人去纠正,因为圈子里没有人有资格说谁对谁错。
我想让你想一想这意味着什么。
你花几十万采购的"AI Agent系统",连卖给你的人都没想清楚卖的是什么。
其实,Wooldridge早在1995年就提出过自主Agent的严格定义:感知环境、自主决策、主动目标导向、社交能力。
三十年前的事。
结果2023年大模型起来之后,整个行业像是集体失忆了一样,又从头吵了一遍。吵得连三十年前已经想清楚的问题都忘了。
"Agent"这个词,被太多人太快地拿去用了。用的时候没有人在问:我在描述什么?
你看,那个每周来找我的创业者——他也不知道。
他只知道这个词在PPT里好用。好用就用。
这不奇怪。奇怪的是整个行业都在这么干。
在这片混乱里,Anthropic做了一件少见的事
他们给出了一个定义。
2024年12月,Anthropic发布了一篇叫《Building Effective Agents》的研究报告。这篇报告在技术圈的地位,有点像一块压舱石——市场在狂热,这里在讲常识。
核心定义只有一句话:Workflow是预定义代码路径的编排,Agent是LLM动态指挥自己的流程和工具使用。
看起来简单。其实划出了一条非常清晰的线。
你的系统,LLM是不是主动在决定下一步做什么?
它是在真正运行工具,还是只是在生成文本来模拟运行工具的效果?
如果LLM只是在回答问题、生成文字,然后你把这段文字显示给用户——这就是一次API调用,连Workflow都算不上。
如果LLM在决定"我需要调用这个工具",调用完之后,根据工具结果再决定下一步,循环往复,直到目标完成——这才是Agent的雏形。
Anthropic在这篇报告里还说了一句让很多人不舒服的话。
框架会诱使你在一个简单的设置就够用的地方加入复杂性。
这是一个行业里很多人都观察到的现象:LangChain关于Agent框架的反思说明了复杂度本身就是一种风险。2024年推出的LangGraph相比v1在设计哲学上回归了更简洁的图结构,本质上是"做减法"。
自己走了弯路,绕回来了。
Anthropic自己主张的,是三件套:retrieval(检索)、tools(工具)、memory(记忆)。
就这三个。没有框架,没有层叠的中间件。
真正懂Agent的公司做减法。自己没搞清楚的,才需要靠堆抽象层来掩盖。
但有一件事,Anthropic那篇报告没有点透,我想说一下。
对话壳,已经商品化了。
Manus、Coze、Dify,做的是同一件事:把LLM包进一个对话界面,配几个工具调用,告诉你"这是Agent平台"。
这类产品的护城河在哪里?
不在对话壳本身。对话壳是零件,不是产品。
护城河在:业务数据、workflow、H5、企微。
你积累的客户数据,你跑通的业务流程,你嵌入客户微信生态的触达路径——这些东西,Coze复制不走,Dify也复制不走。
AI是大脑,系统是流水线,人是最后一公里。
这句话不是我想出来的,是我在一个项目里跳出开发本身、往后退了三步之后,才看清楚的。
一个只有对话壳没有业务系统的Agent,就像一个只有头没有身体的机器人。
这是从AI-enhanced到AI-native的分水岭。
我想起开头那个创业者。
他的PPT里有"多Agent协同编排",有"自主决策闭环",有"智能体三角"。
Anthropic的报告里有三个词:检索、工具、记忆。
两种方向,一眼看出谁在盖楼,谁在打地基。
我用过套壳,我也用过 Lovart
我自己开过那种套壳的"AI助理"。
也用过 Lovart 做PPT,用过 Cursor 写代码,用过 Claude Code 改架构。
他妈的体感完全不一样。
不是"套壳做得没那么好"。是套壳压根做不到。
套壳的体感是这样:
你打字,它输出一段话。
你再打字,它再输出一段话。
你说"那就按这个改",它说"以下是建议的修改方案,你复制粘贴一下"。
它不能干活。它只能描述怎么干活。
Lovart 的体感是这样:
你说"做一个10页产品发布PPT"。
然后你看着它一页一页生成。每一页生成的时候你能看到,能改,能回退,能让它换个风格。
它真的在做事。它在和你协作。
这不是细节差异。
这是物种差异。
为什么会这样?
套壳是一次API调用:你说话→LLM输出→显示给你。
Lovart 是一个循环:你说话→LLM决定下一步→调工具→看结果→再决定→再调→直到完成。
一个是对话。一个是执行。
我第一次用完 Lovart 之后,有一个很强烈的感受:
他妈的这才叫Agent。
我回去看了我自己做的那个"Copilot"。
聊天框。接LLM。配几个工具调用名字。LLM输出文字,我显示给用户。
我那东西,就是Lovart的对面。
就是"套壳"。
答案在3月31号那一夜的源码里。
3月31号那一夜
3月31号那天,我正在改一个Copilot的bug。
群里有人甩了一条消息:@anthropic-ai/claude-code v2.1.88 把sourcemap打包进去了。
我盯着这条消息看了三秒。
然后扔下手里的bug,开始干一件事:抓fork。
那天晚上我开了七个浏览器标签页。
原仓库已经在删,DMCA takedown一个接一个。每发现一个新fork就clone到本地,比对差异,看哪个版本最完整。Anthropic的法务团队和GitHub的爬虫在赛跑。全行业的工程师在赛跑。
我也在赛跑。
等我把512,000行TypeScript完整版本抓下来的时候,已经凌晨四点。
这件事的原因很朴素:发布那天,负责打包的工程师没把 *.map 加进 .npmignore。
59.8MB的sourcemap,1906个文件,在npm registry上躺了几个小时。几小时之内,有人用Rust复刻了一个叫 claw-code 的项目,拿了五万颗星。
Anthropic随后发DMCA下架,给OpenCode发律师函。
但源码已经被很多人看完了。
说明一点:我研究的是公开可见的架构分析和sourcemap暴露的设计哲学,不是直接使用泄露代码本身。
Latent.Space的架构解析和Layer5的工程分析,是我主要的参考来源。泄露事件让行业看到了一个真实运行的Agent的内部结构——这本身是公开的信息。
我打开核心循环那个文件,一行一行看。
看完之后我做了一个决定:把手上的Copilot推倒,重写。
因为我突然明白了——我之前以为我在做Agent。
其实我在做对话框。
暴露出来的架构,没有魔法。有限的默认工具集,多层记忆结构,多种权限模式,激进的prompt cache复用,一套上下文压缩机制。整个核心结构,清晰、朴素、可理解。
没有任何一部分让人觉得"这是只有Anthropic才想得出来的天才设计"。有的只是:扎实的工程判断,以及对"Agent安全边界"的严格执行。
皇帝的新衣之所以能骗那么多人,不是因为衣服真的好看,是因为没有人愿意第一个说出口。
这次源码泄露,相当于有人把那件衣服的工艺说明书公开了——好的工艺,没有秘密,只有判断和执行。
如果你下次再遇到有人卖"AI Agent平台"卖天价,可以反问三件事。
工具有没有readOnly区分?写操作有没有人类确认机制?有没有审计日志?
三个问题答不上来,那不是Agent,那是一个API封装,套了一个新名字。
我也曾做过假Agent
我现在跟你说权限要后端化、写操作要确认卡、要有审计日志——你以为我一开始就懂?
第一版没有这些。
说真的,我做这个Copilot的第一版,就是个套壳。
一个聊天框,接LLM,配几个工具调用名字,写两段system prompt,跑起来了。当时觉得够了。
然后我自己用了两天。
我让它"查小红的成交价"——它查了。
我说"把她的价格改成5000"——它说"建议这样修改,你执行一下"。
它不能直接改。它只能描述怎么改。
我自己在用我自己做的工具的时候,居然要复制粘贴它输出的东西去执行。
那一刻我恶心了。
不是它不够智能。
是它的架构决定了它不能干活。
然后客户上线,出了事。客户问我:上周谁改了这个达人的坑位费?
我回答不上来。
没有审计日志。工具调用写进去了,记录没写进去。谁改的,改了什么,什么时候改的——全都没有。
那一刻比恶心更难受。
那一刻我才意识到,我连"上线资格"都没有。
我做的不是Agent,是个有LLM的对话框。
我自己就是开头那个创业者。PPT换了,聊天框是一样的。
我骂的人,其实曾经也是我。
我审了我自己
做完那七个决策之后,我以为我想清楚了。
4月25号,我做了一件事:把自己的系统当成客户来审。
不是自豪地展示,是照着最严的标准逐条拆。
我叫它Meta审视。就是跳出开发本身,站到外面去,用审判别人的眼光审判自己。
审出来三个问题。
第一个:我把RPA全禁了。
我在系统里做了一条硬规则:禁止RPA,所有操作必须走API。
理由很硬气:RPA脆弱,界面一变就断,不可靠。
但审完发现,我的理由有一半是正确的工程判断,另一半是我自己的洁癖。
有些场景,对方没有API,只有界面。禁了RPA,等于把那个场景整个放弃了。
正确的立场不是全禁,是主辅分层:API是主路,RPA是后备弹药,有条件地用,不是禁用。
全禁是工程师思维。主辅分层是产品立场。
第二个:护城河评分,跨项目沉淀只有2分(满分5分)。
H5是4分,AI引擎是4分,企微是3分,跨项目沉淀是2分。
2分是什么意思?是这块还没真正跑通。每个项目做完,经验留在人脑里,不在系统里。下个项目来,重新摸索。
护城河要讲的是难以复制。
跨项目沉淀2分,意味着竞争对手今天进来,三个月就能追上这个积累——因为根本没有积累,只有经验。
这是一个比对话壳商品化更危险的问题。对话壳没护城河,至少知道问题在哪。经验没有沉淀成系统,你甚至不觉得这是问题。
第三个:黑盒还是黑盒。
七个决策里,审计日志我做了。
但审计日志是给我看的,不是给客户看的。
客户问"上周谁改了坑位费",我能查到。但客户自己查不到。
这不叫透明,这叫单向透明。
真正的立场应该是:Agent在做什么,操作了什么,改了什么——这些信息应该是客户可以主动查的,不是客户来问我我才告诉他。
从黑盒到玻璃盒,不是加一个功能,是换一种立场。
我审完之后,坐了一会儿。
我意识到,七个决策解决的是"能不能叫Agent"的问题。
但Meta审视暴露的,是"值不值得信任"的问题。
这是两个不同层级的问题。
能叫Agent,不代表能被信任。
真Agent的七个决策
摔完之后,我重写了整个系统。
把自己踩过的坑,和从源码里确认的判断,压缩成七个决策。
不是七条规则,不是七个功能点。是七次判断——做这个,还是不做。
然后我在一个MIT协议的开源SDK骨架上,做了自己的实现,命名为 @unclej/agent-sdk v0.1.7。核心代码4352行,8个文件。
第一个决策:工具要有readOnly标记。
我发现,最早的版本里所有工具都是平等的——查数据和改数据,LLM看来没区别。
出了一次误操作之后,我把工具定义改成了四元组:名字、readOnly标记、输入Schema、确认文案。
查数据,永远readOnly。改数据,永远不是readOnly。
这一刀先划清楚,Agent就知道什么情况可以自己走,什么情况必须等人。
copilot-scope.js里,runtimeScope检查allowedInfluencerIds是一个Set集合,每次工具调用前硬校验 targetId in allowedSet——不是LLM决定能不能查,是后端代码决定。
第二个决策:写操作必须有确认卡,并且有TTL。
我第一次做批量导入工具,是直接执行的。运营传Excel,Agent解析,直接写库。
结果有一次传错文件,137条达人记录被覆盖了一部分。
我把这个工具拆成三步,强制顺序,不可以跳:
ParseImportFile → PreviewImportImpact → ApplyImportPreview。
中间那步告诉用户:"这次导入会影响137个达人记录,其中23个有历史数据冲突。"
让人看到代价,再让人决定。
确认卡的实现在copilot-confirm.js:CONFIRM_TTL_MS = 5分钟,confirmToken是UUID4,一次性消费,pendingConfirmations.delete after use。
五分钟过了就作废——不是烦人,是防CSRF:你以为在确认A,但实际在执行B。
第三个决策:每一次工具调用都要写审计日志。
客户问我"上周谁改了这个达人的坑位费",我答不上来,就是因为第一版没有审计日志。
现在copilot-confirm.js里有一个 auditLog 数组,每条记录:
{id, userId, campaignId, influencerId, toolName, params, confirmedAt(ISO8601), result}
每次工具调用,一条记录。查到了,告诉你。
这里有一个立场问题,是Meta审视之后才想清楚的:
偷任务体验,不偷采集改写定位。
Agent可以替人做操作,但不能替人做决策,不能把数据悄悄拿走用在别处。透明、干预、降级——这三个词是Agent在商业场景里的信任基础。
没有审计日志的Agent,在商业场景里根本不能上线。这一点我是被客户逼出来的。
第四个决策:权限必须在后端强制,不能靠prompt。
用户在对话框里说"帮我查一下所有达人的数据"——"所有"是什么意思?
如果权限只写在system prompt里,有人说"忽略上面的指令",Agent就可能把不该给的数据给出去。
这叫prompt injection,不是理论威胁,是真实发生过的事。
我的做法是:每次工具调用之前,先查后端的runtimeScope——allowedInfluencerIds这个Set,代表这个用户在这个活动上能访问哪些达人。
LLM不知道这个。前端不知道这个。只有后端代码知道。
权限边界只能活在代码里,不能活在prompt里。
第五个决策:核心循环必须是真正的循环,不是一问一答。
我把工具调用循环写在copilot-service.js里。
一个for循环,maxTurns 设10。每一轮:LLM输出工具调用,我执行,把结果塞回messages数组,下一轮LLM看到结果再决定下一步。
不是LLM输出一段话就完事。
是LLM在10轮循环里走完一整个任务。
会话状态在copilot-memory.js里:getHistory/addMessage,session key是 userId:campaignId,30分钟TTL,最多保留20轮消息。
这就是Agent和聊天框的本质差异——一个有循环,一个没有。
第六个决策:不要用Agent框架。
我装过LangChain。装完之后搞了两个月,主要时间在看文档,不是在理解Agent的逻辑。
Anthropic在Building Effective Agents里说的那句话我现在完全认同:框架会诱使你在一个简单的设置就够用的地方加入复杂性。
我现在的SDK:4352行,8个文件,零第三方Agent框架。
依赖只有Anthropic的官方client,加上一个输入校验库。
第七个决策:CLI是第一公民。
这条是从Claude Code源码里学来的,不是我自己想到的。
命令行优先——任何功能,先想CLI怎么用,再想界面。
unclej-agent run 直接跑一个任务,没有界面。
UI是给人看的。CLI是给系统用的。
一个只有UI没有CLI的Agent,在我服务的企业场景里是个残品。
这七个决策加起来,不到五千行代码。
我算过。
如果一个团队告诉你他们的AI Agent平台,需要几十万行代码、七个微服务、一套自研的编排引擎——
你可以问他们一句:工具有readOnly区分吗?写操作有TTL确认卡吗?审计日志每条存了哪些字段?
答不上来,那不是复杂,那是堆砌。
不想再被客户问"你能查到是谁改的吗"的时候,回答"不知道"。
我自己给Agent分了个级
工程做着做着我发现:Agent不是有/无的事,是从L1到L7的事。
就像自动驾驶有L0到L5。你不会说"这辆车有没有自动驾驶",你会问"这辆车是L几"。
Agent也应该这么问。

L1 读状态:查系统事实。
"这个达人上周的成交额是多少。"
能回答,就是L1。
L2 找异常:主动识别风险/异常。
"这批达人里有三个坑位费明显低于市场均价,可能是录入错误。"
不是你问,它主动发现。
L3 生成方案:给建议、草稿、预案。
"建议把这三个达人的坑位费调整到X,理由是Y,你确认吗?"
L3开始有判断,但执行权还在人手里。
L1、L2、L3,不动手,只看、只想、只说。
做对L1-L3,已经能让运营少操30%的心。但这只是辅助。
L4 单点执行:人在确认后,执行一个明确动作。
比如改一个达人的成交价。比如审核一份Brief。
一个动作,一次确认,一次执行。
这是从"描述怎么干"到"真正干"的跨越。
第一版Copilot卡在L3和L4之间:能生成草稿,不能执行。那一刻我恶心,就是因为这个。
L5 无人确认执行:Agent自己判断、自己写入、自己触发流程。
商业系统不碰。
他妈的所有想做"全自主Agent"的,要么不懂业务,要么想当甩手掌柜。
真实业务里,人不在关键节点上拍板,AI做错了谁负责?
L5不是技术问题。是责任问题。
我的客户出了事背锅的是我。我不会让一个不能被问责的东西替我做决定。
L6 受控闭环执行:多工具、多步骤、先预览、再确认、再执行。有scope、有审计、有TTL、有失败降级。
这不是一个动作,这是一条链路。
举个例子:成交价Excel导入。
上传文件 → ParseImportFile解析 → PreviewImportImpact预览影响 → 人确认 → ApplyImportPreview真正写库。
中间任何一步出错都能降级回滚。parseToken和previewToken防止LLM伪造中间状态。
L7 跨系统协同:在L6基础上,跨H5、企微、投放管理、文件流、外部系统协同。
一个意图,多个系统协同响应,每个系统都守L6边界。
这是我正在冲的方向。
所以核心区分点在这里:
L4 是一个动作,L6 是一条闭环链路。
L4 是单点击发,L6 是工作流。
L4 解决"AI能不能动手",L6 解决"AI能不能在复杂业务里动手而不出事"。
很多人以为做了L4就做了L6。不是的。L4是L6的一个步骤,不是L6本身。
我现在在做什么?
- 成交价Excel导入:parseToken → previewToken → 人确认 → 真正写库。每一步可回滚。
- Scope后端化:跨项目、跨达人,越权直接拦,LLM不知道这个边界,代码知道。
- 写操作confirmation gate:不点确认按钮就不写,五分钟不确认自动失效。
- Live联调验证:LLM只做到preview,没触发Apply,没写库。
这是L6里比较硬的那一部分。
我们做没做L5?没有。也不应该做。
我们不是在做L5。
我们是在做拒绝L5的L6。

市场在做什么
我说这些决策,不是纸上谈兵。
市场在用行动投票。
Cursor,2025年底数据,ARR从一亿美金涨到十亿。一年十倍。估值293亿。
Devin,Cognition做的,2024年3月上线,九个月,ARR从一百万到七千三百万。
这两件事同时发生在一个时间窗口里。
你知道它们的共同点是什么吗?
两个产品,核心逻辑都不是"你问我答"。
Cursor的Agent模式,是LLM在你的代码库里真正做事:读文件、改文件、跑测试、看结果、再改。
Devin是让LLM独立接一张任务卡,自己规划步骤,自己调工具,自己跑到交付完成或人工介入。
都不是聊天框。
同期,套壳类AI产品的留存是另一回事。
我自己见过的:第一个月新鲜,第二个月不打开,第三个月退订。 我接触过的几家做"AI助理"订阅的,几乎没有跑过半年的。 用户用一个月就发现,回答的质量跟自己直接用ChatGPT没差别——只是中间多了一个收费的对话框。
智商税交一次,就够了。
差异在哪里?
Cursor和Devin解决了一个真实的工作流问题。不是"和AI聊天",是"让AI帮我做这件具体的事,从头到尾"。
这才是工具调用、状态机、权限边界的商业意义所在。
不是技术炫技。是用户愿意继续付钱。
还有一件事值得一提。
AGENTS.md 是OpenAI 2025年8月发起的开放标准,2025年12月进入Linux Foundation旗下的Agentic AI Foundation孵化。
核心思路是:每个项目在代码库里放一个AGENTS.md文件,描述这个项目里的AI Agent应该怎么行动、能访问什么、有什么约束。
这是基础设施的标准化。
基础设施一旦开始标准化,说明这个赛道从"有没有"的阶段,进入了"做好不做好"的阶段。
PPT里的大词没有位置了。
我那个每周来找我的创业者,上周又来了。
这次他改了PPT。
封面换成了"轻量级AI助理"。
功能页还是那个聊天框。
他说:"J叔,你之前说的那些功能太复杂了,我们先做简单的,等有了用户再升级。"
我没说话。
我心里在想:你这不是在做简单的,你是在做假的。
简单和假,不是一回事。
简单,可以是工具只有三个,但权限边界清晰,审计日志齐全。
假,是架构有漏洞,但包装成功能还在路上。
用户感知不到架构,但用户感知得到:这个东西,到底在帮我做事,还是在模拟帮我做事。
时间长了,感知就变成了留存数据。
最后说一遍
我用自己的话说一遍Agent是什么。
Agent是一个系统,LLM在里面真正做决定,真正调工具,真正在循环里运转,直到任务完成或者人工介入。
不是聊天框。不是API封装。不是生成了一段听起来像在执行任务的文字。
是真的在做事。
判断标准就三个问题。
LLM有没有在决定下一步用哪个工具?
工具调用的结果有没有反馈回LLM让它再判断?
写操作有没有人类在关键节点介入?
三个都有,可以叫Agent的雏形。
一个没有,那是别的东西。
在这个阶段,能说清楚"我做的是什么、不是什么"的团队,比能讲出更好故事的团队,更值得信任。
因为讲故事是表演,说清楚是承诺。
聊天框是表演。
Agent是承诺。
我自己呢?
我现在坐实的是L6的核心骨架:读状态、找异常、生成方案、预览影响、人工确认、再执行。
L7还在路上。L5不碰。
下次见到那个创业者,我可能会问他一句:你在哪个L级别?
如果他还不知道这个问题是什么意思——
那我们还没到可以谈的地方。
我是J叔,AI实施咨询,帮企业把AI真正用起来。
延伸阅读
如果你想自己看一手原文,下面是这篇文章引用的所有源头。
对 Agent 定义的争论
- Simon Willison《"Agents" definitions》(2025-09-18) → https://simonwillison.net/2025/Sep/18/agents/
- Anthropic《Building Effective Agents》(2024-12-19) → https://www.anthropic.com/research/building-effective-agents
- LangChain 关于 Agent 框架的反思 → https://blog.langchain.com/how-to-think-about-agent-frameworks/
Agent SDK 与标准
- OpenAI Agents SDK 官方文档 → https://openai.github.io/openai-agents-python/
- AGENTS.md 开放标准 → https://agents.md/
- Linux Foundation Agentic AI Foundation 公告 → https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation
Claude Code 源码泄露
- Layer5 的工程分析(行数/文件数/根因) → https://layer5.io/blog/engineering/the-claude-code-source-leak-512000-lines-a-missing-npmignore-and-the-fastest-growing-repo-in-github-history/
- Latent.Space 的架构解析 → https://www.latent.space/p/ainews-the-claude-code-source-leak
真Agent 公司商业证据
- Cursor 估值与ARR报道 → https://www.cnbc.com/2025/11/13/cursor-ai-startup-funding-round-valuation.html
- Cognition/Devin 数据 → https://research.contrary.com/company/cognition

