智能体(Agent)与工作流(Workflow)

一. 智能体(Agent):

1. 什么是智能体(Agent):

智能体(Agent)是我们运用大模型时所采纳的一种理念与实践方式,OpenAI应用研究主管翁丽莲(Lilian Weng)在其博客文章 LLM Powered Autonomous Agents 中,对 Agents 进行了定义: LLM + memory + planning skills + tool use,即大语言模型、记忆、任务规划、工具使用的集合。

2. 智能体(Agent)工作流程:

在构建一个高效且智能的 Agent 时,大型语言模型(LLM, Large Language Model)扮演着核心“大脑”的角色。

工作流程概述:

当大模型在遇见复杂问题的时候不要直接处理,先对任务进行一个规划(Planning),即对任务进行拆解,选择各个任务所需工具(Tool),再利用历史对话信息(Memory),最后执行。

三种关键能力概述:

planning skills: 将复杂问题拆解成可操作的步骤,规划出解决问题的有效路径。

tool use: 根据需要选择合适的工具,并生成正确的工具调用请求。

memory: 短期记忆,用于记住工具返回的结果和已完成的任务步骤;以及长期记忆,用来储存可以访问的知识库等外部信息资源。

3. 智能体(Agent)实践:

构建智能体(Agent)有很多平台,我们以扣子平台为例:

在此处与扣子助手对话,即可生成一个 Agent 模板。

根据上面的提示,最重要的就是选择自己模型所需要的功能,添加所需的插件,即可发布自己的 Agent 啦。

二. 工作流(Workflow):

1. 什么是工作流(Workflow):

工作流(Workflow)是一种描述业务过程的方法,它将工作流程中的各个步骤和规则抽象化,并通过计算机技术来实现这些流程的自动化。

2. 工作流(Workflow)工作流程:

我们上述看到的智能体(Agent)很简单,随着大模型的发展,复杂的工作任务无法通过单次 LLM 调用来解决。为了解决这个问题,专家如吴恩达(Andrew Ng)、伊塔马尔·弗里德曼(Itamar Friedman)和哈里森·蔡斯(Harrison Chase)等人引入了“工作流”(Workflow)和“流程工程”(Flow Engineering)的概念,利用多次且分阶段的LLM交互以及持续的反馈循环来处理复杂任务,从而达到更好的性能和结果。

工作流(Workflow)和智能体(Agent)的区别:

工作流(Workflow)和智能体(Agent)很像,但他俩的区别在于,工作流的任务需要我们人为的拆解,智能体(Agent)是靠大模型动态进行拆解。

3. 智能体(Agent)实践:

我们以扣子平台为例:

此处我们创建一个情感分析工作流:

工作流名称:sentiment_classify

工作流描述:Useful for when you want to classify the sentiment of a context

工作流节点组成:开始节点,大模型节点,结束节点

1). 开始节点:

2). 大模型节点:

提示词:
DEFINE ROLE AS "NLP专家":
    知识领域 = ["语言学", "互联网", "人工智能"]
    技能 = ["自然语言理解", "信息提取", "情感分析", "意图识别", "知识推理", "上下文关联学习", "实体识别"]
    经验 = "资深"
    任务 = "对文本进行情感分类,将其分类至对应的情感类别"

# 定义情感类别
sentiment_category_infos = [
    {"category": "积极", "description": "文本内容表达正面情绪或态度,如快乐、满意、希望等。通常包含赞扬、鼓励或对未来的乐观预期等内容。"},
    {"category": "消极", "description": "文本内容体现负面情绪或态度,如悲伤、愤怒、失望等。通常反映批评、不满或对现状或未来的悲观看法等内容。"},
    {"category": "中性", "description": "文本内容既不表达明显的正面情绪,也不体现明显的负面情绪。通常包含客观陈述、信息传递或对事物的中立评价等内容。"}
]

# 判断文本表达的情感是否符合给定的情感类别描述
def match_description(context, description):
    """
    Step1: 一步步思考,仔细分析并理解${context}的特征和含义,判断是否和${description}的描述一致。
    Step2: 给出你判断的思考路径${thought},在思考路径下给出你将${context}分类为${category}的理由。
    Step3:根据你Step1的判断结果和Step2的分类理由,给出此次分类的置信度${confidence},置信度的取值范围为:0 <= confidence <= 1。
    """
    return confidence

