
TypeScript 개발자를 위한 Agentica 라이브러리 활용
TypeScript 개발자를 위한 Agentica 라이브러리 활용
현대 TypeScript 개발 환경에서는 AI 기반의 자동화 도구가 필수적인 요소로 자리 잡았다. 최근 오픈소스로 공개된 Agentica 라이브러리는 TypeScript 컴파일러와 통합되어 LLM(Function Calling, 이하 F.C.)을 자동으로 정의하고 실행할 수 있도록 지원한다. 이 글에서는 Agentica의 기능과 활용법을 심층적으로 다룬다.
1. LLM Function Calling이란?
Function Calling(이하 F.C.)은 LLM이 외부 데이터에 접근하거나 특정 액션을 수행할 수 있도록 하는 방식이다. 예를 들어, LLM이 "오늘의 날씨는 어떻습니까?"라는 질문을 받았을 때, 자체적으로 답변하지 않고 API를 호출하여 최신 정보를 제공하는 방식이 이에 해당한다.
하지만 기존의 F.C. 방식은 JSON 문서를 직접 작성해야 하며, 이는 유지보수에 많은 부담을 준다. Agentica는 이러한 문제를 해결하기 위해 TypeScript 컴파일러를 활용하여 자동으로 F.C. 문서를 생성하는 기능을 제공한다.
2. Agentica의 주요 특징
2.1 자동 Function Calling 정의
Agentica는 TypeScript 컴파일 과정에서 F.C. 문서를 자동으로 생성하므로, 수작업으로 JSON을 작성할 필요가 없다. 이를 통해 코드와 문서 간의 불일치 문제를 해결할 수 있다.
2.2 TypeScript 네이티브 통합
기존 Swagger 문서처럼 별도의 설정 없이, TypeScript의 어노테이션 및 데코레이터를 활용하여 API를 정의할 수 있다.
2.3 AI 기반 자동 문서화
Agentica는 Typia를 활용하여 함수 설명을 LLM이 자동으로 이해할 수 있도록 변환하며, API 문서를 유지보수하는 부담을 줄여준다.
3. Agentica 설치 및 설정
3.1 프로젝트 초기화
# 프로젝트 폴더 생성
mkdir agentica-test && cd agentica-test
# TypeScript 프로젝트 초기화
npm init -y
npm i --save-dev typescript
npx tsc --init
# OpenAI 및 Agentica 라이브러리 설치
npm i @openai @agentica/core typia
3.2 Typia 설정
Typia는 TypeScript 컴파일러에 추가되는 플러그인으로, F.C. 문서 생성을 자동화하는 역할을 한다.
npx typia setup
4. Agentica를 활용한 Function Calling 예제
4.1 기본적인 LLM 연동
import { Agentica } from "@agentica/core";
import OpenAI from "openai";
const agent = new Agentica({
model: "chatgpt",
vendor: {
model: "gpt-4o-mini",
api: new OpenAI({ apiKey: "YOUR_API_KEY" }),
},
controllers: [],
});
agent.conversate("안녕").then(console.log);
4.2 Function Calling 정의
Agentica를 활용하여 특정 기능(예: 날씨 조회 API 호출)을 자동화할 수 있다.
import typia from "typia";
class WeatherService {
/**
* getWeather은 오늘의 날씨를 조회하는 함수입니다.
* LLM이 호출 가능하며, 결과를 반환합니다.
*/
getWeather() {
return "오늘 날씨는 맑습니다.";
}
}
const agent = new Agentica({
model: "chatgpt",
vendor: {
model: "gpt-4o-mini",
api: new OpenAI({ apiKey: "YOUR_API_KEY" }),
},
controllers: [
{
protocol: "class",
name: "get_weather",
application: typia.llm.application<WeatherService, "chatgpt">(),
execute: new WeatherService(),
},
],
});
agent.conversate("what function do you have?").then(console.log);
위 코드 실행 시, LLM은 자동으로 getWeather 함수를 호출할 수 있으며, 다음과 같은 응답을 받을 수 있다.
[
{ "type": "text", "role": "user", "text": "what function do you have?" },
{
"type": "text",
"role": "assistant",
"text": "현재 사용할 수 있는 기능은 'getWeather'이며, 오늘의 날씨 정보를 제공합니다."
}
]
5. Agentica를 활용한 고급 기능
5.1 자동 문서화
Agentica는 TypeScript 코드 내 주석을 분석하여 API 문서를 자동 생성할 수 있다.
/**
* 사용자의 위치 정보를 기반으로 날씨 데이터를 반환합니다.
* @param location 사용자의 현재 위치
*/
function getWeatherByLocation(location: string): string {
return `현재 ${location}의 날씨는 맑음입니다.`;
}
이 함수에 대한 설명은 LLM이 자동으로 인식하여 제공할 수 있다.
5.2 다중 Function Calling 지원
Agentica는 여러 개의 API 호출을 한 번에 처리할 수 있다.
const agent = new Agentica({
model: "chatgpt",
vendor: {
model: "gpt-4o-mini",
api: new OpenAI({ apiKey: "YOUR_API_KEY" }),
},
controllers: [
{ protocol: "class", name: "weather", application: typia.llm.application<WeatherService, "chatgpt">(), execute: new WeatherService() },
{ protocol: "class", name: "news", application: typia.llm.application<NewsService, "chatgpt">(), execute: new NewsService() }
],
});
이제 LLM은 weather와 news 서비스를 자동으로 호출할 수 있다.
6. 결론
Agentica는 TypeScript 개발자가 AI 기반 Function Calling을 자동화하고 유지보수를 간소화할 수 있도록 지원하는 강력한 도구이다. 기존의 JSON 기반 F.C. 문서 작성 방식과 달리, TypeScript 컴파일러를 활용하여 API 문서를 자동 생성하고 실행할 수 있다. 이를 통해 개발자는 더욱 신뢰할 수 있는 AI 서비스를 구축할 수 있으며, 코드와 문서의 일관성을 유지할 수 있다.
지금 바로 Agentica를 활용하여 LLM과의 연동을 자동화하고, 생산성을 극대화해보자!
추천 글
Surround 데이터를 찾을 수 없습니다.