本文整理自全网访问量较高的 10 篇 Claude 相关技术文章(涵盖官方博客、知乎、CSDN 与技术社区),围绕 Claude Code、MCP、子代理、提示词工程、Agent SDK 与上下文工程 六大主题,把散落在各处的核心观点提炼成一份可直接上手的实践清单。文末附全部原文出处,方便深入阅读。



写在前面:为什么要读这 10 篇

2025 年下半年到 2026 年,围绕 Claude 的技术内容爆发式增长。但大多数文章要么停留在"怎么装 MCP"的操作层,要么陷入"提示词咒语"的玄学。真正有价值的,是那些讲清楚 设计思想 的文章——它们能让你从"会用"跨越到"用好"。

我筛掉了重复内容,从访问量与讨论度较高的文章里,提炼出可复用的观点,按主题重新组织如下。


一、MCP:让大模型像浏览器访问网页一样访问工具

核心定义

MCP(Model Context Protocol,模型上下文协议)由 Anthropic 在 2024 年底提出。它的核心目标很简单:让大模型用统一协议安全地访问任何外部工具和数据源——写一次 Server,所有支持 MCP 的客户端都能用

从架构上看,MCP 分四层:

用户请求层 → Claude 核心层(含权限校验)→ MCP 基础设施层 → 外部服务器

传输协议支持四种方式:stdio(本地进程)、SSE(云端 + OAuth)、HTTP(REST)、WebSocket

配置作用域:优先用项目级

多篇实战文章达成的共识是:配置优先级为 企业级 > 用户级 > 项目级,但日常应优先使用项目级配置

原因很实际——不同项目需要不同的 MCP 服务:

  • 前端项目可能需要浏览器测试工具(Playwright)
  • 后端项目则需要数据库连接

项目级配置(.mcp.json)可以提交到 Git,团队成员克隆后即可复用同一套 MCP 环境,避免全局配置的混乱。

推荐优先配置的高频 MCP

不要一次装几十个。基于长期测试的建议是:先配置 3–5 个高频工具,边用边熟悉

MCP 服务器 用途
filesystem 文件系统访问
context7 实时文档查询
playwright 浏览器自动化
sequential-thinking 结构化思考

一个高频踩坑

stdio 模式下,最典型的报错是读到"非 JSON 格式的乱码"。原因是:

MCP 的 stdio 模式要求服务端只能输出标准的 JSON 通信数据。任何 printsource 命令的输出或日志都会破坏协议。

调试建议:用 --mcp-debug 标志启动,或用 /doctor 命令生成系统诊断报告,查看每个 MCP 服务器的连接状态。


二、子代理(Subagent):上下文管理的杀手锏

它解决的核心问题是"上下文污染"

当你让 Claude 添加一个功能时,它可能花上千 token 去 grep 代码库,然后把一堆中间结果堆进你想保持整洁的主对话里。

子代理正好解决这个问题:它在自己独立的上下文窗口里做繁杂的辅助工作,只向主线程返回一条摘要

三大好处可以概括为:

  1. 上下文保留——每个子代理在独立环境运行,防止主对话被污染
  2. 专业知识——可针对特定域微调系统提示,提高成功率
  3. 可重用——创建后可跨项目使用、与团队共享

存放位置决定作用范围

子代理本质是带 YAML frontmatter 的 Markdown 文件:

  • ~/.claude/agents/:用户级,机器上每个项目都可用
  • .claude/agents/:项目级,可随代码提交、团队共享
  • --agents:CLI 级,临时测试用,不落盘

一个最小化示例:

---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---

你是一个代码审查员,被调用时分析代码,
针对质量、安全和最佳实践提供具体、可操作的反馈。

⚠️ 易踩的坑:省略 tools 字段 = 继承所有工具。为安全起见,务必显式列出允许的工具。

提示词要"精简",不要臃肿

来自中文社区进阶指南的关键观点:

子代理的提示词应保持精简。代码示例和风格指南应放在 Skills 里,而不是子代理里。结构应为:角色定义 → 工作流 → 输出格式 → 完成标准。

因为模型本来就知道如何写代码,塞一堆示例只会浪费上下文。

用模型分级控制成本

模型 适用场景
Opus 复杂审查、团队协调
Sonnet 主要开发、研究分析、代码审查
Haiku 高频轻量操作、快速探索

可通过环境变量 CLAUDE_CODE_SUBAGENT_MODEL 统一设置子代理使用的模型。

别为了并行而并行

避免为了并行而并行——10 个并行代理处理简单任务,反而浪费 Token 和协调成本。


三、提示词工程:从"能用"到"好用"

官方黄金比喻

Anthropic 官方文档里那句经典定义值得反复咀嚼:

“Think of Claude as a brilliant but new employee who lacks context on your norms and workflows.”

提示工程的本质不是"哄 AI"或"咒语学",而是把你脑子里那些"不言自明"的上下文,变成 Claude 能理解的明确指令

几个高杠杆的实操要点

1. 说"该做什么",而非"不该做什么"

因为"不要做 X"需要模型先理解 X 再抑制它,而"做 Y"直接给出了一条清晰的路径。

2. 少样本示例给 3–5 个

在提示里提供多个"输入 + 期望输出"的范例,对处理复杂或边界(灰色地带)案例特别有效。

3. 预填回应(Prefill)

