

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 소프트웨어 에이전트 소개
<a name="overview"></a>

소프트웨어 에이전트의 개념은 1960년대 자율 엔터티의 기반에서 1990년대 초 공식 탐색으로 크게 발전했습니다. 결정론적 스크립트에서 적응형 지능형 애플리케이션에 이르기까지 디지털 시스템이 점점 더 복잡해짐에 따라 소프트웨어 에이전트는 컴퓨팅 시스템에서 자율적이고 컨텍스트를 인식하며 목표 기반 동작을 활성화하기 위한 필수 구성 요소가 되었습니다. 클라우드 네이티브 및 AI 강화 아키텍처의 맥락에서, 특히 생성형 AI, 대규모 언어 모델(LLMs) 및 Amazon Bedrock과 같은 플랫폼이 등장함에 따라 소프트웨어 에이전트는 새로운 기능 및 규모 렌즈를 통해 재정의되고 있습니다.

이 소개는 Hyacinth S. Nwana(Nwana 1996)의 중요 작업 [소프트웨어 에이전트: 개요](https://teaching.shu.ac.uk/aces/rh1/elearning/multiagents/introduction/nwana.pdf)에서 발췌한 것입니다. 소프트웨어 에이전트를 정의하고, 개념적 루트를 논의하며, 토론을 현대적 프레임워크로 확장하여 최신 소프트웨어 에이전트의 세 가지 중요한 원칙인 *자율*성, *비동기성* 및 *기관*을 정의합니다. 이러한 원칙은 소프트웨어 에이전트를 다른 유형의 서비스 또는 애플리케이션과 구분하며, 이러한 에이전트가 분산된 실시간 환경에서 목적, 복원력 및 인텔리전스를 바탕으로 작동할 수 있도록 합니다.

**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>

인간 운영자와 독립적으로 작동하는 기계 또는 프로그램의 개념은 수십 년 동안 시스템 디자이너에게 흥미를 불러일으켰습니다. 사이버넷, 인공 지능 및 제어 시스템의 초기 작업에서는 소프트웨어가 자체 조정 동작을 보이고, 변화에 동적으로 대응하고, 지속적인 인적 감독 없이 운영할 수 있는 방법을 살펴보았습니다.

이러한 아이디어는 지능형 시스템의 핵심 속성으로 *자율성을* 도입하고 *대응* 또는 *실행*만 하는 대신 *결정하고 조치를* 취할 수 있는 소프트웨어 출현의 단계를 설정했습니다.

## 액터 모델 및 비동기 실행
<a name="actor-model"></a>

1970년대에 [인공 지능용 범용 모듈식 ACTOR 격식](https://www.ijcai.org/Proceedings/73/Papers/027B.pdf)(Hewitt et al. 1973) 논문에 도입된 *액터 모델은* 분산된 메시지 기반 계산을 고려하기 위한 공식 프레임워크를 제공했습니다. 이 모델에서 액터는 비동기식 메시지를 전달하여 독점적으로 통신하고 확장 가능하고 동시적이며 내결함성 시스템을 지원하는 독립 엔터티입니다.

액터 모델은 현대 에이전트 설계에 지속적으로 영향을 미치는 세 가지 주요 속성을 강조했습니다.
+ 상태 및 동작 격리
+ 개체 간의 비동기 상호 작용
+ 작업의 동적 생성 및 위임

이러한 속성은 분산 시스템의 요구 사항에 부합하며 클라우드 네이티브 환경에서 소프트웨어 에이전트의 운영 특성을 미리 구성했습니다.

## 분산형 인텔리전스 및 다중 에이전트 시스템
<a name="distributed-intelligence"></a>

1960년대 이후 컴퓨팅 시스템이 더 상호 연결됨에 따라 연구원은 분산형 인공 지능(DAI)을 탐색했습니다. 이 필드는 여러 자율 개체가 시스템 전체에서 협업하거나 경쟁적으로 작동하는 방식에 중점을 두었습니다. DAI는 각 에이전트가 로컬 목표, 지각 및 추론을 가지고 있지만 더 광범위하고 상호 연결된 환경에서도 운영되는 다중 에이전트 시스템을 개발했습니다.

의사 결정이 분산되고 에이전트 상호 작용으로 인해 새로운 동작이 발생하는 분산 인텔리전스에 대한 이러한 비전은 최신 에이전트 기반 시스템을 구상하고 구축하는 방법의 핵심으로 남아 있습니다.

# Nwana의 유형과 소프트웨어 에이전트의 부상
<a name="nwana-typology"></a>

1990년대 중반 소프트웨어 에이전트 개념의 공식화는 지능형 시스템의 진화에서 전환점을 보여주었습니다. 이 공식화에 대한 가장 영향력 있는 기여 중 하나는 Hyacinth S. Nwana의 논문인 [Software Agents: An Overview](https://teaching.shu.ac.uk/aces/rh1/elearning/multiagents/introduction/nwana.pdf)** **(Nwana 1996)입니다.이 논문은 다양한 차원에서 소프트웨어 에이전트를 분류하고 이해하기 위한 최초의 포괄적인 프레임워크 중 하나를 제공했습니다.

이 백서에서 Nwana는 소프트웨어 에이전트 연구 상태를 설문 조사하고 에이전트가 정의되고 구현되는 방식에서 점점 더 다양해지는 것을 식별합니다. 이 백서는 일반적인 개념 프레임워크의 필요성을 강조하고 주요 기능에 따라 에이전트를 분류하는 유형을 제안합니다. 학계 및 산업의 대표적인 에이전트 시스템을 검토하고, 에이전트를 기존 프로그램 및 객체와 구분하며, 에이전트 기반 컴퓨팅의 과제와 기회를 간략하게 설명합니다.

Nwana는 소프트웨어 에이전트가 모놀리식 개념이 아니라 정교함과 기능의 스펙트럼을 따라 존재한다는 점을 강조합니다. 이 유형은 이러한 환경을 명확히 하고 향후 설계 및 연구를 안내하는 역할을 합니다.

Nwana는 소프트웨어 에이전트를 특정 환경에서 지속적이고 자율적으로 작동하는 소프트웨어 엔터티로 정의합니다.이 엔터티는 종종 다른 에이전트와 프로세스에서 서식합니다. 이 정의는 두 가지 주요 특성을 강조합니다.
+ 연속성: 에이전트는 지속적인 사람의 개입 없이 시간이 지남에 따라 지속적으로 작동합니다.
+ 자율성: 에이전트는 환경에 대한 인식에 따라 독립적으로 결정을 내리고 조치를 취할 수 있습니다.

이 정의는 Nwana의 에이전트 유형과 결합되어 에이전트의 기본 특성으로서 위임된 권한(자율성을 통해)과 적극성을 강조합니다. 직접 명령에만 응답하는 대신 다른 엔터티를 대신하여 독립적으로 행동하고 목표를 추구하는 동작을 시작하는 에이전트의 능력을 강조하여 에이전트와 하위 루틴 또는 서비스를 구분합니다.

## Nwana의 에이전트 유형
<a name="attributes"></a>

다양한 유형의 에이전트를 추가로 구분하기 위해 Nwana는 6가지 주요 속성을 기반으로 분류 시스템을 도입합니다.
+ 자율성: 에이전트는 사람 또는 다른 사람의 직접적인 개입 없이 작동합니다.
+ 소셜 기능: 에이전트는 통신 메커니즘을 사용하여 다른 에이전트 또는 사람과 상호 작용합니다.
+ 반응성: 에이전트가 환경을 인식하고 적시에 응답합니다.
+ 적극성: 에이전트는 이니셔티브를 통해 목표 지향적인 행동을 보입니다.
+ 적응성 및 학습: 에이전트는 경험을 통해 시간이 지남에 따라 성능을 개선합니다.
+ 이동성: 에이전트가 다양한 시스템 환경 또는 네트워크를 이동할 수 있습니다.

## 유형에서 최신 에이전트 원칙으로
<a name="bridge"></a>

Nwana의 작업은 분류 체계이자 컴퓨팅 커뮤니티가 소프트웨어에서 진화하는 형태의 기관을 평가할 수 있는 기본 렌즈 역할을 했습니다. 자율성, 능동성 및 사용자 또는 시스템을 대신하여 행동하는 개념에 중점을 둔 그는 이제 에이전트적 행동을 고려하는 토대를 마련했습니다.

특히 생성형 AI, 서버리스 인프라 및 다중 에이전트 오케스트레이션 프레임워크가 증가함에 따라 기술과 환경이 변경되었지만 Nwana 작업의 기본 인사이트는 여전히 관련이 있습니다. 초기 에이전트 이론과 소프트웨어 에이전트의 세 가지 최신 원칙 사이에 중요한 다리를 제공합니다.

# 최신 소프트웨어 에이전트의 세 가지 원칙
<a name="three-pillars"></a>

오늘날의 AI 기반 플랫폼, 마이크로서비스 아키텍처 및 이벤트 기반 시스템의 맥락에서 소프트웨어 에이전트는 표준 서비스 또는 자동화 스크립트와 구별되는 세 가지 상호 의존적 원칙, 즉 자율성, 비동기성 및 기관으로 정의할 수 있습니다. 다음 그림과 후속 다이어그램에서 삼각형은 현대 소프트웨어 에이전트의 세 가지 원칙을 나타냅니다.

![\[최신 소프트웨어 에이전트의 세 가지 원칙은 기관, 자율성, 비동기성입니다.\]](http://docs.aws.amazon.com/ko_kr/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>

자율성, 비동기성 및 기관 원칙을 통해 시스템은 분산 환경에서 지능적이고 적응적이며 독립적으로 작동할 수 있습니다. 이러한 원칙은 수십 년간의 개념 및 아키텍처 진화에 기반을 두고 있으며, 이제 오늘날 구축되고 있는 대부분의 최첨단 AI 시스템을 뒷받침합니다.

생성형 AI, 목표 지향 오케스트레이션 및 다중 에이전트 협업의이 새로운 시대에서는 소프트웨어 에이전트를 진정으로 에이전트로 만드는 요소를 이해하는 것이 중요합니다. 기관을 정의 특성으로 인식하면 자동화를 넘어 목적이 있는 자율 지능 영역으로 전환하는 데 도움이 됩니다.