플러그인 유형 고르기
플러그인 유형 고르기
Dify는 여러 플러그인 유형을 지원하고, 각각 플랫폼 안의 다른 확장 지점을 노립니다. 코드가 어떻게 호출될지에 맞는 유형을 고르면 돼요.
출처: 공식문서
빠른 판단
| 하고 싶은 것 | 무엇을 만드나 |
|---|---|
| Agents·Workflows에 호출 가능한 액션 추가(검색, 이메일 전송, 데이터 변환 등) | Tool |
| Dify 안에서 선택 가능하게 할 새 LLM·임베딩·리랭크·TTS·STT·중재 모델 만들기 | Model |
| Agents용 커스텀 추론 루프 구현(ReAct, Function Calling 변형 등) | Agent Strategy |
| 외부 서비스가 호출해 Dify 워크플로를 몰 수 있게 HTTP 엔드포인트 노출 | Extension (Endpoint) |
| 외부 시스템의 문서를 지식 베이스로 수집 | Datasource |
| 상류에서 무언가 일어날 때(웹훅 발화, 파일 도착) 워크플로 시작 | Trigger |
자주 묻는 질문
하나의 플러그인이 여러 유형을 합칠 수 있나요?
네. Tool 플러그인은 엔드포인트도 노출할 수 있어요. 예를 들어 Discord 봇 플러그인은 메시지를 보내고(tool) 웹훅을 받는(endpoint) 걸 한 패키지에 담아요. Model 플러그인은 더 엄격해요 — 도구나 엔드포인트를 묶을 수 없습니다.
Tool vs Agent Strategy, 차이가 뭔가요?
Tool은 에이전트가 "검색해 줘"처럼 호출하기로 결정하는 개별 능력이에요. Agent Strategy는 그 추론 루프 자체 — 어떤 도구를 어떤 순서로 부르고 언제 멈출지 정하는 정책이죠. 에이전트가 생각하는 방식을 바꾸는 게 아니라면 Tool을 만드세요.
Datasource vs Trigger, 둘 다 외부 시스템에서 끌어오는 거 아니에요?
Datasource는 검색을 위해 지식 베이스로 문서를 가져오는 거고, Trigger는 상류 이벤트에 실시간으로 워크플로를 발화시키는 거예요. 같은 시스템이 둘 다의 원천이 될 수 있지만 소비 패턴이 달라요: 인덱싱 vs 이벤트 구동 실행.
Extension vs Tool, 평범한 HTTP 엔드포인트가 맞는 때는 언제?
Extension은 반대 방향이에요 — 외부 서비스가 Dify 안으로 호출해 들어와요. Tool은 Agents/Workflows가 서비스 밖으로 호출해 나가죠. 플러그인이 "액션"이 아니라 "진입점"일 때 Extension을 만드세요.
다음 단계
유형을 골랐다면 CLI를 설치하고 프로젝트를 뼈대(scaffold)부터 잡아요.
- CLI 설치:
dify를 내 기기에 설치하고dify plugin init을 실행하세요. - 매니페스트 스펙 읽기: 모든 플러그인이 공유하는 YAML 구조 이해.