AI 에이전트란 ​​무엇입니까? 작동 방식, 간단한 에이전트 루프를 사용하여 실행할 수 있음

  1. 홈
  2. 블로그
  3. 인공지능

인공지능

AI 에이전트란 무엇입니까? 작동 방식, 간단한 에이전트 루프를 사용하여 실행할 수 있음

AI 에이전트는 답변 이상의 일을 합니다. 목표를 설정하고, 행동을 선택하고, 결과를 확인하고 계속 진행합니다. 그 안에 무엇이 있는지 배우고, Python에서 작은 루프를 실행하고, 신뢰하기 전에 위험을 이해하십시오.

읽는 시간 9분
AI 에이전트란 ​​무엇입니까? 작동 방식, 간단한 에이전트 루프를 통해 실행할 수 있음

핵심 요약

  • AI 에이전트는 일반적으로 도구와 목표를 사용하여 루프에서 실행되는 언어 모델입니다.
  • 루프는 간단합니다. 결정하고, 실행하고, 결과를 관찰하고 완료될 때까지 반복합니다.
  • 모델은 행동만을 제안합니다. 귀하의 코드에서 이를 실행하며, 여기에서 규칙을 적용합니다.
  • 상담원은 도구를 반복하거나 오용할 수 있으므로 단계 제한을 설정하고 위험한 작업에 대해서는 승인을 요구합니다.

늦은 주문에 대해 챗봇에 문의하면 몇 가지 조언을 얻을 수 있습니다. AI 에이전트에게 문의하면 주문 조회, 지연 확인, 바우처 적용 및 보고를 할 수 있습니다. 차이점은 에이전트가 단 한 번의 응답만 생성하는 대신 조치를 취하고 발생한 일에 대응할 수 있다는 것입니다.

이 용어는 마케팅에서 확장되므로 이 가이드에서는 이러한 시스템이 실제로 어떻게 작동하는지에 대해 설명합니다. 이를 구체적으로 만들기 위해 Python 3.13에서 작은 에이전트 루프를 구축하고 실행했으며, 아래 출력은 해당 실행에서 나온 것입니다. 우리의 “모델”은 실제 AI 모델이 아닌 스크립트된 함수이므로 누구나 루프를 실행하고 테스트할 수 있습니다. 지능이 아닌 제어 구조를 보여줍니다. 기본 사항이 처음이신가요? 먼저 대규모 언어 모델이 무엇인지 읽어보세요.

AI 에이전트란 ​​무엇인가요?

합의된 단일 정의는 없습니다. 현재 실제로 AI 에이전트는 다음에 무엇을 할지 반복적으로 결정하고, 도구를 사용하여 세상에 행동하고, 결과에 따라 조정함으로써 목표를 추구하는 소프트웨어입니다. 일반적으로 의사결정은 대규모 언어 모델에서 이루어집니다.

길을 알려주는 사람과 심부름을 하는 사람의 차이점을 생각해 보세요. 첫 번째 답변은 한 번입니다. 두 번째 사람은 나가서 가게가 문을 닫은 것을 발견하고 다른 가게를 시도한 다음 작업이 완료되었을 때만 돌아옵니다.

챗봇, 워크플로 또는 에이전트?

유형 단계는 누가 결정하나요? 행동할 수 있나요? 예
챗봇 사용자는 매 턴마다 운전합니다. 보통은 그렇지 않다 텍스트의 질문에 답변
고정된 작업흐름 개발자가 미리 예, 설정된 경로에서 각 티켓을 요약한 후 라우팅하세요.
AI 에이전트 런타임 시 모델 예, 한도 내에서 티켓 조사 및 해결

이들은 스펙트럼에 존재하며 많은 유용한 시스템이 혼합되어 있습니다. 핵심 질문은 런타임에 경로가 얼마나 결정되는지입니다.

에이전트 내부에는 무엇이 있습니까?

부품 역할
모델 목표와 지금까지의 상황을 바탕으로 다음 단계를 결정합니다.
지침 따라야 할 목표, 규칙 및 한계
도구 API 검색 또는 호출과 같이 요청할 수 있는 기능
메모리 이전 단계나 과거 세션에서 알고 있는 것
제어 루프 도구를 실행하고 제한을 적용하는 일반 코드

에이전트 루프

  1. 결정합니다. 모델은 목표와 기록을 보고 작업을 선택하거나 완료를 결정합니다.
  2. 동작. 귀하의 코드가 요청된 도구를 실행합니다.
  3. 관찰. 결과는 기록에 추가됩니다.
  4. 목표가 달성되거나 한계에 도달할 때까지 반복합니다.

