AI Agent 微洞察

cc72215188f074b2a068b0b2ee770347.png

 詹姆士·邦德无疑是世界上最酷、最厉害的Agent(“Agent Double-O Seven",007)。他聪慧机敏,任何复杂的任务,只需知道一个大致的目标(比如拯救世界),他就能给出计划,并一步步地去达成。他独立自主,灵活机动,不拘一格解决问题,不走平常路;他百折不回,一计不成又生一计,直到完成任务;他善用各种武器和工具,使自己更加无所不能。他更是善于沟通社交,在获取情报的同时,甚至俘获美女芳心 ...

一直以来,人们也希望通过人工智能来构建具备高度智能的AI Agent(智能体),来帮助人们完成复杂的任务,Alexa、SIRI和小冰,小度、小爱和小艺同学... 人们不断尝试。在这一轮以大语言模型发展为核心的AI技术大跃进中,智能体技术的发展也正一路高歌,突飞猛进。

什么是AI Agent

“Intelligent Agents:theory and practice"一文发表于1995年。但在30年后的今天回看当年,文章的作者Michael Wooldridge, Nicholas R. Jennings和他们所引用文献的相关思想者令人肃然起敬。文中预言:

“Agent-based Computing (ABC) is likely to be the next significant breakthrough in software development"

文章并对AI Agent进行了定义。

弱AI Agent

“AI Agent”是具有以下属性的基于硬件或(更常见)基于软件的计算机系统:

  • 自主性(Autonomy):智能体在没有人类或其他人直接干预的情况下运作,并对他们的行为和内部状态有某种控制;

  • 社交能力(Social Ability):智能体通过某种智能体通信语言与其他智能体(可能还有人类)进行交互;

  • 反应性(Reactivity):智能体感知他们的环境(可能是物理世界、通过图形用户界面进行交互的用户、其他智能体的集合、互联网,或者可能是所有这些的组合),并及时响应发生在环境里的变化;

  • 主动性(Pro-activeness):智能体不只是简单地响应环境而行动,他们能够通过采取主动行动来表现出目标导向的行为。

强AI Agent

对于一些从事人工智能工作的研究人员来说,“Agent”概念比上述的含义更强烈、更具体: 作为智能体的计算机系统,除了具有上述属性之外,还具备人类的另外一些特征,具备与知识、信念、意图和义务等类似于人类心理和情绪的相关特征。

AI Agent的其他特性

文献中还总结了一些人们认为AI Agents应该具有的其他特性:

  • 移动性(Mobility):是指智能体在网络中有移动的能力;

  • 真实性(Veracity):是指智能体不会故意传达其明知有错的虚假信息。

  • 仁慈(Benevolence):是假设智能体之间没有相互冲突的目标,因此每个智能体都会尽力去做所要求的事情。

  • 理性(Rationality):智能体将采取行动以实现其目标,并且不会采取以阻止其目标实现的行动。

    46293620443c8b84e7c5ccfecc09df7b.jpeg

似乎AI Agent具备詹姆士·邦德的几乎所有属性,除了和美女相伴这一点以外。

大语言模型时代AI Agent的发展

在2023年10月《智能体技术“简史”》的一文中,我们初步总结了大语言模型爆发之后AI Agent的发展。从代理到智能体,从单智能体(如Auto-GPT)到多智能体(如斯坦福小镇SmallVille),从功能有限的多智能体协作(MetaGPT)到通用的多智能体开发框架(AutoGen),智能体技术迅速发展的趋势。

半年以后,我们看到AI Agent依然方兴未艾。智能体技术一方面更加丰富、多样化,另一方面,有逐渐形成范式的趋势。以下是我们的一些相关洞察:

流水线/工作流的配置和管理

很多提供开发者进行智能体开发的平台、框架和工具的工作集中在对LLM驱动的流水线或工作流(Workflow)的配置和管理上。特别是在:

  1. 工作流集成(Workflow Integration):如何与第三方系统、工具或API连接;如何嵌入不同的基础大模型,对大模型进行一定程度的微调或某种定制。

  2. 工作流编排(Orchestration):如何简单、灵活、可视化、无码或低代码地生成工作流,并提供权限管理,运行监控等系统能力。

比如,

flowiseai (flowiseai.com)‍

ff04619f51045fa0079cf442aed91430.png

FlowiseAI通过与LangChain和LlamaIndex的集成,进而与100多个工具连接,因而具备存储(Memory)、数据载入(DataLoader)、缓存(Cache)、任务管理(Moderation)、向量数据库等能力。同时,用户可以选择使用多种云服务(Amazon AWS,Microsoft Azure和Google GCP等) 并选用多种大语言模型(Llama2, Mistral, Vicuna, Orca, Llava等)。FlowiseAI支持本地大模型运行的多种方式(HuggingFace, Ollama, LocalAI, Replicate等)。

 Vellum.ai

efd953a733b3e7a69be45a49a461549b.png

Vellum.ai在提供类似的工作流编排和集成能力之外,比较有特色的是具备更直观的可视化能力(见上图,工作流上每一节点的下方可以的直观地看到任务执行的结果)和一些提示工程(Prompt Engineering)的功能。开发者可以通过平台提供的工具来实验和比较不同提示所产生的结果。

humaan.ai

27c87423d3495f37269ac3adc496e49d.png

humaan.ai尚未正式发布。在提供工作流编排和工具集成之外。它的特别之处在于提供简化大语言模型微调能力:只需提供私有数据集, 用户就可以无码微调大模型,高效调参。

Dify.ai

329c68f2c7c0a616e6702bd87b39879c.png

围绕着对Agent工作流的编排,Dify则提供了更加系统化、产品化和工程化的能力。请参见Dify架构图和dify.ai网站,本文不展开讨论。‍‍

0112c6b6d36f6a50b27012fb052a0f83.png

可编程的工作流(Programmable Workflow)‍‍‍‍‍

Dify Agent DSL

前面提到Dify Agent DSL(Domain Specific Language),是用于描述工作流。Dify的工作流可以通过DSL语言文件在不同系统之间导入导出。(https://dify.ai/blog/dify-ai-workflow)

DSPy(https://dspy-docs.vercel.app/)

斯坦福大学自然语言处理团队(NLP Group)研发的DSPy是一个以算法优化大语言模型提示和权重的框架。当使用大语言模型构建复杂系统,通常必须:

  1. 将复杂问题分解为多个步骤来解决,

  2. 尽力为大语言模型提供高质量提示,调整提示直到每个步骤都能单独工作良好,

  3. 调整细节,使各步骤之间能很好地协同,

  4. 通过运行实例来进一步调整每个步骤的细节,以及

  5. 使用实例来微调较小的大语言模型以降低成本。

当前,这是一个困难又混乱的开发过程。每次要更改工作流、大语言模型或数据时,所有提示(或微调步骤)都可能需要更改。

DSPy希望通过编程,而不是通过难以系统化、标准化和量化的提示工程,来控制和优化大模型的性能。‍‍

  1. 首先,它将流程的每个步骤的程序(模块)与参数(LM提示和权重)分开。

  2. 其次,DSPy引入了优化器"optimizers",DSPy优化器是大语言模型驱动的算法,Optimizer将同一程序通过“编译”成多个不同的指令、不同的few-shots提示和/或不同的微调模型的参数权重。这样,给定Agent性能指标(metric)要求,通过Optimizer可以调整大语言模型调用的提示和/或权重。

‍大语言模型的选择和微调,以及提示工程的优化,都被DSPy Optimizers隐藏起来,是使用LLM解决艰巨任务的更系统的方法。

多智能体协作框架

CrewAI(CrewAI.com)

前面所提到的工作,根本上还是将AI系统视为传统软件机器,将LLM视为具有智能特性的软件模块,工作核心集中在对工作流(Workflow)的处理上。而CrewAI则给出了一个简单清晰的大语言模型驱动的技术框架。以扮演不同角色的多个AI Agent为中心,通过对(1)各Agent的角色、(2)各Agent完成的任务、(3)各角色所能使用的工具、(4)各角色之间沟通的方式和(5)执行任务的先后顺序和其他多个方面进行描述(多通过大语言模型提示的方式),CrewAI即可完成复杂的任务。‍‍‍‍‍‍‍‍‍

c65a5af58838359ca992772fd69a09ed.png

 图:一个会议准备的多智能体协作案例,其中以一个由Researcher,Industry Analyst,Meeting Strategyst和Writer四个角色组成的智能体小队(即Agent Crew),他们有着各自的目标(goal),使用不同的工具(Tools),完成各自的任务(Tasks) ... 在对整个智能体小队的定义和描述完成后,CrewAI框架背后的大语言模型就可以根据用户的输入和智能体的定义描述生成Workflow,协调各智能体,在必要时调用各自的工具,一步一步地完成任务。

AutoGen(https://microsoft.github.io/autogen/)‍

AutoGen已逐渐发展成为具备更强的动态规划能力的智能体框架。和CrewAI类似,AutoGen以多智能体为核心,各智能体分工合作,并可以使用外部工具等能力;较CrewAI更进一步,各智能体执行任务的反馈(Reflection)被搜集起来,用于影响系统后续规划,从而使得系统具有因整体环境变化而变化的智能动态规划的能力,体现出更强的灵活性、适应性和智能。

d9200f0486dad678d4168981b666af5f.jpeg

图:从单个智能体的视角看AutoGen。Agent有反馈(Reflection)的能力,并以此影响未来的任务计划(Planning),从而实现系统的自动优化(Self Refine)。

通过Reflection+Planning, AutoGen采取的强化学习的思想 (强化学习技术可以训练软件做出决策,以实现最佳结果。它模仿了人类为实现目标所采取的反复试验的学习过程),闭环实现了吴恩达所说的智能体推理(Agentic Reasoning)能力。
‍‍‍

63ecc2683d0211beefc5947edc9b1e6b.jpeg

图:吴恩达在2024年4月份的一次演讲里,阐述了Agentic Reasoning的概念和相关的设计模式(Design Patterns)‍‍‍‍‍‍‍‍

总结

具备自主性、主动性、反应性和社会性的软件“詹姆士·邦德”--智能体技术快速发展:从完成特定任务到完成通用任务,从单智能体应用到多智能体协作框架,从传统软件视角出发的流水线定制、编程优化到以类人智能体为核心的反应性行动规划  ...  

智能体技术正渐入佳境。

### 关于 AI Agent 的技术调研 #### 数据分析与市场洞察 在数据驱动决策的时代,AI Agent 能够广泛收集并处理来自不同渠道的数据。这种能力让企业可以更深入地理解市场需求和技术发展趋势,进而优化自身的运营策略和产品开发方向[^1]。 #### 行业规模与发展预测 借助强大的数据分析功能,AI代理不仅能够评估当前市场的状况,还可以对未来的发展趋势做出预估。对于特定行业而言,这意味着可以获得有关市场规模、增长率以及竞争对手动态等方面的关键见解,有助于制定更加精准有效的商业计划[^2]。 #### 工作原理概述 AI Agent 的核心运作机制由四个主要部分组成:感知、分析、决策及执行。具体来说: - **感知**:通过各种类型的传感器来捕捉外界信息; - **分析**:对所获得的数据进行深层次解读,识别其中蕴含的价值; - **决策**:依据分析得出的结果形成合理的判断,并规划下一步动作; - **执行**:最终将上述决定付诸实践,达成预定目标。 这一系列流程紧密相连,共同保障了AI Agent能够在复杂多变的实际场景下稳定可靠地发挥作用[^3]。 #### 应用实例探讨 以AutoGPT为例,作为一款先进的自动化平台,它展示了如何利用最新的研究成果构建高效的智能体系统,进一步推动了该领域的快速发展。此外,还有其他多种流行的框架可供研究者们参考借鉴[^4]。 #### 商业价值创造 除了支持传统的业务改进外,AI Agent 还能激发全新的商业模式和服务理念。比如,通过对新兴技术和消费偏好的持续监测,可以帮助公司及时抓住潜在的增长机遇,推出创新型的产品或服务方案[^5]。 ```python # 示例代码展示了一个简单的模拟AI Agent架构 class SimpleAIAgent: def __init__(self, sensors=None): self.sensors = sensors or [] def perceive(self): data = [] for sensor in self.sensors: data.append(sensor.read()) return data def analyze(self, raw_data): processed_info = process_raw_data(raw_data) # 假设有一个函数用于处理原始数据 return processed_info def decide(self, info): action_plan = determine_best_action(info) # 同样假设存在这样的逻辑判定方法 return action_plan def act(self, plan): execute_plan(plan) def main(): agent = SimpleAIAgent([TemperatureSensor(), HumiditySensor()]) observations = agent.perceive() insights = agent.analyze(observations) strategy = agent.decide(insights) outcome = agent.act(strategy) if __name__ == "__main__": main() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值