1. 从GEO到ASO、DAE、A2A:一个决策权迁移的完整叙事
1.1 为什么我要聊这个话题
过去两年,我一直在做搜索与推荐相关的系统设计。最早接触的是GEO(Generative Engine Optimization,生成式引擎优化),那时候大家的共识还是“怎么让内容被AI搜索引用”。但做着做着,我发现事情不对劲了——用户不再满足于“搜到答案”,而是希望“直接完成任务”。这个变化逼着我从GEO一路走到ASO(Agentic Search Optimization,智能体搜索优化)、DAE(Decision Authority Engine,决策权引擎)和A2A(Agent to Agent,智能体间协作)。表面上看是技术栈的迁移,实际上真正变化的是决策权——从平台手里,转移到了用户和智能体手里。
这篇文章不是学术论文,也不是产品白皮书。它是我自己踩坑、试错、复盘之后的一份实战笔记。如果你正在做搜索、推荐、智能体应用,或者只是好奇“为什么GEO不够用了”,那这篇内容应该能帮你省下不少弯路。我会把每个阶段的核心逻辑、技术细节、实操步骤和避坑经验都摊开讲,尽量做到你看完就能上手试。
1.2 核心概念快速对齐
在展开之前,先把四个关键词用大白话解释清楚,避免后面混淆:
- GEO:让内容更容易被生成式引擎(比如AI搜索、对话式助手)抓取、理解、引用。核心是“被看到”。
- ASO:让智能体在搜索或执行任务时,优先选择你的服务或内容。核心是“被选中”。
- DAE:一套决定“谁来做决策、做到什么程度、什么时候交还给人”的机制。核心是“决策权分配”。
- A2A:智能体与智能体之间的直接协作协议,不需要人类中转。核心是“机器间协商”。
这四个概念不是替代关系,而是递进关系。GEO解决“可见性”,ASO解决“可选择性”,DAE解决“可控性”,A2A解决“可协作性”。而贯穿始终的那条线,就是决策权在用户、平台、智能体之间的不断重新分配。
2. GEO的局限:为什么“被搜到”不再够用
2.1 GEO到底在优化什么
GEO的底层逻辑其实很朴素:生成式引擎在回答用户问题时,会从海量内容中检索、筛选、重组信息。你要做的,就是让自己的内容更容易被检索到、更容易被信任、更容易被引用。具体手段包括结构化数据标记、权威性建设、语义清晰度优化、多模态内容覆盖等。
我最早做GEO的时候,重点放在三件事上:第一,把内容拆成问答对,方便引擎直接抽取;第二,在页面里嵌入Schema标记,告诉引擎“这是什么”;第三,尽量让内容出现在高权重域名下。这套打法在2023年确实有效,很多客户的内容引用率提升了30%到50%。
但到了2024年下半年,我发现一个尴尬的事实:用户越来越不关心“谁被引用了”。他们只关心“任务有没有完成”。比如用户问“帮我订一张明天北京到上海的机票”,生成式引擎如果只是返回“根据某航司官网,明天有这些航班”,用户还得自己点进去、选座、支付。这个链条太长了。
2.2 从“信息检索”到“任务执行”的拐点
拐点出现在智能体开始普及的时候。用户不再满足于“给我答案”,而是“帮我做完”。这时候GEO的局限性就暴露了:它优化的是“内容被引用”,但用户要的是“任务被完成”。这两者之间隔着一整套执行链路。
我举个实际例子。我们曾经帮一个电商客户做GEO,目标是让他们的商品信息在AI搜索里被引用。做了三个月,引用率确实上去了,但转化率几乎没变。为什么?因为用户看到引用后,还是要自己打开APP、搜索商品、比价、下单。AI搜索只是替代了“搜索引擎”,没有替代“操作流程”。
这时候我意识到,GEO的天花板不是技术问题,而是决策权问题。平台把“选择权”留给了用户,但用户其实希望平台或智能体直接帮他做决定。这个矛盾催生了ASO。
2.3 GEO阶段的关键教训
- 不要只盯着引用率:引用率是过程指标,不是结果指标。真正要盯的是“任务完成率”。
- 结构化数据要面向执行:不只是告诉引擎“这是什么”,还要告诉它“能做什么操作”。
- 权威性依然重要,但权重在下降:智能体更看重“可执行性”和“可靠性”,而不是单纯的域名权重。
提示:如果你现在还在纯做GEO,建议尽快把“可执行接口”纳入规划。否则等智能体流量起来,你会发现自己连入场券都没有。
3. ASO的崛起:智能体如何选择服务
3.1 ASO和传统SEO的本质区别
ASO(Agentic Search Optimization)听起来像是SEO的变种,但底层逻辑完全不同。传统SEO优化的是“网页在搜索结果中的排名”,ASO优化的是“智能体在决策时是否选择你的服务”。前者是排名游戏,后者是信任游戏。
我打个比方。传统SEO像是把店铺开在繁华街道上,让更多人路过;ASO像是让导购员主动推荐你的店,而且导购员还要能直接帮你把货送到家。前者拼的是曝光,后者拼的是信任和执行能力。
具体来说,ASO要解决三个问题:第一,智能体能不能发现你的服务?第二,智能体能不能理解你的服务能做什么?第三,智能体能不能安全地调用你的服务?这三个问题对应着发现层、语义层和执行层。
3.2 智能体选择服务的决策链路
我拆解过多个智能体平台的决策流程,大致可以归纳为四步:
- 意图解析:智能体先理解用户到底要什么。是查信息、比价格、还是直接下单?
- 服务发现:根据意图,从可用服务池里筛选候选。这个池子可能来自API注册中心、MCP服务器、或者预置的服务目录。
- 信任评估:对候选服务进行打分。打分维度包括历史成功率、响应速度、数据新鲜度、用户评价等。
- 执行与回退:选择最高分服务执行,如果失败则回退到次优选项,或者交还给人。
这个链路里,信任评估是最关键的环节。因为智能体没有人类的直觉,它只能依赖可量化的信号。所以ASO的核心工作,就是把这些信号做足、做真、做稳。
3.3 实操:如何让你的服务被智能体优先选中
我们团队在过去半年里,帮三个不同类型的服务接入了智能体平台。总结下来,有几个动作是必须做的:
第一,提供机器可读的能力描述。不要只写“我们提供机票预订服务”,要写成结构化的能力声明。比如:
{ "service": "flight_booking", "capabilities": ["search", "book", "cancel", "refund"], "input_schema": { "from": "string", "to": "string", "date": "string", "passengers": "integer" }, "output_schema": { "flight_id": "string", "price": "number", "currency": "string" }, "sla": { "response_time_ms": 800, "success_rate": 0.995 } }这个声明要放在智能体能抓取到的地方,比如MCP服务器、OpenAPI文档、或者专门的智能体服务目录。
第二,保证接口的幂等性和可回退性。智能体最怕的是“调用了一次,不知道有没有成功”。所以你的接口必须支持幂等键,并且提供查询接口,让智能体可以确认状态。
第三,提供实时健康检查端点。智能体会定期探测你的服务是否可用。如果连续几次失败,它就会把你降权。所以健康检查端点要轻量、快速、稳定。
第四,积累成功案例和评价数据。智能体平台通常会维护一个服务评分表。你要主动上报成功执行记录,并鼓励用户给出反馈。这些数据会直接影响智能体的选择。
3.4 ASO阶段的避坑经验
- 不要伪造成功率:智能体平台有交叉验证机制,一旦发现数据造假,直接永久降权。
- 不要忽略错误码设计:错误码要语义清晰,让智能体知道是“重试”、“换服务”还是“交还给人”。
- 不要只做英文描述:如果你的服务面向多语言用户,能力描述也要多语言化。智能体会根据用户语言选择服务。
- 不要忘记限流和配额:智能体可能短时间内大量调用,没有限流机制会导致服务崩溃。
注意:ASO不是一劳永逸的。智能体的选择策略会不断迭代,你需要持续监控自己的排名和调用量,及时调整。
4. DAE:决策权引擎的核心机制
4.1 为什么需要DAE
ASO解决了“被选中”的问题,但没有解决“选中之后怎么决策”的问题。比如智能体帮你订机票,它应该选最便宜的、最快的、还是最符合你偏好的?如果中途出现异常,它应该自己处理还是问你?这些问题的答案,取决于决策权怎么分配。
DAE(Decision Authority Engine)就是一套用来定义和分配决策权的机制。它要回答三个问题:谁有决策权?决策边界在哪里?什么时候交还给人?
我最初做DAE的时候,犯了一个错误:把所有决策权都交给智能体。结果用户投诉说“我只是让它查个价格,它直接帮我下单了”。后来我们引入了分级授权机制,才把体验拉回来。
4.2 决策权的四个层级
根据我的实践经验,决策权可以分成四个层级:
| 层级 | 决策权归属 | 适用场景 | 用户感知 |
|---|---|---|---|
| L0 | 平台全权决策 | 低风险、高频、标准化任务 | 无感 |
| L1 | 智能体决策,事后通知 | 中低风险、可回退任务 | 轻提示 |
| L2 | 智能体建议,用户确认 | 中高风险、不可逆任务 | 需确认 |
| L3 | 用户全权决策 | 高风险、涉及隐私或资金 | 完全手动 |
这个分级不是固定的,要根据用户偏好、任务类型、上下文动态调整。比如同样是支付,小额支付可以放到L1,大额支付必须放到L2或L3。
4.3 实操:如何设计一套DAE
我们团队落地的DAE包含四个核心模块:
第一,意图与风险识别模块。这个模块负责判断用户意图和任务风险。意图识别用语义模型,风险识别用规则引擎加历史数据。比如“查询余额”是低风险,“转账”是高风险。
第二,授权策略模块。这个模块根据用户设置、任务风险、历史行为,决定当前任务的决策层级。策略可以用决策树或者评分卡实现。
第三,执行与监控模块。这个模块负责执行决策,并实时监控执行状态。如果出现异常,根据预设规则决定是重试、回退还是上报。
第四,交还与确认模块。这个模块负责在需要用户确认时,生成清晰的确认请求。确认请求要包含“做了什么”、“为什么这么做”、“有什么风险”、“ alternatives是什么”。
代码层面,我们用一个简单的策略引擎来演示:
class DecisionAuthorityEngine: def __init__(self, user_profile, task_context): self.user = user_profile self.task = task_context def assess_risk(self): # 基于任务类型、金额、历史行为计算风险分 risk_score = 0 if self.task.type == "payment": risk_score += 40 if self.task.amount > self.user.threshold: risk_score += 30 if self.task.is_irreversible: risk_score += 20 return risk_score def decide_level(self): risk = self.assess_risk() if risk < 20: return "L0" elif risk < 50: return "L1" elif risk < 80: return "L2" else: return "L3" def execute(self): level = self.decide_level() if level == "L0": return self.auto_execute() elif level == "L1": result = self.auto_execute() self.notify_user(result) return result elif level == "L2": suggestion = self.generate_suggestion() return self.request_confirmation(suggestion) else: return self.request_manual_input()这套逻辑不复杂,但效果很明显。上线三个月后,用户投诉率下降了60%,任务完成率提升了25%。
4.4 DAE阶段的常见问题
- 问题一:用户不知道自己的决策权被降级了。解决方法是每次决策层级变化时,给用户一个轻提示,比如“本次操作已自动完成,如需调整请点击设置”。
- 问题二:风险评分过于静态。解决方法是引入在线学习,根据用户反馈动态调整权重。
- 问题三:交还给人时信息不足。解决方法是确认请求必须包含“上下文摘要”、“建议方案”、“风险说明”和“备选方案”。
提示:DAE的核心不是技术,而是产品设计。你要站在用户角度想:这个决策如果错了,用户会不会生气?如果会,就交还给他。
5. A2A:智能体间协作的决策权再分配
5.1 A2A解决了什么问题
A2A(Agent to Agent)是智能体之间的直接协作。比如你的旅行智能体需要订机票,它会直接和航司智能体协商价格、座位、退改签政策,不需要你介入。这个过程里,决策权从“你的智能体”部分转移到了“航司智能体”,但最终决策权还是在你手里。
A2A的核心价值是减少人类中转。以前你要自己比价、自己下单、自己处理退改签。现在你的智能体可以帮你完成这些,你只需要在关键节点确认。
但A2A也带来了新的问题:当两个智能体协商时,谁说了算?如果航司智能体说“这个价格是最低的”,你的智能体怎么验证?如果两个智能体意见不一致,怎么解决?
5.2 A2A的协议设计要点
我们团队在实现A2A时,重点设计了四个机制:
第一,能力声明与发现机制。每个智能体都要声明自己能做什么、不能做什么、需要什么输入、产生什么输出。这个声明要机器可读,并且支持版本管理。
第二,协商协议。两个智能体协商时,要遵循一套标准流程:提议、反提议、接受、拒绝、超时。每个步骤都要有明确的语义和超时机制。
第三,信任传递机制。如果你的智能体信任航司智能体,但航司智能体又调用了第三方支付智能体,信任怎么传递?我们采用“信任链”机制,每个智能体都要声明自己的信任来源和信任等级。
第四,争议解决机制。如果两个智能体协商失败,要有回退方案。回退方案可以是“交还给人类”、“选择备选服务”或者“终止任务”。
5.3 实操:搭建一个最小可用的A2A协作流程
我们用一个旅行场景来演示。用户说“帮我订明天北京到上海最便宜的机票”。你的旅行智能体(TravelAgent)会执行以下步骤:
- 解析意图:识别出“订机票”、“明天”、“北京到上海”、“最便宜”。
- 发现服务:从服务目录里找到三个航司智能体(AirlineAgent A、B、C)。
- 发起协商:向三个航司智能体发送询价请求。
- 收集报价:航司智能体返回价格、座位、退改签政策。
- 评估与选择:根据价格、时间、政策综合评分,选出最优。
- 确认与执行:如果需要用户确认,生成确认请求;否则直接下单。
- 监控与回退:如果下单失败,自动尝试次优选项。
代码层面,协商协议可以简化为:
class AgentNegotiation: def __init__(self, initiator, responder): self.initiator = initiator self.responder = responder def propose(self, request): response = self.responder.handle(request) if response.status == "accepted": return response elif response.status == "counter": return self.handle_counter(response) else: return self.fallback() def handle_counter(self, counter): # 评估反提议,决定接受、再反提议或拒绝 if self.is_acceptable(counter): return self.accept(counter) elif self.has_alternatives(): return self.propose_alternative() else: return self.reject()这个流程看起来简单,但实际落地时有很多细节。比如超时怎么处理?如果航司智能体响应太慢,你的智能体要自动切换到备选。再比如价格波动怎么处理?如果协商过程中价格变了,要有重新询价机制。
5.4 A2A阶段的避坑经验
- 不要假设对方智能体是理性的:有些智能体可能会故意报低价吸引你,然后附加隐藏费用。所以你的评估逻辑要包含“总成本”而不是“标价”。
- 不要忽略协商成本:每次协商都要消耗时间和算力。如果候选太多,要设置优先级,避免无限协商。
- 不要忘记审计日志:A2A协作涉及多个智能体,出了问题很难定位。所以每个决策节点都要记录日志,包括输入、输出、决策依据。
- 不要跳过人类确认:即使A2A可以自动完成,也要在关键节点给用户确认机会。否则用户会觉得“失控”。
注意:A2A的成熟度还很低,不同平台的协议不兼容。建议先从内部智能体协作做起,跑通流程后再对接外部。
6. 决策权迁移的底层逻辑与未来推演
6.1 为什么决策权会持续迁移
从GEO到ASO、DAE、A2A,表面上是技术演进,底层是决策权在用户、平台、智能体之间的不断再分配。这个迁移的动力来自三个方面:
第一,用户需求升级。用户从“我要搜”变成“我要做”,从“给我选项”变成“帮我决定”。这个趋势不可逆。
第二,智能体能力提升。智能体越来越擅长理解意图、执行任务、处理异常。这让它有能力承担更多决策权。
第三,平台竞争压力。平台为了留住用户,必须提供更省心的体验。谁能让用户少操作,谁就能赢得市场。
6.2 决策权迁移的三个阶段
我把这个迁移过程分成三个阶段:
阶段一:平台决策,用户执行。这是传统搜索和推荐的模式。平台决定展示什么,用户决定选什么。
阶段二:智能体决策,用户确认。这是当前ASO和DAE的模式。智能体决定做什么,用户确认关键节点。
阶段三:智能体决策,智能体执行。这是A2A的终极形态。智能体之间直接协作,用户只在必要时介入。
目前我们处于阶段二向阶段三过渡的时期。很多平台已经支持智能体自动执行,但用户信任度还不够。所以DAE和A2A会长期共存。
6.3 对从业者的建议
如果你在做搜索、推荐、智能体相关的工作,我有几个建议:
- 不要只做GEO:GEO是入场券,但不是终点。要尽快把ASO和DAE纳入能力矩阵。
- 不要忽视决策权设计:技术实现不难,难的是产品设计。你要想清楚“什么情况下交给机器,什么情况下交给人”。
- 不要闭门造车:A2A的协议还在早期,多参与社区讨论,多试不同平台的方案。
- 不要忘记安全底线:决策权越往下放,安全风险越大。要有完善的审计、回退、熔断机制。
6.4 一个具体的落地路线图
如果你现在想从GEO迁移到ASO、DAE、A2A,我建议按这个路线走:
- 第1-2周:梳理现有内容和服务,识别哪些可以结构化、接口化。
- 第3-4周:实现能力声明和健康检查端点,接入一个智能体平台做测试。
- 第5-6周:设计DAE策略,定义决策层级和风险评分规则。
- 第7-8周:实现A2A协商协议,先从内部智能体协作开始。
- 第9-12周:上线监控和审计系统,持续优化决策策略。
这个路线不是固定的,要根据你的业务场景调整。但核心思路是一样的:先让服务可被发现,再让服务可被信任,最后让服务可被协作。
7. 实操中的常见问题与排查技巧
7.1 智能体不调用我的服务怎么办
这是最常见的问题。排查思路如下:
| 排查项 | 检查方法 | 常见原因 | 解决方案 |
|---|---|---|---|
| 服务是否被收录 | 在智能体平台搜索服务名 | 未提交或审核未通过 | 重新提交并确认审核状态 |
| 能力描述是否完整 | 检查JSON schema | 缺少必填字段 | 补全schema并重新提交 |
| 健康检查是否通过 | 手动调用健康检查端点 | 端点超时或返回错误 | 优化端点性能,确保稳定 |
| 成功率是否达标 | 查看平台评分 | 历史成功率低于阈值 | 修复错误,积累成功记录 |
| 是否有负面评价 | 查看用户反馈 | 用户投诉未处理 | 及时处理投诉,提升评分 |
7.2 决策层级设置不合理怎么办
如果用户投诉“智能体擅自做主”或者“什么都问我”,说明决策层级设置有问题。排查方法:
- 收集用户反馈:统计投诉类型,是“太自动”还是“太手动”。
- 分析任务分布:看看哪些任务被分到了L0/L1,哪些被分到了L2/L3。
- 调整风险权重:如果低风险任务被分到L2,说明风险评分过高;反之则过低。
- 引入用户偏好:让用户自己设置“自动执行”和“需要确认”的边界。
7.3 A2A协商失败怎么办
A2A协商失败的原因很多,常见的有:
- 超时:对方智能体响应太慢。解决方法是设置超时阈值,超时后自动切换备选。
- 价格不一致:协商过程中价格变了。解决方法是锁定价格有效期,过期重新询价。
- 能力不匹配:对方智能体不支持你需要的操作。解决方法是在发现阶段就过滤掉不匹配的服务。
- 信任不足:对方智能体信任等级不够。解决方法是引入信任链机制,或者要求人类确认。
7.4 独家避坑技巧
- 技巧一:给智能体留“后门”。在能力描述里加一个“fallback”字段,告诉智能体如果失败可以调用哪个备用接口。
- 技巧二:用“影子模式”测试。新策略上线前,先让智能体在影子模式下运行,只记录不执行,观察决策是否合理。
- 技巧三:建立“决策日志”。每个决策节点都记录输入、输出、依据、结果。出了问题可以快速定位。
- 技巧四:定期“压力测试”。模拟大量并发请求,看看DAE和A2A能不能扛住。
提示:这些技巧都是我们踩坑之后总结的。尤其是“影子模式”,帮我们避免了好几次重大事故。
8. 我个人在实际操作中的体会
做GEO的时候,我以为自己在做技术;做ASO的时候,我以为自己在做产品;做DAE和A2A的时候,我才发现自己在做信任设计。用户愿不愿意把决策权交给智能体,不取决于技术多先进,而取决于信任多深厚。信任来自透明、可控、可回退。透明是让用户知道智能体在做什么,可控是让用户能随时接管,可回退是让用户知道错了能改。
我踩过最大的坑,是过早追求“全自动”。那时候觉得智能体越自动越酷,结果用户投诉说“我只是让它查个价格,它直接帮我下单了”。后来我们引入了分级授权,把决策权拆成四层,用户满意度才回来。所以我的建议是:不要追求全自动,要追求恰到好处的自动。该自动的时候自动,该问的时候问,该交还的时候交还。
最后再分享一个小技巧:如果你不确定某个决策该不该交给智能体,就问自己一个问题——“如果这个决策错了,用户会不会生气?”如果会,就交还给人;如果不会,就交给智能体。这个简单的判断标准,帮我们省了很多争论。