이것이 대부분의 에이전트의 핵심입니다. 정교함은 주로 이 루프 주변의 모델, 도구 및 보호 장치에 있습니다.

실행할 수 있는 루프

우리의 소규모 에이전트는 지연된 주문을 처리합니다. 두 가지 도구가 있으며 그 중 하나는 비용이 들기 때문에 사람의 승인이 필요합니다.

ORDERS = {
    "A100": {"status": "delayed", "days_late": 6},
    "B200": {"status": "shipped", "days_late": 0},
}

def get_order(order_id):
    return ORDERS.get(order_id, {"error": "order not found"})

def issue_voucher(order_id, amount):
    return {"voucher": f"V-{order_id}", "amount": amount}

TOOLS = {"get_order": get_order, "issue_voucher": issue_voucher}
NEEDS_APPROVAL = {"issue_voucher"}

그리고 여기에 루프 자체가 있습니다. 이는 일반 코드이며 모든 안전 규칙은 모델이 아닌 여기에 적용됩니다.

def run_agent(goal, model, approve, max_steps=5):
    history = []
    for step in range(1, max_steps + 1):
        decision = model(goal, history)
        if "finish" in decision:
            return decision["finish"]

        name, args = decision["tool"], decision["args"]
        if name in NEEDS_APPROVAL and not approve(name, args):
            result = {"denied": True}
        else:
            result = TOOLS[name](**args)

        history.append({"tool": name, "result": result})
    return None   # stopped: step limit reached

실제 모델을 사용하려면 model 함수를 LLM API 호출로 대체하여 도구의 목표, 기록 및 설명을 전달합니다. 루프는 거의 동일하게 유지됩니다.

우리 달리기에서 무슨 일이 일어났나요?

우리는 스크립트 결정 기능을 사용하여 다섯 가지 상황을 시도하고 각 단계를 기록했습니다.

지연된 주문, 바우처 승인됨

step 1: get_order({'order_id': 'A100'}) -> {'status': 'delayed', 'days_late': 6}
step 2: issue_voucher({'order_id': 'A100', 'amount': 200}) -> {'voucher': 'V-A100', 'amount': 200}
step 3: finish -> Sorry for the delay. Voucher V-A100 issued.

각 단계는 이전 단계의 결과를 사용했습니다. 바우처는 지연이 확인된 후에만 고려되었습니다.

승인이 거부된 동일한 주문

step 2: issue_voucher({'order_id': 'A100', 'amount': 200}) -> {'denied': True}
step 3: finish -> Your order is late. A person will review compensation.

인간은 아니오라고 말했고 도구는 실행되지 않았으며 에이전트는 응답을 조정했습니다.

알 수 없는 주문

step 1: get_order({'order_id': 'Z999'}) -> {'error': 'order not found'}
step 2: finish -> I could not find that order.

도구에 명확한 오류 메시지를 제공하면 도움이 됩니다. 실제 모델은 추측이 아닌 이를 읽고 현명하게 반응할 수 있습니다.

막히는 모델

또한 동일한 작업을 영원히 반복하는 잘못된 결정 기능을 교체했습니다.

step 1: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
step 2: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
step 3: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
stopped: step limit reached

에이전트는 실제로 이와 같은 루프에 빠질 수 있으며 실제 모델의 각 단계에는 비용이 듭니다. max_steps이 없었다면 이 일은 결코 끝나지 않았을 것입니다.

도구 작동 방식

가장 많이 오해되는 부분이 바로 이 부분입니다. 언어 모델은 그 자체로는 아무것도 실행할 수 없습니다. 원하는 도구와 인수를 나타내는 구조화된 텍스트를 생성합니다. 귀하의 코드에 따라 실행 여부가 결정됩니다. 그렇기 때문에 루프는 권한, 유효성 검사 및 로깅에 적합한 장소입니다.

모델 공급자는 이를 호출하는 도구나 기능을 제공합니다. MCP(Model Context Protocol)는 모델을 도구 및 데이터에 연결하기 위한 개방형 표준이며 Playwright MCP에 대한 기사에서는 한 가지 용도를 보여줍니다. 모델이 올바르게 선택하려면 도구 이름과 설명이 필요하므로 명확한 도구 이름과 설명을 작성하세요.

