기존에는 Dify에서 워크플로우가 호출하는 Workflow Tool 내부에서 무슨 일이 벌어지고 있는지, 오직 “Tool 스팬이 통과함” 또는 “Tool 스팬이 실패함”만 확인할 수 있었습니다. 내부의 LLM Call이나 단계(step)를 추적할 수 없었습니다. v1.19.0에서 이것이 변경되었습니다.
この記事で分かること:
- Dify 1.19.0 (2026-11-04 출시)의 세 가지 주요 변경 사항
- 중첩된 워크플로우 트레이싱 메커니즘과 실무 활용처
- 업그레이드 전에 확인해야 할 Docker Compose 2.35.0 이상의 요구사항
Dify 1.19.0은 2026-11-04에 출시되었습니다. 변경의 전반적인 내용은 공식 릴리스 페이지(https://github.com/langgenius/dify/releases/tag/1.19.0)에서 확인할 수 있습니다. 대기업 내에서 Dify Enterprise를 사용하는 입장에서, 실무와 직결되는 세 가지 포인트를 정리합니다.
변경 내용: 워크플로우 내에서 Workflow Tool을 호출할 때, 그 내부의 단계(step)나 LLM Call이 외부 트레이스(Langfuse 등)에 계층 구조로 출력되도록 변경되었습니다.
기존에는:
- 외부 워크플로우 → Workflow Tool의 스팬 (통과/실패)만 보임
- Workflow Tool 내부에서 무슨 일이 일어났는지, 어떤 LLM Call이 느렸는지, 어느 단계에서 막혔는지는 추적할 수 없음
v1.19.0 이후에는:
- Workflow Tool 호출 스팬 아래에 내부 단계가 계층적으로 나열됨
- LLM Call의 프롬프트(prompt), 응답(response), 토큰 수를 확인할 수 있음
- 중첩된 Tool이 여러 번 호출된 경우에도, 각 호출이 별도의 스팬으로 남음
주의사항:
- 새로운 트레이스 계층은 “향후 실행”에 적용됩니다. 기존 기록은 백필(backfill)되지 않습니다.
- Workflow Tool의 내부 단계가 영속화되어 있어야 합니다 (1.18.0 이후의 Console 드릴다운 기능을 전제로 함)
- 로링 디플로이(rolling deploy) 중에는 트레이스 큐의 마이그레이션 절차(
ops_trace
→ops_trace_v2
)가 필요합니다.
대기업 내에서 Dify를 사용하면, 워크플로우가 여러 Workflow Tool을 호출하는 복잡한 구성이 되는 경우가 있습니다. 이전에는 “어떤 Tool에서 막히고 있는지”를 구분하기 위해 로그를 하나하나 확인해야 했습니다. 중첩 트레이싱이 가능해지면서 이 조사 시간이 크게 단축됩니다.
변경 내용: App을 내보내기(export) 할 때, 해당 앱이 사용하고 있는 Workflow Tools도 함께 .ifpkg 패키지에 포함되도록 변경되었습니다.
기존에는:
- App을 내보내도 Workflow Tools의 정의는 포함되지 않았음
- 다른 환경에 임포트(import) 할 때, Workflow Tools를 별도로 생성/등록해야 했음
v1.19.0 이후에는:
.ifpkg (format v2)에 Workflow Tools의 정의가 포함됨 - 임포트 대상에서 기존 Tool과 중복되면 재사용하고, 그렇지 않으면 생성·공개·등록까지 자동 수행함
- 추이적 의존성(Tool이 호출하는 Tool)도 포함됨
중요 주의사항: 모든 Dify App 내보내기가 format v2로 변경되었습니다. 구 버전의 임포터는 수용하지 못할 가능성이 있습니다. 임포트 대상 환경도 1.19.0 이상으로 맞춘 후에 패키지를 임포트해야 합니다.
여러 Dify 환경(개발/스테이징/운영)을 사용하는 경우, 이 변경 사항의 영향을 받을 수 있습니다. 마이그레이션 순서는 “임포트 대상을 먼저 1.19.0으로 업그레이드한 후, 내보내기 및 임포트를 수행”하는 절차를 따르게 됩니다.
변경 내용: difyctl에 Skills를 관리하는 6가지 명령어가 추가되었습니다.
Dify 1.19.0: 중첩된 워크플로우 트레이싱과 세 가지 변경 사항이 기업 운영에 가져올 것
| 명령어 | 동작 |
|---|
difyctl get skill | 스킬 목록 (키워드/태그 필터 포함) |
difyctl describe skill | 상세 정보, 초안 해시, 최신 버전 확인 |
difyctl get skill version | 공개된 버전 목록 |
difyctl export skill | 초안 또는 지정 버전을 ZIP으로 내보내기 (Export) |
difyctl import skill --files | 로컬 파일에서 스킬을 생성하거나 초안을 덮어쓰기 |
difyctl publish skill | 초안을 새 버전으로 공개 |
주의사항:
- 계정
caller 권한이 필요합니다 (워크스페이스 측의 해당 권한도 필요).
- 스킬(Skills)이 활성화되어 있어야 합니다.
difyctl import는 공개하지 않습니다 (import ≠ publish). 기존 스킬에 대한 덮어쓰기(overwrite) import는 "파괴적(destructive)" 작업으로 간주됩니다.
CI/CD에 통합하여 스킬의 버전 관리를 하고 싶을 때 사용할 수 있습니다. 지금까지는 스킬 변경이 GUI에서만 가능했지만, 커맨드라인으로 조작할 수 있게 되면서 자동화 범위가 넓어집니다.
변경 내용: Docker Compose의 최소 필수 버전이 2.35.0으로 변경되었습니다.
이는 파일의 우선순위 해결 방식이 바뀌었기 때문입니다. root의 .env 오버라이드가 서비스의 기본값보다 우선하도록 작동하려면 2.35.0 이상이 필요합니다.
확인 명령어:
2.35.0 미만일 경우, 업그레이드한 후에 Dify 1.19.0으로 업데이트해야 합니다.
로링 배포(Rolling Deploy)를 수행하는 경우에는 트레이스 큐(trace queue) 마이그레이션 절차가 필요합니다. 새로운 큐 ops_trace_v2를 API, worker, Beat 모두에서 동시에 전환해야 합니다. 오래된 큐 ops_trace의 워커는 쌓여 있는 작업이 비워진 후에 중지됩니다.
기타 업그레이드 주의사항:
- 환경 파일(
.env)은 기존 것을 그대로 사용합니다. 실수로 비우지 않도록 주의하세요.
- 플러그인 데몬(plugin daemon)을
0.6.14-local로 업데이트해야 합니다.
- 1.18.0보다 이전 버전에서 업그레이드하는 경우, 1.18.0의 업그레이드 가이드도 확인하세요.
- 백업(DB, 벡터 스토어, 파일)은 사전에 해둡니다.
v1.19.0의 변경 사항 중 기업 Dify 운영에 직결되는 것은 다음 세 가지입니다:
- 중첩 트레이스 (Nested Trace): 워크플로우 툴(Workflow Tool) 내부까지 추적할 수 있게 되었습니다. 복잡한 구성에서의 디버깅 및 성능 조사에 유용합니다.
- 워크플로우 툴 패키지 포함: 환경 간 전환이 쉬워지지만, 임포트 대상지를 먼저 1.19.0으로 맞추는 것이 필요합니다.
- Docker Compose 2.35.0 필수: 파괴적 변경입니다. 업그레이드 전에 버전 확인을
Dify의 활용 사례나 설계에 대해서는 이곳에서도 작성하고 있습니다:
Copilot으로 회의록을 만들 때, 사전에 할 일