# Node.js 개발자를 위한 Llama Stack 실용 가이드

> Clean Markdown view of GeekNews topic #20245. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20245](https://news.hada.io/topic?id=20245)
- GeekNews Markdown: [https://news.hada.io/topic/20245.md](https://news.hada.io/topic/20245.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-04-10T09:46:01+09:00
- Updated: 2025-04-10T09:46:01+09:00
- Original source: [developers.redhat.com](https://developers.redhat.com/articles/2025/04/02/practical-guide-llama-stack-nodejs-developers#)
- Points: 10
- Comments: 0

## Summary

Red Hat Node.js 팀은 **LLM과 Node.js, TypeScript/JavaScript**의 통합 방안을 실험하고 있습니다. **Llama Stack**은 API 표준화를 목표로 하는 모듈형 프레임워크로, Ollama 기반 컨테이너를 사용하여 쉽게 실행할 수 있습니다. MCP를 통해 **툴을 외부 서버에 호스팅**하고 다양한 프레임워크와 공유할 수 있으며, 이를 통해 로컬 환경에서도 Llama Stack과의 연결이 가능합니다. 이 가이드는 JavaScript/TypeScript 개발자들에게 실질적인 코드 예제와 흐름을 제공하여 LLM과 Node.js 통합에 유익한 출발점이 됩니다.

## Topic Body

- Red Hat Node.js 팀이 LLM과 Node.js, TypeScript/JavaScript 통합 방안을 실험  
- 여러 프레임워크를 비교하며 특히 **tool/function 호출과 에이전트 동작 방식**을 중점적으로 검토  
- 최근 출시된 **Llama Stack**의 기능과 Node.js와의 통합 가능성을 분석  
  
### Llama Stack 설정 및 실행 방법  
  
- Llama Stack은 API 표준화를 목표로 다양한 구현체를 배포하는 **모듈형 프레임워크**임  
- **Ollama** 기반 컨테이너 사용 시 가장 쉬운 실행 방법 제공  
- 실행 스크립트 예시를 통해 서버 설정:  
  - 모델: `meta-llama/Llama-3.1-8B-Instruct`  
  - 포트: `8321`  
  - Ollama 서버 IP: `10.1.2.38`  
- Ollama에서 모델을 미리 실행해야 하며, 매일 1회 이상 사용해 keepalive 유지 필요  
- 문서 엔드포인트(`/docs`)를 통해 API 스키마와 인터랙티브 테스트 가능  
  
### 첫 Node.js 애플리케이션 예시  
  
- `llama-stack-client-typescript` 라이브러리를 사용해 Llama Stack과 통신  
- 두 개의 툴 정의:  
  - `favorite_color_tool`: 도시/국가 기반 색상 정보 제공  
  - `favorite_hockey_tool`: 도시/국가 기반 아이스하키 팀 정보 제공  
- 질문 시나리오를 통해 툴 호출 흐름 테스트  
- 초기 문제점: 툴에서 필요한 정보가 없을 경우 명확한 유도문이 출력되지 않음  
- 해결 방법: 응답 메시지에 **"assistant"** 단어 삽입으로 흐름 자연스럽게 개선됨  
  
### Llama Stack에서의 tool 호출 처리 방식  
  
- `chatCompletion()` API 사용 시 툴 호출은 직접 처리 필요  
- `handleResponse()` 함수를 통해 툴 요청을 감지하고 결과를 다시 메시지로 전달  
- `tool_choice`는 기본적으로 `"auto"` 설정이나, 툴이 있으면 사용하려는 경향이 강함  
- 질문이 툴과 무관한 경우에도 툴 사용 시도를 포기하고 ‘답변 불가’로 처리되는 현상 관찰됨  
  
### MCP와 Llama Stack 통합 실험  
  
- MCP(Model Context Protocol)를 통해 **툴을 외부 서버에 호스팅**하고 다양한 프레임워크와 공유 가능  
- MCP 서버는 Supergateway를 통해 stdio 기반 서버를 SSE 방식으로 브리지 처리  
- MCP 서버 등록 후, Llama Stack agent API를 사용하여 MCP 툴 자동 호출 가능  
- agent API는:  
  - 상태/메시지 관리 자동 처리  
  - 툴 호출 흐름을 프레임워크가 내부적으로 수행  
- 다만 툴 호출 로그는 직접 볼 수 없으며, 최종 응답만 확인 가능  
  
### 로컬 환경 접근을 위한 MCP 활용  
  
- MCP 서버를 로컬 환경에서 stdio 방식으로 실행하여 Llama Stack과 연결 가능  
- MCP 서버의 툴 정의 JSON을 Llama Stack 호환 형식으로 변환하는 코드 필요  
- `mcpClient.callTool()`을 통해 LLM 응답 흐름 안에서 툴 결과 반환 가능  
- 이를 통해 중앙화 서버가 아닌 로컬 앱 환경 접근 시나리오 구현 가능  
  
### 마무리  
  
- Node.js 환경에서 Llama Stack을 통한 LLM 및 툴 호출 통합 실습 진행  
- 다양한 방법: 로컬 툴, 원격 MCP, 로컬 MCP를 통한 다양한 활용 사례 제공  
- 특히 JavaScript/TypeScript 개발자들에게 실질적인 코드 예제와 흐름을 제시함  
- 앞으로 LLM과 Node.js를 통합하고 싶은 개발자에게 유익한 출발점 역할  
  
### 추가 자료  
  
- [Essential AI tutorials for Node.js developers](https://developers.redhat.com/blog/2024/11/20/essential-ai-tutorials-nodejs-developers)  
- [Node.js 주제 페이지](https://developers.redhat.com/topics/nodejs)  
- [AI for Node.js developers 페이지](https://developers.redhat.com/topics/nodejs/ai)  
- [Node.js Reference Architecture e-book](https://developers.redhat.com/e-books/developers-guide-nodejs-reference-architecture)  
- [GitHub의 Node.js Reference Architecture](https://github.com/nodeshift/nodejs-reference-architecture)

## Comments



_No public comments on this page._
