一、面试题目
请解释什么是AI Agent Skill,并对比它与传统Tool(工具)、Function Calling(函数调用)的区别、适用场景与技术实现差异。
二、知识储备
1. 核心概念定义
(1)Tool(工具)
最底层、原子化的能力单元,指单一可调用接口/函数,只完成最小粒度单一动作,无业务逻辑、无流程、无状态、无异常处理。
示例:查询订单、查询物流、申请退款、查询天气、调用数据库。
(2)Function Calling(函数调用)
是大模型调用单个 Tool 的能力机制。
流程:意图识别 → 选择工具 → 解析参数 → 执行单次调用。
特点:单步执行、无多步骤规划、无业务编排,适合简单一次性任务。
(3)AI Agent Skill(智能技能)
面向业务封装的复合能力单元,是多个 Tool + 业务规则 + 状态机 + 多步骤编排 + 校验决策 + 异常兜底的整体封装。
模型只需要触发技能,内部自动完成全流程,无需逐一步骤规划。
示例:售后退款Skill、打车纠纷处理Skill、酒店改期Skill。
2. 三者核心区别(面试必背)
维度 | Tool(工具) | Function Calling(函数调用) | AI Agent Skill(智能技能) |
粒度 | 原子级,单一动作 | 单步调用 | 业务级,多步骤完整流程 |
业务逻辑 | 无,只执行指令 | 无,仅调用工具 | 内置规则、分支、判责、校验 |
步骤数 | 单步 | 单步 | 多步骤自动流转 |
自主性 | 被动执行 | 模型驱动单次执行 | 内部自治,自带状态机 |
可复用性 | 底层通用 | 单次临时调用 | 开箱即用、业务复用 |
模型参与度 | 模型只传参 | 模型选择工具 | 模型只触发,中间流程自主完成 |
3. 解决的核心问题
- Tool:解决基础能力供给问题;
- Function Calling:解决大模型调用外部工具的基础能力;
- Skill:解决复杂业务多步骤自动化问题,降低模型规划压力,统一业务规则,保证执行稳定性。
三、代码实现(伪代码,直观区分)
1. Tool 原子工具
# 工具:最小原子函数 def query_order(user_id): return db.get_order(user_id) def apply_refund(order_id): return db.refund(order_id)2. Function Calling 单步调用
# 大模型单次调用工具 def fc_call(query): intent = llm_intent(query) if intent == "退款": params = llm_parse_params(query) return apply_refund(params["order_id"]) # 仅单步调用3. AI Agent Skill 复合技能
# 售后退款Skill:多步骤自动执行 class RefundSkill: def run(self, user_id): order = query_order(user_id) # 业务规则校验 if not self.check_aftersale_rule(order): return "不符合退款条件" # 自动判责 self.judge_responsibility(order) # 执行退款 apply_refund(order.id) # 通知用户 send_notice(user_id) return "退款已完成"四、破局之道(面试升华)
Tool 是原材料,Function Calling 是单次取用原材料,AI Agent Skill 是预制好的完整业务功能。
传统 Function Calling 依赖大模型逐步骤规划,复杂场景易出错、幻觉、步骤混乱;
Skill 通过预编排、内置业务逻辑、状态机约束,把复杂业务固化为稳定可复用模块,大幅降低模型决策压力,提升落地稳定性,是企业级 Agent 规模化落地的关键。
生产实践中一般采用:底层 Tool + 中层 Function Calling + 上层 Skill 封装的分层架构。