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:
- 使用
/agents命令交互式创建。 - 直接请求 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 的文件。命令正文需清晰描述工作流步骤,并使用 Agent 和 Skill 等工具调用其他组件。
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:
- 安装 iTerm2 和 tmux。
- 在 tmux 会话中启动 Claude,并设置环境变量
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1。 - 向 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 是内置技能,无需配置。它底层调用 CronCreate、CronList 等工具管理调度,与项目中的钩子 (Hooks) 系统协同工作,实现自动化的通知与操作。
通过组合这六大功能,开发者可以构建出从简单的单任务代理,到复杂的多代理、多技能协作的自动化工作流,真正实现从“氛围编程”到“代理工程”的转变。
FAQ
Q: 作为初学者,我应该从哪个功能开始尝试? A: 建议从命令和技能开始。创建一个简单的自定义命令,调用一个技能来完成特定格式的输出(如代码审查、文档生成),能最快获得正反馈并理解扩展机制。
Q: 子代理和代理团队的主要区别是什么? A: 子代理是单个会话内的隔离上下文分叉,轻量且适合分解任务。代理团队则是生成多个独立的 Claude Code 会话,每个都有完整的环境和上下文,适合需要并行工作和复杂协调的大型任务。
Q: /goal 和 /loop 该怎么选择?
A: /goal 适用于目标导向的长时任务,条件满足即停止。/loop 适用于需要按固定时间间隔(如每分钟、每小时)重复执行的监控或检查类任务。它们是互补的两种自动化模式。