Claude Code 的六大核心扩展功能——子代理、命令、技能、代理团队、目标和定时任务——共同构成了从简单提示到复杂自动化工作流的基础。本文基于项目中的具体实现文件,展示了如何通过 YAML frontmatter 定义一个天气代理、如何编排命令调用代理与技能、如何利用 /goal/loop 实现长时间任务与定时作业,为从初级到高级的用户提供了可直接复用的参考范例。

Claude Code 6 大核心功能实现示例:从 Agent 到 Scheduled Tasks

Claude Code 的强大不仅在于其底层模型的能力,更在于其提供的结构化扩展机制。通过子代理、命令、技能等功能,开发者可以将一次性的代码生成任务,转变为可复用、可协作、可自动化的代理工程流程。本文将综合项目中的六个实现文档,以一个完整的“天气编排”工作流为主线,逐一展示这六大核心功能的定义与使用方法。

1. 子代理 (Subagents):专用任务处理单元

子代理是定义在 .claude/agents/ 目录下的专用代理,用于处理特定领域任务,实现职责分离。

示例文件.claude/agents/weather-agent.md

---
name: weather-agent
description: Use this agent PROACTIVELY when you need to fetch weather data for
  Dubai, UAE. This agent fetches real-time temperature from Open-Meteo
  using its preloaded weather-fetcher skill.
allowedTools:
  - "Read"
  - "Skill"
model: sonnet
color: green
maxTurns: 5
permissionMode: acceptEdits
memory: project
skills:
  - weather-fetcher
---

此子代理专注于获取迪拜天气数据。它通过 skills 字段预加载了 weather-fetcher 技能,并在启动时自动获得该技能的知识,无需在对话中再次调用。

How to Use: 在 Claude Code 中,子代理可由其他组件(如命令)通过 Agent 工具调用,也可被用户意图自动触发。

$ claude
> what is the weather in dubai?

How to Implement

  1. 使用 /agents 命令交互式创建。
  2. 直接请求 Claude 生成:它会自动创建位于 .claude/agents/<name>.md 的 Markdown 文件,包含完整的 YAML frontmatter 和正文说明。

2. 命令 (Commands):工作流入口与编排器

命令是定义在 .claude/commands/ 下的斜杠命令,作为用户启动复杂工作流的入口点,并负责编排多个组件。

示例文件.claude/commands/weather-orchestrator.md

---
description: Fetch weather data for Dubai and create an SVG weather card
model: haiku
---

此命令作为 Command → Agent → Skill 架构的起点,它先询问用户温度单位,然后依次调用天气子代理获取数据,最后调用技能生成可视化卡片。

How to Use: 在 Claude Code 中直接输入斜杠命令。

$ claude
> /weather-orchestrator

How to Implement: 请求 Claude 创建即可,它会生成位于 .claude/commands/<name>.md 的文件。命令正文需清晰描述工作流步骤,并使用 AgentSkill 等工具调用其他组件。

3. 技能 (Skills):可组合的领域知识

技能是定义在 .claude/skills/ 下的 Markdown 文件,包含特定任务指令。项目中演示了两种技能模式:普通技能和代理技能。

示例 1:普通技能weather-svg-creator

  • 文件.claude/skills/weather-svg-creator/SKILL.md
  • 调用方式:由命令或用户通过 Skill 工具直接调用。

示例 2:代理技能weather-fetcher

  • 文件.claude/skills/weather-fetcher/SKILL.md
  • 调用方式:通过子代理的 skills: [...] 字段预加载,作为其内置知识。注意其 user-invocable: false 设置,隐藏了斜杠菜单入口。
模式 调用方式 关键区别
技能 Skill(skill: "name") 通过 Skill 工具直接调用
代理技能 通过 skills: 字段预加载 在代理启动时注入上下文

How to Use: 普通技能可作为斜杠命令调用。

$ claude
> /weather-svg-creator

How to Implement: 请求 Claude 创建,它会生成 .claude/skills/<name>/SKILL.md 文件。

4. 代理团队 (Agent Teams):多会话协作

代理团队是更高级的协作模式,它能生成多个拥有独立上下文窗口的 Claude Code 会话,通过共享任务列表协调工作。

与子代理的关键区别:子代理是在同一会话中分叉的隔离上下文,而代理团队中的每个成员都是拥有独立 CLAUDE.md、MCP 服务器和技能加载的完整会话。

How to Use: 进入一个包含团队工作成果的目录,启动 Claude 并运行编排命令。

cd agent-teams
claude
/time-orchestrator

How to Implement

  1. 安装 iTerm2 和 tmux。
  2. 在 tmux 会话中启动 Claude,并设置环境变量 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
  3. 向 Claude 提供一个包含团队角色和共享目标的详细提示词,引导其构建整个团队工作流。项目中的 agent-teams-prompt.md 是一个完整示例。

5. 目标 (Goal):条件驱动的长时任务

/goal 命令能让 Claude 持续工作,直到某个由 Haiku 模型评估的条件满足为止,非常适合处理需要长时间运行的复杂任务。

社区正在探索一些高效的提示技巧,例如让代理自己提议目标:

基于你对我的了解、我的目标、抱负以及我们已经共同构建的内容,现在我们可以运行哪 3 个能够长时间运行并产生最佳结果的 /goal? — Alex Finn (@AlexFinn)

How to Use

$ claude
> /goal <你的条件>
> /goal clear  # 清除当前目标

How to Implement/goal 是 Claude Code v2.1.139+ 的内置功能,无需额外实现。关键在于编写清晰、可评估的条件提示。

6. 定时任务 (Scheduled Tasks):自动化循环作业

通过 /loop 命令,可以将任意任务设置为在指定的 cron 间隔上循环执行。

示例演示/loop 1m "tell current time"

  • 1m 解析为 cron 表达式 */1 * * * *(每分钟)。
  • 任务会创建一个会话内存级的定时作业,每分钟触发一次。
  • 作业会在 3 天后自动过期,退出 Claude 会话即停止。可通过 cron cancel <job-id> 随时取消。

How to Use

$ claude
> /loop 1m "tell current time"
> /loop 5m /simplify
> /loop 10m "check deploy status"

How to Implement/loop 是内置技能,无需配置。它底层调用 CronCreateCronList 等工具管理调度,与项目中的钩子 (Hooks) 系统协同工作,实现自动化的通知与操作。

通过组合这六大功能,开发者可以构建出从简单的单任务代理,到复杂的多代理、多技能协作的自动化工作流,真正实现从“氛围编程”到“代理工程”的转变。

FAQ

Q: 作为初学者,我应该从哪个功能开始尝试? A: 建议从命令和技能开始。创建一个简单的自定义命令,调用一个技能来完成特定格式的输出(如代码审查、文档生成),能最快获得正反馈并理解扩展机制。

Q: 子代理和代理团队的主要区别是什么? A: 子代理是单个会话内的隔离上下文分叉,轻量且适合分解任务。代理团队则是生成多个独立的 Claude Code 会话,每个都有完整的环境和上下文,适合需要并行工作和复杂协调的大型任务。

Q: /goal/loop 该怎么选择? A: /goal 适用于目标导向的长时任务,条件满足即停止。/loop 适用于需要按固定时间间隔(如每分钟、每小时)重复执行的监控或检查类任务。它们是互补的两种自动化模式。