팁: 읽기 전용 도구로 시작하세요. 조회만 가능한 에이전트는 전송, 삭제, 결제가 가능한 에이전트보다 훨씬 덜 위험합니다. 도구의 작동 방식을 확인한 후 한 번에 하나의 도구에 쓰기 권한을 추가하세요.

메모리

유형 보류 예
단기 현재 작업 기록 루프의 history 목록
장기 세션 사이에 유지되는 사실 데이터베이스의 사용자 기본 설정
지식 필요할 때 검색되는 문서 RAG 임베딩 사용

긴 작업은 모델의 컨텍스트 창을 초과할 수 있으므로 시스템은 종종 이전 단계를 요약합니다. 요약에서는 세부정보가 손실될 수 있는데, 이는 장기 실행 에이전트가 방향을 벗어날 수 있는 이유 중 하나입니다.

다중 에이전트 시스템

일부 시스템은 기획자, 연구원, 검토자와 같은 여러 전문 에이전트 간에 작업을 분할합니다. 이는 깔끔하게 분할되는 대규모 작업에 도움이 될 수 있습니다. 또한 비용이 추가되고 실패할 수 있는 방법이 많아지며 디버깅이 더 어려워집니다. 좋은 도구를 갖춘 단일 에이전트를 먼저 시도해보고, 명확한 이유가 있는 경우에만 분할하세요.

위험과 한계

  • 잘못된 행동. 챗봇의 실수는 나쁜 문장이다. 상담원의 실수는 이메일이 전송되었거나 기록이 삭제된 것일 수 있습니다.
  • 신속한 삽입. 에이전트가 읽는 웹페이지나 이메일에는 숨겨진 지침이 포함될 수 있습니다. 모든 도구 출력을 명령이 아닌 신뢰할 수 없는 데이터로 처리합니다.
  • 복합 오류. 초기에 작은 오류가 발생하면 이후의 모든 단계를 잘못된 방향으로 보낼 수 있습니다.
  • 비용 및 대기 시간. 각 단계는 또 다른 모델 호출이 될 수 있으므로 작업은 단일 프롬프트보다 훨씬 느리고 비용이 더 많이 들 수 있습니다.
  • 불일관성. 동일한 목표가 실행될 때마다 다른 경로를 택할 수 있으므로 테스트가 더 어려워집니다.
  • 책임. 시스템이 수행하는 작업에 대한 책임은 사람에게 있으므로 기록을 유지하십시오.

중요한 난간

  1. 최소 권한. 각 에이전트에게 필요한 도구와 액세스 권한만 부여하세요.
  2. 데모처럼 비용이 많이 들고, 되돌릴 수 없거나 외부적인 모든 것에 대한 사람의 승인입니다.
  3. 단계, 시간, 지출에 대한 엄격한 제한.
  4. 코드에서 도구 입력을 검증하고 모델에 대한 지침에 의존하지 마십시오.
  5. 모든 단계를 기록하여 어떤 일이 발생한 이유를 확인할 수 있습니다. 모니터링과 관찰 가능성을 참조하세요.
  6. 실제 시나리오로 테스트 실패를 포함합니다. 최종 결과와 개별 답변을 확인하세요. AI 에이전트 모범 사례에 대한 가이드는 배포에 대해 더 자세히 설명합니다.

에이전트를 사용해야 하는 경우

다음과 같은 경우에는 에이전트를 사용하세요. 다음과 같은 경우에는 더 간단한 것을 사용하세요.
단계를 미리 알 수 없습니다. 걸음은 늘 똑같아
작업에는 여러 도구가 필요합니다 하나의 프롬프트로 작업을 수행할 수 있습니다.
결과는 다음에 일어날 일을 변화시킵니다 고정된 작업 흐름이 작동합니다
실수는 저렴하거나 검토 가능합니다. 오류는 비용이 많이 들고 실행 취소가 어렵습니다.

코딩 도우미는 파일을 읽고, 테스트를 실행하고, 오류를 확인하고, 사람이 결과를 검토하면서 다시 시도할 수 있기 때문에 오늘날 가장 성숙한 사례 중 하나입니다. 테스트 스위트는 성공에 대한 명확한 신호를 제공합니다. 신속한 엔지니어링에 대한 가이드는 좋은 에이전트 지침 작성에도 적용됩니다. 잘 안내된 단일 호출이 복잡한 상담원을 능가하는 경우가 많기 때문에 작동할 수 있는 가장 간단한 것부터 시작하십시오.

