eBook

MATLAB 및 Simulink를 활용한 에이전틱 AI 안내서

개요: MATLAB 및 Simulink를 활용한 에이전틱 AI

생성형 AI는 우리가 컴퓨터와 상호작용하는 방식을 계속해서 변화시키고 있습니다. 과거에는 LLM에 공학 문제 해결을 요청하면 코드를 여기저기 복사하고, 오류를 직접 수정하며, AI가 해당 분야를 이해하기를 기대해야 했습니다. 하지만 더 큰 효과는 추론하고 행동하며 MATLAB 및 Simulink 워크플로를 자율적으로 실행할 수 있는 AI 시스템에서 나타납니다. 이러한 변화를 가능하게 하는 것이 바로 에이전틱 AI입니다.

이 안내서는 해결책을 제안하고 이를 실행하는 AI 시스템을 구축하는 방법을 보여줍니다. MCP(모델 컨텍스트 프로토콜)와 새로운 에이전틱 툴킷을 통해 LLM을 MATLAB 및 Simulink에 연결함으로써, 코드를 작성하고, 모델을 구축하며, 시뮬레이션을 실행하고, 결과를 분석하며, 작업이 완료될 때까지 반복하는 AI 에이전트를 만들 수 있습니다.

생성형 AI에서 생성형 AI 및 툴, 그리고 에이전틱 AI로의 발전을 보여주는 세 개의 상자.

전통적인 채팅 기반 AI에서 완전 자율 에이전틱 AI로의 진화.


대화에서 행동으로: 왜 에이전틱 AI인가?

만약 여러분이 ChatGPT®나 Claude®를 사용하여 MATLAB 코드를 작성하는 데 도움을 받은 적이 있다면, 그 절차를 잘 아실 것입니다. 질문을 하고, 코드를 받으며, MATLAB에 붙여넣고, 오류가 발생하면 다시 채팅으로 돌아가 오류에 대한 설명을 보고, 새로운 코드를 받아 반복하는 식입니다. 작동은 하지만 느리고 답답한 과정입니다.

에이전틱 AI는 이 과정을 끝낼 수 있습니다.

비에이전틱 AI

 

에이전틱 AI

요청에 따라 코드 조각을 생성함

코드를 작성하고 직접 실행함

사용자가 코드를 직접 복사하고 붙여넣고 실행해야 함

작업이 완료될 때까지 반복함

사용자가 오류를 해석하고 후속 질문을 해야 함

오류를 감지하고 자동으로 수정함

사용자의 파일이나 데이터에 접근 권한이 없음

작업 공간 및 데이터에 접근 가능함

코드가 작동하는지 검증할 수 없음

테스트할 수 있는 작동 결과를 제공함

챗봇을 동료로 만들어 주는 네 가지 기능

비에이전틱 AI는 보고서를 작성하는 컨설턴트를 두는 것과 같습니다. 에이전틱 AI는 업무를 수행하는 동료를 두는 것과 같습니다. 이 AI는 문제를 해결하고 결과를 보여준 뒤, 추가로 수정할 사항이 있는지 물어봅니다.

기능 의미 MATLAB 예시
추론 복잡한 문제를 단계별로 나눔 "이 제어기를 최적화하기 위해 먼저 플랜트를 분석한 후 PID를 설계하고 조정하겠습니다."
계획 목표를 향한 일련의 행동들 "1단계: 데이터를 불러옵니다. 2단계: 모델을 훈련시킵니다. 3단계: 검증합니다. 4단계: 내보냅니다.
툴 사용 외부 함수 및 API를 호출함 trainnet, sim, 또는 사용자 지정 MATLAB 함수를 호출합니다.
적응 피드백과 오류로부터 학습함 "오류가 발생했습니다. 차원을 확인하고 다시 시도하겠습니다."

MATLAB 및 Simulink를 에이전틱 AI와 결합하는 이유

