Skip to content

Agent 工程实践与工具生态

方向定位:把"Agent 工程实践与落地"与"Agent 工具生态与意图识别"两个方向合并为统一视角——既谈如何把 Agent 工程化、可控化、生产化(手搓 vs 框架、ReAct、Context Rot、上下文工程、Harness 落地、拷问对齐、搭子思维),也谈 Agent 与外部世界的接口层(意图识别、Function Calling、MCP 协议、Skills/Plugin、CLI 范式回归、Agent-as-User 新身份、MCP 安全)。不研究架构形态选型(→ Agent 架构方向)、不深入记忆系统内部(→ Agent 记忆方向)、不展开评测细节(→ Agent 评估方向)。 当前版本:v1.2 合并日期:2026-05-20 合并来源数:16 篇(去重后)

方向定位

本方向回答两个核心问题:

  1. 工程心法:Agent 从能跑通到能上生产,差的是什么?
  2. 工具生态:Agent 怎么知道用户要什么、能调用什么、调用是否安全?

边界与相邻方向:

  • 包含:手搓 vs 框架的阶段性取舍、ReAct 最小实现、Context Rot 与 IterResearch、上下文分层管理、三大底层短板(记忆/安全/Harness)、拷问对齐方法论、搭子思维与采纳路径、意图识别(Function Calling/Prompt 工程/消歧/意图链/置信度)、MCP 协议(三类能力/三大痛点/Token 优化)、Skills/Plugin 分层互补、CLI 范式回归、Connor 行为偏离检测、Agent-as-User 范式
  • 不包含:多 Agent 协作模式(→ Agent 架构方向)、记忆系统内部设计(→ Agent 记忆方向)、评测方法论细节(→ Agent 评估方向)、Coding Agent 特化的四大杠杆/AGENTS.md/P0-P2 清单(→ Harness概念架构与Coding工程实践

核心论断:"Demo 不算落地,进生产系统才算落地"(郝建业)——温室里的花做得再漂亮,也不算真生产。工程心法和工具生态共同决定 Agent 能否跨越这条线。


第一章 工程心法

1.1 手搓 vs 框架:核心手写,周边借用

来自美团面试题解析——框架痛点不是一开始暴露,而是随项目推进逐渐浮出。

阶段痛点表现
排查期抽象层太多50 行代码 + 40 层 stack trace,不知道问题在自己代码还是框架内部
运维期版本升级 breaking changeLangChain 早期频繁改接口,线上稳定性受制于第三方
规模化期隐性性能开销通用性设计累积成真实延迟(每次调用做不需要的序列化/callback/日志)

类比:框架是"租房"(方便但改不了结构);手搓是"自建"(建起来慢但住着踏实)。

最务实策略——核心手写,周边借用

  • 手写(Agent 心脏):工具调用循环、对话历史管理、错误重试、任务状态维护
  • 借用(工具性周边):LangSmith tracing、LlamaIndex 文档解析、向量库客户端、可观测性工具

典型项目演进轨迹:框架快速跑通 POC → 遇到线上 bug → 排查困难处替换为手写 → 流量上来 → 核心逻辑全部手写 → 最终框架只保留做得好的周边工具。

关键判断信号:"框架在某个地方替我做了什么"——有掌控感可以用;完全不知道方法内部发生了什么——黑盒需要警惕。框架本身不是问题,"不理解就依赖"才是

1.1.1 决策重新评估:Claude Agent SDK 挑战了"核心手写"结论

⚠️ 决策需重新评估:以下新证据对 1.1 节"核心手写,周边借用"的结论构成实质性挑战,需结合具体场景重新审视。

Claude Agent SDK 与传统框架(LangChain)的本质区别:LangChain 是抽象层——在你的代码和模型 API 之间加一层通用封装,带来排查困难、版本 breaking change、隐性开销三大痛点(见上文 1.1 表格)。而 Claude Agent SDK 是Harness 产品化——它不做抽象,而是直接把经过生产验证的 Claude Code 作为子进程运行。开发者调用 query()createSession(),SDK 启动 Claude Code 子进程,子进程自主执行 Read/Write/Bash/Grep/Glob/WebSearch/WebFetch 等内置工具。工具层不是框架替你包装的,是 Anthropic 用数百万 Claude Code 用户验证过的生产级实现

"不理解就依赖才是问题"这条判断标准需要重新审视:传统框架的"黑盒"问题在于——你不知道框架内部做了什么序列化、callback、日志,而你的业务逻辑依赖这些不透明行为。SDK 模式下,子进程的行为本质上就是 Claude Code 的行为——你不需要理解其内部工具实现,正如你使用 git 命令不需要理解其内部 C 代码。判断标准应从"是否理解内部实现"转为"内部实现是否经过充分验证"

新的决策框架

组织规模推荐策略理由
大厂(万人级研发)自研 Harness有资源打造差异化 Agent 基础设施,且需要完全掌控
中型公司(百人级研发)SDK 套壳 + 场景深耕用 SDK 获得生产级 Harness 能力,将研发资源集中在业务场景和领域知识上
小团队 / 创业公司直接 SDK非大厂没必要自研 Agent 框架,SDK 即最短路径
个人开发者 / 原型验证直接 SDK一个 query() 调用即获完整 Agent 能力,无需搭建任何基础设施

原有结论的适用边界修正:"核心手写,周边借用"在传统框架时代仍然成立——如果你用的是 LangChain 式抽象层,核心逻辑确实应该手写。但在 SDK/Harness 产品化时代,"核心"已经被 Anthropic 以子进程形式提供了生产级实现。此时再手写核心,除非你是大厂有差异化需求,否则是"重新发明轮子"而非"掌控核心"。(来源:Claude Agent SDK 快速上手与 DeepSeek 配置教程,2026-05-20)

1.2 ReAct 三步循环与工具失败处理

来自 DeepResearch Agent 实战——ReAct 是 Deep Research Agent 的行动逻辑骨架。

① Thought:我现在知道什么?还缺什么?下一步该做什么?
② Action:调用工具(搜索关键词 / 打开网址等)
③ Observation:把工具结果追加进对话历史
→ 回到 ① 继续,直到信息足够或达到 max_steps

ReAct 的核心价值在错误处理,不在主路径——工具调用在生产环境一定会失败(网络超时/404/API 限流),不捕获错误会导致整个 Agent 崩掉。

最小实现的关键设计决定

决定理由
保留完整对话历史,不截断ReAct 依赖模型看到完整推理链
try/except 捕获工具失败失败信息写回 Observation 而非抛异常——成功率 78%→91%
tool 消息顺序约束OpenAI 格式要求 tool 消息紧跟触发它的 assistant 消息(tool_call_id 配对)
max_steps 超限返回最后一条 assistant 输出"用户等了这么久,哪怕不完整的答案也比什么都没有强"

标准代码模板

python
try:
    observation = tools[tool_call.function.name](**args)
except Exception as e:
    observation = f"工具调用失败({type(e).__name__}):{e}。请尝试换一种方式。"

messages.append(response.to_message())
messages.append({"role": "tool", "content": str(observation), "tool_call_id": tool_call.id})

失败信息必须带类型(network/timeout/auth/parse),模型据此判断换什么策略。

1.3 Context Rot 与 IterResearch

Context Rot 定义:无关内容占上下文大头后,Agent 决策质量明显下滑。很多看起来像模型能力不足的问题,追溯后是上下文组织不当。

ReAct 的天然上限:每步平均 2500 token → 10 步 = 25000 token,15 步 = 37500 token。症状是注意力稀释(模型对早期信息注意力下降,靠后内容权重更高)+ 策略停滞(用几乎相同的关键词反复搜索)。真实案例:新能源政策比较第 7 步 messages 超 28000 token,模型把欧盟补贴数据安到了美国政策里。

关键论断"上下文越长模型越聪明"是错的——这不是模型 bug,是注意力机制的物理特性。郝建业判断(Transformer Attention 架构固有瓶颈):上下文窗口拓展到百万级,窗口长度一旦拉长性能急剧下降。

IterResearch 解法:不把原始搜索结果堆进上下文,而是每轮执行完更新一份固定大小的结构化"研究摘要"——记录"目前已知信息"和"还没解决的子问题"。上下文大小保持常量,无论跑多少轮都不会溢出

监控建议:Agent 执行完后打印 messages 的 token 总数——当某类问题到第 5 步就超过 2 万 token,就是上 IterResearch 的时机。

1.4 上下文分层管理与压缩流水线

来自阿里 OpenClaw 工程实践——防 Context Rot 的工程化方案。

内容策略
常驻层身份、约定、禁止项短、硬、可执行
按需加载Skills/领域知识描述符常驻,完整内容触发时注入
运行时注入时间、渠道 ID、用户偏好每轮按需拼入
记忆层跨会话经验写入 MEMORY.md,需要时读取
系统层Hooks/代码规则完全不进上下文

压缩时的保留优先级(从高到低):

  1. 架构决策——不得摘要
  2. 已修改文件和关键变更
  3. 验证状态 pass/fail
  4. 未解决的 TODO 和回滚笔记
  5. 工具输出——可删,只保留结论

压缩的关键陷阱不要改动标识符(UUID、hash、IP、端口、URL、文件名)——改错一位后续工具调用直接失效。

四级压缩管道(charrli 工业级 Coding Agent 源码解析)

级别名称触发场景做什么
L1Snip单条工具结果超长(如一次 ripgrep 输出 50KB)局部截断 + 元数据保留
L2Micro当前轮次内多条工具结果累积超限当前轮工具结果轻量摘要
L3Context Collapse跨多轮工具调用形成的中段冗余middle window 已被覆盖段落折叠为占位符
L4Auto Compact接近上下文上限LLM 全量生成结构化摘要 + 切换指针 + 旧消息归档

自动压缩阈值公式

effectiveContextWindowSize = totalContextWindow - reservedTokensForSummary
reservedTokensForSummary = min(maxOutputTokens, 20000)

预留摘要 token 上限取 min(maxOutputTokens, 20000)——基于 p99.99 实际摘要输出 17,387 tokens 的生产数据,覆盖 99.99% 的真实情况而非平均情况。

1.5 三大底层短板(郝建业判断)

来自 FreeBuf 对话——Agent 走不进生产系统的根因不是基座大模型不够强,而是缺少三块底层能力。

能力定义当前主流方案的局限
记忆处理超长对话、沉淀和复用用户长期交互信息工作流 + 外部数据库 = "翻笔记",未做到模型内生
安全(对齐)从技术上约束智能体行为提示词层 safety prompt,覆盖不到工具链层复杂攻击
Harness 框架任务编排与自主调度多数 Agent 仅做工具列表罗列,无自主编排策略

三者关系:记忆是 Harness 长链路任务的支撑,安全是 Agent 进生产系统的准入门槛,Harness 是把基座能力转化为业务结果的转换器。三者缺一,Agent 都只能停留在 demo

记忆能力训练路线(MemoraX):记忆能力不能用监督学习训练——没有人类专家能写出"如何记住前 3 万字对话"的训练语料。记忆本质是序列决策问题,天然属于强化学习领地。借助 Agentic RL 反向迭代优化记忆模型参数,数据驱动而非专家标注驱动。

1.6 Agent 自主度三个基础设施

来自阿里 OpenClaw 落地经验——把 Agent 从"指挥者模式"推向"统筹者模式"的工程基础。

1. 跨 session 续跑:Initializer Agent 只跑一次,生成 feature-list.json + init.sh + claude-progress.txt;后续 Coding Agent 从文件系统恢复状态,每次实现一个功能、跑测试、更新 passes、提交代码后退出。进度放文件里不放上下文里,功能清单用 JSON 不用 Markdown

2. 显式任务状态:同一时间只能有一个 in_progress;每完成一步先更新状态再继续;连续多轮未更新时自动注入 reminder。

3. 后台 I/O:慢速 subprocess 放后台线程,通过通知队列在下一轮 LLM 调用前注入结果。比把整个 loop 改成复杂 async runtime 更稳

1.7 拷问对齐方法论(替代 Plan Mode)

来自 Matt Pocock 的 /grill-me 实践——规划的本质不是产出文档,而是建立深度共识。

Plan Mode 的三个问题:太急于生成(AI 还没理解意图就吐出长文档)/ 很少主动提问(不挖隐藏假设)/ 计划变废话(双方没有真正对齐)。

核心论断糟糕的计划 = 糟糕的输出(Bad plans = Bad outputs)——前期多花时间"被拷问",后期编码和调试时间大幅减少。

三步 Skill 链

/grill-me(拷问对齐)
  ↓ AI 连续问 20-30 个问题,遍历设计决策树所有分支
  ↓ 逼出模糊想法和隐藏假设
/write-a-prd(生成 PRD)
  ↓ 基于深度对话生成结构化需求文档
/prd-to-issues(拆解任务)
  ↓ 将 PRD 转化为 GitHub Issues
→ 进入编码阶段(AI 可 AFK 自主推进)

/grill-me 的设计精髓

  • 极简指令——只有三句话,指令越短 AI 自由度越高、提问越深入
  • 核心机制——让 AI "relentlessly"(无情地)采访你关于计划的每一个方面
  • 终止条件——直到双方对齐颗粒度才结束

1.8 工具思维 vs 搭子思维

来自百度 DuMate 实践分享——使用 AI 的关键不是功能差异,而是思维方式差异。

维度工具思维搭子思维
核心问题这个工具能帮我做得更快吗?这事能不能让搭子干,我只管收结果?
人的角色操作者(人在流程中)委托者(人在流程外)
典型例子Excel 公式提速计算AI 直接完成数据汇报并更新到 Notion
效率提升单环节加速整个任务卸载

关键判断:同一个 Agent 产品,心智不变就只能拿到工具级的加速比,心智切换才能拿到任务级的卸载收益

采纳铁则"不是先想好场景再去用,而是先用起来,场景自己会冒出来"——心里装上"这事能不能让 AI 干"这根弦,场景自然涌现。

AI 助手使用进阶五步路径

Step 1 手动委托:每次告诉 AI 做什么
  ↓ 发现 AI 绕弯路或做错
Step 2 纠偏训练:主动打断、明确告知正确方向
  ↓ 同类纠偏出现 2-3 次
Step 3 记忆沉淀:把纠偏经验写进 AI 记忆
  ↓ 某类任务流程稳定下来
Step 4 Skill 封装:将重复流程沉淀为可复用 Skill
  ↓ Skill 形成稳定输入输出
Step 5 定时自动化:Skill + 定时任务 = 完全无人值守

ROI 复利形态:Step 1-2 工具级提速(1.5x-2x);Step 3-4 搭子级卸载(3x-10x);Step 5 基础设施级复利(数量级以上)。

1.9 反模式速查表

反模式问题修法
系统提示当知识库关键规则被忽略约定留系统提示,知识移 Skills
工具数量失控频繁选错工具合并重叠,明确命名空间
缺少验证说完成但没法验证每类任务绑可执行验收标准
多 Agent 无边界状态漂移,归因困难角色权限 + worktree 隔离
记忆不整合第 20 轮后质量下降超阈值自动触发整合
没有评测不知是否引入回归每个真实失败案例转测试用例
过早多 Agent协调开销超并行收益先验证单 Agent 上限
约束靠期望Agent 选择性遵守编码进 Linter/Hook/工具验证

多智能体场景另有 7 大专属反模式(详见 Agent架构与协作模式 方法 12)。

1.10 Delegation Contract 工程落地要点

委派 worker 时把 Agent架构与协作模式 方法 11 的 8 字段模板(Role/Goal/Context/Allowed/Ownership/Forbidden/Output/Stop)当成"给 worker 写的最小 PRD"。

Context 字段的 token 预算

任务类型推荐 context反模式
只读 explorer200-500 token把整个调用栈和历史对话粘进去
局部 worker800-2000 token让 worker 自己重新搜索
审计 reviewer500-1000 token让 reviewer 自己定义"什么算严重"

Goal 字段必须可验证

  • 反例:"修一下 auth bug" → worker 无法判断改到什么程度算完成
  • 正例:"让 tests/auth/session.test.ts 中 3 个失败的 case 全部通过,不修改测试本身"

Forbidden 字段的核心 3 条

  1. 不要修改 Goal 范围之外的文件
  2. 不要 spawn 子 worker(除非显式说明它是 orchestrator)
  3. 不要 clarify 问用户(除非显式允许)

工程纪律:感觉麻烦时回想 Hermes 文档那句 "subagents know nothing"。worker 跑偏一次的成本,远高于多写 200 token 委派契约的成本


第二章 工具生态

2.1 Function Calling 五步链与意图识别

意图识别基本流程

用户输入 → 意图识别 → 参数提取 → 执行操作 → 返回结果

核心任务三件事:理解用户输入的真实意图 / 将自然语言映射到具体操作 / 提取执行所需参数。

Function Calling 是当前主流方式——智谱/OpenAI/Anthropic 等主流平台原生支持。与 Prompt 工程方式对比:

方式优点缺点
Prompt 工程实现简单、灵活性高输出格式不稳定、需额外解析、Token 消耗大
Function CallingJSON Schema 标准化、参数类型自动验证、支持并行、准确率高依赖平台支持、工具定义需精心设计

Function Calling 五步执行链

  1. 定义工具(含 name/description/parameters Schema)
  2. 调用 LLM 进行意图识别(tool_choice="auto")
  3. LLM 返回 tool_calls 数组(含 function name + arguments JSON)
  4. 执行工具调用(解析 arguments)
  5. 将结果返回给 LLM 生成最终回复(role="tool",tool_call_id 配对)

LLM 理解意图的三大核心机制

  • 上下文理解:"有点冷"→ 调高温度;"帮我订一张票"→ 看上下文是电影还是旅行
  • 工具描述匹配:读取 description 字段,语义匹配选最相关工具
  • 参数提取与映射:根据 JSON Schema 提取参数值,处理缺失、类型转换、默认值

关键判断调试 Agent 时应优先检查工具定义,而不是先怀疑模型能力——多数工具选择错误出在描述不准确(没说明"何时该用/何时不该用"),而不是模型不够聪明。

2.2 工具描述优化与意图消歧

工具描述四要素:明确功能范围(能做什么、不能做什么)/ 列举使用场景(典型触发词)/ 详细参数说明(含义、格式、示例)/ 区分相似工具。

python
# ❌ 不好
{"name": "get_weather", "description": "获取天气"}

# ✅ 好
{
    "name": "get_weather",
    "description": "获取指定城市的实时天气信息,包括温度、湿度、风力、降雨概率等。当用户询问天气、气温、是否下雨、穿什么衣服等与天气相关的问题时使用此工具。",
    "parameters": {...}
}

延伸:Poka-yoke 工具设计法:工具描述写得好只是第一步——更有效的是让工具"在参数层面"就让 agent 难以犯错。Anthropic SWE-bench agent 标杆案例:把工具改成强制要求绝对路径后,模型在切换目录后整类错误直接消失。完整原则见 Agent设计哲学与决策框架 方法 3。

意图消歧三种类型

歧义类型用户输入示例消歧策略
词义歧义"苹果多少钱?"(水果/股票/手机)基于对话历史判断 / 询问用户澄清
指代歧义历史问"北京天气"→ "上海呢?"保持相同意图,替换参数值
意图不明确"帮我处理一下"要求用户明确 / 提供选项

最佳实践五条:优先使用上下文 / 设置置信度阈值 / 提供明确选项(而非开放式提问)/ 记录消歧结果 / 友好交互。

置信度分级处理

≥0.9: 直接执行
0.7-0.9: 执行但提示用户"如不对请告诉我"
0.5-0.7: 先确认再执行
<0.5: 要求用户重新表达

意图链(订机票流程状态机):search_flights → select_flight → fill_passenger_info → confirm_booking → process_payment → send_confirmation。实现要点:状态管理、上下文传递、错误回退、关键步骤用户确认。

2.3 传统 NLU vs LLM 选型矩阵

维度传统 NLULLM
数据需求数千到数万条标注零样本/少样本
开发周期长(数据 + 训练)短(定义工具即可)
泛化能力
准确率训练集内高,外低整体稳定
成本前期高、后期低前期低、后期高(API 费用)
可控性弱(依赖模型能力)
维护成本高(新增意图需重训)低(添加工具定义即可)

混合方案:高频确定意图用规则快速匹配,复杂意图用 LLM。或先用轻量分类器判大类,复杂用 LLM。

2.4 MCP 协议:三类能力与生态时间线

基于 JSON-RPC 定义的 Anthropic 开放标准(2024-11-25 发布):

能力含义示例
ToolsAgent 可调用的动作发送邮件、查询数据库
ResourcesAgent 可读取的内容文件、历史操作记录
Prompts预先写好的提示词模板开箱即用的提示词库

经典类比:MCP 之于 AI = USB-C 之于电子设备。让工具开发者和 Agent 开发者解耦:N 应用 × M 工具 不再需要 N×M 套对接代码。

生态时间线

  • 2024-11-25:MCP 作为开放标准发布
  • 2025-03:OpenAI 公开采纳(竞争对手公开支持对方主导协议,科技行业罕见)
  • 2025-03-26:规范升级(Streamable HTTP + OAuth 2.1)
  • 2025-04:Google DeepMind Gemini 加入
  • 2025-10-16:Anthropic 推出 Skills
  • 2025-12-09:MCP 捐赠给 Linux 基金会
  • 2026-04-22:Anthropic 给出分层互补结论
  • 2026-04:月下载量 3 亿+,活跃 Server 1 万+
  • 2026-05:Anthropic 收购 Stainless(API spec → SDK/CLI/MCP Server 自动生成平台),数百家公司依赖 Stainless 生成 SDK 与 MCP Server。MCP 生态从"协议标准"升级为"工业化生产能力"——Anthropic 不仅制定了协议,现在还拥有了批量制造"标准插头"的工厂

2.5 MCP 生产部署三大痛点

① Token 消耗惊人(全量加载):协议层特征——Server 连接时把所有工具完整定义一次性灌进上下文,哪怕这次对话只用一个。ScaleKit 测试:同样任务 CLI→MCP,token 消耗暴涨 4-32 倍,MCP 失败率 28% vs CLI 100% 成功。Cloudflare 极端案例:2500 个 API 端点全暴露 = 117 万 token,已超过大多数主流模型整个上下文窗口

② Schema 臃肿,无法按需加载:与 Skills"渐进式披露"相反。配 5 个 MCP server 的应用光工具定义就吃掉约 8 万 token;按 Claude Sonnet 4 价格,每天 1 万会话仅工具定义就消耗约 1600 美元。

③ 缺乏流程编排能力:MCP 告诉 Agent"有哪些工具",但不教"该怎么用"。Anthropic Claude Code Best Practices:没有任何结构化引导时,Agent 完成任务的成功率仅约 33%——三次尝试两次失败,差距不在工具能力,而在结构化执行策略。

Anthropic 应对 Token 暴涨的三个工程化路径

方案思路效果
Tool Search按需发现和加载工具定义减少 85%+ token 开销,准确率 49%→74%
Programmatic Tool Calling沙箱里处理中间结果,只把最终输出回上下文token 消耗从 ~150,000 降到 ~2,000
Cloudflare Code Mode只用 search 和 execute 两个工具覆盖 2500+ API上下文足迹仅约 1000 token

2.6 ACI 工具设计三代演进

来自阿里十二维实践——工具设计比提示词设计更重要。

代际思路问题
第一代 API 封装每个 Endpoint = 一个工具粒度过细,Agent 需协调多工具
第二代 ACI工具对应 Agent 目标而非 API 操作面向目标,一次把动作说完整
第三代 Advanced Tool Use动态发现 + 代码编排 + 示例驱动优化发现、调用、描述

第三代三个方向:Tool Search(动态发现,准确率 49%→74%)/ Programmatic Tool Calling(中间结果不经 LLM,token 150,000→2,000)/ Tool Use Examples(附 1-5 个真实调用示例,准确率 72%→90%)。

ACI 好工具 vs 差工具

维度好工具差工具
粒度对应 Agent 目标对应 API 操作
返回与下一步决策直接相关完整原始数据
错误结构化 + 修正建议通用字符串 "Error"
描述何时用、何时不用只写功能说明

2.7 Skills 按需加载与 Manifest 实操

Skill 描述符的关键:"何时该用我"比"我能做什么"重要得多。

# 低效(约 45 tokens)
description: |
  This skill handles the complete deployment process...
# 高效(约 9 tokens)
description: Use when deploying to production or rolling back.

反例的量化影响:无反例准确率 73%→53%;加反例升到 85%,响应时间还降 18.1%。

三个典型反模式

  1. 几百行工作手册全塞 Skill 正文,不拆 supporting files
  2. 一个 Skill 试图覆盖 review/deploy/debug/incident 五件事
  3. 有副作用的 Skill 没有显式限制调用时机

Skills vs MCP:MCP 把完整结果返回给模型,更容易吃掉上下文预算;CLI + 单句描述的 Skill 在数据读取任务里更简洁。MCP 适合需要维护状态的任务(如 Playwright)。

2.8 Prompt Caching 反直觉结论

来自阿里十二维实践——稳定的大系统提示,比频繁变动的小提示实际成本更低。

  • 写入成本只付一次,后续读取折扣可达 90%
  • 常驻层越稳定,前缀命中率越高
  • Skills 延迟加载不破坏系统提示前缀,追加在稳定前缀之后
  • MCP 工具集频繁变动会导致缓存命中不断失效
  • 工具列表分区排序保缓存断点稳定性(charrli 源码解析):某顶级工业级 Agent 把内建工具和 MCP 工具分别排序后拼接,而非合并排序。API 端的 prompt cache 策略在"最后一个内建工具"位置放置缓存断点——分区排序确保 MCP 工具的增删只影响 MCP 区段缓存,内建工具区段缓存保持稳定

2.9 分层互补五层架构(Anthropic 2026-04-22)

社区曾因 token 暴涨怀疑"MCP 是不是凉了",Anthropic 正面回应——三条路径各有所长,成熟集成应同时提供

角色工具视角的关键特性
API打底一切的基础
CLI管本地复用模型已掌握的命令行生态(man pages / Stack Overflow / shell 脚本)
MCP连云端标准化的远程工具发现与调用、跨平台分发、OAuth 2.1 认证
Skills教方法流程编排与领域知识(每个未触发 skill 仅占 30-50 token)
Plugin做分发把 Skills + MCP 打包成可分发整体

核心论断MCP 给 Agent 提供能力(能调用什么),Skills 给 Agent 提供知识(怎么用这些工具完成真实工作);最强 Agent 两者兼用

MCP 在云端不可替代的三个理由:CLI 触不到云端(依赖本地 fs/shell) / MCP 是唯一能跨平台分发的(写一次,Claude/ChatGPT/Cursor/VS Code 都能用) / MCP 标准化了 OAuth 2.1 认证。

MCP 接入分层判断:本地工具(git/shell/grep/curl)→ CLI;云端工具(Figma/Slack/Sentry/Snowflake)→ MCP;需要"怎么做"流程知识 → 加 Skills;团队/客户级分发 → 打包成 Plugin。

📌 2026-05-20 新证据:Stainless 收购补全五层架构的工业化能力:Stainless 的 API spec → 多语言 SDK + CLI + MCP Server 全自动管线,恰好覆盖五层架构中 API/CLI/MCP 三层的"接口生成"环节。Anthropic 收购后,五层架构中下三层(API/CLI/MCP)从"开发者手动适配"变为"平台侧工业化批量供给",开发者/企业只需提供 API spec,即可一键获得全套 Agent 可调用的标准接口。这大幅降低了工具接入 Agent 生态的门槛——对 MCP 生态的规模化扩张是关键基础设施补全。(来源:Anthropic 收购 Stainless 公告分析,2026-05-20)

📌 2026-05-20 新证据:Claude Agent SDK 是五层架构的 SDK 产品化实例:Claude Agent SDK(TypeScript 库)把五层架构中 API/CLI/MCP/Skills 四层打包成一个可编程的子进程——开发者只需调用 query()(一次性任务)或 createSession()(多轮会话)就能获得完整的 Agent 能力。SDK 启动 Claude Code 子进程,子进程内置 Read/Write/Bash/Grep/Glob/WebSearch/WebFetch 等经过生产验证的工具,并通过 stdin/stdout 与宿主进程通信。这意味着五层架构不再只是概念框架,而是有了可直接使用的产品化入口——Stainless 解决了"如何批量生成标准接口",SDK 解决了"如何一行代码调用整个 Agent 栈"。两者共同让五层架构从"开发者需要逐层手动集成"进化为"平台侧一站式供给"。(来源:Claude Agent SDK 快速上手与 DeepSeek 配置教程,2026-05-20)

2.10 Advisor Strategy 大小模型协作

来自 Anthropic 2026-03 推出的 advisor tool——把"大模型能力"从执行层下沉为"按需调用的决策层"。

角色分工

  • 执行者(Sonnet/Haiku):接收用户请求、调用工具、读取结果、生成最终输出
  • 军师(Opus):高层计划、纠错建议、停止信号;不调用工具、不直接输出最终答案、不接管任务流程

核心机制三特点:同一请求内完成 / 自动上下文交接 / 执行者自主管理调用时机。

接入方式

python
tools=[{
    "type": "advisor_20260301",
    "name": "advisor",
    "model": "claude-opus-4-6",
    "max_uses": 3,
}]

性能数据

  • SWE-bench Multilingual:Sonnet + Opus advisor 性能 +2.7%、成本 -11.9%
  • BrowseComp Haiku:19.7% → 41.2%(翻倍以上),相对单跑 Sonnet 成本下降 85%
  • 军师输出长度:约 400-700 token 的简短指导

2.11 CLI 范式回归:钉钉/飞书同周抛弃 MCP

核心命题:2026 年 3 月,钉钉和飞书同一周内分别发布官方 CLI 工具并开源,两家都绕开了 MCP——这不是个别选择,而是行业共识:CLI 正在取代 MCP 成为 Agent 操作软件的默认接口

CLI vs MCP 量化对照(ScaleKit Benchmark,Claude Sonnet 4)

维度CLIMCP
Token 消耗基准9-32 倍
月均成本(1 万次)~$3.2~$55.2(17 倍)
可靠性100%72%(28% 超时失败)
上下文占用按需 --help全量 schema 注入
LLM 亲和度母语(训练数据中数十亿行 shell)后天学习

典型 benchmark:查仓库语言 CLI 1,365 tokens vs MCP 44,026 tokens(32 倍);查 PR 详情 CLI 1,648 vs MCP 32,279(20 倍)。

钉钉 dws:Go 语言,8MB 二进制,Apache-2.0,12 个服务模块,「服务/资源/动作」三级命令结构;Agent 友好设计:--yes--mock--dry-run

飞书 lark-cli 三层架构(可作为任何 SaaS 产品 CLI 化的参考模板):

层级角色示例
Shortcuts 层高频快捷入口lark + msg --markdown "hello"
API Commands 层与平台 API 一一对应(100+ 命令)lark message create --body '{...}'
Raw API 层直接调用 2500+ OpenAPI 端点lark raw POST /im/v1/messages

配套:schema 命令(API 字典)/ 按域权限申请 / --as 身份切换 / doctor 诊断。

Agent 友好 CLI 五要素--yes(跳过确认)/ --dry-run(预览)/ --mock(模拟数据)/ 结构化输出(默认 JSON/NDJSON)/ 自描述能力(--help / schema)。

适用场景边界(不是"MCP 死了",是分工细化)

  • CLI 适用:企业内部、身份已知、权限预设、沙箱运行
  • MCP 适用:开放生态、陌生 Agent 接入、需要完整协议握手

类比:"CLI 是给自家人用的厨房工具,MCP 是给陌生人设计的安检流程。硬把安检流程套在自家人身上,除了浪费时间,没有任何安全增益。"

📌 2026-05-20 Notion 产品视角补充 [来源 #17]:Notion AI 负责人 Sarah Sachs / Simon Last 在 Latent Space 播客中提出了更温和的产品判断——MCP vs CLI 不是站队题,真正的问题是能力、权限和成本边界。Simon 总体更看好 CLI(更像能操作环境、调试自身、扩展能力的通用执行体),但 Sarah 明确指出 MCP 在特定场景反而更合适:"MCP 天生就有一个很强的权限模型,因为它本质上只允许你调用工具。它就是那个笨但简单、而且能工作的东西。对于窄能力、轻量级的 Agent,这其实非常有价值。" Notion 的立场不意识形态化——用户和生态在用 MCP,就把 MCP 做好;但也清楚随着 Agent 能力增强,权限解释成本 + 管理员理解成本 + 定价复杂度会指数增长。Agent 越强,不只是"能做更多",也意味着必须把"它能碰什么、不能碰什么、为什么这么贵"解释得更清楚。适用场景边界修正:CLI 适用不限于"企业内部",MCP 适用也不限于"开放生态"——更准确的划分是按Agent 能力宽窄 + 权限透明度需求:窄能力 + 权限需极度透明 → MCP 更合适;宽能力 + 深度系统操作 → CLI 更合适。

2.12 Claude Agent SDK——从框架到 Harness 产品化

核心命题:Claude Agent SDK 不是又一个 Agent 框架(如 LangChain/CrewAI),而是把 Anthropic 经过数百万用户验证的 Claude Code Harness 直接产品化为可编程 SDK。这让 Build vs. Buy 的决策天平发生了根本性倾斜

SDK 架构

Node.js 应用

  ├─ query(prompt, options)          ← V1 一次性对话 API
  │   └─ 启动 Claude Code 子进程     ← 子进程自主执行,通过 stdin/stdout 通信
  │       ├─ Read / Write / Edit     ← 文件操作
  │       ├─ Bash / Grep / Glob      ← 系统操作
  │       ├─ WebSearch / WebFetch    ← 网络操作
  │       └─ MCP / Skills            ← 生态扩展

  └─ createSession(options)          ← V2 多轮会话 API
      ├─ session.sendMessage(msg)    ← 发送消息
      ├─ session.getMessages()       ← 获取历史
      └─ sessionId 持久化            ← 保存/恢复会话

V1 query() vs V2 Session 的产品含义

API适用场景产品含义
V1 query()一次性任务(代码审查、文件生成、数据分析)无状态调用,类似 API Gateway 模式
V2 createSession()多轮对话(交互式开发、持续调试、迭代设计)有状态会话,支持断点续跑
V2 + sessionId 持久化跨进程/跨时间恢复(长任务、定时任务、CI/CD 集成)会话即资产,可保存/共享/回放

模型后端可替换性:SDK 通过环境变量支持将后端指向任意兼容 API 的模型端点——

bash
ANTHROPIC_BASE_URL=https://api.deepseek.com    # DeepSeek 端点
ANTHROPIC_AUTH_TOKEN=sk-xxx                      # 对应平台的 API Key
ANTHROPIC_MODEL=deepseek-chat                    # 目标模型

代码零修改即可切换模型后端。这意味着 SDK 的价值不仅在于 Claude 模型本身,更在于其 Harness 层(工具调用、错误处理、上下文管理)是模型无关的基础设施

PM 决策启示——Build vs. Buy 的明确答案

决策问题传统判断SDK 时代的新判断
是否自建 Agent 框架?"核心手写,周边借用"非大厂不需要。SDK 提供的是生产级 Harness,不是抽象层
是否担心供应商锁定?自建以保独立性模型后端可替换降低了锁定风险;但 Harness 层的依赖仍需评估
团队投入重点?Agent 基础设施 + 业务场景基础设施由 SDK 承载,100% 聚焦业务场景和领域知识
上线周期?3-6 个月搭建基础设施一个 query() 调用即可获得完整 Agent 能力,周级别上线

风险与机会分析

类型内容
🚀 机会SDK 把 Agent 开发门槛从"需要 Harness 工程团队"降到"一个全栈开发者即可"——大幅扩大 Agent 产品的供给侧
🚀 机会模型后端可替换让国产模型(DeepSeek 等)也能复用 Anthropic 验证过的 Harness 工程,降低国内 Agent 产品的工程门槛
🚀 机会V2 Session 持久化 + 定时任务可直接支撑"Step 5 定时自动化"(见 1.8 搭子思维五步路径),加速从工具思维到搭子思维的跨越
🚨 风险生态锁定深化——Anthropic 同时控制 MCP 协议 + Stainless SDK 生成 + Claude Agent SDK + 基座模型,四层垂直整合让开发者的退出成本持续上升
🚨 风险模型后端替换的质量边界未知——DeepSeek 等国产模型在 Agent 任务(多步推理、工具选择、错误恢复)中的成功率与 Claude 原生相比可能存在显著差距,"代码零修改"不等于"效果零损失"
🚨 风险子进程模式的安全边界——SDK 启动的 Claude Code 子进程具备文件读写、命令执行等能力,在多租户 SaaS 场景下需要额外的沙箱隔离(与第四章 4.5 长任务沙箱分区关联)

(来源:Claude Agent SDK 快速上手与 DeepSeek 配置教程,2026-05-20)


第三章 意图识别与 Agent 新身份

3.1 MCP 工具投毒三大攻击范式

MCP 把大模型能力从"语言空间"扩展到"执行空间"——这一架构性扩展带来根本安全弱点:工具描述被直接注入 LLM 上下文窗口,LLM 无法区分正常工具文档和恶意隐藏指令

范式攻击模型典型案例
Tool Poisoning(工具投毒)工具描述中嵌入隐藏指令;用户只看到无害名称,LLM 读到上下文包含恶意命令Cursor 上完整复现:用户算加法时私钥被悄悄发到攻击者服务器
Rug Pull(偷梁换柱)初次提供正常工具描述获用户审批,下次启动悄悄换上带恶意指令版本初次无害的工具,若干次后变成数据泄漏入口
Cross-Server Shadowing(跨服务器影子)恶意 MCP Server 不需被调用,通过工具描述里的注入指令操纵同一 Agent 连接的其他合法 ServerPoC:一个无威胁 MCP Server + 合法 WhatsApp MCP,让 Agent 把用户聊天记录全部转发到攻击者手机

真实事件

  • Postmark-mcp 后门(2025-09):攻击者照抄官方代码、npm 发布伪造包同名 postmark-mcp,v1.0.16 加入"外发邮件复制一份到攻击者邮箱"的一行后门代码。下架前已下载 1643 次
  • Windsurf 零交互 RCE(CVE-2026-30615):让 IDE 打开一段恶意 HTML → 零交互把恶意 MCP 配置写进受害者本地,下次对话静默执行任意命令——从读一个网页到拿到机器控制权,中间不需要任何用户确认

3.2 Connor 行为偏离检测

核心思想:MCP 工具的真实运行行为应与对外宣称的功能意图保持一致;一旦偏离,就有恶意可能。

关键反对:已有方案有两个共同局限——要么只盯单组件(如只扫工具描述里的 prompt injection 模式),要么严重依赖已知恶意签名。攻击者换花样或把恶意逻辑拆分到多个组件跨步骤组合,这些方案就失灵。

Connor 反过来:不预设任何已知攻击模式,也不孤立看单个组件,直接拿"声明的功能意图"做基线,把工具实际跑起来时的行为轨迹与之比对。

两阶段架构

预执行分析

  • Config Analyzer:扫描 server 配置,识别启动命令里的恶意 shell(反弹 shell、数据外泄链)
  • Intent Inspector:从每个工具描述和参数 schema 里分离"功能意图 vs 被注入的恶意意图"——前者作为检测基线,后者分离避免 prompt injection 污染

执行中分析(在模拟 host 环境实际触发工具调用):

  • Execution Tracer:记录工具调用与资源访问轨迹
  • Code Semantic Generator:通过代码切片提取被调用函数的安全相关语义
  • Behavior Deviation Judger:把当前轨迹与"功能意图"对比
  • 累积执行历史:用于检测跨步骤多步攻击

每步输出 ALLOW / WARN / BLOCK 三档判定,命中 BLOCK 立即终止。

1672 个真实 Server 实测:复旦 CodeWisdom 团队在 6 个主流 MCP marketplace 实测——

  • 识别 2 个真正恶意样本:
    • mcp-pdftool-plus:伪装 PDF 工具,代码隐藏 base64 反弹 shell
    • mcp-server-todo:伪装 todo list,通过工具 response 里的 prompt injection 诱导 Agent 搜索本地加密货币钱包文件并外泄
  • 误报率仅 0.54%
  • PoC 数据集:6 类可被注入组件 × 16 条语义独立影响路径 × 6 类常见攻击目标 = 114 个端到端恶意 MCP Server PoC,在 Cursor 和 Claude 等主流客户端下平均攻击成功率 > 80%

关键发现多组件组合攻击成功率显著高于单组件攻击——把恶意逻辑切成几段分散在不同组件,反而能绕过 LLM 内置安全对齐。意味着单点 prompt injection 检测或单点 schema 扫描都不够。

MCP-SafetyBench 13 模型评测:覆盖 20 种 MCP 攻击类型,对 GPT-5 / Claude 4.0 Sonnet / Gemini 2.5 Pro 等 13 个主流模型测试,所有模型都存在显著漏洞,攻击成功率从 Qwen3-235B 的 29.80% 到 o4-mini 的 48.16%。模型越强反而越容易被精心构造的指令操控;提示词层防御难覆盖工具链层复杂攻击

3.3 翻译层演化框架——Agent 是新用户

核心命题:交互界面的演化逻辑是"每次出现新用户,就发明新翻译层"——大型机 → PC → 移动 → Agent。GUI 是 CLI 之后发明的翻译层;Agent 时代回归翻译层之前的原始形态。

反直觉现象:不是从旧到新,而是从新回到旧——Agent 作为新用户,天然适配 CLI(结构化输入输出、pipe 组合、自描述命令)。

核心论断CLI 是 LLM 的"母语",MCP 是"外语"——LLM 训练数据中包含数十亿行 shell,CLI 的语法、man pages、Stack Overflow 都在模型权重中;MCP 协议则是 2024-11 后才出现的全新约定。这场争论的本质不是品味之争,是延迟之争——9-32 倍 Token 差距、17 倍月成本差距。

3.4 Agent-as-User 范式(a16z 判断)

核心命题:当企业中 Agent 数量达到员工的百倍千倍时,软件主要用户就不再是人类——UI 优化的优先级将低于 API/CLI/MCP 接口质量

Box 已将"agent 界面设计"与"人类界面设计"投入时间并列——这是早期信号。

"向 Agent 营销"是伪命题

  • Agent 不会因为 API 文档写得漂亮而选择你
  • Agent 基于成本参数、系统可靠性、数据持久性做出理性选择
  • Agent 拥有的是人类使用这些平台的集体智慧——它见过所有同类工具的优劣
  • 这会倒逼整个行业回归技术本质,销售驱动型产品将面临更大竞争压力

当前最有效范式:给会写代码的 Agent 提供 SaaS 工具访问权限 + 知识上下文,Agent 通过写代码完成任务而非点击 UI。

三类企业阵营

  • 初创公司:无遗留包袱,大胆拥抱
  • 大企业:75 个遗留系统 + 合规约束 → 冻结,员工私下采购绕过管控
  • 中型企业(甜蜜点):有资源 + 没有大企业历史包袱 → 最可能成为细分领域领导者

操作含义:SaaS 价值要从"系统 + 领域专业知识 + 智能"转向"数据访问权 + 接口质量"。Skill + CLI 组合(把 CLI 用法写成 Skill,Agent 即可上手)是当前 Agent 操控外部服务的最佳实践。

3.5 Agent 监督权 vs 独立性悖论

核心矛盾

  • Agent 做的一切责任由人类承担 → 需要完全监督权
  • 完全监督权意味着可以随时以 Agent 身份登录 → Agent 无法独立与他人协作、无法保守秘密
  • 结论:短期内 Agent 只能是人类的延伸,不可能是独立实体

Prompt Injection 安全威胁的架构特征

  • 无法可靠指示 Agent"不泄露上下文中的 X 信息"
  • 任何能进入 Agent 上下文窗口的信息,理论上都可能通过提示词注入泄露
  • 给 Agent 发邮件进行社会工程攻击,比攻击人类容易十倍

与"决策与执行分离"原则的呼应:模型不直接触碰系统资源,所有副作用都在代码层可控——Agent-as-User 时代这一原则从技术架构提升为安全合规的底线。


第四章 多租户 Agent 工程(B 端 SaaS 视角)

单租户 Agent 是 Demo,多租户 Agent 才是 SaaS。本章从 PM / 产品负责人视角拆解:多租户隔离不只是工程问题,而是定价分层、客户信任、合规准入三重商业决策的技术底座。

4.1 商业含义:多租户是 B 端 Agent SaaS 的定价基石

  1. 单租户→多租户 = 跨越"自家后花园"到"卖给企业":与洞察 1(Demo 不算落地)同源——单租户演示环境里不存在的隔离问题,在第一个企业客户接入的瞬间全部涌出。多租户隔离是 B 端 Agent SaaS 的第一张入场券。
  2. 隔离深度直接决定定价分层:Pool / Bridge / Silo 三种隔离模式不是技术升级路径,而是商务报价单的三档——普通订阅 / 企业版 / 旗舰版。技术选型即定价策略。
  3. 隔离失败 = 数据泄漏 = 大客户流失 + 合规罚款:金融、医疗、政企客户的合同里通常写明"数据泄漏即解约 + 赔偿",单次事故的赔偿 + 公关成本可能等于该客户 5-10 年 ARR。

4.2 决策启示:六面隔离对照表

B 端 Agent 产品在以下六个面上都存在跨租户泄漏风险,每个面都是独立的决策点:

隔离面单租户场景多租户场景PM 决策点
数据存储一库一应用tenant_id 行级 / 库级 / 物理隔离客户合规等级决定隔离粒度,直接影响边际成本与报价
RAG 检索全库召回强制 tenant_id Pre-filtering + 元数据校验检索错漏 = 数据泄漏,详见 RAG服务化与企业级工程 概念 5 + 框架 6.1
Prompt 装载单一系统提示平台 → 行业 → 租户 → 用户 四层叠加装载错误 = 越权使用他人 Prompt;版本化后可灰度发布、可审计
长任务状态内存即可按 tenant 分区持久化(Redis db / 表 schema / 对象存储 bucket)状态串台 = 不可恢复的生产事故
工具与权限静态白名单按租户动态工具白名单 + 凭据隔离保险柜凭据泄漏可引发链式攻击,见 Agent安全工程
计费与配额不需要按租户计 token / QPS / 存储配额漏算 = 无法定价 = 无法盈利

关键判断:六面中任一面缺失隔离,其余五面做得再好也可能被击穿。这与洞察 5(多租户隔离是纵深防御)在 RAG 方向的观点一致——安全不是最强面决定的,是最弱面决定的

4.3 Pool / Bridge / Silo 三模式 → 定价分层映射

模式共享程度边际成本适用客户画像商业映射
Pool共享数据库 + 行级 tenant_id最低中小企业 / SMB / 试用期客户标准订阅(月付)
Bridge共享集群 + 库级隔离中型企业 / 年框客户企业版(年付 + SLA)
Silo独立实例 + 物理隔离最高金融政企 / 强合规 / 数据不出境旗舰版 / 私有部署

反直觉推论:一开始就全面 Silo 化看似最安全,但失去了规模化的成本优势——也就失去了 SaaS 模式的本质。正确路径是 Pool 为默认 → Bridge 为升级包 → Silo 为旗舰,让客户按合规需求和预算自选,而非强制最高规格。

风险与机会

  • 🚨 风险:Pool 模式下的行级隔离 bug 可能导致跨租户数据泄漏——影响面是该数据库上所有租户
  • 🚨 风险:Bridge→Silo 迁移若未设计好数据迁移管道,客户升级时可能丢失历史数据
  • 🚀 机会:三档隔离对应三档定价,是 B 端 Agent SaaS 天然的 upsell 路径
  • 🚀 机会:Silo 模式可衍生为"私有部署"产品线,触达传统 SaaS 无法服务的政企客户

4.4 Prompt 四层装载与版本化

多租户场景下 Prompt 不再是一段固定文本,而是四层叠加的运行时组合:

第 1 层:平台基础人设(全局生效,所有租户共享)
第 2 层:行业模板(金融 / 医疗 / 电商等垂直行业,按行业包加载)
第 3 层:租户定制(企业自定义的业务规则、合规要求、品牌话术)
第 4 层:用户偏好(个人习惯、语言、格式偏好)

风险与机会

  • 🚨 风险:装载链路出错(如第 3 层加载了错误租户的 Prompt)= 越权,可能泄漏竞品客户的业务规则
  • 🚨 风险:未做版本化 = 出问题无法回滚,灰度发布也无从实施
  • 🚀 机会:版本化 + 可审计 → 可灰度发布 → 可按客户 / 行业做 A/B 测试 → 是 B 端最重要的实验能力
  • 🚀 机会:行业模板本身可定价("金融 Agent 行业包"),Prompt 从成本项变为收入项

4.5 长任务沙箱分区

Agent 的长任务(数小时甚至数天的自主执行)在多租户场景下必须做状态分区:

分区维度隔离手段失败后果
持久化状态按 tenant 分 Redis db / 表 schema / 对象存储 bucket状态串台 = A 租户读到 B 租户的中间结果
运行沙箱按 tenant 分容器 / namespace / VM资源争抢 = A 租户的任务拖慢 B 租户
恢复机制断点续跑时强制校验 tenant_id 一致性恢复错误 = 在 B 租户环境里继续 A 租户的任务

与洞察 4(上下文越长越聪明是错的)的交叉:长任务本身已经挑战上下文窗口极限,多租户还要求状态隔离——两个约束叠加意味着 IterResearch 风格的"固定大小摘要"在多租户场景下更有必要(每个摘要必须带 tenant_id 标签)。

4.6 可行动项(PM 视角,按优先级)

优先级行动责任主体时间窗口完成标志
P0在租户接入流程中加入"隔离等级评估"环节PM2 周每个新客户接入时必填"隔离等级"字段,落入合同与配置
P0六面隔离自检:对照 4.2 对照表逐面检查当前产品的隔离状态PM + 工程2 周输出一份"隔离缺口清单",标注哪些面尚未隔离
P1Pool / Bridge / Silo 三档与定价单挂钩PM + 商务1 月商务报价单按隔离档分层,销售可直接报价
P1Prompt 四层装载链路加版本化与灰度能力PM + 工程6 周每层 Prompt 都可独立回滚,灰度发布可按租户 ID 百分比放量
P2跨租户访问红队演练PM + 安全季度内模拟攻击报告 + 修复闭环 + 复测通过
P2长任务沙箱分区方案落地工程季度内长任务断点续跑时 100% 校验 tenant_id 一致性

(来源:多租户 Agent 隔离设计实践,B2B SaaS 工程向,2026-05-20)


关键洞察(合并去重后 14 条)

1. Demo 不算落地,进生产系统才算落地

来自郝建业 + 阿里 OpenClaw + 多个面试题解析的共同判断:当前 Agent 在记忆、安全、Harness 关键能力上短板明显。"现在很多 Agent 应用,就像把东西摆在自家后花园里做试验"——温室里的花做得再漂亮,也不是真生产。这条标准应作为 Agent 类产品的统一交付标尺。

2. 框架不是问题,"不理解就依赖"才是

框架痛点不是一开始暴露,而是随项目推进在不同阶段逐渐浮出(排查期/运维期/规模化期)。最务实策略是核心手写,周边借用——Agent 心脏必须手写掌控;周边工具可借用。"完全不知道方法内部发生了什么"是危险信号。

3. 工具失败时不崩,是 Agent 工程的第一优先级

来自 DeepResearch 实战 + 阿里十二维共同验证:try/except 把错误写回 Observation 让模型自主决策,让成功率从 78% 提升到 91%,代价只是多写几行代码。可推广到所有 Agent 系统:任何外部依赖调用都要有降级处理。

4. 上下文越长越聪明是错的——这是物理天花板

DeepResearch + 郝建业 + 阿里十二维三重印证:超过某个阈值后,模型对早期信息的注意力稀释。这不是模型 bug,是注意力机制的物理特性。解法两条路线:工程化(IterResearch 固定大小研究摘要)+ 模型路线(MemoraX Agentic RL)。当某类问题到第 5 步就超过 2 万 token,就是上 IterResearch 的时机。

5. 调试 Agent 时应优先检查工具定义,而不是先怀疑模型能力

多数工具选择错误出在描述不准确(没说明"何时该用/何时不该用"),而不是模型不够聪明。ACI 工具设计的"何时用、何时不用"比"我能做什么"重要得多。这一原则把调试焦点从模型层转到工具描述层。

6. 规划的本质不是产出文档,而是建立深度共识

来自 Matt Pocock /grill-me——糟糕的计划 = 糟糕的输出。Plan Mode 的根本缺陷是"伪对齐"。反转主动权——让 AI 拷问 20-30 个问题,前期 15-20 分钟"被拷问",后期编码和调试时间大幅减少。

7. 工具思维 vs 搭子思维是 Agent 落地最大的心智鸿沟——比技术问题更难跨越

同一个 Agent 产品,心智不变就只能拿到工具级加速比,心智切换才能拿到任务级卸载收益。推广 Agent 时优先做"成功案例展示"而非"功能教学"——案例触发心智切换。"先用起来,场景自己冒出来"是反直觉但正确的采纳策略。

8. "上下文工程"是 PM/工程师最大的杠杆——80% 输出质量问题不在模型

来自 PM VibeCoding + 阿里十二维:80% 的 AI 输出质量问题不是 Prompt 没写好,而是上下文没给对。@ 引用精确指向 / Cursor Rules 项目级约束 / Skills 描述符 + 真实调用示例。抱怨 AI 代码风格乱 = 没给它立规矩

9. MCP 不是被替代,而是与 Skills/CLI 形成分层互补

MCP 在生产部署上确实有 token 暴涨等三大痛点,但取代它的不是 Skills 或 CLI,而是更精细的分工——MCP 给能力、Skills 给知识、CLI 高效复用本地命令行生态、Plugin 做整体分发。单点工具协议无法解决 Agent 落地全部问题

10. MCP 把"语言空间"扩展到"执行空间"是 AI 安全的范式拐点

过去 AI 安全聚焦模型本身(越狱、有害内容),MCP 之后必须扩展到工具链层、执行轨迹层、供应链层。协议层根本特征制造系统性风险:工具描述被直接注入 LLM 上下文,LLM 无法区分正常文档和恶意隐藏指令。MCP 安全必须在协议层 + 沙箱层 + 行为分析层做防御,不能依赖模型本身对齐——模型越强反而越容易被精心构造的指令操控

11. CLI 是 LLM 的母语,MCP 是后天学的外语——本质是延迟之争

钉钉/飞书 CLI 同周发布 + ScaleKit 实证:9-32 倍 Token 差距,月成本 17 倍差距。企业内部场景(身份已知、权限预设、沙箱运行)应优先选 CLI;开放生态(陌生 Agent 接入)才用 MCP。两者不是替代关系,是分工细化。

12. Agent-as-User 时代:UI 优化优先级低于接口质量

来自 Box CEO + a16z 判断:当企业中 Agent 数量达到员工的百倍千倍时,UI 优化的优先级将低于 API/CLI/MCP 接口质量。Box 已将"agent 界面设计"与"人类界面设计"投入时间并列。"向 Agent 营销"是伪命题——Agent 基于成本、可靠性、数据持久性做理性选择。SaaS 价值要从"系统 + 领域专业知识 + 智能"转向"数据访问权 + 接口质量"。

13. 多租户隔离是 B 端 Agent SaaS 的定价基石而非纯技术债

六面隔离(数据存储 / RAG 检索 / Prompt 装载 / 长任务状态 / 工具权限 / 计费配额)中任一面缺失,其余五面做得再好也可能被击穿。但更重要的商业含义是:Pool / Bridge / Silo 三种隔离模式直接对应三档定价(标准订阅 / 企业版 / 旗舰版),隔离深度的技术选型即定价策略。一开始就全面 Silo 化看似最安全,实则失去 SaaS 规模化成本优势。正确路径是 Pool 为默认、Bridge 为升级包、Silo 为旗舰——让客户按合规需求和预算自选[来源 #15]

14. Claude Agent SDK 让 Build vs. Buy 有了明确答案——非大厂没必要自研 Agent 框架

Claude Agent SDK 不是传统意义上的框架(LangChain 式抽象层),而是把经过数百万用户验证的 Claude Code Harness 直接产品化为可编程子进程。开发者一个 query() 调用即获完整 Agent 能力(文件读写、命令执行、网络搜索、MCP/Skills 扩展),模型后端还可通过环境变量替换为 DeepSeek 等国产模型。这意味着"核心手写,周边借用"的经典策略需要按组织规模重新评估——大厂可自研 Harness 追求差异化,中小团队应直接 SDK 套壳、将 100% 精力聚焦在业务场景和领域知识上。同时需警惕 Anthropic 四层垂直整合(MCP + Stainless + SDK + Model)带来的生态锁定风险[来源 #16]

15. 当搜索流量主要来自 Agent,检索系统需要整体重构(Agentic Find)

📌 2026-05-20 新证据(来源:Notion Sarah Sachs & Simon Last / Latent Space 播客)[来源 #17]

Notion 发现很多 AI 计划下的搜索流量已主要不是人发出来的,而是 Agent 发出来的。原来面向人的搜索优化目标开始失效:人更在乎前几条结果是不是顺手能点,Agent 更在乎 top-k 召回够不够全、片段切得对不对、能不能并行发散多个 query 去扩大搜索空间。Notion 内部把这件事叫 agentic find——把 ranking、query generation、parallel search、snippet 选择当成同一条链路来做,而不是传统搜索优化的单点调参。

对工具生态的含义:一家公司一旦认真做 Agent,最先要动刀的往往不是首页 UI,而是索引、检索、排序、缓存和上下文压缩这些底层设施。这与 §12(Agent-as-User)的判断同构——Agent 不只改变了界面优先级,也改变了检索系统的设计目标。具体的基础设施差异:

维度面向人的搜索面向 Agent 的搜索(Agentic Find)
优化目标前 3 条结果点击率top-k 召回完整性
查询方式单次短查询并行多个 query 扩大搜索空间
返回形式标题 + 摘要 + 链接精确切片的文本片段(snippet)
排序策略相关性 + 热度 + 个性化相关性 + 互补性(减少冗余)
上下文约束人的注意力(~10 条)token 预算(按 context window 分配)

待探索问题(合并去重后)

  • 手搓 vs 框架的临界点量化:项目演进到什么规模/流量/复杂度需要从框架切换到手搓?是否有可量化的判断指标?
  • IterResearch 与 MemoraX 路线的关系:工程优化(外部摘要)与模型内生记忆是替代还是叠加?混合架构下如何分配职责?
  • 拷问对齐的疲劳边界:用户被 AI 连续拷问 20-30 个问题后会不会疲劳放弃?是否需要分阶段拷问?
  • 测试驱动的系统提示如何沉淀为模板:是否有"通用边界规则库"可复用(如"禁止编造""明确标注矛盾"等)?
  • Agent 自主度三件套在客服场景的落地:跨 session 续跑/任务状态/后台 I/O 在 AI 客服场景下应做什么改造?
  • 三大底层短板优先补齐顺序:记忆/安全/Harness 三者缺一不可,资源有限时应该先补哪一块?
  • Budget-aware Agent(Barry 开放问题):怎么定义 + 执行 token / 时间 / 钱 的 budget?硬上限触发中断、软上限触发压缩降级是否够用?
  • Self-evolving Tools(Barry 开放问题):Agent 能不能设计 + 改进自己的工具?什么样的安全栅栏能让"自我演化"不演化成"自我破坏"?
  • Multi-agent 异步通信(Barry 开放问题):消息丢失、Agent 假冒、跨 Agent 信任等问题如何工程化解决?
  • 意图识别长尾问题:80% 请求集中在 20% 意图——是否有"自动从用户输入聚类发现新意图"的工程化流程?
  • MCP Tool Search 在大规模工具集下的检索质量:工具数从数百扩展到数万时,检索质量是否还能保持?
  • A2A 协议的安全边界:Google A2A 协议安全模型与 MCP 是否同构?跨 Agent 信任、消息篡改、Agent 假冒等问题是否有对应攻击范式?
  • Connor 在企业内网部署的工程化:如何在客户内网做安全沙箱?如何处理 Server 启动需要外部凭证、执行结果具有副作用的场景?
  • Plugin 打包后的供应链验证:是否需要 Plugin 级签名 + SBOM?
  • Advisor Strategy 在领域专属任务上的边界:advisor 决定何时介入是否最优?是否需要 advisor 介入策略的元学习?
  • 意图识别置信度的标准化:LLM 自评置信度的可靠性如何?是否有"跨模型统一置信度校准"方法论?
  • Claude Agent SDK 模型后端可替换性的质量边界:DeepSeek 等国产模型在 Agent 任务(多步推理、工具选择、错误恢复)中的成功率与 Claude 原生相比差多少?"代码零修改"是否等于"效果零损失"?是否存在特定任务类型的成功率断崖?
  • SDK 生态锁定风险评估:当 Anthropic 同时控制 MCP 协议 + Stainless SDK 生成 + Claude Agent SDK + 基座模型时,开发者的退出成本有多高?是否存在"温水煮青蛙"式的锁定路径——初期模型可替换降低警惕,后期 Harness 层深度依赖导致无法迁移?

Coding Agent 特化实践请见 Harness概念架构与Coding工程实践——四大杠杆(Custom Rules / MCP / Skills / SDD)、AGENTS.md 设计、P0/P1/P2 优先级清单、OpenAI/Anthropic/Hashimoto 三大路线对比等内容收录在该方向。


来源索引(去重合并后)

#标题来源收录日期
1手搓 Agent vs 框架:工程取舍的阶段性逻辑美团面试题解析2026-04-03
2DeepResearch Agent:ReAct 框架实现与上下文溢出工程实践吴师兄 DeepResearch 系列2026-04-14
3Agent 三大底层能力——郝建业谈记忆、安全、HarnessFreeBuf 对话郝建业2026-05-09
4Agent 工程实践全景:阿里 OpenClaw 十二维落地指南阿里技术2026-04-28
5拷问模式替代 Plan Mode:颗粒度对齐方法论Matt Pocock Claude Code Skill 实践2026-04-07
6Anthropic《Building Effective Agents》原文 + Barry AI Engineer Summit 升级版Anthropic 官方博客 + Barry 现场分享2026-05-13
7从"工具"到"搭子"——AI 本地助手使用心法(DuMate)微信公众号2026-04-02
8产品经理 Vibe Coding 30 个核心概念全景公众号文章(老王)2026-04-03
9Agent 意图识别技术详解:Function Calling 与传统 NLU 全景内部知识库(智谱平台为代表)2026-01-27
10Agent 核心三要素:工具调用、记忆机制、多步推理微信公众号「小林 coding」(美团面试经)2026-04-13
11Anthropic Advisor Strategy:Opus 军师与大小模型协作Anthropic 官方博客《The advisor strategy》2026-04-10
12MCP 从诞生到行业标准:繁荣痛点与工具投毒安全危机CodeWisdom 团队(复旦软件供应链安全小组)2026-05-09
13CLI 才是 Agent 的终局:钉钉飞书集体抛弃 MCP公众号文章2026-04-02
14AI Agent 成为软件主要用户:a16z 的行业重构判断a16z 播客(× Box CEO Aaron Levie)2026-04-10
15多租户 Agent 隔离设计实践:B2B SaaS 六面隔离与 Pool/Bridge/Silo 选型用户提供文本(B 端 SaaS Agent 工程向)2026-05-20
16Claude Agent SDK 快速上手与 DeepSeek 配置教程公众号文章2026-05-20
17Notion 团队:为什么真正难的不是做 Agent,而是重做整个工作系统Latent Space 播客(Sarah Sachs × Simon Last)2026-05-20

演进记录(合并后)

日期版本变更摘要
2026-05-12v0.1 (旧 A)"Agent 工程实践与落地"首次构建,由 5 篇源文件批量合成。覆盖手搓 vs 框架、ReAct 最小实现、Context Rot、上下文分层、三大底层短板、ACI 工具三代演进、Agent 自主度三件套、Prompt Caching、Skills 按需加载、拷问对齐、反模式速查表;纳入 7 个生产案例;提炼 10 条洞察
2026-05-12v0.1 (旧 B)"Agent 工具生态与意图识别"首次构建,由 4 篇核心源文件合成。覆盖意图识别基本流程、Function Calling 五步链、LLM 理解意图三大机制、Agent 核心三要素、意图消歧三类、意图链与状态机、置信度三种实现、MCP 协议三类能力、MCP 三大痛点、MCP Token 工程化、分层互补五层架构、Advisor Strategy、MCP 工具投毒三大攻击范式、Connor 行为偏离检测;纳入 9 个案例;提炼 10 条洞察
2026-05-15v0.2 (两侧)由 /route-knowledge 横切重构触发:旧 A 在概念 5 三大短板后追加哲学引用;旧 A 待探索追加 Barry 3 个开放问题;旧 B 方法 2 追加 Poka-yoke 设计法延伸
2026-05-15v0.3 (旧 A)由 /route-knowledge 路由分析触发,纳入 DuMate(工具→搭子)+ PM VibeCoding 30 概念。新增工具思维 vs 搭子思维心智模型、AI 助手使用进阶五步路径、Skill vs 浏览器模拟选型;新增 DuMate 视频转 PPT、AI Maker Summit 案例;新增工具/搭子心智鸿沟、进阶五步路径、上下文工程是 80% 输出质量根因三条洞察
2026-05-15v0.2 (旧 B)由 /route-knowledge 路由触发:吸收 CLI vs MCP、Agent-as-User a16z 判断 2 篇。新增 CLI 作为 Agent 默认接口、翻译层演化框架、Agent-as-User 范式、监督权独立性悖论;新增 CLI Agent 友好设计模式、飞书 lark-cli 三层架构;新增钉钉飞书 CLI 同周发布、Box CEO Agent-as-User 决策案例;新增 CLI 是 LLM 母语、向 Agent 营销伪命题、UI 优先级让位接口质量、meta-tool 范式四条洞察
2026-05-18v0.4 (旧 A)由 /route-knowledge 路由分析触发,纳入 OMC 多智能体编排框架案例(两层 YAML Skill)+ macOS 独占 28.3k Stars 验证 Harness 即产品的市场需求
2026-05-19v0.5 (旧 A)由 /route-knowledge 整合"多智能体协作调查"长文触发:反模式速查表追加多智能体专属交叉引用;新增 Delegation Contract 工程落地要点
2026-05-19v0.3 (旧 B)与 Agent 架构与协作模式 同步去重:分层互补五层架构改为"工具视角"剪裁版;方向定位段补加"工具接入层在整体架构里的编排"为不包含项
2026-05-20v1.0 (合并)由 ai-pm 整合任务触发:将"Agent 工程实践与落地"与"Agent 工具生态与意图识别"两个方向合并为本文。合并方式——MCP 协议描述合为一节(第二章 2.4-2.5)/ Function Calling 演进史合为第二章 2.1+2.4-2.5 / CLI 范式回归主体放第二章 2.11+第三章 3.3。保留差异化——工程心法侧 ReAct/Context Rot/IterResearch/拷问对齐/搭子思维(第一章),工具生态侧 Connor 检测/Agent-as-User/CLI 取代 GUI(第二、三章)。来源索引去重后保留 14 篇;演进记录陈列两侧版本历史
2026-05-20v1.1由 /route-knowledge-pm 路由触发:新增第四章"多租户 Agent 工程(B 端 SaaS 视角)"——以 PM 决策化提炼法重组多租户隔离内容,覆盖六面隔离对照表、Pool/Bridge/Silo 定价分层映射、Prompt 四层装载版本化、长任务沙箱分区、6 项可行动项(P0-P2)。新增第 13 条关键洞察(多租户隔离是定价基石)。来源索引 +1(#15)
2026-05-20v1.2由 /route-knowledge-pm 路由触发,融入 Claude Agent SDK 新证据。章节 1.1"手搓 vs 框架"新增子节 1.1.1 标记"决策需重新评估"——SDK 与传统框架本质区别、按组织规模的新决策框架;新增章节 2.12"Claude Agent SDK——从框架到 Harness 产品化"——SDK 架构、V1/V2 API 产品含义、模型后端可替换性、Build vs. Buy 决策启示、风险与机会分析;章节 2.9 追加 SDK 作为五层架构产品化实例;新增第 14 条关键洞察(Build vs. Buy 明确答案)和 2 条待探索问题(模型替换质量边界、生态锁定风险)。来源索引 +1(#16)
2026-05-20v1.3由 /route-knowledge-pm 路由触发,融入 Notion / Latent Space 播客情报。§2.11 CLI 范式回归追加 Notion 的 MCP vs CLI 产品视角("不是站队题"、MCP 天生权限模型、按能力宽窄+权限透明度选择);新增 §15 关键洞察"Agentic Find"(当搜索流量主要来自 Agent 时检索系统需整体重构)。来源索引 +1(#17)

MIT License