在提示词结尾预先填入 Claude 应开始的格式,例如一个开放的 XML 标签 <final_verdict>,能让模型直接遵循结构、避免多余开场白。

4. 让模型输出思考过程

始终让 Claude 输出其思考过程。如果不输出思考过程,就不会发生思考。

最基础的做法就是在提示里加一句 “Think step-by-step”。

Claude 4 时代的新变化

Anthropic 针对 Claude 4 的最佳实践特别强调:新模型指令遵循能力更强,因此需要更明确、具体的指令

一句话总结这把双刃剑:

好消息是它"你说什么就做什么";坏消息是——如果你说的是模糊的废话,它也会非常忠实地执行那些模糊的废话。

内部工作坊还揭示了一个数据:大多数人写提示词时只用到 6 大核心元素中的 1–2 项,等于只发挥了 Claude 不到 3 成的潜力。一个好的 API 提示词,应该像一份完整的工作说明书,而不是聊天式的来回修正。


四、Agent SDK 与上下文工程:给智能体一台电脑

Claude Agent SDK 是什么

它是 Anthropic 官方的智能体构建框架(Python / TypeScript),暴露了驱动 Claude Code 的同一个引擎:工具循环、上下文管理、压缩都已内置。用它构建的智能体开箱即可读文件、跑命令、搜网页、改代码。

命名历史:Claude Code SDK 更名为 Claude Agent SDK,因为它早已超出编码范畴,在 Anthropic 内部被用于深度研究、视频创作、笔记整理等几乎所有智能体循环。

核心设计原则

给你的智能体一台电脑,让它们像人类一样工作。

通过赋予 Claude 运行 bash、编辑/创建/搜索文件的能力,它就能成为通用型智能体。

智能体的反馈循环

收集上下文 → 执行操作 → 验证工作 → 重复

上下文工程:文件结构就是上下文

一个反直觉但极重要的观点:智能体的文件夹和文件结构本身,就是一种上下文工程

  • 邮件智能体可以把历史对话存进 Conversations/ 文件夹,需要时再搜索
  • 遇到大文件时,Claude 会用 greptail 决定"以什么方式"把内容加载进上下文

关于搜索方式,Anthropic 的建议是:从智能体搜索(agentic search)开始,只在需要更快结果时才加语义搜索。因为语义搜索虽快,但准确性较低、更难维护、透明度也更差。

Agent SDK vs Client SDK:谁拥有循环?

这是最常见的混淆点:

谁拥有 agent loop 你要做的事
Client SDK 自己实现工具执行、重试、上下文管理、并行
Agent SDK Claude 只描述任务和允许的工具,其余交给 SDK

经验法则:如果你在手动编写工具执行循环,且需要的是文件/shell/搜索操作,用 Agent SDK;如果只需单次无工具响应、或必须控制循环每一步,用 Client SDK。

一个最常见的配置陷阱

从 SDK 加载项目的 CLAUDE.md 不是自动的,它需要同时选择加入项目设置,并使用匹配的预设系统提示。漏掉任何一个,智能体就看不到你的约定。

这是"SDK 智能体忽略 Claude Code 会遵循的规则"的最常见原因。

十行代码起步

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions

async def main():
    async for message in query(
        prompt="What files are in this directory?",
        options=ClaudeAgentOptions(allowed_tools=["Bash", "Glob"]),
    ):
        if hasattr(message, "result"):
            print(message.result)

asyncio.run(main())

一个可工作的智能体,本质就是"一个函数调用 + 一个选项对象",因为底层的一切都已经构建好了。


五、把这些观点串成一条工作流

如果把上面 10 篇文章的观点连起来,其实是一条清晰的进阶路径:

  1. CLAUDE.md 沉淀你的约定——空白的 CLAUDE.md 意味着你要永远重新解释;维护良好的它意味着 Claude 每次开局就懂你。
  2. 用项目级 MCP 接入外部世界——先装 3–5 个高频工具,用 Git 共享给团队。
  3. 用子代理隔离脏活——让繁杂检索在独立上下文里进行,主线程只收摘要。
  4. 用清晰的提示词表达意图——说"该做什么",给 3–5 个例子,让它输出思考过程。
  5. 用 Agent SDK 把这一切产品化——当你开始手写工具循环时,就该迁移到 SDK 了。

一句话收尾:Anthropic 的黄金法则是——把你的 prompt 给一个对任务毫无背景的同事看,如果他会困惑,Claude 也会。


参考出处(10 篇原文)

  1. Claude Code 最佳实践中文版(知乎)
  2. Claude Code MCP 完全指南(AtomGit 社区)
  3. 2026 年最新 MCP 协议从原理到实战(CSDN)
  4. Claude Code 十大必装 MCP 排行榜(CSDN)
  5. 图解 Claude Code 子智能体 Sub-agent(知乎)
  6. claude-code-insights:Subagent 最佳实践(GitHub)
  7. 提示工程概述(Claude 官方文档)
  8. Anthropic 发布 Claude 4 提示工程最佳实践(OSCHINA)
  9. Building agents with the Claude Agent SDK(Anthropic 官方)宝玉中文翻译
  10. Claude 的 Context Engineering 秘籍(Bojie Li)

声明:本文为观点提炼与整理,所有核心思想版权归原作者所有,如需完整细节请点击上方原文链接阅读。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