생성형 AI는 우리가 컴퓨터와 상호작용하는 방식을 변화시켰지만, 단순한 대화를 넘어 스스로 추론하고 행동하며 MATLAB® 코드를 자율적으로 실행하는 AI 시스템을 구축하려면 새로운 접근 방식이 필요합니다. 오늘날, LLM에게 공학 문제를 해결해 달라고 요청하는 것은 보통 코드를 여기저기 복사하고, 오류를 직접 수정하며, AI가 해당 분야를 제대로 이해했기를 바라는 것을 의미합니다. 에이전틱 AI는 이 모든 것을 바꿉니다.
이 안내서는 단순히 해결책을 제안하는 데 그치지 않고, 이를 실행하는 AI 시스템을 구축하는 방법을 보여줍니다. MCP(모델 컨텍스트 프로토콜)를 통해 LLM을 MATLAB에 연결함으로써, 코드를 작성하고, 시뮬레이션을 실행하며, 결과를 분석하고, 작업이 완료될 때까지 반복하는 AI 에이전트를 만들 수 있습니다.
만약 여러분이 ChatGPT나 Claude를 사용하여 MATLAB 코드를 작성하는 데 도움을 받은 적이 있다면, 그 절차를 잘 아실 것입니다. 질문을 하고, 코드를 받으며, MATLAB에 붙여넣고, 오류가 발생하면 다시 채팅으로 돌아가 오류에 대한 설명을 보고, 새로운 코드를 받아 반복하는 식입니다. 작동은 하지만 느리고 답답한 과정입니다.
에이전틱 AI는 이 과정을 끝낼 수 있습니다. 사용자가 직접 조작하는 텍스트 생성기가 되는 대신, AI 에이전트는 다음과 같은 작업을 수행할 수 있습니다.
- 코드 작성 및 직접 실행
- 오류 확인 및 자동 수정
- 작업 공간 및 데이터에 접근
- 작업이 완료될 때까지 반복
- 검증된, 실제로 작동하는 결과 제공
이는 생성형 AI의 다음과 같은 특징과 대비됩니다.
- 요청에 따라 코드 조각 생성
- 사용자가 코드를 직접 복사하고 붙여넣고 실행해야 함
- 사용자가 오류를 해석하고 후속 질문을 해야 함
- 사용자의 파일이나 데이터에 접근 권한이 없음
- 코드가 실제로 작동하는지 검증할 수 없음
챗봇을 동료로 만드는 네 가지 기능
생성형 AI는 보고서를 작성하는 컨설턴트를 두는 것과 같습니다. 에이전틱 AI는 업무를 수행하는 동료를 두는 것과 같습니다. 이 AI는 단순히 문제 해결 방법을 알려주는 것이 아니라, 문제를 해결하고 여러분에게 결과를 보여주며 변경을 원하는지 묻습니다.
| 기능 | 의미 | MATLAB 예시 |
|---|---|---|
| 추론 | 복잡한 문제를 단계별로 나눔 | "이 제어기를 최적화하기 위해 먼저 플랜트를 분석한 후 PID를 설계하고 조정하겠습니다." |
| 계획 | 목표를 향한 일련의 행동들 | "1단계: 데이터를 불러옵니다. 2단계: 모델을 훈련시킵니다. 3단계: 검증합니다. 4단계: 내보냅니다. |
| 툴 사용 | 외부 함수 및 API를 호출함 | trainnet, sim, 또는 사용자 지정 MATLAB 함수를 호출합니다. |
| 적응 | 피드백과 오류로부터 학습함 | "오류가 발생했습니다. 차원을 확인하고 다시 시도하겠습니다." |
MATLAB을 에이전틱 AI와 결합하는 이유
MATLAB이 공학 및 과학 분야의 에이전틱 AI에서 독보적으로 가치 있는 이유는 다음과 같은 기능을 제공하기 때문입니다.
- 신뢰할 수 있는 계산: LLM은 수학적 계산에서 환각을 일으킬 수 있는 반면, MATLAB은 정확한 계산 결과를 제공합니다.
- 분야별 전문지식: 신호 처리, 제어, 딥러닝 및 기타 다양한 분야를 아우르는 100개 이상의 툴박스를 제공합니다.
- 시뮬레이션 기능: 시스템 수준 테스트 및 검증을 위해 Simulink®에 연결할 수 있습니다.
- 전문 툴: 코드 분석, 시각화 및 배포 기능이 내장되어 있습니다.
LLM이 MATLAB을 사용하려면 사용 가능한 툴을 탐색하고, 올바른 파라미터로 이를 호출하며, 그 결과를 받을 수 있는 수단이 필요합니다. 바로 이런 요구를 충족하는 것이 AI와 툴 간의 상호작용을 가능하게 하는 공통 프레임워크인 모델 컨텍스트 프로토콜, 즉 MCP입니다. MCP는 AI를 위한 USB-C 포트라고 생각할 수 있습니다. USB-C를 통해 어떤 기기든 어떤 주변기기에 연결할 수 있는 것처럼 MCP를 사용하면 어떤 AI 모델이든 MATLAB을 비롯한 어떤 툴과도 연결할 수 있습니다.
MCP 서버는 AI 요청과 MATLAB 실행 간의 중개 역할을 합니다. AI 에이전트는 무엇을 할지 결정하고, MATLAB은 실제 계산을 수행합니다.
| 접근 방식 | 활용 사례 | 필요 사항 |
|---|---|---|
| MATLAB을 툴로 사용 (MCP Core Server) | 외부 AI 앱(Claude Desktop, GitHub Copilot, VS Code)에서 MATLAB 코드를 실행 | MATLAB + MCP Core Server + 사용자가 선택한 AI 클라이언트 |
| MATLAB을 호스트로 사용 (MCP Client) | 외부 툴 및 API를 호출하는 자체 AI 에이전트를 MATLAB에서 구축 | MATLAB + MCP Client 애드온 + LLMs with MATLAB |
MATLAB MCP Core Server를 통해 어떤 MCP 호환 AI 애플리케이션에서도 MATLAB을 사용할 수 있습니다. 설치가 완료되면 Claude Desktop, GitHub Copilot 또는 Gemini CLI와 같은 AI 어시스턴트가 사용자를 대신하여 MATLAB 코드를 작성하고 실행할 수 있으며, 이 모든 과정은 사용자의 통제하에 이루어집니다.
내부적으로 MCP Core Server는 AI 에이전트가 MATLAB을 자율적으로 활용할 수 있도록 다섯 가지 기본 기능을 제공합니다. 이들 기능은 직접 호출할 필요가 없습니다. AI 에이전트는 사용자가 요청하는 작업에 따라 자동으로 이를 사용하게 됩니다.
| AI에 요청하는 내용 | 서버가 처리하는 작업 |
|---|---|
| "이 신호를 필터링하는 함수를 작성해줘" | 코드 생성 — 작업 공간에 .m 파일을 생성하고 저장합니다 |
| "이 스크립트를 실행하고 결과를 보여줘" | 코드 실행— MATLAB 코드를 실행하고 출력값, 플롯 및 오류를 수집합니다 |
| "내 코드에 문제가 있는지 확인해줘" | 코드 분석— MATLAB 내장 린터를 사용해 스타일과 정확성을 평가합니다 |
| "그 오류를 수정하고 다시 실행해줘" | 반복적 개선— AI가 오류를 확인하고 코드를 수정한 후 다시 실행합니다 |
| (자동) | 세션 관리— MATLAB 연결을 투명하게 시작하고 유지합니다 |
에이전틱 워크플로의 실사용 예
일반적인 상호작용은 다음과 같습니다. 사용자가 "이 잡음이 있는 신호에 대해 버터워스 필터를 만들어줘"라고 요청을 합니다. 그러면 AI는 코드를 작성하고 이를 MATLAB에서 실행하여 오류나 예상치 못한 결과가 있는지 확인하며, 접근 방식을 개선한 후, 작동하는 코드를 플롯과 함께 제공하는데, 이 모든 과정이 복사나 붙여넣기 없이 이루어집니다.
설치
GitHub에서 MATLAB MCP Core Server를 받습니다.
# Clone the repository git clone https://github.com/mathworks/matlab-mcp-core-server # Follow setup instructions for your AI client # (Claude Desktop, VS Code with Copilot, Gemini CLI, etc.)
구성 예시 (Claude Desktop)
claude_desktop_config.json에 다음 코드를 추가합니다.
{
"mcpServers": {
"matlab": {
"command": "/path/to/matlab-mcp-server",
"args": []
}
}
}
여러분이 어떤 기능을 활성화하는지 명확히 인지하세요
에이전틱 AI 툴은 여러분의 파일에 접근해 여러분의 컴퓨터에서 코드를 작성하고 실행할 수 있습니다. 이 기능은 강력하지만 그만큼 신뢰가 요구됩니다. 특히 프로덕션 환경에서 중요한 행동을 승인하기 전에 AI가 제안하는 내용을 반드시 검토해야만 합니다.
만약 여러분이 MATLAB 내에서 실행되며 외부 툴과 API를 호출할 수 있는 자체 AI 에이전트를 구축하고자 한다면 어떻게 해야 할까요? MATLAB MCP Client를 사용하면 이를 구현할 수 있으며, MATLAB을 에이전틱 AI 개발을 위한 플랫폼으로 확장할 수 있습니다.
AI 에이전트 호스트로 사용하는 MATLAB의 주요 기능
- 툴 탐색: 어떤 MCP 서버든 조회하여 사용 가능한 툴과 해당 입력 스키마를 볼 수 있습니다.
- 툴 호출:
callTool로 외부 툴을 로컬 MATLAB 함수 호출하듯이 쉽게 호출할 수 있습니다. - LLM 통합: 매끄러운 함수 호출을 위해 툴 스키마를
openAIFunction객체로 변환합니다.
이제 MATLAB 내에서 에이전트 워크플로를 구축하는 예시를 살펴보겠습니다.
% Connect to an MCP server
client = mcpClient("path/to/mcp-server");
% List available tools from the server
tools = listTools(client);
disp(tools);
% Convert tools to OpenAI function format for the LLM
functions = openAIFunction(tools);
% Create a chat with function calling enabled
chat = openAIChat("You are a helpful assistant.", ...
Tools=functions);
% Send a user query - LLM decides if a tool is needed
response = generate(chat, "What is the 10th prime number?");
% If LLM requests a tool call, execute it
if isfield(response, 'tool_calls')
toolRequest = response.tool_calls;
result = callTool(client, toolRequest);
% Feed result back to LLM for final response
finalResponse = generate(chat, result);
end
무엇에 연결할 수 있나요?
MATLAB MCP Client는 어떤 MCP 서버와도 연동할 수 있습니다. 여기에는 데이터베이스, 웹 API, 파일 시스템, 기타 AI 서비스 및 사용자가 직접 구축한 맞춤형 툴을 위한 서버가 포함됩니다. 이 생태계는 빠르게 성장하고 있습니다.
툴 호출은 에이전틱 AI의 핵심 메커니즘입니다. LLM은 함수를 직접 실행하지 않고, 호출할 함수와 인수가 명확히 지정된 구조화된 요청을 출력합니다. 그러면 여러분의 코드는 함수를 실행하고 그 결과를 LLM에 반환합니다.
LLM은 무엇을 계산할지에 대해 추론합니다. MATLAB은 이를 올바르게 계산하는 방법을 처리합니다. 사용자가 쿼리를 제출하면 LLM은 그 의도를 해석하고 어떤 툴을 어떤 파라미터로 호출할지를 결정합니다. 그런 다음 MATLAB은 함수를 실행하고 결과를 반환합니다. LLM은 이 응답을 자연어 형식으로 정리합니다. 사용자는 직접 코드를 작성하거나 실행할 필요가 전혀 없습니다.
MATLAB에서 툴 정의하기
% Define a function that the LLM can call
function result = addTwoNumbers(x1, x2)
result = x1 + x2;
end
% Create tool definition for the LLM
addTool = openAIFunction("addTwoNumbers", ...
"Add two numbers together");
addTool = addParameter(addTool, "x1", "number", ...
"First number to add", Required=true);
addTool = addParameter(addTool, "x2", "number", ...
"Second number to add", Required=true);
간단한 AI 에이전트 구축하기
function aiAgent(userQuery)
% Initialize chat with tools
chat = ollamaChat("mistral-nemo", Tools=addTool);
% Get LLM response
response = generate(chat, userQuery);
% Check if LLM wants to call a tool
if isfield(response, 'tool_calls')
% Extract function call details
funcName = response.tool_calls.function.name;
args = response.tool_calls.function.arguments;
fprintf("AI requested: %s(%f, %f)\n", ...
funcName, args.x1, args.x2);
% Execute the function
result = addTwoNumbers(args.x1, args.x2);
fprintf("Result: %f\n", result);
else
% No tool call - show direct response
disp(response.content);
end
end
툴 호출은 LLMs with MATLAB 애드온을 통해 다음을 비롯한 여러 제공업체의 모델에 대해 작동합니다.
- OpenAI: 최신 GPT 모델 (API를 통해)
- Azure OpenAI: 엔터프라이즈 배포
- Ollama: Mistral, GPT-OSS, DeepSeek 및 Qwen과 같은 로컬 모델
시연 수준을 넘어 실제 프로덕션에 적용하려면 에이전트를 신뢰할 수 있고 관찰 가능하며 안전하게 만드는 패턴이 필요합니다. 다음의 접근 방식은 실제 에이전틱 시스템에서 검증된 방법입니다.
패턴 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은 실수를 할 수 있으므로, 지수 백오프를 적용한 재시도 로직을 구축합니다.
- 경계 설정: 반복 횟수, 토큰 예산, 에이전트가 접근할 수 있는 툴을 제한합니다.
- 공격적으로 테스트:에이전트가 사용자에게 배포하기 전에 의도적으로 경계 조건을 테스트해 에이전트를 한계까지 검증합니다.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)