بنقرة واحدة
dsl-generate
Dify DSL 자동생성 (STEP 2)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Dify DSL 자동생성 (STEP 2)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
개발계획서 작성 (STEP 4)
AI Agent 개발 및 배포 (STEP 5)
Dify 프로토타이핑 자동화 (STEP 3)
요구사항 시나리오 생성 및 선택 (STEP 1)
Dify 환경 구축 및 Abra 플러그인 초기 설정
Abra 플러그인 사용 안내
استنادا إلى تصنيف SOC المهني
| name | dsl-generate |
| description | Dify DSL 자동생성 (STEP 2) |
| user-invocable | true |
| type | orchestrator |
[DSL-GENERATE 활성화]
선택된 시나리오 문서를 기반으로 Dify Workflow DSL(YAML)을 자동 생성함. DSL 구조 검증을 통과한 유효한 파일을 산출하며, 에러 발생 시 수정 루프를 통해 자동 복구함.
/abra:dsl-generate 명령 호출 시AGENTS.md 파일에서 ## 환경변수섹션의 환경변수 로딩. 로딩 실패 시 사용자에게 Setup 스킬을 먼저 수행하라고 안내하고 종료.
AI_RUNTIME 자동 감지 및 업데이트:
{ABRA_PLUGIN_DIR}/resources/guides/call-subagent.md의 "0. AI_RUNTIME 자동 감지" 규칙에 따라 현재 런타임을 감지하고 AGENTS.md의 AI_RUNTIME 값을 업데이트.
| 에이전트 | FQN |
|---|---|
| dsl-architect | abra:dsl-architect:dsl-architect |
{ABRA_PLUGIN_DIR}/resources/guides/combine-prompt.md에 따라 AGENT.md + agentcard.yaml + tools.yaml 합치기Agent(subagent_type=FQN, model=tier_mapping 결과, prompt=조립된 프롬프트) 호출{ABRA_PLUGIN_DIR}/gateway/runtime-mapping.yaml 참조워크플로우 단계에 Agent: {agent-name}이 명시된 경우,
메인 에이전트는 해당 단계를 직접 수행하지 않고, {ABRA_PLUGIN_DIR}/resources/guides/call-subagent.md에 따라 서브 에이젼트 호출
{PROJECT_DIR}/AGENTS.md에 각 Phase 완료 시 저장. 최종 완료 시 'Done'으로 표기.
## 워크플로우 진행상황
- dsl-generate: Phase3
진행상황 정보가 있는 경우 마지막 완료 단계 이후부터 자동 재개
scenario.md 파일 존재 여부를 확인함.
/abra:scenario)대화형 질문을 수행하고 결과를 Phase 1 호출 프롬프트에 context로 전달함.
질문 규칙:
0 / 취소 / cancel 선택 시 DSL 생성 즉시 중단 + 안내 출력조건부 질문: 요구사항 문서(output/scenario.md)를 먼저 파싱하여 아래 조건에 따라 질문 4~6 표시 여부 결정.
질문 시작 전 요구사항 문서(output/scenario.md)를 바탕으로 AI 사용 목적을 식별하여 {AI 사용 목적}변수에 할당.
질문 1: AI 모델 제공자
AI의 사용 목적은 `{AI 사용 목적}`입니다.
어떤 AI 제공자(공급사)를 사용할지 선택합니다.
1. OpenAI
2. Anthropic
3. Google
4. Groq
5. 직접 입력 (provider 이름): ___
0. 취소
selected_provider질문 2: AI 모델명
선택한 제공자({selected_provider})에서 사용할 모델을 선택합니다.
제공자별 대표 모델을 기본 옵션으로 제시하고, "최신 모델 추천"을 통해 웹 검색으로 최신 모델을 조회할 수 있습니다.
`{selected_provider}`에서 사용할 모델을 선택합니다.
<제공자별 대표 모델 옵션 동적 생성 — 2026-04 기준, 모두 instruction-tuned 권장 모델>
- OpenAI → 1. gpt-5.4 (고성능) 2. gpt-5.4-mini (경량) 3. gpt-5.4-nano (초경량)
- Anthropic → 1. claude-opus-4-7 (고성능) 2. claude-sonnet-4-6 (범용) 3. claude-haiku-4-5-20251001 (경량)
- Google → 1. Gemini 3.1 Pro Preview (고성능) 2. Gemini 3.1 Flash-Lite Preview (경량)
- Groq → 1. gpt-oss-120b (고성능)
2. gpt-oss-20b (범용)
3. deepseek-r1-distill-llama-70b (추론)
4. moonshotai/kimi-k2-instruct (범용)
5. qwen3-32b (범용)
6. meta-llama/llama-4-scout-17b-16e-instruct (멀티모달, 기본값)
N-1. 최신 모델 추천 — `{selected_provider}`의 최신 모델을 웹 검색으로 조회 후 재선택
N. 직접 입력 (모델명): ___
0. 취소
⚠ 비권장 모델 (선택 금지): reasoning 계열 모델은 question-classifier 노드의 JSON 출력에 reasoning 토큰을 주입하여
Expecting ',' delimiter류의 파싱 오류를 간헐적으로 일으킴.selected_model은 워크플로우 전체 LLM/Classifier 노드 기본값으로 적용되므로 classifier가 하나라도 포함된 DSL에서는 런타임 실패로 이어짐.
- Groq:
qwen-qwq-32b,llama-3.1-405b-reasoning- 기타 provider:
o1-*,o3-*(OpenAI reasoning),gemini-*-thinking계열 등 동일 원리 적용"직접 입력"으로 위 모델이 입력되면 경고를 띄우고 재선택 유도.
{selected_provider}의 현재 최신 instruction-tuned 모델 조회
→ 고성능/경량 2가지 추천 (reasoning 모델 제외) → 사용자 재선택selected_model질문 3: AI 응답 스타일
AI의 사용 목적은 `{AI 사용 목적}`입니다.
AI가 얼마나 일관되게 또는 유연하게 답변할지를 결정합니다.
분류처럼 정확한 결과가 필요하면 '정확하게', 콘텐츠 생성처럼 다양한 표현이 필요하면 '창의적'을 선택합니다.
1. 정확하게 (temperature=0.2) — 분류/추출 등 정확도 중심
2. 균형 (temperature=0.7) — 기본값
3. 창의적 (temperature=1.0) — 생성/브레인스토밍
4. 직접 입력 (0.0~1.0): ___
0. 취소
response_style (precise / balanced / creative / float)질문 4: 외부 서비스 연동 정보 (요구사항에 외부 연동이 있는 경우만)
요구사항에서 {연동 서비스명}과의 연동이 필요합니다.
연결 주소(URL)나 인증 키를 지금 입력하면 DSL에 바로 반영됩니다.
1. 나중에 설정 (기본값)
2. 직접 입력: ___
0. 취소
external_service_config (빈 문자열 또는 URL/키)질문 5: 파일 업로드 허용 (요구사항에 파일 처리가 있는 경우만)
사용자가 스크린샷·문서 등 파일을 첨부할 수 있도록 할지 결정합니다.
1. 허용하지 않음 (기본값)
2. 이미지만 허용
3. 문서만 허용 (PDF, DOCX, Excel 등)
4. 이미지 + 문서 모두 허용
5. 직접 입력: ___
0. 취소
file_upload (none / image / document / both / 문자열)질문 6: 대화 시작 메시지 (Chatflow인 경우만)
사용자가 처음 접속했을 때 대화창에 보여줄 안내 메시지를 설정할 수 있습니다.
1. 없음 (기본값)
2. "안녕하세요! 무엇을 도와드릴까요?"
3. 요구사항의 서비스 목적을 기반으로 자동 생성
4. 직접 입력: ___
0. 취소
conversation_start (빈 문자열 또는 메시지)수집 완료 후: 아래 형태의 요약을 사용자에게 보여주고 확인 후 Phase 1 진행.
context:
selected_provider: <값>
selected_model: <값>
response_style: <값>
external_service_config: <값>
file_upload: <값>
conversation_start: <값>
이 context는 Phase 2의 dsl-architect 호출 프롬프트에 명시적으로 포함되어야 함.
validate_dsl 검증을 통과한 유효한 DSL YAML 파일 + DSL 구조 설명서{ABRA_PLUGIN_DIR}/agents/dsl-architect/references/dify-workflow-dsl-guide.md DSL 작성 가이드 준수{tool:dsl_validation}으로 반드시 사전 검증output/scenario.md (기본값)selected_provider, selected_model, response_style,
external_service_config, file_upload, conversation_startdsl-architect 에이전트가 내부 Step 8에서 이미 validate_dsl을 실행했음.
본 단계는 에이전트 산출물의 검증 통과 여부를 오케스트레이터가 최종 확인하는 단일 통과 단계임.
PYTHONIOENCODING=utf-8 환경 변수 설정 후 validate_dsl 도구로 DSL YAML 파일 검증/abra:dsl-generate를 다시 호출하거나 오류 내용 확인 후 수동 수정DSL 파일 생성 완료를 사용자에게 보고함.
보고 내용:
/abra:prototype (프로토타이핑)완료 전 검증:
output/ 디렉토리에 존재하는지 확인완료 시 임시 파일 없음. 상태 파일 미사용.
| # | 규칙 |
|---|---|
| 1 | validate_dsl 검증을 반드시 통과해야 한다 |
| 2 | Phase 0.5에서 수집한 기술 설정을 dsl-architect 호출 프롬프트에 context로 전달한다 |
| 3 | {ABRA_PLUGIN_DIR}/agents/dsl-architect/references/dify-workflow-dsl-guide.md DSL 작성 가이드를 준수한다 |
| 4 | 노드 설계, 엣지 연결, 변수 흐름을 모두 정의한다 |
| 5 | DSL 구조 설명서를 출력한다 |
| # | 금지 사항 |
|---|---|
| 1 | Dify에 직접 실행(import/publish/run)하지 않는다 (프로토타이핑은 별도 STEP) |
| 2 | 시나리오 문서를 수정하지 않는다 |
| 3 | 사용자에게 직접 질문하지 않는다 (에이전트 내에서) |