

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 软件代理简介
<a name="overview"></a>

软件代理的概念已从1960年代的自治实体基础发展到20世纪90年代初的正式探索，已经有了长足的发展。随着数字系统变得越来越复杂（从确定性脚本到自适应的智能应用程序），软件代理已成为在计算系统中实现自主、情境感知和目标驱动行为的必不可少的基石。在云原生和人工智能增强架构的背景下，尤其是随着生成式人工智能、大型语言模型 (LLMs) 和 Amazon Bedrock 等平台的出现，软件代理正在通过新的能力和规模视角重新定义。

本导言摘自 Hyacinth S. Nwana 的开创性著作《[软件代理：概述](https://teaching.shu.ac.uk/aces/rh1/elearning/multiagents/introduction/nwana.pdf)》（Nwana 1996）。它定义了软件代理，讨论了它们的概念根源，并将讨论扩展到当代框架中，定义了现代软件代理的三个总体原则：*自主*性、*异步性和*代理*性*。这些原则将软件代理与其他类型的服务或应用程序区分开来，使这些代理能够在分布式的实时环境中以有目的、弹性和智能的方式运行。

**Topics**
+ [从自治到分布式智能](autonomy-to-ai.md)
+ [Nwana 的类型学和软件代理的兴起](nwana-typology.md)
+ [现代软件代理的三大支柱](three-pillars.md)

# 从自治到分布式智能
<a name="autonomy-to-ai"></a>

在*软件代理*一词进入主流之前，早期的计算研究探讨了*自主数字实体的*概念，即能够独立行动、对输入做出反应并根据内部规则或目标做出决策的系统。这些早期的想法为后来成为代理范式奠定了概念基础。（有关历史时间表，请参阅本指南后面[的 “软件代理的演变](evolution.md)” 一节。）

## 早期的自治概念
<a name="early-concepts"></a>

几十年来，独立于人类操作员的机器或程序的概念一直吸引着系统设计人员。控制论、人工智能和控制系统的早期研究研究了软件如何表现出自我调节行为、动态响应变化以及在没有持续的人为监督的情况下运行。

这些想法将*自主性*引入了智能系统的核心属性，为软件的出现奠定了基础，这种软件可以*做出决定和采取行动*，而不仅仅是做出*反应*或*执行*。

## actor 模型和异步执行
<a name="actor-model"></a>

1970年代，《[人工智能的通用模块化ACTOR形式主义》（Hewitt等人，1973年）中引入的*演员模型*为](https://www.ijcai.org/Proceedings/73/Papers/027B.pdf)思考去中心化、消息驱动的计算提供了一个正式的框架。在此模型中，参与者是独立的实体，它们仅通过传递异步消息进行通信，并支持可扩展、并发和容错的系统。

演员模型强调了继续影响现代代理设计的三个关键属性：
+ 状态和行为的隔离
+ 实体之间的异步交互
+ 动态创建和委派任务

这些属性符合分布式系统的需求，并预先配置了云原生环境中软件代理的操作特征。

## 分布式情报和多智能体系统
<a name="distributed-intelligence"></a>

20世纪60年代后，随着计算系统的互联程度越来越高，研究人员探索了分布式人工智能（DAI）。该领域侧重于多个自治实体如何在系统中协同工作或竞争合作。DAI催生了多智能体系统的发展，在这个系统中，每个代理都有局部目标、感知和推理，但也可以在更广泛、相互关联的环境中运行。

这种分布式智能愿景仍然是构思和构建现代代理系统的核心，在这种愿景中，决策是去中心化的，而新出现的行为则源于代理的互动。

# Nwana 的类型学和软件代理的兴起
<a name="nwana-typology"></a>

1990年代中期，软件代理概念的正式化标志着智能系统演变的转折点。对这种形式化最具影响力的贡献之一是Hyacinth S. Nwana的开创性论文《[软件代理：****概述》（Nwana 1996），该论文提供了最早对各个维度的软件代理](https://teaching.shu.ac.uk/aces/rh1/elearning/multiagents/introduction/nwana.pdf)进行分类和理解的综合框架之一。

在这篇论文中，Nwana调查了软件代理研究的现状，并发现代理的定义和实施方式差异越来越大。该论文强调了需要一个共同的概念框架，并提出了一种根据代理的关键能力对其进行分类的类型学。它回顾了学术界和工业界的代表性代理系统，将代理与传统程序和对象区分开来，并概述了基于代理的计算所面临的挑战和机遇。

Nwana强调说，软件代理不是一个单一的概念，而是以各种复杂性和功能存在的。该类型学有助于阐明这种格局并指导未来的设计和研究。

Nwana将软件代理定义为在特定环境中持续自主运行的软件实体，该环境通常由其他代理和进程居住。该定义强调了两个关键特征：
+ 连续性：该代理会随着时间的推移持续运行，无需持续的人为干预。
+ 自主权：代理人有能力根据其对环境的感知做出决定并独立采取行动。

该定义与Nwana的代理类型学相结合，强调委托权限（通过自主权）和主动性是代理的基本特征。它通过突出代理和子例程或服务来区分代理和子例程或服务，代表另一个实体独立行动，以及为追求目标而发起行为的能力，而不仅仅是响应直接命令。

## Nwana 的特工类型学
<a name="attributes"></a>

为了进一步区分不同类型的药物，Nwana引入了基于六个关键属性的分类系统：
+ 自主权：代理无需人类或其他人的直接干预即可运行。
+ 社交能力：代理人使用沟通机制与其他代理人或人类互动。
+ 反应性：代理感知其环境并及时做出响应。
+ 主动性：代理主动采取行动，表现出以目标为导向的行为。
+ 适应性和学习能力：随着时间的推移，代理会通过经验提高其性能。
+ 移动性：代理可以在不同的系统环境或网络之间移动。

## 从类型学到现代代理原理
<a name="bridge"></a>

Nwana的工作既是分类法，也是基础视角，计算机界可以通过它来评估软件领域不断演变的代理形式。他强调自主权、主动性以及代表用户或系统行事的概念，为我们现在所认为的代理行为奠定了基础。

尽管技术和环境发生了变化，尤其是随着生成式人工智能、无服务器基础设施和多代理编排框架的兴起，但Nwana工作的基础见解仍然具有重要意义。它们在早期代理理论和软件代理的三大现代支柱之间架起了关键的桥梁。

# 现代软件代理的三大支柱
<a name="three-pillars"></a>

在当今人工智能驱动的平台、微服务架构和事件驱动系统的背景下，软件代理可以通过三个相互依赖的原则来定义，这些原则将它们与标准服务或自动化脚本区分开来：自治、异步性和代理。在下图和随后的图表中，三角形代表了现代软件代理的这三个支柱。

![\[现代软件代理的三大支柱：代理、自治、异步性。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/agentic-ai-foundations/images/three-pillars.png)


## 自治
<a name="autonomy"></a>

现代代理独立运作。他们根据内部状态和环境背景做出决策，无需人工提示。这使他们能够实时对数据做出反应，管理自己的生命周期，并根据目标和情境输入调整自己的行为。

自主权是代理行为的基础。它允许代理在没有持续监督或硬编码控制流的情况下运行。

## 异步性
<a name="asynchronicity"></a>

代理基本上是异步的。这意味着它们可以在事件、信号和刺激发生时做出反应，而不必依赖阻塞呼叫或线性工作流程。此特性支持可扩展、无阻塞的通信、分布式环境中的响应能力以及组件之间的松散耦合。

通过异步性，代理可以参与实时系统并流畅高效地与其他服务或代理进行协调。

## 以代理为决定性原则
<a name="agency"></a>

自治和异步性是必要的，但仅凭这些功能不足以使系统成为真正的软件代理。关键的差异化因素是代理，它引入了：
+ 以目标为导向的行为：代理人追求目标并评估实现目标的进展情况。
+ 决策：代理根据规则、模型或习得的策略评估选项并选择行动。
+ 委托意图：代理代表个人、系统或组织行事，具有内在的目标感。
+ 情境推理：代理整合其环境的记忆或模型，以智能地指导行为。

自主和异步的系统可能仍然是一种被动服务。它之所以成为软件代理，是因为它能够有意图和目的行事，具有*代理能力。*

## 有目的的机构
<a name="agency-purpose"></a>

自治、异步和代理原则使系统能够在分布式环境中智能、自适应和独立地运行。这些原则植根于数十年的概念和架构演变，现在是当今正在建造的许多最先进的人工智能系统的基础。

在这个生成式人工智能、以目标为导向的编排和多代理协作的新时代，了解是什么使软件代理真正具有代理作用至关重要。将代理视为决定性特征可以帮助我们超越自动化，有目的地进入自主智能领域。