MATLAB 및 Simulink가 공학 및 과학 분야의 에이전틱 AI에서 독보적으로 가치 있는 이유는 다음과 같은 기능을 제공하기 때문입니다.

  • 모델 기반 설계: 복잡한 시스템을 배포하기 전에 구축하고 시뮬레이션하며 테스트할 수 있습니다.
  • 시뮬레이션 기능: 시스템 수준 테스트 및 검증을 위해 Simulink에 연결할 수 있습니다.
  • 분야별 전문지식: 신호 처리, 제어, 딥러닝 및 기타 다양한 분야를 아우르는 100개 이상의 툴박스를 제공합니다.
  • 전문 툴: 코드 분석, 시각화 및 배포 기능이 내장되어 있습니다.
  • 신뢰할 수 있는 계산: LLM은 수학적 계산에서 환각을 일으킬 수 있는 반면, MATLAB은 정확한 계산 결과를 제공합니다.

모델 컨텍스트 프로토콜 이해하기

LLM이 MATLAB을 사용하려면 사용 가능한 툴을 탐색하고, 올바른 파라미터로 이를 호출하며, 그 결과를 받을 수 있는 수단이 필요합니다. MCP는 바로 이를 가능하게 하는 AI와 툴 간 상호작용을 위한 표준 프레임워크를 제공합니다. MCP는 AI를 위한 USB-C 포트라고 생각할 수 있습니다. USB-C를 통해 어떤 기기든 어떤 주변기기에 연결할 수 있는 것처럼 MCP를 사용하면 어떤 AI 모델이든 MATLAB과 Simulink를 비롯한 어떤 툴과도 연결할 수 있습니다.

AI 에이전트가 MCP 서버에 연결되고, 또 MCP 서버가 MATLAB에 연결되는 3단계 흐름도입니다.

MCP 아키텍처: AI 에이전트가 MATLAB에 연결되는 방식.

MCP 서버는 AI 요청과 MATLAB 실행 간의 중개 역할을 합니다. AI 에이전트는 무엇을 할지 결정하고, MATLAB은 실제 계산을 수행합니다.

설치

GitHub에서 MATLAB MCP Core Server를 받습니다.

# Clone the repository
git clone https://github.com/matlab/matlab-mcp-core-server

# Follow setup instructions for your AI client
# (Claude Desktop, VS Code with Copilot, Gemini CLI, etc.)

MCP Core Server는 기본적인 연결 기반을 제공하며, Simulink Agentic Toolkit은 여기에 모델 특정 기능을 추가로 확장합니다. MATLAB Agentic Toolkit과 Simulink Agentic Toolkit은 모두 이 프로토콜을 기반으로 구축되었습니다.


MATLAB Agentic Toolkit

MATLAB Agentic Toolkit은 GitHub에서 제공되는 무료 오픈 소스 패키지로 AI 코딩 에이전트에 MATLAB에 대한 전문 지식과 로컬 MATLAB 세션과의 실시간 연결을 제공합니다. 이 툴킷은 다음 두 가지 요소로 구성됩니다. MATLAB MCP Core Server 및 선별된 에이전트 스킬.

MATLAB Agentic Toolkit을 사용해 필터 분석기 앱에서 FIR 필터 설계를 비교하는 AI 에이전트.

MATLAB Agentic Toolkit을 사용해 필터 분석기 앱에서 FIR 필터 설계를 비교하는 AI 에이전트.

두 가지 요소: MCP Core Server 및 에이전트 스킬

MATLAB MCP Core Server

MCP Core Server는 모든 MCP 호환 에이전트가 여러분의 컴퓨터에서 실행 중인 MATLAB에 직접 접근할 수 있도록 해줍니다. 이 서버는 다음과 같은 다섯 가지 기본 툴을 제공합니다.

기능 설명

evaluate_matlab_code

MATLAB 코드를 실행하고 명령 창 출력을 반환합니다.

run_matlab_file

MATLAB 프로그램 파일을 실행합니다.

run_matlab_test_file

runtests를 사용해 테스트를 실행하고 통과/실패 여부를 구조화된 결과로 반환합니다.

check_matlab_code

코드 분석기를 사용해 정적 분석을 수행합니다.

detect_matlab_toolboxes

설치된 MATLAB 버전과 툴박스를 나열합니다.

