30

Agent 설계 5대 원칙

Day 1: AI Agent 개념 & 제조 적용

학습 목표

좋은 Agent와 나쁜 Agent의 차이를 구분한다 제조 현장 Agent 설계 시 필수 고려사항을 안다 Tool 설계의 핵심 원칙을 이해한다

왜 Agent가 실패할까?

"Agent 만들었는데 쓸모가 없어요." 제조 현장에서 가장 많이 듣는 말이다.

대부분 설계 단계에서 실패한다.


원칙 1: 하나의 Agent, 하나의 역할

나쁜 설계:

만능 Agent
  - 설비 관리
  - 품질 관리
  - 재고 관리
  - 인사 관리
  - 회계 관리
  → Tool 50개, 프롬프트 3000토큰
  → LLM이 혼란 → 엉뚱한 Tool 호출

좋은 설계:

설비 관리 Agent (Tool 6개)
  - get_equipment_status
  - get_alarm_history
  - search_manual
  - get_maintenance_log
  - get_maintenance_schedule
  - create_work_order

품질 관리 Agent (Tool 5개)
  - get_quality_data
  - get_defect_breakdown
  - get_spc_chart
  - search_quality_standard
  - create_quality_report

"Tool이 10개를 넘으면 LLM이 흔들린다." 역할을 명확히 나누자.


원칙 2: Tool 이름이 곧 문서다

LLM은 Tool의 이름과 설명만 보고 선택한다.

나쁜 Tool 이름:

- func1()
- getData()
- process()
- doSomething()

좋은 Tool 이름:

- get_equipment_status()     -> 설비 상태 조회
- check_inventory()          -> 재고 확인
- search_manual()            -> 매뉴얼 검색
- get_alarm_history()        -> 알람 이력 조회
- create_work_order()        -> 작업지시 생성

이름 규칙:

접두사의미예시
get_조회 (읽기)get_equipment_status
check_확인/검증check_inventory
search_검색search_manual
create_생성 (쓰기)create_work_order
update_수정update_maintenance_plan
calculate_계산calculate_oee

원칙 3: Tool 설명은 상세하게

나쁜 설명:

{
  "name": "get_equipment_status",
  "description": "설비 상태 조회"
}

좋은 설명:

{
  "name": "get_equipment_status",
  "description": "특정 설비의 현재 가동 상태를 조회합니다. 설비 ID를 입력하면 가동/비가동 상태, 현재 가동률, 활성 알람 목록, 마지막 점검일을 반환합니다. 설비 ID는 'CNC-001', 'PRESS-005' 형식입니다. 와일드카드(*)를 사용하면 라인 전체를 조회할 수 있습니다."
}

LLM은 설명이 구체적일수록 정확하게 Tool을 선택한다.


원칙 4: 에러 처리는 필수

제조 현장에서 시스템은 자주 불안정하다. 네트워크 끊김, MES 점검, 데이터 누락...

나쁜 에러 처리:

def get_equipment_status(equipment_id):
    result = mes_api.get(equipment_id)  # MES 다운이면?
    return result                        # 크래시!

좋은 에러 처리:

def get_equipment_status(equipment_id: str) -> str:
    try:
        result = mes_api.get(equipment_id)
        if not result:
            return f"설비 {equipment_id}를 찾을 수 없습니다. ID를 확인해주세요."
        return format_status(result)
    except ConnectionError:
        return "MES 시스템에 연결할 수 없습니다. 네트워크 상태를 확인해주세요."
    except TimeoutError:
        return "MES 응답 시간 초과. 잠시 후 다시 시도해주세요."

Tool이 에러를 문자열로 설명하면, LLM이 사용자에게 적절히 안내할 수 있다.


원칙 5: 안전 장치를 넣어라

제조 현장의 Agent는 실제 시스템을 건드린다. 잘못된 작업지시가 나가면 생산 라인이 멈춘다.

위험도별 Tool 분류:

[읽기 전용 - 안전]
  get_equipment_status, search_manual, check_inventory
  → 자유롭게 호출 가능

[데이터 수정 - 주의]
  update_maintenance_plan, create_quality_report
  → 로그 기록 필수

[시스템 제어 - 위험]
  create_work_order, emergency_stop, adjust_parameters
  → 반드시 사람 확인 후 실행
# 위험한 Tool에는 확인 단계를 넣는다
def create_work_order(details: str) -> str:
    """작업 지시를 생성합니다. 실행 전 반드시 사용자 확인을 받습니다."""
    # 미리보기만 생성
    preview = format_work_order_preview(details)
    return f"""
작업 지시 미리보기:
{preview}

[주의] 이 작업 지시를 실제로 생성하시겠습니까?
'승인'이라고 입력하면 생성됩니다.
"""

5대 원칙 요약

#원칙핵심
1단일 역할Tool 10개 이내
2명확한 이름동사_목적어 형식
3상세한 설명입출력, 형식, 예시 포함
4에러 처리문자열 반환으로 안내
5안전 장치위험 Tool은 확인 단계

"Agent는 코드가 아니라 설계로 성패가 갈린다."

AI로 학습하기 — 꿀팁
Agent 설계 원칙 제조 현장 적합성 점검AI 학습 팁

AI가 제시한 Agent 설계 5대 원칙이 제조 현장의 안전 규정 및 ISO 표준과 충돌하지 않는지 검증하세요.

AI Agent 설계 5대 원칙을 제조 현장(특히 안전 규정, IEC 62443 산업 보안, ISO 9001 품질 관리)에 적용할 때 각 원칙이 기존 규정과 충돌하거나 보완이 필요한 부분을 구체적으로 짚어줘. 특히 '자율 행동 범위'와 '인간 승인 요구' 원칙의 현장 적용 한계를 설명해줘.
이 팁이 도움이 됐나요?