마무리

AI 에이전트는 모델, 일부 도구, 한계가 있는 루프 등 말보다 덜 신비합니다. 어려운 부분은 코드가 아니라 신뢰입니다. 어떻게 작동하는지 알아보려면 작은 루프를 사용하여 읽기 전용 도구를 사용하여 실제 모델에 연결하고 작동하는 로그를 살펴보세요. 곧 그것이 빛나는 곳과 인간이 필요한 곳을 알게 될 것입니다.

자주 묻는 질문

AI 에이전트란 ​​쉽게 말하면 무엇인가요?

단 한 번의 대답만 하는 것이 아니라, 반복적으로 행동을 선택하고, 도구를 사용하고, 결과를 확인하면서 목표를 향해 나아가는 소프트웨어입니다.

챗봇과 AI 에이전트의 차이점은 무엇인가요?

챗봇은 주로 각 메시지에 응답합니다. 상담원은 여러 단계를 계획하고, 도구를 호출하고, 도중에 발생하는 상황에 따라 과정을 변경할 수 있습니다.

AI 에이전트에는 대규모 언어 모델이 필요합니까?

대부분의 최신 에이전트는 의사 결정을 위해 LLM을 사용하지만, 소프트웨어 에이전트에 대한 더 넓은 개념은 오래되었고 규칙이나 기타 AI 방법을 사용할 수 있습니다.

AI 에이전트는 안전한가요?

그들은 잘못된 행동과 즉각적인 주입을 포함하여 실제 위험을 안고 있습니다. 권한을 제한하고, 위험한 단계에 대한 승인을 요구하고, 엄격한 제한을 설정하고 모든 것을 기록하세요.

AI 에이전트가 개발자나 테스터를 대체할 수 있나요?

오늘은 일반적으로 그렇지 않습니다. 이들은 잘 정의된 많은 작업을 처리할 수 있지만 여전히 목표를 설정하고 결과를 검토하며 결과에 대한 책임을 져야 합니다.

계속 학습하세요

Stack Quora와 작업

테스트, WordPress 또는 SEO에 도움이 필요하십니까?

우리는 팀이 더 나은 소프트웨어를 출시하고 사이트를 성장시킬 수 있도록 돕습니다. 현재 진행 중인 작업을 알려주시면 명확한 다음 단계를 제안해 드리겠습니다.

계속 읽으세요

추가 가이드 테스트, AI 및 최신 개발

이 기사가 마음에 드셨나요? 주제를 선택하고 최신 튜토리얼로 바로 이동하세요.

인공지능

AI 환각 설명: 언어 모델이 사물을 구성하는 이유와 이를 줄이는 방법

AI 환각은 그것이 무엇인지, 언어 모델이 환각을 생성하는 이유, 일반적인 유형, 접지 및 프롬프트를 통해 환각을 줄이는 방법, 그리고 우리가 실행한 간단한 점검에 대해 설명했습니다.

기사 읽기 →
DevOps

환경 변수 설명: .env 파일, 비밀 및 구성이 올바르게 완료되었습니다.

우리가 실행한 Python 예제를 통해 설명된 환경 변수: 읽기 및 설정, 모든 값이 문자열인 이유, .env 파일, 프로세스 상속, 비밀 및 유효성 검사.

기사 읽기 →
소프트웨어 개발

API 속도 제한 설명: 알고리즘, 헤더 및 429 오류 처리

우리가 실행한 시뮬레이션을 통해 설명된 API 속도 제한: 토큰 버킷, 고정 창, 슬라이딩 창, 429 응답, 속도 제한 헤더, 백오프를 사용한 재시도 및 테스트 제한.

기사 읽기 →
테스트 자동화

Python에서 조롱: unittest.mock, 패치 및 테스트를 거짓말로 만드는 실수

Unittest.mock을 사용하여 Python에서 모의, 테스트됨: 모의 및 return_value, 부작용, 이름이 사용되는 패치, 사양 및 자동 사양, 모의 날짜 및 일반적인 실수.

기사 읽기 →
소프트웨어 테스트

코드 커버리지 설명: 회선 커버리지와 분기 커버리지 및 100%의 실제 의미

실제 Coverage.py 실행을 통해 설명되는 코드 적용 범위: 라인, 분기 및 조건 적용 범위, 보고서 읽기, 100% 적용 범위가 여전히 버그를 놓칠 수 있는 이유 및 합리적인 대상.

기사 읽기 →
데이터베이스 및 SQL