이 서버는 또한 MCP 서버를 사용하는 AI 시스템을 위해 별도로 구성된 문서 형태의 두 가지 MCP 리소스를 제공합니다. matlab_coding_guidelines는 AI에게 올바른 MATLAB 코딩 관행을 가르치며, plain_text_live_code_guidelines는 AI에게 일반 텍스트 라이브 스크립트를 생성하는 방법을 설명합니다. AI 에이전트는 필요할 때 자동으로 이러한 리소스를 참조합니다.

에이전트 스킬

에이전트 스킬은 Markdown 기반의 지침 파일로, MATLAB에 특화된 공학 실무를 AI 에이전트에게 가르칩니다. 그것들은 코드 라이브러리가 아니라 에이전트의 동작을 안내하는 구조화된 프롬프트입니다.

스킬은 명시적으로 호출할 수 있으며(예: Claude Code에서 /creating-live-scripts 사용), 에이전트가 관련 작업을 인식할 때 자동으로 활성화될 수 있습니다.

에이전트 스킬은 AI 에이전트가 훈련 과정에서 습득하지 않은 상세한 지식을 제공합니다. 이러한 스킬들을 통해 AI 에이전트는 심도 있는 과학 및 공학 문제를 보다 빠르고 안정적이며 비용 효율적으로 해결할 수 있습니다.

이렇게 에이전틱 툴킷에서 제공하는 스킬은 빠르게 발전하고 있습니다. 현재 사용 가능한 스킬은 Skills Catalog에서 확인하실 수 있습니다.

설치 및 구성

요구사항:

  • MATLAB R2020b 이상
  • 지원 AI 코딩 에이전트
  • Git

설정 워크플로:

  1. GitHub에서 MATLAB Agentic Toolkit 리포지토리를 복제합니다.
  2. 리포지토리 폴더에서 AI 코딩 에이전트를 실행합니다.
  3. 에이전트에게 "툴킷을 설정"해 달라고 요청합니다.
  4. 설정 스킬이 나머지 작업을 처리합니다. 즉, 로컬 MATLAB 설치를 감지하고, MCP 서버를 설치한 뒤, 이를 에이전트에 등록합니다.

MCP 서버는 약 2주 간격으로 업데이트를 받습니다. 항상 최신 상태를 유지하려면 정기적으로 리포지토리에서 최신 업데이트를 가져오십시오.

에이전틱 워크플로의 실사용 예

툴킷이 활성화되면 에이전트는 복사-붙여넣기 없이 MATLAB 코드를 읽고, 작성하고, 실행하며, 테스트하고, 분석할 수 있습니다. 일반적인 워크플로는 다음과 같습니다.

  1. 사용자가 자연어로 작업을 설명합니다.
  2. 에이전트는 스킬 및 코딩 지침을 통해 얻은 MATLAB 규칙에 대한 지식을 바탕으로 MATLAB 코드를 작성합니다.
  3. 에이전트는 MCP 서버를 통해 코드를 실행하고 결과를 읽습니다.
  4. 문제가 발생하면, 에이전트가 오류를 디버깅하고 코드를 수정한 후 재실행하며 작업이 완료될 때까지 이를 반복합니다.
  5. 사용자는 최종 결과를 검토합니다.

구조화된 워크플로: RPI (연구, 계획, 구현)

큰 프로젝트의 경우, 구조화된 접근 방식이 효과적입니다.

  • 연구: 에이전트가 사용자의 프롬프트를 바탕으로 PRD(제품 요구사항 문서)를 작성합니다. 이후 명확하게 파악하기 위한 질문과 참고 자료를 통해 내용을 반복적으로 보완해 나갑니다.
  • 계획: 에이전트가 단계별 구현 방식을 정리한 PLAN.md와 단계별 작업을 정의한 TASKS.md를 생성합니다.
  • 구현: 단계별로 작업을 수행하되, 각 단계 사이에서 필요 시 방향을 수정한 뒤 다음 단계로 진행합니다.

