简介:在智能体开发领域,Agent、Skill、MCP、Rules、Prompt五个概念常被混用,导致技术选型与系统设计出现偏差。本文通过拆解五层技术的实体定位、功能边界与协作关系,帮助开发者明确:它们各自管理什么功能?如何划分技术边界?协作时谁调用谁?
在智能体开发框架中,五层技术对应不同层级的抽象实体,其核心定位如下:
Agent(智能体)
作为系统的核心执行单元,Agent是具备自主决策能力的实体。它通过感知环境、调用技能、遵循规则完成特定任务。例如:一个客服Agent可同时调用”查询订单”和”生成工单”两个Skill,但需遵守”优先处理紧急工单”的Rules。
Skill(技能)
技能是预封装的功能模块,通常表现为可复用的代码库或API服务。每个Skill解决特定领域问题,如”自然语言理解”、”数据库查询”或”文件生成”。技能本身不包含业务逻辑,需通过Prompt注入上下文参数。
MCP(能力连接协议)
MCP(Multi-Capability Protocol)是标准化技能调用接口,定义了Agent与Skill之间的通信规范。它解决技能异构问题,使不同语言/框架开发的Skill能被统一调用。例如:Python开发的”图像识别”Skill和Java开发的”文本摘要”Skill可通过MCP被同一Agent调用。
Rules(规则引擎)
规则引擎是业务逻辑的载体,通过条件-动作对定义Agent行为约束。例如:当用户情绪评分>80时,触发”转人工”规则;当订单金额<100元时,应用”免运费”规则。规则可动态加载,支持业务快速迭代。
Prompt(提示词模板)
Prompt是技能调用的参数模板,将业务上下文转化为Skill可理解的输入格式。例如:调用”订单查询”Skill时,Prompt需包含{"user_id": "123", "time_range": "last_7_days"}等结构化参数。
五层架构的演进源于智能体开发的三大痛点:
技能复用难题
早期每个Agent需独立开发所有功能,导致代码冗余。Skill层通过模块化设计,使”订单查询”等通用功能可被多个Agent共享。
异构系统集成
不同团队开发的Skill可能使用REST API、gRPC、WebSocket等协议。MCP层提供统一调用接口,屏蔽底层差异,降低集成成本。
业务逻辑与执行解耦
将”优先处理VIP用户”等业务规则从Agent代码中剥离,通过Rules引擎动态管理,实现”业务规则热更新”而无需重启系统。
在典型开发框架中,五层技术对应以下实体:
| 技术层 | 实体形态 | 示例 |
|---|---|---|
| Agent | 进程/容器实例 | docker run -d agent-service |
| Skill | 微服务/函数计算 | /skills/order_query/index.js |
| MCP | 协议规范+SDK | MCPClient.invoke("skill_id") |
| Rules | 决策表/DSL脚本 | if (score > 90) { escalate() } |
| Prompt | JSON/YAML模板文件 | prompt_templates/order.json |
以电商客服场景为例,展示五层协作流程:
用户输入
用户发送消息:”我的订单怎么还没到?”
Agent初始化
Agent加载基础配置,包括:
order_query, log_generate)customer_service_rules.json)default_prompt.json)意图识别(Skill调用)
Agent调用NLP Skill解析用户意图,Prompt注入当前对话上下文:
{"text": "我的订单怎么还没到?","session_id": "abc123","user_type": "vip"}
规则触发
NLP Skill返回意图分类后,Rules引擎评估:
query_order且user_type=vip → 触发”优先查询”规则订单查询(Skill调用)
Agent调用订单查询Skill,Prompt注入规则处理后的参数:
{"user_id": "vip_123","priority": "high"}
结果返回
Skill返回订单状态,Agent组装最终回复:”您的订单已发货,运单号:SF123456”。
高复用场景
动态规则场景
异构系统集成
| 对比维度 | Agent | Skill | MCP | Rules | Prompt |
|---|---|---|---|---|---|
| 抽象层级 | 执行层 | 功能层 | 接口层 | 决策层 | 参数层 |
| 变更频率 | 低(长期运行) | 中(功能迭代) | 低(协议稳定) | 高(业务调整) | 中(模板更新) |
| 开发语言 | 任意(业务相关) | 任意(功能相关) | 协议规范 | DSL/脚本语言 | 结构化文本 |
| 依赖关系 | 依赖Skill/Rules | 依赖Prompt | 被Agent调用 | 被Agent加载 | 被Skill消费 |
性能优化
安全管控
调试技巧
五层技术架构通过明确的分层设计,实现了:
在实际开发中,需根据业务复杂度选择分层深度:简单场景可合并Agent/Rules层,复杂系统则需严格遵循五层架构以确保可维护性。理解五层技术的本质差异与协作逻辑,是构建高效智能体系统的关键前提。