尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

AI应用开发中的Skill概念解析:从提示词到多智能体工作流

AI应用开发中的Skill概念解析:从提示词到多智能体工作流 1. 从“技能”到“Skill”一个概念的进化与混淆最近在跟几个做AI应用开发的朋友聊天发现一个挺有意思的现象大家嘴里都在说“Skill”但仔细一问每个人理解的“Skill”可能完全不是一回事。有人觉得Skill就是写个提示词让大模型能回答特定领域的问题有人觉得Skill是写个Python脚本自动化处理数据还有人觉得Skill是像Coze、Dify这些平台里那种可以拖拽、连接、编排多个AI智能体的复杂工作流模块。这种混乱不是偶然的。这个词本身太通用了就像“App”一样可以指代从计算器到《原神》的任何东西。在AI技术特别是大语言模型LLM驱动的应用开发浪潮里“Skill”这个词被从不同的技术栈、不同的产品里“借用”过来赋予了新的、但边界模糊的含义。结果就是新手开发者一头雾水老手之间沟通也常常需要先对齐一下“你说的Skill是哪个Skill”。所以我觉得有必要把市面上常见的几种“Skill”掰开揉碎了讲清楚。这不仅仅是名词解释更重要的是理解它们背后的技术逻辑、适用场景以及如何选择。毕竟当你老板说“给我们的产品加个XX Skill”时你至少得知道该打开哪个编辑器或者登录哪个平台。2. 第一层作为“提示词工程”的Skill——让大模型学会“专项技能”这是最基础也是最广泛的一层理解。在这里Skill ≈ 精心设计的提示词Prompt。它的核心思想是通过一段结构化的文本指令引导大语言模型在特定领域或任务上表现出超越其通用能力的、更专业、更稳定的行为。2.1 本质上下文学习与角色扮演大语言模型本质上是一个基于海量文本训练出来的概率预测机器。它的“通用智能”来源于训练数据的广度。而提示词工程就是为我们与这个“通用智能体”的对话设定一个非常具体的“上下文”和“角色”。举个例子一个通用的模型可能知道“翻译”这个概念。但如果你直接问它“把‘Hello World’翻译成法语”它可能给出答案也可能扯到别的上去格式也不固定。但如果你给它这样一个“Skill提示词”你是一位专业的法语翻译助手。请严格遵循以下规则 1. 只处理中英法三语互译任务不回答其他问题。 2. 输出格式为原文[输入文本] - 目标语种[语种] - 译文[翻译结果]。 3. 确保翻译准确、地道符合目标语种的表达习惯。 现在请翻译Hello World模型在接收到这个完整的上下文后就会被“塑造”成一个专业的翻译角色其输出就会高度符合你的预期。这个包含了角色定义、规则约束、任务格式和示例的完整文本块就是一个典型的“提示词型Skill”。2.2 实操构建一个可用的提示词Skill构建这类Skill远不止是写一句指令那么简单。一个好的提示词Skill通常包含以下几个模块我以一个“技术文档总结Skill”为例角色与边界定义你是一位拥有10年经验的资深技术文档工程师。你的专长是将冗长、复杂的技术文档如API文档、系统架构说明浓缩为结构清晰、重点突出的摘要。 你的工作范围仅限于技术文档总结不处理创意写作、文学分析或通用问答。核心指令与步骤请按以下步骤处理用户提供的文档 1. **识别文档类型与核心受众**判断这是API文档、故障排查指南还是设计说明书并明确摘要的目标读者是开发者、运维还是产品经理。 2. **提取核心要素**找出文档的终极目的、关键功能点、必要的先决条件、核心的操作步骤或接口、以及最重要的注意事项或警告。 3. **结构化重组**将提取的要素组织成以下固定格式 - **文档标题**[原文标题] - **核心目的**[一两句话说明这个文档解决了什么问题] - **目标读者**[适合谁看] - **前置要求**[需要提前了解的知识或准备好的环境] - **核心内容摘要**[分条目列出最关键的功能、步骤或接口说明] - **关键警告/限制**[必须注意的坑、性能限制或兼容性问题] 4. **语言与风格**使用简洁、客观的技术语言避免营销性词汇。直接陈述事实。输出格式规范你的输出必须是纯文本并严格遵循上述“结构化重组”中的标题和条目格式。不要添加任何“好的我将...”、“根据您的要求”等前缀。示例Few-shot Learning用户输入[一篇关于配置Redis缓存的官方文档片段] 助理输出 - **文档标题**Redis 7.0 持久化配置指南 - **核心目的**指导用户如何配置RDB和AOF两种持久化策略以防止数据丢失。 - **目标读者**系统管理员、后端开发者 - **前置要求**已安装Redis 7.0具有服务器配置文件修改权限。 - **核心内容摘要** 1. RDB快照通过save指令配置触发快照的条件如900 1表示900秒内至少1个键被改动。 2. AOF追加文件在配置文件中设置appendonly yes来启用appendfsync选项控制刷盘策略always/everysec/no。 3. 混合持久化推荐RDB做全量备份AOF记录增量需同时配置两者。 - **关键警告/限制** - AOF的always策略最安全但性能最差everysec是平衡选择。 - RDB在最后一次快照后的数据有丢失风险。 - 内存不足时持久化进程可能导致服务短暂阻塞。把以上所有部分组合成一个完整的文本块保存为一个.txt或.md文件这就是一个可复用、可分享的“提示词Skill”。你可以把它直接输入给ChatGPT、Claude或任何兼容的聊天界面也可以集成到调用这些模型API的应用程序中。注意提示词的稳定性是玄学。同样的提示词在不同模型、甚至同一模型的不同时间效果可能有波动。因此这类Skill需要反复测试和调优并且严重依赖所选模型本身的能力上限。3. 第二层作为“可执行脚本”的Skill——赋予AI“动手能力”如果提示词是让AI“动脑”和“动口”那么脚本就是让AI“动手”。在这一层Skill ≈ 一段在特定环境中可以自动运行的代码脚本。它通常用于处理大模型不擅长或无法直接完成的任务比如数学计算、访问数据库、调用第三方API、操作本地文件系统等。3.1 为什么需要脚本Skill大模型的“肢体缺陷”大语言模型是纯粹的“文本推理引擎”。它擅长理解和生成文本但它的“世界”仅限于你给它的输入文本和它自己生成的输出文本。它无法执行一次真正的算术运算它是在“猜”答案不是计算。获取2024年5月27日之后的实时信息除非接入搜索。读取你电脑D盘上的一个Excel文件。调用微信的API给你的好友发一条消息。当任务涉及到这些“外部世界”的操作时我们就需要为AI配上“肢体”——也就是脚本。AI大模型负责理解用户的自然语言指令将其“翻译”或“规划”成具体的、可执行的脚本命令或参数然后由系统环境来执行这个脚本最后将执行结果返回给AI由AI组织成自然语言回复给用户。3.2 典型场景与实现剖析场景一数据分析与处理用户说“帮我分析一下上个月销售数据sales_april.csv找出销售额最高的三个产品类别。”AI的角色理解意图识别出需要读取sales_april.csv文件进行分组聚合按产品类别汇总销售额排序取前三。脚本Skill的实现AI会生成或调用一个预先写好的Python脚本模板并将文件名、聚合字段产品类别、计算字段销售额、排序规则降序、取数TOP 3作为参数填入。底层脚本Python示例import pandas as pd def analyze_sales(file_path, group_by, value_column, top_n3): try: df pd.read_csv(file_path) result df.groupby(group_by)[value_column].sum().nlargest(top_n) return result.to_dict() except Exception as e: return fError: {str(e)}这个函数就是一个“数据分析Skill”。AI不需要自己计算它只需要正确地调用这个函数并传入参数。场景二系统运维自动化用户说“检查一下服务器192.168.1.100的磁盘使用率如果超过80%就发个告警。”AI的角色理解这是一个需要连接远程服务器、执行Shell命令、进行条件判断、并可能触发另一个通知操作的任务。脚本Skill的实现AI会规划一个工作流1) 通过SSH连接服务器2) 执行df -h命令3) 解析输出提取特定磁盘如/的使用率百分比4) 与阈值80%比较5) 如果超过调用发送邮件的API或脚本。底层脚本Shell/Python混合#!/bin/bash # 这是一个简化的示例实际需要处理密钥、错误等 usage$(ssh user192.168.1.100 df -h / | awk NR2 {print \$5} | sed s/%//) if [ $usage -gt 80 ]; then python3 send_alert.py --server192.168.1.100 --disk-usage$usage% fi这个Bash脚本配合一个Python发送脚本就构成了一个“服务器监控Skill”。场景三与外部工具集成如绘图、查询用户说“画一个展示过去一周日活跃用户数的折线图。”AI的角色理解需要“绘图”并且数据是“过去一周的日活”。它需要先获取数据可能来自数据库然后生成绘图指令。脚本Skill的实现AI调用一个“数据查询Skill”获取数据再调用一个“绘图Skill”例如使用matplotlib或plotly库的脚本将数据传递给绘图脚本生成图片文件或Base64编码最后返回给用户。关键点这里的Skill可能是链式调用的。AI充当了“调度员”和“翻译官”的角色。3.3 开发与集成要点开发脚本型Skill核心是创建稳定、安全、接口清晰的函数或命令行工具。接口设计脚本应该有明确的输入参数和输出格式最好是JSON。例如你的数据分析函数应该接受文件路径、列名等参数并返回一个结构化的字典或列表而不是直接打印一堆文字。这便于AI或其他程序解析结果。错误处理脚本必须健壮。文件不存在怎么办API调用失败了怎么办要有清晰的错误码或异常信息返回让AI能理解发生了什么并决定是重试还是告诉用户“任务失败原因是...”。安全性这是重中之重。绝对不能让AI拥有无限制执行任意脚本的能力。通常需要通过“沙箱”Sandbox或“工具调用”Function Calling机制来管理。沙箱在一个隔离的、资源受限的环境里运行脚本防止它破坏主系统。工具调用AI只能从一份预先定义好的“工具清单”Tool List中选择并调用。这份清单就是你允许AI使用的所有Skill。AI在对话中会说“我需要调用‘查询数据库’这个工具参数是...”然后由背后的系统去安全地执行对应的脚本。依赖管理你的脚本依赖哪些Python包需要什么系统环境这些都需要明确说明和妥善管理通常通过requirements.txt或Docker镜像来固化。脚本型Skill极大地扩展了AI的能力边界但它也引入了复杂性开发成本、安全风险和维护负担。它不再是单纯的文本游戏了。4. 第三层作为“多智能体工作流节点”的Skill——系统的交响乐这是目前最复杂、也最强大的一层理解。在这一层Skill ≈ 一个在多智能体协作系统中具有特定功能、可被编排的标准化模块或“智能体”Agent。这里的“智能体”可能是一个专精于某项任务的小型AI或一个大模型的不同提示词化身而“工作流”就是将这些智能体像流水线一样连接起来完成复杂任务。4.1 从单兵作战到团队协作想象一下你要完成“制作一份关于新能源汽车的市场分析报告”这个任务。单提示词Skill你给ChatGPT一个超长的提示词希望它一次性完成资料搜集、数据分析、趋势判断、报告撰写所有步骤。结果往往不尽人意容易遗漏、混乱或浅尝辄止。脚本Skill组合你可以写一系列脚本一个爬虫脚本抓数据一个分析脚本处理数据再让AI根据结果写报告。但这需要你手动串联且中间结果需要人工干预。多智能体工作流你可以设计一个工作流包含以下“Skill智能体”信息搜集Agent接收“新能源汽车市场”这个主题自动联网搜索最新行业报告、新闻、财报并整理成摘要。数据分析Agent接收摘要和原始数据链接调用Python脚本进行数据清洗、可视化生成图表和关键指标。策略分析Agent基于搜集的信息和分析结果运用特定的商业分析框架如SWOT、PEST进行深度解读。报告撰写Agent整合前三个Agent的输出按照标准的商业报告格式摘要、市场概述、竞争格局、趋势预测、建议生成完整的文档草稿。润色审核Agent对草稿进行语法检查、风格统一并确保没有事实性错误。每个Agent都是一个独立的“Skill”它们通过预先定义好的输入输出接口比如信息搜集Agent输出“结构化摘要”这正是数据分析Agent需要的输入进行通信。你只需要在Coze、Dify、LangChain等平台上用拖拽的方式把这些“Skill节点”连接起来定义好启动条件整个系统就可以自动运行。4.2 核心平台与实现模式目前实现多智能体工作流的主流平台和框架都采用了这种“Skill即节点”的理念Coze扣子/ Dify这类低代码AI应用平台将“Skill”具象化为工作流画布上的一个节点。节点类型极其丰富大模型节点配置不同的模型和提示词这就是一个“思考型Skill”。代码节点直接写Python代码这是一个“执行型Skill”。工具节点预置了搜索、知识库查询、文本处理、HTTP请求等这是“工具型Skill”。条件判断/循环节点控制流程的逻辑Skill。 你通过连线将上一个节点的输出作为下一个节点的输入。一个复杂的客服机器人工作流可能包含“意图识别Skill”、“查知识库Skill”、“情感分析Skill”、“生成回复Skill”、“调用订单API Skill”等多个节点的协作。LangChain / LlamaIndex这类开发框架将“Skill”抽象为链Chain或工具Tool。你可以用代码灵活地组合它们。一个Tool就是一个可被AI调用的函数对应脚本Skill。一个Chain是将多个LLM调用、工具调用按顺序组合起来的流程。你可以创建一个SequentialChain顺序链这就是一个简单的工作流。更高级的你可以创建Agent它配备了一系列Tools并能根据目标自主决定调用哪个Tool以及调用的顺序。这个Agent本身就是一个更高级的、具备决策能力的“复合Skill”。AutoGen / CrewAI这类框架明确提出了“多智能体协作”的概念。在这里每个Skill就是一个专属的智能体Agent。你定义一个UserProxyAgent用户代理、一个AssistantAgent助理、一个WebSearchAgent搜索专家。你为每个Agent设定系统提示词角色、能力、目标它们之间可以通过自然语言进行对话和协作共同完成任务。这模拟了一个真实的专家团队。4.3 设计一个多智能体工作流Skill的实战思考假设我们要在Coze平台上构建一个“社交媒体热点追踪与摘要生成”工作流。这个工作流本身就是一个高阶的“复合Skill”。工作流设计节点Skill分解触发节点定时触发器每天上午9点启动或关键词触发监听到特定事件。热点搜集Skill智能体A实现使用“搜索工具”节点配置搜索API如Serper关键词为预定义的热门领域如“AI”、“新能源汽车”。输出一列包含标题、链接、摘要的搜索结果列表。内容获取与清洗Skill智能体B实现使用“HTTP请求”节点遍历上一步的链接抓取网页正文。连接一个“文本处理”节点去除广告、导航等噪音。输出纯净的正文内容列表。内容分析与摘要Skill智能体C实现使用“大语言模型”节点提示词为“你是一位社交媒体分析师。请对以下文章进行摘要并提取核心观点、情感倾向正面/中性/负面和可能的热度趋势。输出为JSON格式{“summary”: “...”, “key_points”: [...], “sentiment”: “...”, “trend”: “...”}”。输入智能体B输出的正文内容。输出结构化分析结果列表。报告整合Skill智能体D实现使用“代码”节点Python将智能体C输出的所有JSON结果进行聚合、排序按热度或情感强度生成一份统一的日报。输出一份格式优美的Markdown报告。推送Skill智能体E实现使用“HTTP请求”节点调用企业微信/钉钉/Slack的Webhook API将报告发送到指定群组。在这个工作流中每个节点都是一个“小Skill”它们各司其职通过数据流串联形成了一个强大的“大Skill”。你作为设计者不需要关心智能体B如何清洗HTML也不需要手动把摘要结果粘贴到报告里你只需要设计和连接这些“乐高积木”。5. 如何选择与融合从需求出发的Skill架构思维面对这三种形态的Skill我们该如何选择答案不是三选一而是如何根据你的需求将它们有机地融合起来。一个简单的决策框架任务是否纯粹是语言理解和生成且逻辑简单是-使用提示词Skill。例如角色扮演聊天、文本风格转换、简单问答、基础内容生成。它的优点是零代码、快速迭代、成本极低。否- 进入下一步。任务是否需要与“外部世界”交互计算、查询、控制是且交互逻辑固定、独立-使用脚本Skill。例如计算器、查询数据库、调用固定API、处理特定格式文件。将它作为AI的“工具”来调用。是且交互逻辑复杂需要多个步骤和条件判断- 进入下一步。任务是否复杂到需要多个“专家”分工协作或者需要处理不确定的动态流程是-采用多智能体工作流Skill。例如复杂的客服场景、端到端的数据分析报告生成、跨系统的自动化流程。这是最强大的模式但设计和维护成本也最高。融合实践工作流中的“提示词”与“脚本”在实际的复杂系统中这三者往往是共存的。一个典型的多智能体工作流其内部可能就是这样的结构工作流层负责宏观的任务分解和流程控制。智能体节点层每个智能体节点其“大脑”通常就是一个精心设计的提示词Skill定义该智能体的角色、能力和行为准则。工具调用层当智能体需要执行具体操作时它会调用一个或多个脚本Skill封装好的函数或API。例如在上述社交媒体分析工作流中智能体C摘要分析的核心就是一个提示词Skill分析师角色和摘要指令。智能体B内容获取和E推送的核心则是脚本SkillHTTP请求和数据处理代码。整个流水线的编排则是工作流Skill的体现。所以不要再孤立地看待“Skill”。它更像一个光谱从最简单的文本指令提示词到可执行代码块脚本再到由多个指令和代码块组成的自动化系统工作流/多智能体。理解这个光谱能帮助你在构建AI应用时选择正确的技术形态从“能用”走向“好用”和“强大”。
返回列表