이러한 구조화된 접근 방식은 예측하기 어려운 에이전틱 코딩을 보다 통제 가능한 방식으로 전환합니다. 또한 계획 문서는 장시간 세션에서도 에이전트의 동작을 안정적으로 유지하고, 컨텍스트가 흐트러지는 것을 방지하는 역할을 합니다.

안전 기본 사항

  • 에이전트의 접근 권한을 특정 프로젝트 폴더로 제한합니다.
  • 투명성 및 손쉬운 롤백을 위해 Git을 사용합니다.
  • 생성된 모든 코드, 명령어 및 파일 작업을 검토합니다.
  • 기밀 정보나 규제 대상 데이터를 코딩 에이전트에게 전달하지 않도록 합니다.
  • 신뢰할 수 있는 MCP 서버와 기술을 사용합니다.

이 툴킷은 Claude Code, GitHub Copilot®, OpenAI Codex™를 포함하여 MCP를 지원하는 모든 에이전트와 함께 사용할 수 있습니다. 구성 방식은 에이전트마다 다르지만 기본 원리는 동일합니다: 즉, 에이전트의 MCP 설정이 MATLAB MCP Core Server를 가리키도록 설정하면 됩니다. 설정 스킬은 지원되는 각 플랫폼에서 이 과정을 자동화합니다.


Simulink Agentic Toolkit

Simulink Agentic Toolkit는 에이전틱 AI 생태계를 모델 기반 설계 영역으로 확장합니다. MATLAB Agentic Toolkit가 에이전트에게 코드 실행에 대한 접근 권한을 제공하는 데 중점을 둔다면, Simulink Agentic Toolkit는 에이전트에게 아키텍처, 신호, 파라미터 및 시뮬레이션 동작을 포함한 Simulink 모델에 대한 구조화된 접근 권한을 제공합니다.

Simulink Agentic Toolkit은 MATLAB MCP Core Server를 기반으로 구축된 GitHub 리포지토리입니다. 이 툴킷은 Simulink 및 모델 기반 설계에 특화된 MCP 툴과 에이전트 스킬을 추가로 제공합니다.

Simulink Agentic Toolkit의 스크린샷.

Simulink MCP 툴 및 에이전트 스킬

MATLAB MCP Core Server에서 제공하는 툴들 외에도, 이 툴킷은 모델 구조를 읽고, 블록 및 연결을 편집하며, 파라미터를 조회하고, 시뮬레이션을 실행하기 위한 Simulink에 특화된 툴들을 추가로 제공합니다. 이 전용 툴을 통해 에이전트는 모델의 계층 구조를 탐색하고, 필요한 정보를 확인하며, 필요한 부분을 정밀하게 수정할 수 있습니다.

이 툴킷의 스킬은 이러한 스킬을 활용해 모델 기반 설계에서 자주 사용되는 작업에 대해 권장되는 워크플로를 수행하도록 합니다. 각 스킬에는 충분한 엔지니어링 컨텍스트가 담겨 있어, 에이전트가 매번 처음부터 워크플로를 새로 구성하는 대신 검증된 패턴을 따르도록 합니다.

Simulink Agentic Toolkit는 정기적으로 업데이트됩니다. 현재 제공되는 툴 및 스킬 목록은 GitHub 리포지토리에서 확인할 수 있습니다.

설치 및 설정

지원 에이전트 및 구성 단계를 비롯한 설치 지침은 Simulink Agentic Toolkit GitHub 리포지토리를 참조하십시오.

해당 리포지토리의 README에는 지원되는 각 에이전트의 설정 방법이 설명되어 있으며, 모든 릴리스에 맞춰 지속적으로 최신 상태로 유지됩니다.

AI 에이전트를 활용한 요구사항 관리

이 툴킷의 가장 강력한 활용 사례 중 하나는 요구공학입니다. AI 에이전트는 다음과 같은 작업을 수행할 수 있습니다.

  • 자연어 설명 또는 기존 문서로부터 요구사항 초안 작성
  • 각 요구사항을 이를 구현하는 모델 요소와 연결
  • 설계가 발전함에 따라 추적성 유지
  • 커버리지 미비점을 보여주는 추적성 매트릭스 생성