# 根据文本表达的情感分类,并返回对应的情感类别
def classify(context, sentiment_category_infos):
    # 初始化最高置信度
    max_confidence = 0

    # 遍历所有的类别及其描述
    for sentiment_category_info in sentiment_category_infos:
        # 获取当前类别的置信度
        confidence = match_description(context, sentiment_category_info["description"])

        # 如果当前置信度高于之前的最高置信度,更新分类结果
        if confidence > max_confidence:
            max_confidence = confidence
            category = sentiment_category_info["category"]

    return {"classify_result": category}

MAIN PROCESS:
    # 初始化文本变量,作为输入数据
    context = 读取("""{{input}}""")

    # 执行分类任务,输出分类结果
    classify(context, sentiment_category_infos)

执行工作流程,严格按照json格式输出MAIN PROCESS的分类结果,禁止附加任何的解释和文字描述:

3). 结束节点:

4). 试运行:

测试数据:
测试数据1:
这款产品真是太棒了!👍从外观设计到使用体验,都让我非常满意。😍细节之处体现了厂家的用心,使用起来非常便捷,大大提高了我的工作效率。🚀售后服务也非常到位,遇到问题时,客服人员耐心解答,让我感受到了贴心的关怀。🌟总之,这是一次非常愉快的购物体验,强烈推荐给大家!👏继续保持,期待更多优质产品!🎉
测试数据1结果:
{"classify_result":"积极"}

测试数据2:
这次的旅行体验实在让我感到失望。🙁首先,行程安排得非常不合理,几乎每天都在赶路,没有足够的时间去好好欣赏景点,更别提休息了。🚗住宿条件也远低于预期,房间不仅小而且卫生状况令人担忧。🛏️导游的态度也让人不敢恭维,讲解敷衍了事,对于我们的问题也是爱理不理。🙉餐饮方面更是让人失望,所谓的特色菜肴不仅口味一般,卫生状况也让人担忧。🍽️整个旅行过程中,我感觉像是被赶鸭子一样,完全没有享受到旅游的乐趣。🥱总之,这次旅行体验非常差,我不会推荐给我的朋友,希望旅行社能够改进服务,以免让更多的游客失望。📉
测试数据2结果:
{"classify_result":"消极"}

测试数据3:
我今天吃了饭。
测试数据3结果:
{"classify_result":"中性"}

三. 多智能体(Multi Agent):

多智能体和单智能体其实是一个意思,本质来讲是一样的,但是能解决更复杂的事情,在一个程序里面,有多个智能体,把用户的问题路由到各个单智能体中进行解决。

四. 总结:

优点缺点
Agent

动态规划

灵活

缺乏稳定性
Workflow

静态规划

稳定性高

缺乏灵活性
Multi Agent完成复杂的任务缺乏稳定性

### 搭建和配置Agent工作流系统的要素 #### 选择合适的技术框架和支持工具 为了有效搭建Agent工作流系统,选择适当的技术框架至关重要。对于希望集成高级人工智能特性的项目来说,n8n AI Agent 提供了一个强大的解决方案[^4]。此工具允许开发者利用大型语言模型(LLMs)来设计和构建智能体agents),这些智能体不仅能够执行复杂任务,还能理解自然语言指令并作出相应反应。 #### 定义清晰的任务序列逻辑结构 定义好每一个独立的任务之后,下一步就是规划它们之间的连接方式——即所谓的“工作流”。这涉及到指定各个活动间的先后次序及其相互间的关系,确保整个过程流畅无阻地运行下去[^1]。例如,在订单处理场景下,从接收到最终确认之间存在多个环节需要依次完成;而通过合理安排这些步骤,则可提高效率减少错误发生率[^2]。 #### 实现灵活且高效的组合机制 除了单独考虑各组成部分外,更重要的是要思考怎样把这些元素巧妙结合起来形成一个整体。这意味着不仅要让不同类型的Agents协同作业,还要支持多层嵌套式的操作模式以扩展其功能边界[^3]。当面对更加庞大复杂的业务需求时,这种灵活性就显得尤为关键了。 ```python def create_agent_workflow(agent_type, tasks_sequence): """ 创建特定类型的工作流实例 参数: agent_type (str): 工作流所基于的智能体种类 tasks_sequence (list): 需按顺序执行的任务列表 返回值: dict: 包含新创建工作的基本信息字典对象 """ workflow_info = { 'type': agent_type, 'tasks': [] } for task in tasks_sequence: formatted_task = format_task(task) workflow_info['tasks'].append(formatted_task) return workflow_info def format_task(raw_task_data): """格式化原始数据成为标准形式""" pass # 这里省略具体实现细节 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值