🤖 Agentic 全难度 📦 Anthropic

Claude Code 动态上下文注入 — Skill 从静态指令进化为智能模板

Claude Code 2.1.x 动态上下文注入——SKILL.md 中用 ! 反引号语法执行命令注入实时上下文

📊 评分明细

📦 打包完整度
2.2 2.2 / 2.5
🎯 实用性
2.2 2.2 / 2.5
📖 文档清晰度
1.8 1.8 / 2
👥 社区影响力
1.3 1.3 / 1.5
🔗 集成度
1.3 1.3 / 1.5

🎯 适用场景

免费Skill系统Anthropic海外

Claude Code 动态上下文注入 快速入门

一句话卖点: 在 SKILL.md 中嵌入 shell 命令,每次调用 Skill 时自动注入实时上下文——让 Skill 从「静态指令」升级为「智能模板」。

这是什么?适合谁?

Claude Code 2.1.x 新增的动态上下文注入(Dynamic Context Injection)是 Agent Skills 格式的重要扩展。在 SKILL.md 中使用 ! 反引号语法(如 `!git diff HEAD`),Claude 在读取 Skill 内容时会先执行该命令,将输出代入到 Skill 中再呈现给 Claude。

这意味着 Skill 作者可以编写「实时模板」——每次调用时自动注入当前 diff、文件列表、目录结构等上下文,而不需要 Claude 自己再去运行命令获取上下文。

适合需要频繁基于当前项目状态给出建议的场景:代码审查、变更摘要、环境诊断、目录结构分析等。也适合 Skill 作者——可以让 Skill 更智能地适配不同项目状态。

准备工作

  • Claude Code v2.1.98 或更高版本
  • Anthropic 账号和 API Key
  • 一个 Git 仓库(用于测试动态命令如 git diff
  • 了解基本的 SKILL.md 格式

3步快速上手

第1步: 创建带动态注入的 SKILL.md

.claude/skills/summarize-changes/SKILL.md 中写入:

---
name: summarize-changes
description: 总结当前未提交的变更
---

## 当前变更

`!git diff HEAD`

## 你的任务

基于以上 diff 内容,用中文总结本次变更的核心改动,按以下格式:
1. 改了什么
2. 为什么改
3. 影响范围

第2步: 修改项目文件

对项目做一些修改(编辑几个文件),但不提交。

第3步: 调用 Skill

输入 /summarize-changes,Claude 会先执行 git diff HEAD,将输出注入到 Skill 的「当前变更」部分,然后基于真实的 diff 内容给出总结。

常见踩坑

  • 命令执行可能失败——需在 Skill 中提供 fallback 说明,如 !git diff HEAD || echo "No changes detected"
  • 多行命令输出注意 token 消耗——注入的上下文会占用 Claude 的上下文窗口
  • 非 Claude Code 平台不兼容——! 语法是 Claude Code 专有扩展,其他 Agent Skills 平台(Codex/OpenCode/Autohand)暂不支持
  • 命令输出中的敏感信息——如果 !env!cat .env 输出包含 API Key,会被注入到 Skill 中
  • 命令执行有延迟——每次调用 Skill 时都会重新执行命令,复杂命令可能增加响应时间
  • 不要在 ! 命令中使用交互式命令——它们会阻塞执行

初级用法

  • 变更摘要: `!git diff HEAD` 注入当前未提交变更
  • 文件列表: `!ls -la``!find . -name "*.ts" | head -20` 注入项目结构
  • 环境诊断: `!node --version && npm --version` 注入运行时版本
  • 目录结构: `!tree -L 2` 注入项目目录树
  • Git 日志: `!git log --oneline -10` 注入最近提交历史

高级玩法

  • 组合多个 ! 命令,一次性注入 diff + 文件列表 + 目录结构,让 Skill 获得完整上下文
  • 在 Skill 中根据命令输出做条件分支——例如根据 !git branch --show-current 判断当前分支决定不同行为
  • 用于 CI/CD 场景——在 Skill 中注入 !cat build-output.log 来分析构建失败原因
  • 结合嵌套 Skill(Claude Code v2.1.203+),在 monorepo 中每个子包注入各自的上下文
  • 创建「自我诊断」Skill——注入 !npm test 2>&1 的输出,让 Claude 自动修复失败的测试

小技巧

  • ! 命令的输出在 Skill 加载时立即执行,不是延迟执行——确保命令轻量且幂等
  • 可以用 ! 命令读取项目配置文件(如 !cat tsconfig.json),让 Skill 基于实际配置给出建议
  • 多个 ! 命令之间用空行分隔,提高可读性
  • 如果命令输出太长,可以用 !git diff HEAD --stat 替代 !git diff HEAD 减少 token 消耗
  • 组合使用 ! 和常规 Markdown,让 Skill 既有动态内容也有静态指导

常见问题 FAQ

Q1: 动态上下文注入和让 Claude 自己运行命令有什么区别?

A: 关键区别在于 token 效率。如果让 Claude 自己运行 git diff,它需要消耗一次工具调用 + 等待输出。而动态注入在 Skill 加载时就完成了,Claude 看到的是已经包含 diff 内容的完整 Skill,推理更高效。

Q2: 哪些命令适合放在 ! 中?

A: 快速、幂等、输出量可控的命令。比如 git diff HEADlsnode --version。不适合长时间运行的命令(如 npm install)或输出巨大的命令(如 cat 10MB-log.txt)。

Q3: 动态注入的 Skill 能在其他平台使用吗?

A: 目前不能。! 语法是 Claude Code 的专有扩展。但在 Claude Code 中创建的 Skill 文件本身可以在其他平台打开(只是 ! 命令不会被解析执行)。

Q4: 和 Claude Code 的嵌套 Skill 如何配合?

A: 可以在嵌套 Skill 中使用动态注入,每个子目录的 Skill 注入各自目录的上下文。例如 apps/web:deploy Skill 可以注入 !git diff HEAD -- apps/web/

Q5: 动态注入有安全风险吗?

A: 有。! 命令以你的用户权限执行。不要在 Skill 中写 !rm -rf / 这种危险命令,也不要注入包含敏感信息的环境变量。建议只使用只读命令。

参考链接


本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。

📊 评分与标签

评分说明

总分 8.8/10 · P_优选

📊 可观测社区指标(数据核验日期:2026-07-10)

📦 可安装性 1.9/2.5

  • 评估依据:Claude Code 生态有 158k+ stars,但本功能为 Claude Code 内置特性

🎯 实用性 2.3/2.5

  • 评估依据:官方文档重点推荐,是实现「引用型技能」的核心机制

📖 文档质量 2.0/2.0

  • 评估依据:动态上下文注入是 Agent Skills 格式的重要扩展——让 Skill 内容在加载时动态生成

👥 社区活跃 1.5/1.5

  • 评估依据:2026 年 7 月随 Claude Code v2.1.x 发布

🔗 兼容性 0.7/1.5

  • 评估依据:需 Claude Code v2.1.98+,非 Claude Code 平台不兼容

🏷️ 标签说明

  • Claude Code: 在 SKILL.md 中用 ! 反引号语法执行命令,将输出注入 Skill 内容。来源:anthropics/skills
  • 动态注入: 在 SKILL.md 中用 ! 反引号语法执行命令,将输出注入 Skill 内容。来源:anthropics/skills
  • SKILL.md: 在 SKILL.md 中用 ! 反引号语法执行命令,将输出注入 Skill 内容。来源:anthropics/skills
  • Agent Skills: 在 SKILL.md 中用 ! 反引号语法执行命令,将输出注入 Skill 内容。来源:anthropics/skills

📋 来源与核验记录