이러한 기능은 종종 프로젝트를 지연시키는 수동 문서화 부담을 줄여줍니다. 에이전트가 제안하면, 엔지니어가 검토하고 승인합니다.

설계 구현

에이전트는 기존 모델을 수정하거나 사양을 기반으로 새로운 시스템을 생성할 수 있습니다. 지원되는 모델 유형은 다음과 같습니다.

  • Simulink 블록 다이어그램 (표준 신호 흐름 모델)
  • Stateflow 차트 (상태 머신 및 의사결정 로직)
  • Simscape 모델 (물리 시스템: 열, 전기, 기계, 유압)
  • System Composer 아키텍처 (시스템 수준 아키텍처 모델)

권장 워크플로는 다음과 같은 5단계 사이클을 따릅니다.

단계

행동

설명

1

제안

에이전트가 자연어로 아키텍처, 방정식, 파라미터 등의 콘텐츠 초안을 작성합니다.

2

승인

사용자가 제안을 검토하고 반복적으로 개선합니다.

3

생성

에이전트가 Simulink 전용 툴을 사용해 구현 스크립트를 작성합니다.

4

실행

MCP 서버가 해당 코드를 실제 모델에 대해 실행합니다.

5

확인

사용자가 Simulink에서 결과를 검증합니다.

예시: 브레이크 열 해석 시뮬레이션

Simulink Agentic Toolkit 블로그 게시물에서 Guy Rouleau는 제안/승인/생성/실행/확인 사이클을 통해 디스크 브레이크 열 모델을 구축하는 과정을 설명합니다. 그는 에이전트에게 다음과 같은 프롬프트를 입력합니다. “평균적인 승용차의 디스크 브레이크 열 거동을 시뮬레이션하기 위한 계획을 만들어줘.”

에이전트는 시스템 아키텍처, 패드 및 디스크의 열전달 방정식, 환경, 컴포넌트 다이어그램 및 전체 파라미터 목록을 포함하는 두 개의 사양 문서를 작성합니다. 이후 아키텍처에 대해 세 차례 반복 개선을 진행하며(최종적으로 간단한 종방향 차량 모델까지 범위를 확장), 완전한 Simulink 모델을 생성합니다.

테스트 단계에서는 컴포넌트 수준의 서브시스템 테스트와 폐루프 주행 시나리오를 모두 생성하며, 이는 Simulink Test Manager에서 구현됩니다. 초기 프롬프트부터 검증된 모델 생성까지의 전체 워크플로는 수동 모델 구성 없이 5단계 사이클을 따라 수행됩니다.

시뮬레이션, 테스트 및 검증

이 툴킷은 전체 검증 사이클을 지원합니다.

  • 구성 관리 및 병렬 실행을 포함한 시뮬레이션 실행
  • 테스트 케이스 생성을 통해 보고된 문제 재현 및 근본 원인 분리
  • Simulink Test를 활용한 테스트 작성
  • 수정 사항 제안 및 테스트 재실행을 통한 검증

이를 통해 엔지니어들은 설정 관리보다는 결과 해석에 집중할 수 있습니다.

MBSE (모델 기반 시스템 공학)

MBSE 방법론을 사용하는 팀을 위해 이 툴킷은 요구사항(Requirements), 기능(Functional), 논리(Logical), 물리(Physical)로 구성된 전체 RFLP 프레임워크를 지원합니다.

Simulink Agentic Toolkit을 System Composer 및 Requirements Toolbox와 함께 사용하면 에이전트는 다음과 같은 작업을 수행할 수 있습니다.

  • 아키텍처 요소와 연결된 요구사항 생성 및 관리
  • 기능, 논리 및 물리 아키텍처 모델 구축
  • 인터페이스 딕셔너리 및 스테레오타입 생성
  • 해석 뷰 및 할당 세트 생성

목표는 초기 시스템 산출물의 신속 프로토타이핑으로, 이를 통해 공학적 노력을 반복적인 초기 설정 작업이 아닌 핵심 문제 해결에 집중할 수 있습니다.