SQL의 DELETE vs TRUNCATE vs DROP: 차이점, 롤백 및 사용 시기

테스트된 SQL을 통해 DELETE 대 TRUNCATE 대 DROP에 대해 설명합니다. 각각의 제거, 롤백, 트리거, ID 재설정, 속도 및 PostgreSQL, MySQL, SQL Server 및 SQLite의 차이점.

기사 읽기 →
데이터베이스 및 SQL

SQL 뷰 설명: 예제를 통해 함정 생성, 사용 및 방지

우리가 실행한 쿼리로 설명된 SQL 뷰: 뷰 생성, 실시간 결과, 열 숨기기, 성능, 업데이트 가능하고 구체화된 뷰, 손상된 종속성 및 모범 사례.

기사 읽기 →
소프트웨어 개발

TypeScript 인터페이스와 유형: 실제 차이점, 컴파일러로 테스트

TypeScript 인터페이스 대 유형, 실제 컴파일러로 확인: 둘 다 할 수 있는 것, 하나만 할 수 있는 것, 선언 병합, 확장 대 교차점 및 따라야 할 간단한 규칙.

기사 읽기 →
소프트웨어 개발

Python *args 및 **kwargs 설명: 명확한 예가 포함된 유연한 함수

Python *args 및 **kwargs는 우리가 실행한 코드(패킹 및 언패킹, 매개변수 순서, 키워드 전용 및 위치 전용 인수, 데코레이터 및 일반적인 오류)를 설명했습니다.

기사 읽기 →
소프트웨어 개발

Python Lambda 함수: 구문, 실제 사용 및 사용하지 말아야 할 경우

Python 람다 함수는 구문, 키를 사용한 정렬, 맵 및 필터, 클로저, 후기 바인딩 트랩, 일반 def가 더 나은 선택인 경우 등 우리가 실행한 코드로 설명되었습니다.

기사 읽기 →
인공지능

AI 에이전트란 ​​무엇입니까? 작동 방식, 간단한 에이전트 루프를 사용하여 실행할 수 있음

AI 에이전트란 무엇입니까? 우리가 실행한 작은 Python 루프, 실제 위험 및 간단한 챗봇이 더 나은 선택일 때 에이전트 루프, 도구, 메모리 및 가드레일에 대한 일반 가이드입니다.

기사 읽기 →
DevOps

모니터링과 관찰 가능성: 로그, 지표, 추적을 통한 실제 차이점

모니터링과 관찰 가능성 설명: 알려진 오류와 알려지지 않은 오류, 로그, 지표 및 추적, 결제 사건 안내, 골든 신호, OpenTelemetry 및 유용한 경고.

기사 읽기 →
DevOps

Docker 볼륨과 바인딩 마운트: 컨테이너 데이터를 올바른 방식으로 유지

Docker 볼륨과 바인드 마운트 설명: 컨테이너 데이터가 사라지는 이유, 명명된 볼륨, 바인드 마운트, tmpfs, Compose 예제, 백업, 권한 및 각 사용 시기.

기사 읽기 →
테스트 자동화

TDD와 BDD: 주요 차이점, 두 가지 방식으로 구축된 하나의 기능 및 각 사용 시기

TDD와 BDD는 두 가지 방식으로 구축된 하나의 할인 기능, 즉 우리가 실행한 코드를 사용한 적록 리팩토링, 주어진 시점 시나리오, 도구, 장단점 및 각 사용 시기를 설명합니다.

기사 읽기 →
소프트웨어 개발

Git merge vs rebase: 차이점, 예제, 언제 무엇을 쓸까

Git merge vs rebase를 실제 로그 출력, 비교표, rebase의 황금률, 안전한 팀 워크플로로 설명합니다.

기사 읽기 →
소프트웨어 개발

파이썬 리스트 컴프리헨션: 문법, 예제, 피해야 할 때

파이썬 리스트 컴프리헨션 설명: 문법, 필터링, if-else, 중첩 반복문, 실제 측정 시간, 그리고 일반 for 반복문이 더 나은 경우.

기사 읽기 →
데이터베이스 및 SQL

예제로 쉽게 배우는 SQL JOIN (Inner, Left, Right, Full)

샘플 테이블과 쿼리로 SQL JOIN을 단계별로 이해하세요. INNER, LEFT, RIGHT, FULL, CROSS, SELF와 흔한 실수, 성능 팁까지 정리했습니다.

기사 읽기 →