掌握 Agent 技术核心:Skill 设计与封装,节省 60%+ Token,小白也能学会大模型开发(收藏)

张开发
2026/4/12 0:12:55 15 分钟阅读

分享文章

掌握 Agent 技术核心:Skill 设计与封装,节省 60%+ Token,小白也能学会大模型开发(收藏)
本文为面向工程实践的深度技术文章详细拆解 Agent 中 Skill 的设计逻辑、加载机制、能力边界明确 Skill 与 Tool 的核心区别重点讲解如何通过 Skill 节省 Token 消耗并附带 Python Agent 框架的真实可运行代码示例适用于多智能体系统、AI Coding、类似 Cursor / Devin 产品的开发人员参考。| 如果你正在做多智能体系统、AI Coding、或者类似 Cursor / Devin 的产品这一篇是关键基础设施。 |一、什么是 Skill 一句话定义Skill 被结构化封装、可复用、可组合的“高阶能力单元”它并非简单的函数Tool而是具备以下核心特性的完整能力模块具备上下文理解能力能适配不同场景的输入需求包含完整的执行流程支持多步联动操作自带记忆/策略可根据历史结果调整执行逻辑拥有规范的输入输出结构便于与其他模块对接 Skill vs Tool核心区别维度Tool工具Skill技能粒度原子操作单一功能复杂能力多功能组合是否多步❌ 单步执行仅完成一个具体操作✅ 多步流程可串联多个操作完成复杂任务是否带上下文❌ 基本无上下文仅接收固定格式输入✅ 具备上下文感知可结合历史信息执行是否可组合❌ 独立存在无法直接与其他 Tool 联动✅ 支持多 Skill 组合形成更复杂的能力体系是否有策略❌ 无策略仅按固定逻辑执行✅ 自带执行策略可根据任务调整流程Token 消耗❌ 高频繁调用每次需传递完整参数和描述✅ 低一次性封装减少重复调用和参数传递 一个直观理解Tool像系统调用仅实现单一功能python def search_google(query: str) - str: “”“工具仅实现谷歌搜索功能输入查询词返回搜索结果”“” # 模拟谷歌搜索逻辑 import requests response requests.get(fhttps://www.google.com/search?q{query}) return response.textSkill像一个“能力模块”串联多个工具完成复杂任务python class ResearchSkill: “”“技能完成主题研究串联搜索、总结、提炼洞察三个步骤”“” def run(self, topic: str) - dict: # 步骤1调用搜索工具获取原始数据 data search_google(topic) # 步骤2调用总结工具清洗、提炼核心信息 cleaned_data self.summarize_data(data) # 步骤3调用洞察提取工具获取关键结论 insights self.extract_insights(cleaned_data) # 返回结构化结果 return { “topic”: topic, “cleaned_data”: cleaned_data, “insights”: insights, “status”: “success” } def summarize_data(self, data: str) - str: “”“辅助方法总结搜索到的原始数据”“” # 模拟总结逻辑实际可调用LLM实现 return data[:500] “…”# 截取核心内容 def extract_insights(self, cleaned_data: str) - list: “”“辅助方法从总结数据中提取洞察”“” # 模拟洞察提取逻辑实际可调用LLM实现 return [insight.strip() for insight in cleaned_data.split(“.”) if insight.strip()] 核心逻辑Skill Tool基础操作 Flow执行流程 Memory过程记忆 Reasoning决策逻辑二、Skill 如何设计1️⃣ Skill 标准结构推荐范式为保证 Skill 的可复用性、可组合性和可维护性推荐采用以下标准类结构所有自定义 Skill 均继承此基础结构python class Skill: “”“Skill 基础类定义所有 Skill 必须实现的核心方法和属性”“” # Skill 名称唯一标识用于注册和调度 name: str # Skill 描述详细说明功能、适用场景、输入输出格式 description: str def can_handle(self, task: str) - bool: “”“判断当前 Skill 是否能处理目标任务 Args: task: 待处理的任务描述字符串 Returns: bool: 能处理返回True否则返回False “”” raise NotImplementedError(“子类必须实现 can_handle 方法”) def run(self, input: dict, context: dict None) - dict: “”“执行 Skill 核心逻辑完成任务处理 Args: input: 输入参数结构化字典明确key和数据类型 context: 上下文信息可选包含历史执行记录、环境参数等 Returns: dict: 结构化输出结果包含状态、数据等关键信息 “”” raise NotImplementedError(“子类必须实现 run 方法”)2️⃣ 一个真实 Skill 示例代码生成 Skill基于上述标准结构实现一个生产级的代码生成 Skill可直接集成到 Agent 框架中使用python class CodeGenSkill(Skill): “”“Skill生成生产级 Python 代码支持根据需求描述生成可运行代码”“” name “code_generation” description “用于根据用户提供的需求描述生成干净、规范、可运行的生产级 Python 代码支持基础功能开发、工具类编写等场景输入为需求描述字典输出为生成的代码和执行状态。” def can_handle(self, task: str) - bool: “”“判断任务是否为代码生成相关”“” task_lower task.lower() # 包含以下关键词则认为可处理 code_keywords [“code”, “代码”, “编写”, “生成python”, “python代码”] return any(keyword in task_lower for keyword in code_keywords) def run(self, input: dict, context: dict None) - dict: “”“执行代码生成逻辑 Args: input: 输入字典必须包含 key: “requirement”代码需求描述 context: 上下文字典可选包含 key: “code_type”代码类型如工具类、接口等 Returns: dict: 包含生成的代码、执行状态、备注信息 “”” # 校验输入参数 if “requirement” not in input or not input[“requirement”].strip(): return { “code”: “”, “status”: “failed”, “message”: “输入参数缺失必须提供 ‘requirement’代码需求描述” } # 构建 LLM 提示词优化提示词提升代码生成质量 code_type context.get(“code_type”, “通用Python代码”) if context else “通用Python代码” prompt f“” 请生成干净、规范、可运行的生产级{code_type}满足以下需求 {input[‘requirement’]} 生成要求 1. 代码格式规范符合PEP8标准包含必要的注释类、方法、关键逻辑 2. 避免使用过时语法兼容Python 3.8版本 3. 生成完整可运行代码包含必要的导入语句、异常处理 4. 若需求涉及第三方库需在代码注释中说明需安装的库如pip install xxx。 “” # 调用 LLM 生成代码此处模拟 LLM 调用实际可替换为 OpenAI、通义千问等API # 假设 llm 为已实例化的 LLM 客户端 # code llm.generate(prompt) # 模拟生成代码实际场景替换为真实 LLM 调用结果 code f“”# 生成的{code_type} import os def generate_example(): “”“根据需求生成的示例代码”“” try: # 需求核心逻辑实现 print(“需求{input[‘requirement’]}”) return True except Exception as e: print(f执行异常{str(e)}“) return False # 测试代码 if __name__ “__main__”: generate_example() “”” return { “code”: code, “status”: “success”, “message”: “代码生成成功可直接运行若有第三方库依赖请参考代码注释安装”, “code_type”: code_type } 升级版带 Tool Flow多步执行以下 DebugSkill 串联了“错误分析、方案搜索、代码修复”三个步骤其中调用了搜索 Tool具备完整的多步执行逻辑本质是一个 mini-agentpython class DebugSkill(Skill): “”“Skill调试 Python 代码错误串联错误分析、方案搜索、代码修复三个步骤”“” name “debugging” description “用于调试 Python 代码错误输入错误信息输出修复后的代码和错误分析支持调用搜索工具获取解决方案适用于语法错误、运行时错误等场景。” def can_handle(self, task: str) - bool: “”“判断任务是否为代码调试相关”“” task_lower task.lower() return “debug” in task_lower or “错误” in task_lower or “修复代码” in task_lower def run(self, input: dict, context: dict None) - dict: “”“执行代码调试逻辑 Args: input: 输入字典必须包含 key: “error”错误信息字符串、“code”出错代码 context: 上下文字典可选包含 key: “debug_level”调试级别简单/详细 Returns: dict: 包含错误分析、修复方案、修复后代码、执行状态 “”” # 校验输入参数 required_keys [“error”, “code”] if not all(key in input and input[key].strip() for key in required_keys): return { “fix”: “”, “error_analysis”: “”, “status”: “failed”, “message”: f输入参数缺失必须提供 {required_keys} 两个key } error input[“error”] code input[“code”] debug_level context.get(“debug_level”, “详细”) if context else “详细” # Step 1: 分析错误原因调用 LLM 实现模拟逻辑 analysis self.analyze_error(error, code, debug_level) # Step 2: 搜索解决方案调用 Tool此处模拟搜索工具 solutions self.search_solutions(error) # Step 3: 生成修复代码调用 LLM 实现模拟逻辑 fix_code self.generate_fix_code(code, analysis, solutions) return { “fix”: fix_code, “error_analysis”: analysis, “solutions”: solutions, “status”: “success”, “debug_level”: debug_level } def analyze_error(self, error: str, code: str, debug_level: str) - str: “”“辅助方法分析错误原因”“” # 模拟 LLM 错误分析实际替换为真实 LLM 调用 return f{debug_level}错误分析\n错误信息{error}\n出错代码{code[:200]}…\n推测原因语法错误或变量未定义需检查代码拼写和变量声明 def search_solutions(self, error: str) - list: “”“辅助方法调用搜索工具获取解决方案模拟 Tool 调用”“” # 模拟搜索工具返回结果 return [ f解决方案1检查代码中是否有拼写错误错误信息 ‘{error}’ 常见于变量未定义, “解决方案2确保所有导入语句正确相关依赖库已安装”, “解决方案3检查代码缩进是否符合PEP8标准避免缩进错误导致的语法问题” ] def generate_fix_code(self, code: str, analysis: str, solutions: list) - str: “”“辅助方法生成修复后的代码”“” # 模拟 LLM 生成修复代码实际替换为真实 LLM 调用 return f# 修复后的代码\n{code.replace(‘undefined_var’, ‘defined_var’)} # 修复变量未定义问题\n\n# 修复说明\n# {analysis}\n# 参考解决方案{solutions[0]} 核心特点此 Skill 已具备 mini-agent 的能力可自主完成多步决策和执行无需 Agent 反复调度。三、Agent 如何加载 SkillAgent 加载 Skill 主要通过“注册表模式”实现核心是将所有 Skill 注册到统一的注册表中Agent 根据任务动态匹配并调用对应的 Skill以下是三种常用加载方式从简单到高级。1️⃣ 最简单注册表模式基础版通过 SkillRegistry 类管理所有 Skill提供注册和查询功能适用于简单 Agent 系统python class SkillRegistry: “”“Skill 注册表用于管理所有注册的 Skill提供注册和查询功能”“” def __init__(self): # 存储所有注册的 Skill 实例列表形式支持多个同类型 Skill self.skills [] def register(self, skill: Skill) - None: “”“注册 Skill 实例 Args: skill: 继承自 Skill 基础类的实例 “”” # 校验 Skill 实例的合法性必须实现 name、description、can_handle、run 方法 required_attrs [“name”, “description”, “can_handle”, “run”] if not all(hasattr(skill, attr) for attr in required_attrs): raise ValueError(“注册的 Skill 必须继承自 Skill 基础类且实现所有必填方法和属性”) # 避免重复注册根据 name 去重 if not any(s.name skill.name for s in self.skills): self.skills.append(skill) print(fSkill 注册成功{skill.name}“) else: print(fSkill 已注册{skill.name}无需重复注册”) def find_skill(self, task: str) - Skill2️⃣ Agent 调度 Skill基础版调度逻辑Agent 通过注册表获取可处理任务的 Skill并调用其 run 方法执行任务适用于简单场景python class Agent: “”“基础 Agent 类通过 Skill 注册表调度 Skill 完成任务”“” def __init__(self, skill_registry: SkillRegistry): # 关联 Skill 注册表 self.registry skill_registry # 初始化 Agent 上下文存储历史执行记录 self.context {“history”: []} def run(self, task: str, input_data: dict None) - dict: “”“执行任务调度对应的 Skill Args: task: 任务描述字符串 input_data: 任务输入数据结构化字典传递给 Skill 的 run 方法 Returns: dict: 任务执行结果来自 Skill 的输出 “”” # 查找可处理该任务的 Skill skill self.registry.find_skill(task) if not skill: result { “status”: “failed”, “message”: f未找到可处理该任务的 Skill任务{task}“, “data”: None } else: # 调用 Skill 的 run 方法传递输入数据和 Agent 上下文 input_data input_data or {} result skill.run(input_data, self.context) # 记录历史执行记录更新上下文 self.context[“history”].append({ “task”: task, “skill”: skill.name, “result”: result, “time”: datetime.datetime.now().strftime(”%Y-%m-%d %H:%M:%S) }) return result 使用示例基础版python import datetime # 导入必要的模块 # 1. 初始化 Skill 注册表 registry SkillRegistry() # 2. 注册 Skill 实例 registry.register(CodeGenSkill()) registry.register(DebugSkill()) # 3. 初始化 Agent关联注册表 agent Agent(registry) # 4. 执行任务调试代码错误 task “修复 Python 代码错误” input_data { “error”: “NameError: name ‘undefined_var’ is not defined”, “code”: “print(undefined_var)” } result agent.run(task, input_data) # 5. 打印执行结果 print(“任务执行结果”) print(f状态{result[‘status’]}“) print(f错误分析{result[‘error_analysis’]}”) print(f修复后代码\n{result[‘fix’]})3️⃣ 高级LLM 决策选择 Skill推荐版当存在多个可处理任务的 Skill 时通过 LLM 进行智能决策选择最适合的 Skill适用于复杂 Agent 系统如多智能体协作、复杂任务拆解python def select_best_skill(task: str, skills: list[Skill], llm) - Skill 类似实现参考LangGraph Router通过图结构实现 Skill 路由OpenAI Function Calling Router通过函数调用实现 Skill 选择CrewAI Role Selector通过角色分配实现 Skill 调度四、Skill 能干什么Skill 作为 Agent 的核心能力单元可根据功能分为 5 大类覆盖 Agent 常见的所有任务场景其中组合型 Skill 是实现复杂能力如 Devin、Cursor的核心。 Skill 能力分类非常关键1️⃣ 执行型 Skill基础能力核心功能执行具体的操作完成单一或简单组合的任务类似 Tool 但更高级具备规范的输入输出和简单的流程控制。写代码、调试代码如 CodeGenSkill、DebugSkill调用第三方 API如调用微信 API 发送消息、调用支付 API 完成支付执行系统命令如批量处理文件、启动服务 特点侧重“执行”流程相对固定可直接复用。2️⃣ 推理型 Skill核心能力核心功能基于输入信息进行分析、推理、决策不直接执行操作而是输出策略、方案或结论。分析问题如分析用户需求、分析错误原因生成策略如制定任务执行计划、生成营销方案拆解任务如将“开发一个网站”拆解为“设计UI、编写后端、部署上线”等子任务 特点侧重“思考”依赖 LLM 的推理能力是 Agent 智能化的核心。3️⃣ 组合型 Skill最强能力核心功能串联多个 Skill或 Tool形成复杂的执行流程完成大型、复杂的任务是 Devin、Cursor 等产品的核心能力。python class BuildAppSkill(Skill): “”“组合型 Skill完成一个简单 Python 应用的开发、测试全流程”“” name “build_app” description “串联规划、代码生成、测试三个 Skill完成 Python 应用的开发全流程输入为应用需求输出为测试通过的应用代码和测试报告。” def __init__(self): # 初始化依赖的子 Skill self.planning_skill PlanningSkill()# 推理型 Skill任务规划 self.codegen_skill CodeGenSkill() # 执行型 Skill代码生成 self.test_skill TestSkill() # 执行型 Skill代码测试 def can_handle(self, task: str) - bool: return “开发应用” in task.lower() or “build app” in task.lower() def run(self, input: dict, context: dict None) - dict: # Step 1调用规划 Skill生成开发计划 plan self.planning_skill.run(input, context) if plan[“status”] ! “success”: return { “status”: “failed”, “message”: f应用开发规划失败{plan[‘message’]}“, “data”: None } # Step 2调用代码生成 Skill根据计划生成应用代码 code_input { “requirement”: input[“requirement”], “plan”: plan[“plan”] } code_result self.codegen_skill.run(code_input, context) if code_result[“status”] ! “success”: return { “status”: “failed”, “message”: f应用代码生成失败{code_result[‘message’]}”, “data”: None } # Step 3调用测试 Skill对生成的代码进行测试 test_input { “code”: code_result[“code”], “requirement”: input[“requirement”] } test_result self.test_skill.run(test_input, context) # 返回全流程结果 return { “status”: “success”, “plan”: plan[“plan”], “app_code”: code_result[“code”], “test_report”: test_result[“report”], “message”: “应用开发全流程完成测试通过” } 核心特点可无限嵌套、组合形成复杂的能力体系是 Agent 实现“自主完成复杂任务”的关键。4️⃣ 记忆增强 Skill辅助能力核心功能管理 Agent 的记忆短期记忆、长期记忆提供记忆的存储、检索、更新功能增强 Agent 的上下文感知能力。python class MemorySkill(Skill): “”“记忆增强 Skill管理 Agent 的长期记忆基于向量数据库实现记忆检索”“” name “memory_management” description “用于存储、检索 Agent 的长期记忆支持根据查询词检索相关历史记录输入为查询词和记忆数据输出为检索到的记忆结果。” def __init__(self, vector_db): # 关联向量数据库用于存储长期记忆支持语义检索 self.vector_db vector_db def can_handle(self, task: str) - bool: task_lower task.lower() return “记忆” in task_lower or “检索” in task_lower or “历史记录” in task_lower def run(self, input: dict, context: dict None) - dict: # 支持两种操作存储记忆、检索记忆 operation input.get(“operation”, “search”) if operation “store”: # 存储记忆输入需包含 key: “memory_data”记忆内容 if “memory_data” not in input: return {“status”: “failed”, “message”: “存储记忆需提供 ‘memory_data’”} self.vector_db.add(input[“memory_data”]) return {“status”: “success”, “message”: “记忆存储成功”} elif operation “search”: # 检索记忆输入需包含 key: “query”查询词 if “query” not in input: return {“status”: “failed”, “message”: “检索记忆需提供 ‘query’”} history self.vector_db.search(input[“query”], top_k5)# 检索前5条相关记忆 return { “status”: “success”, “memory_results”: history, “count”: len(history) } else: return {“status”: “failed”, “message”: f不支持的操作{operation}仅支持 ‘store’ 和 ‘search’}5️⃣ 多 Agent 协作 Skill高级能力核心功能协调多个 Agent 协同工作分配任务、汇总结果完成单一 Agent 无法完成的复杂任务。python class MultiAgentSkill(Skill): “”“多 Agent 协作 Skill协调多个 Agent 完成复杂任务”“” name “multi_agent_collaboration” description “用于协调多个不同角色的 Agent 协同工作分配子任务汇总各 Agent 的执行结果输出最终任务结果适用于复杂任务拆解后的多 Agent 协作场景。” def __init__(self, agents: dict): # 存储多个 Agentkey 为 Agent 角色value 为 Agent 实例 self.agents agents# 示例{“code_agent”: 代码开发Agent, “test_agent”: 测试Agent} def can_handle(self, task: str) - bool: return “多agent” in task.lower() or “协作” in task.lower() or “分工” in task.lower() def run(self, input: dict, context: dict None) - dict: # 输入需包含任务描述、各 Agent 的子任务分配 if “task” not in input or “subtasks” not in input: return {“status”: “failed”, “message”: “需提供 ‘task’总任务和 ‘subtasks’子任务分配”} subtasks input[“subtasks”] results {} # 遍历子任务分配给对应的 Agent 执行 for agent_role, subtask in subtasks.items(): if agent_role not in self.agents: return {“status”: “failed”, “message”: f不存在角色为 {agent_role} 的 Agent} # 调用对应 Agent 执行子任务 agent_result self.agents[agent_role].run(subtask[“task”], subtask[“input”]) results[agent_role] agent_result # 汇总所有 Agent 的结果生成最终报告 final_report self.summarize_results(input[“task”], results) return { “status”: “success”, “final_report”: final_report, “agent_results”: results } def summarize_results(self, total_task: str, agent_results: dict) - str: “”“辅助方法汇总各 Agent 的执行结果生成最终报告”“” report f总任务{total_task}\n\n各 Agent 执行结果汇总\n for agent_role, result in agent_results.items(): status result[“status”] message result.get(“message”, “无说明”) report f- {agent_role}状态{status}说明{message}\n report “\n任务协作完成所有子任务已执行完毕。” return report五、Skill 如何节省 Token核心重点Token 消耗是 Agent 工程化落地的核心痛点之一尤其是多步任务中Tool 模式的频繁调用会导致 Token 消耗爆炸而 Skill 通过“封装”特性可大幅降低 Token 消耗以下是具体分析。❗ Tool 模式的问题Token 消耗高的根源假设一个复杂任务“帮我写一段 Python 代码 调试错误 优化代码 生成测试用例”Tool 方式❌ 高 Token 消耗Tool 模式下Agent 需反复进行“决策-调用-接收结果-再决策”的循环每一步都需消耗大量 Tokentext LLM 执行流程 1. 分析任务决定调用「代码生成 Tool」→ 消耗 Token提示词 Tool schema 2. 调用「代码生成 Tool」接收返回的代码 → 消耗 TokenTool 响应内容 3. 分析代码决定调用「调试 Tool」→ 消耗 Token提示词 Tool schema 4. 调用「调试 Tool」接收修复后的代码 → 消耗 TokenTool 响应内容 5. 分析修复后的代码决定调用「优化 Tool」→ 消耗 Token提示词 Tool schema 6. 调用「优化 Tool」接收优化后的代码 → 消耗 TokenTool 响应内容 7. 分析优化后的代码决定调用「测试用例生成 Tool」→ 消耗 Token提示词 Tool schema 8. 调用「测试用例生成 Tool」接收测试用例 → 消耗 TokenTool 响应内容 9. 汇总所有结果生成最终回复 → 消耗 Token提示词 结果汇总 每一步都需消耗的 Token 包括提示词告诉 LLM 下一步该做什么、如何调用 ToolTool schema每次调用都需传递 Tool 的输入输出格式重复传递冗余Tool 响应接收 Tool 的返回结果需传递给 LLM 进行下一步分析推理过程LLM 分析结果、决策下一步操作的思考过程 最终 Token 消耗 多步重复消耗 冗余消耗 爆炸式增长 ✅ Skill 方式封装低 Token 消耗Skill 模式下将“写代码 调试 优化 测试”整个流程封装为一个 SkillAgent 仅需调用一次 Skill即可完成所有步骤python # Agent 仅需一次调用即可完成整个复杂任务 result coding_optimize_test_skill.run(task) # Skill 内部自带完整流程无需 Agent 反复决策 def run(self, task): # Step1: 写代码内部调用代码生成逻辑 code self.generate_code(task) # Step2: 调试错误内部调用调试逻辑 fixed_code self.debug_code(code) # Step3: 优化代码内部调用优化逻辑 optimized_code self.optimize_code(fixed_code) # Step4: 生成测试用例内部调用测试生成逻辑 test_case self.generate_test_case(optimized_code) # 返回最终结果 return { “code”: optimized_code, “test_case”: test_case, “status”: “success” } 对 LLM 来说仅需处理一次调用只看到一次 Skill 调用无需反复决策下一步操作无需重复传递 Tool schemaSkill 内部已封装无需暴露给 LLM无需接收中间结果并分析中间步骤由 Skill 内部处理链路长度大幅缩短仅需一次提示词 一次结果返回 本质优化Token 节省的核心逻辑优化点具体说明Token 节省效果减少决策次数无需多轮 function call 决策仅需一次 Skill 调用节省 50% 决策相关 Token减少上下文重复Tool schema 无需重复传递Skill 内部封装所有依赖节省 30% 冗余 Token减少中间输出中间步骤如调试结果、优化过程由 Skill 内部处理不传递给 LLM节省 20% 中间结果传递 Token减少链路长度从“多步调用”简化为“一步调用”缩短 LLM 处理链路节省 10% 链路相关 Token 一个真实对比量化 Token 节省效果Tool 模式复杂任务text Step1调用代码生成 Tool → 500 tokens提示词 schema 响应 Step2调用调试 Tool → 600 tokens提示词 schema 响应 Step3调用优化 Tool → 700 tokens提示词 schema 响应 Step4调用测试生成 Tool → 600 tokens提示词 schema 响应 Step5汇总结果 → 400 tokens提示词 汇总 Total Token 500 600 700 600 400 2800 tokensSkill 模式相同复杂任务text Single call调用 CodingOptimizeTestSkill → 1100 tokens提示词 最终结果 Total Token 1100 tokens 节省 Token 数量2800 - 1100 1700 tokens节省比例达 60%任务越复杂Skill 模式的 Token 节省效果越明显。六、Skill 的进阶设计高手部分基础 Skill 仅能满足简单场景需求对于企业级 Agent 系统需对 Skill 进行进阶设计实现可编排、带状态、分层级的能力体系以下是三种核心进阶方向。1️⃣ Skill 可编排 DAG流程可视化将 Skill 的执行流程设计为有向无环图DAG支持可视化编排可灵活调整步骤顺序、条件分支适用于复杂流程的 Skill 设计如数据处理、业务流程自动化。python class SkillGraph: “”“可编排 DAG 型 Skill支持步骤可视化和灵活编排”“” def __init__(self, name: str): self.name name self.nodes []# 节点每个节点对应一个子 Skill 或操作 self.edges []# 边定义节点之间的执行顺序有向无环 def add_node(self, node_id: str, skill: Skill, description: str “”) - None: “”“添加节点子 Skill”“” self.nodes.append({ “node_id”: node_id, “skill”: skill, “description”: description, “status”: “pending”# 节点状态pending/processing/success/failed }) def add_edge(self, from_node_id: str, to_node_id: str, condition: str “success”) - None: “”“添加边执行顺序支持条件分支”“” # condition节点执行成功success或失败failed时触发下一个节点 self.edges.append({ “from”: from_node_id, “to”: to_node_id, “condition”: condition }) def run(self, input_data: dict, context: dict None) - dict: “”“执行 DAG 流程按节点顺序和条件分支执行”“” # 简化实现按节点添加顺序执行实际可根据 edges 动态调整 results {} for node in self.nodes: node_id node[“node_id”] skill node[“skill”] try: node[“status”] “processing” # 执行当前节点的 Skill result skill.run(input_data, context) results[node_id] result node[“status”] “success” # 更新输入数据将当前节点结果传递给下一个节点 input_data[fnode_{node_id}_result] result except Exception as e: node[“status”] “failed” results[node_id] {“status”: “failed”, “message”: str(e)} # 若节点执行失败根据边的条件决定是否继续执行 if not any(edge[“from”] node_id and edge[“condition”] “failed” for edge in self.edges): break return { “skill_graph_name”: self.name, “node_status”: {node[“node_id”]: node[“status”] for node in self.nodes}, “results”: results, “status”: “success” if all(node[“status”] “success” for node in self.nodes) else “failed” } 类似实现参考LangGraph基于图结构的 Agent 框架天然支持 Skill 编排Airflow数据流程编排工具可用于 Skill 流程管理DAG Engine自定义 DAG 引擎实现 Skill 步骤编排2️⃣ Skill 带状态Stateful Skill基础 Skill 是无状态的每次调用独立不保留历史信息而带状态的 Skill 可保留执行过程中的状态信息如中间结果、执行次数、配置参数适用于需要连续执行、状态维护的场景如长期对话、持续监控。python class StatefulSkill(Skill): “”“带状态的 Skill保留执行过程中的状态信息”“” name “stateful_skill” description “带状态的 Skill可保留执行次数、中间结果等状态信息支持连续执行和状态更新。” def __init__(self): # 初始化状态信息可根据需求扩展 self.state { “execution_count”: 0,# 执行次数 “intermediate_results”: [],# 中间结果 “last_execution_time”: None,# 最后执行时间 “config”: {“threshold”: 0.8}# 配置参数 } def can_handle(self, task: str) - bool: return “状态” in task.lower() or “连续执行” in task.lower() def run(self, input: dict, context: dict None) - dict: # 更新状态执行次数 1 self.state[“execution_count”] 1 # 更新最后执行时间 self.state[“last_execution_time”] datetime.datetime.now().strftime(“%Y-%m-%d %H:%M:%S”) # 执行核心逻辑示例根据输入计算得分判断是否达到阈值 score input.get(“score”, 0) threshold self.state[“config”][“threshold”] result “达标” if score threshold else “未达标” # 保存中间结果 self.state[“intermediate_results”].append({ “input_score”: score, “result”: result, “time”: self.state[“last_execution_time”] }) # 返回结果和当前状态 return { “status”: “success”, “result”: result, “current_state”: self.state.copy()# 返回状态副本避免外部修改 } 核心特点状态信息保存在 Skill 实例中每次调用都会更新状态可用于连续任务、长期监控等场景。3️⃣ Skill 层级Hierarchy分层架构将 Skill 分为不同层级形成“Agent → 高级 Skill → 子 Skill → Tool”的三层架构实现能力的分层管理和复用适用于企业级 Agent 系统如多业务线、多场景复用。text Agent决策层 ├── 高级 Skill业务能力层 │ ├── 子 Skill基础能力层 │ └── Tool执行层 ├── 高级 Skill业务能力层 │ ├── 子 Skill基础能力层 │ └── Tool执行层 └── 高级 Skill业务能力层 ├── 子 Skill基础能力层 └── Tool执行层 三层架构详细说明Agent决策层负责全局决策根据任务选择对应的高级 Skill不直接执行具体操作。高级 Skill业务能力层对应具体的业务场景如“用户需求分析”“产品方案生成”由多个子 Skill 组合而成。子 Skill基础能力层对应具体的基础能力如“文本总结”“数据统计”可复用在多个高级 Skill 中。Tool执行层最底层的原子操作如“搜索”“文件读写”为子 Skill 提供基础支持。 优势分层管理降低耦合度基础 Skill 可跨业务复用高级 Skill 可灵活调整便于维护和扩展。七、最终架构推荐企业级落地参考结合上述设计推荐以下 Agent Skill 架构兼顾灵活性、可扩展性和 Token 效率接近 Cursor / Devin 等产品的核心架构text ┌──────────────┐ │ Agent │ │ (Planner) │# 决策层全局任务规划、Skill 选择 └──────┬───────┘ │ ┌────────▼────────┐ │Skill Router │# 路由层根据 Agent 决策调度对应的 Skill └────────┬────────┘ │ ┌────────────────┼────────────────┐ │ │ │ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ │ Coding│ │ Debug │ │ Research│# 业务能力层高级 Skill │ Skill │普通人如何抓住AI大模型的风口领取方式在文末为什么要学习大模型目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 大模型作为其中的重要组成部分 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 为各行各业带来了革命性的改变和机遇 。目前开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景其中应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。随着AI大模型技术的迅速发展相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业人工智能大潮已来不加入就可能被淘汰。如果你是技术人尤其是互联网从业者现在就开始学习AI大模型技术真的是给你的人生一个重要建议最后只要你真心想学习AI大模型技术这份精心整理的学习资料我愿意无偿分享给你但是想学技术去乱搞的人别来找我在当前这个人工智能高速发展的时代AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料能够帮助更多有志于AI领域的朋友入门并深入学习。真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】大模型全套学习资料展示自我们与MoPaaS魔泊云合作以来我们不断打磨课程体系与技术内容在细节上精益求精同时在技术层面也新增了许多前沿且实用的内容力求为大家带来更系统、更实战、更落地的大模型学习体验。希望这份系统、实用的大模型学习路径能够帮助你从零入门进阶到实战真正掌握AI时代的核心技能01教学内容从零到精通完整闭环【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块内容比传统教材更贴近企业实战大量真实项目案例带你亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事‌02适学人群应届毕业生‌无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型‌非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界‌。业务赋能突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型‌。vx扫描下方二维码即可【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】本教程比较珍贵仅限大家自行学习不要传播更严禁商用03入门到进阶学习路线图大模型学习路线图整体分为5个大的阶段04视频和书籍PDF合集从0到掌握主流大模型技术视频教程涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向新手必备的大模型学习PDF书单来了全是硬核知识帮你少走弯路不吹牛真有用05行业报告白皮书合集收集70报告与白皮书了解行业最新动态0690份面试题/经验AI大模型岗位面试经验总结谁学技术不是为了赚$呢找个好的岗位很重要07 deepseek部署包技巧大全由于篇幅有限只展示部分资料并且还在持续更新中…真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】

更多文章