Today we move to Multi-Skill Collaboration + MCP Composition, which is important because it connects the Skill design capabilities with MCP Tools / Servers.
What does “Skill Composition” mean?
什么叫 Skill Composition?Composition means combining multiple specialized capabilities to accomplish a larger task.
Composition 的意思就是把多个专业能力组合起来完成一个更大的任务。
Multi-Skill = an Agent has multiple specialized capabilities and selects and combines them according to the task.
Multi-Skill = 一个 Agent 拥有多个专业能力,并根据任务选择和组合这些能力。
We have already learned that a Skill is a capability/work procedure, while an MCP Tool is an external execution capability.
Skill 是“能力/工作方法”,MCP Tool 是“外部执行能力”。
This topic addresses a practical problem: a real Agent cannot realistically have only one capability or call only one Tool.
一个真实 Agent 不可能只会一种能力,也不可能只调用一个 Tool。
MCP Composition = Skills do not implement every external operation themselves; they obtain external capabilities such as databases, APIs, filesystems, and Databricks through MCP.
MCP Composition = Skill 不直接实现所有外部操作,而是通过 MCP 获得数据库、API、文件系统、Databricks 等外部能力。
So, we can simply think this:
Skill = “我知道怎么做”
Skill = “I know how to do it.”
MCP Tool = “我有办法真正去做”
MCP Tool = “I have the ability to actually do it.”
LLM/Agent = “我决定什么时候做什么”
LLM/Agent = “I decide what to do and when to do it.”
| Concept | English | 中文 |
|---|---|---|
| Skill | Defines how to accomplish a capability | 定义如何完成一个能力 |
| Tool | Defines an executable operation | 定义一个可以执行的操作 |
| Agent | Decides what to do | 决定做什么 |
| MCP | Provides standardized access to external capabilities | 提供标准化的外部能力访问方式 |
Think about it like a human organization.
可以把它想象成人类组织。
Agent = Manager
Agent = 经理
Skill = Expert’s operating procedure
Skill = 专家的工作方法
Tool = Equipment the expert can use
Tool = 专家可以使用的工具
MCP = Standard interface connecting the expert to external equipment
MCP = 连接专家与外部工具的标准接口
Imagine that you have an AI Data Engineering Team, there are three experts in this team. They are: SQL Developer, Data Quality Engineer and Pipeline Auditor.
| Capabilities | Skill | MCP |
|---|---|---|
| SQL Developer | SQL Generation Skill | Databricks MCP |
| Data Quality Engineer | DQ Report Skill | Databricks MCP |
| Pipeline Auditor | Pipeline Audit Skill | Databricks MCP |
The team receiced this “Inspect the sales_orders pipeline, identify data-quality issues, generate SQL validations, and give me a report.”
“检查 sales_orders pipeline,找出数据质量问题,生成 SQL 验证,并给我一份报告。”
Agent may work this way:
User Request
│
▼
Agent
│
├── Pipeline Audit Skill
│ │
│ └── MCP → Databricks
│
├── SQL Generator Skill
│ │
│ └── MCP → Databricks
│
└── DQ Report Skill
│
└── MCP → Databricks
The Agent does not put all logic into one giant Skill. Instead, each Skill focuses on one clearly defined responsibility.
Agent 不是把所有逻辑塞进一个巨大 Skill。而是让每个 Skill 专注一个明确的职责。
Who should coordinate the Skills?
谁负责协调这些 Skill?Normally, Skill A should not directly control Skill B. Instead, the Agent or Orchestrator should coordinate them.
通常情况下,Skill A 不应该直接控制 Skill B。相反,应该由 Agent 或 Orchestrator 来协调它们。
Agent
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
Skill A Skill B Skill C
The Agent decides which capability is needed. The Skill provides the instructions and workflow for that capability. This gives us a clean separation of responsibilities.
Agent 决定需要哪个能力。Skill 提供该能力所需要的 Instructions 和 Workflow。这样就实现了清晰的职责分离。
Skill Composition 的核心思想
Why we need Multi-Skill? A Skill can eventually contain thousands of lines of instructions. The LLM may have to process a large amount of information unrelated to the current task. This reduces focus, maintainability, and reliability.
First principle: One Skill should have one coherent capability
第一个原则:一个 Skill 应该负责一个内聚的能力
A Skill should have a clear purpose and a reasonably narrow scope.
一个 Skill 应该有明确的目的和相对清晰的职责范围。
A simple MCP Tool
from mcp.server.fastmcp import FastMCP
# Create the MCP Server.
# 创建 MCP Server。
#
# The MCP Server exposes external capabilities to an Agent.
# MCP Server 把外部系统能力暴露给 Agent。
mcp = FastMCP("Databricks MCP Server")
@mcp.tool()
def execute_sql(sql: str) -> str:
"""
Execute SQL in Databricks.
在 Databricks 中执行 SQL。
This function represents an executable operation.
这个函数代表一个可以执行的操作。
"""
# In a real implementation, this section would connect
# to Databricks and execute the SQL statement.
# 在真实实现中,这里会连接 Databricks 并执行 SQL。
# We return a simulated result for learning purposes.
# 为了教学目的,这里返回一个模拟结果。
return f"SQL executed: {sql}"
@mcp.tool()
def get_table_schema(table_name: str) -> str:
"""
Retrieve table schema.
获取表结构。
"""
# In a real system, this would query Databricks metadata.
# 在真实系统中,这里应该查询 Databricks metadata。
return (
f"Schema for {table_name}: "
"customer_id, order_id, order_date, amount"
)
# Start the MCP server.
# 启动 MCP Server。
if __name__ == "__main__":
mcp.run()