모두 함께 작업하는 환경

Simulink Agentic Toolkit는 인간의 감독을 전제로 설계되었습니다. 모든 기능은 동일한 원칙을 따릅니다. 에이전트가 제안하면, 엔지니어가 결정합니다.

실무 팁

  • 커스텀 스킬이 툴킷 기능과 충돌하지 않는지 점검합니다. 중복된 지침은 에이전트가 덜 효율적인 방법으로 동작하게 할 수 있습니다.
  • 에이전트가 최적이 아닌 접근 방식을 사용할 경우, Simulink에 특화된 툴을 사용하도록 명확히 유도합니다.
  • 실행에 앞서 계획 문서와 설계 사양을 먼저 생성하도록 요청하여, 초기 단계에서 설계 의사결정을 확정합니다.
  • 에이전트가 보다 안정적으로 처리할 수 있도록 작업 범위를 관리 가능한 단위로 나눕니다.

효과적인 AI 에이전트 만들기

LLMs with MATLABMATLAB MCP HTTP Client로 MATLAB 코드를 사용해 에이전트를 생성할 수 있습니다. 이 에이전트는 LLM(예: OpenAI 호환 API 또는 Ollama™의 모델)에 연결하기 위한 MATLAB 함수와 외부 MCP 툴을 호출하기 위한 MATLAB 함수를 제공합니다. 에이전틱 워크플로를 구성하기 위해 구현해야 할 여러 패턴이 있습니다.

패턴 1: ReAct (추론 + 행동)

가장 흔한 에이전트의 패턴은 사고와 행동을 번갈아 가며 수행하는 것입니다. LLM은 다음에 무엇을 할지 추론하고 행동을 취하며 결과를 관찰한 후 이 과정을 반복합니다.

% ReAct loop pattern 
while ~taskComplete 
    % Thought: LLM reasons about next step 
    thought = generate(chat, [context, "What should I do next?"]); 
     
    % Action: Execute tool if needed 
    if needsTool(thought) 
        result = executeTool(thought.tool_call); 
        context = [context; result]; 
    end 
     
    % Observation: Update state based on results 
    taskComplete = checkCompletion(context); 
end 

패턴 2: 툴 연계

복잡한 작업은 여러 툴의 순차적 호출을 필요로 합니다. 하나의 출력이 다음 단계의 입력이 됩니다.

단계 행동 목적
1 코드 생성 AI가 사용자의 요청에 따라 MATLAB 코드를 작성함
2 코드 분석 오류, 스타일 문제 및 잠재적 버그를 검사함
3 코드 실행 MATLAB에서 실행하고 출력을 수집함
4 결과 평가 AI가 출력을 검토하고, 오류를 수정하거나 성공 여부를 확인함

패턴 3: 휴먼인더루프

안전 필수 애플리케이션에서는 승인 단계를 추가합니다.

% Human-in-the-loop pattern 
proposedAction = generate(chat, query); 
 
% Display proposed action for approval 
fprintf("Proposed: %s\n", proposedAction.description); 
approval = input("Approve? (y/n): ", "s"); 
 
if strcmp(approval, "y") 
    result = executeAction(proposedAction); 
else 
    disp("Action cancelled."); 
end 

실용적 지침

신뢰할 수 있는 에이전트를 구현하기 위한 핵심 지침은 다음과 같습니다.

  • 단순하게 시작: 복잡한 툴 체인을 만들기 전에 단일 툴부터 확실히 작동하도록 구현합니다.
  • 가관측성 확보: 디버그 단계에 필요하기에 모든 LLM 호출 및 툴 실행을 기록합니다.
  • 오류를 유연하게 처리: LLM은 실수를 할 수 있으므로, 지수 백오프를 적용한 재시도 로직을 구축합니다.
  • 경계 설정: 반복 횟수, 토큰 예산, 에이전트가 접근할 수 있는 툴을 제한합니다.
  • 공격적으로 테스트: 에이전트가 사용자에게 배포하기 전에 의도적으로 에지 케이스를 테스트해 에이전트를 한계까지 검증합니다.