Agentic - AI 에이전트 표준 라이브러리
프로젝트 개요
Agentic은 일반 TypeScript 사용 및 LLM 기반 사용에 최적화된 AI 기능/도구의 표준 라이브러리입니다. Agentic은 모든 주요 TypeScript AI SDK(Vercel AI SDK, Mastra, LangChain, LlamaIndex, OpenAI SDK, MCP 등 포함)와 호환됩니다.
프로젝트 주소: https://github.com/transitive-bullshit/agentic
핵심 기능
🎯 이중 사용 모드
- 표준 TypeScript 클래스: 일반 TS 클래스로 직접 사용 가능
- LLM 도구: 다양한 AI SDK에 도구로 쉽게 통합 가능
🔧 광범위한 SDK 지원
모든 주요 TypeScript AI SDK 지원:
- Vercel AI SDK
- Mastra AI Agent 프레임워크
- LangChain
- LlamaIndex
- OpenAI SDK
- Genkit
- Dexter
- xsAI SDK
- GenAIScript
- MCP (Model Context Protocol)
✨ 주요 장점
- ✅ 모든 도구가 생산 환경에서 완벽하게 테스트됨
- ✅ 모든 주요 TS AI SDK에서 작동
- ✅ 도구 수동 코딩, 매우 간결함
- ✅
@aiFunction 데코레이터를 통해 우수한 수동 DX 및 LLM DX 제공
- ✅ 네이티브
fetch 사용
- ✅
ky를 사용하여 fetch 래핑, 사용자 정의 HTTP 옵션, 속도 제한, 재시도 등 용이
- ✅ 모든 MCP 서버의 도구 지원
- ✅ OpenAPI 사양에서 새로운 Agentic 도구 클라이언트 생성 가능
- ✅ 100% 오픈 소스, 제품 판매 없음
사용 예시
일반 TypeScript 클래스로 사용
import { WeatherClient } from '@agentic/stdlib'
// 환경 변수 WEATHER_API_KEY 설정 필요 (weatherapi.com에서 무료로 획득 가능)
const weather = new WeatherClient()
const result = await weather.getCurrentWeather({
q: 'San Francisco'
})
console.log(result)
LLM 도구로 사용 (Vercel AI SDK 예시)
// SDK 특정 임포트
import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
import { createAISDKTools } from '@agentic/ai-sdk'
// SDK 무관 임포트
import { WeatherClient } from '@agentic/stdlib'
const weather = new WeatherClient()
const result = await generateText({
model: openai('gpt-4o-mini'),
// 핵심 라인: @agentic/ai-sdk 어댑터 사용
tools: createAISDKTools(weather),
toolChoice: 'required',
prompt: 'What is the weather in San Francisco?'
})
console.log(result.toolResults[0])
여러 도구 혼합 사용
import { SerperClient, WikipediaClient, FirecrawlClient } from '@agentic/stdlib'
import { createAIFunction } from '@agentic/core'
import { z } from 'zod'
const googleSearch = new SerperClient()
const wikipedia = new WikipediaClient()
const firecrawl = new FirecrawlClient()
const result = await generateText({
model: openai('gpt-4o-mini'),
// 이 예제는 4개의 다른 소스의 도구를 사용합니다.
tools: createAISDKTools(
googleSearch,
wikipedia,
// firecrawl 클라이언트의 AI 기능 집합에서 단일 기능 선택
firecrawl.functions.pick('firecrawl_search'),
// 사용자 정의 AI 기능 생성
createAIFunction({
name: 'think',
description: `Use this tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.`,
inputSchema: z.object({
thought: z.string().describe('A thought to think about.')
}),
execute: ({ thought }) => thought
})
),
prompt: 'What year did Jurassic Park the movie come out, and what else happened that year?'
})
지원되는 도구 및 서비스
프로젝트는 다음 범주를 포괄하는 50개 이상의 유용한 도구를 제공합니다.
🔍 검색 및 정보 검색
| 도구 |
패키지명 |
설명 |
| Brave Search |
@agentic/brave-search |
Brave 검색 API |
| Bing |
@agentic/bing |
Microsoft Bing 검색 API |
| DuckDuckGo |
@agentic/duck-duck-go |
DuckDuckGo 검색 |
| Google Custom Search |
@agentic/google-custom-search |
Google 맞춤 검색 |
| Serper |
@agentic/serper |
Serper 검색 API |
| SerpAPI |
@agentic/serpapi |
SerpAPI 검색 서비스 |
| Tavily |
@agentic/tavily |
Tavily 검색 API |
| Exa |
@agentic/exa |
Exa 검색 API |
📚 지식 및 연구
| 도구 |
패키지명 |
설명 |
| Wikipedia |
@agentic/wikipedia |
위키백과 API |
| Wikidata |
@agentic/wikidata |
위키데이터 액세스 |
| ArXiv |
@agentic/arxiv |
ArXiv 학술 논문 |
| Wolfram Alpha |
@agentic/wolfram-alpha |
Wolfram Alpha 계산 엔진 |
| HackerNews |
@agentic/hacker-news |
Hacker News API |
🌐 웹 크롤링 및 처리
| 도구 |
패키지명 |
설명 |
| Firecrawl |
@agentic/firecrawl |
웹 크롤링 및 스크래핑 |
| Jina |
@agentic/jina |
Jina Reader |
| Diffbot |
@diffbot |
웹 구조화 추출 |
☁️ 클라우드 서비스 및 문서
| 도구 |
패키지명 |
설명 |
| Google Drive |
@agentic/google-drive |
Google 드라이브 |
| Google Docs |
@agentic/google-docs |
Google 문서 |
| Notion |
@agentic/notion |
Notion API |
| Airtable |
@agentic/airtable |
Airtable 데이터베이스 |
🌦️ 날씨 및 환경
| 도구 |
패키지명 |
설명 |
| Weather |
@agentic/weather |
날씨 API |
| Open Meteo |
@agentic/open-meteo |
개방형 날씨 데이터 |
💼 비즈니스 및 데이터
| 도구 |
패키지명 |
설명 |
| Apollo |
@agentic/apollo |
Apollo 판매 도구 |
| Clearbit |
@agentic/clearbit |
회사 데이터 API |
| Hunter |
@agentic/hunter |
이메일 찾기 도구 |
| People Data Labs |
@agentic/people-data-labs |
인물 데이터 API |
| Polygon |
@agentic/polygon |
금융 시장 데이터 |
🎨 창의성 및 미디어
| 도구 |
패키지명 |
설명 |
| Midjourney |
@agentic/midjourney |
AI 이미지 생성 |
| YouTube |
@agentic/youtube |
YouTube API |
📱 소셜 및 커뮤니케이션
| 도구 |
패키지명 |
설명 |
| Twitter |
@agentic/twitter |
Twitter API |
| Slack |
@agentic/slack |
Slack API |
| Twilio |
@agentic/twilio |
Twilio 통신 |
| Reddit |
@agentic/reddit |
Reddit API |
💻 개발 및 도구
| 도구 |
패키지명 |
설명 |
| Calculator |
@agentic/calculator |
수학 계산기 |
| E2B |
@agentic/e2b |
코드 실행 환경 |
| MCP Tools |
@agentic/mcp |
MCP 서버 지원 |
아키텍처 설계
핵심 개념
- AIFunctionLike: 모든 agentic 클라이언트 인스턴스, 클라이언트 함수 집합에서 선택된 단일 AIFunction 또는 createAIFunction을 통해 수동으로 생성된 AI 기능일 수 있습니다.
- AIFunctionSet: AI 기능의 집합으로, 유연한 함수 관리 제공
- 어댑터 패턴: 다양한 AI SDK에 대한 통합 인터페이스 제공
확장성
- OpenAPI 사양 자동 생성 도구 클라이언트 지원
- 사용자 정의 AI 기능 생성 지원
- MCP 서버 통합 지원
- 함수 조합 및 선택 지원
설치 및 사용
# 핵심 라이브러리 설치
npm install @agentic/core
# 표준 도구 라이브러리 설치
npm install @agentic/stdlib
# 특정 AI SDK 어댑터 설치
npm install @agentic/ai-sdk # Vercel AI SDK
npm install @agentic/langchain # LangChain
npm install @agentic/llamaindex # LlamaIndex
요약
Agentic은 강력하고 정교하게 설계된 AI 도구 표준 라이브러리로, TypeScript 개발자에게 AI 애플리케이션을 구축하기 위한 완벽한 도구 체인을 제공합니다. "한 번 작성하면 어디서든 실행"이라는 설계 철학을 통해 개발자는 다양한 AI 프레임워크 간에 원활하게 전환할 수 있으며, 풍부한 사전 구축 도구를 제공하여 AI 애플리케이션 개발을 가속화합니다.