다음을 통해 공유


Microsoft Foundry에서 워크플로 빌드

워크플로는 Microsoft Foundry의 UI 기반 도구입니다. Microsoft Agent Framework 워크플로와 같이 에이전트를 포함하는 선언적이고 미리 정의된 작업 시퀀스를 만드는 데 사용할 수 있습니다.

워크플로를 사용하면 AI 에이전트와 비즈니스 프로세스를 시각적으로 원활하게 혼합하는 지능형 자동화 시스템을 빌드할 수 있습니다. 기존의 단일 에이전트 시스템은 복잡하고 다각적인 작업을 처리하는 기능이 제한됩니다. 특수한 기술 또는 역할을 가진 여러 에이전트를 오케스트레이션하여 보다 강력하고 적응적이며 실제 문제를 공동으로 해결할 수 있는 시스템을 만들 수 있습니다.

필수 조건

워크플로 개념

Foundry에서 워크플로를 만들려면 빈 워크플로로 시작하거나 미리 정의된 오케스트레이션 패턴의 템플릿 중 하나를 선택할 수 있습니다.

패턴 Description 일반적인 사용 사례
사용자 참여형 사용자에게 질문을 하고 사용자 입력을 대기하여 계속 진행합니다. 워크플로 실행 중에 승인 요청 만들기 및 사용자 승인 대기 또는 사용자 양식 정보 가져오기
순차 한 에이전트의 결과를 정의된 순서로 다음 에이전트로 전달합니다. 단계별 워크플로, 파이프라인 또는 다단계 처리
그룹 채팅 컨텍스트 또는 규칙에 따라 에이전트 간의 제어를 동적으로 전달합니다. 동적 워크플로, 에스컬레이션, 대체 또는 전문가 핸드오프 시나리오

자세한 내용은 Microsoft Agent Framework 워크플로 오케스트레이션을 참조하세요.

워크플로 만들기

다음 단계에서는 워크플로의 순차적 형식을 예제로 만드는 방법을 보여줍니다.

  1. Microsoft Foundry에 로그인합니다. New Foundry 토글이 설정되었는지 확인합니다. 이러한 단계는 Foundry(신규)를 참조합니다.

  2. 오른쪽 위 메뉴에서 빌드를 선택합니다.

  3. 새 워크플로>순차 만들기를 선택합니다.

  4. 워크플로에서 각 에이전트 노드를 선택하고 원하는 에이전트를 선택하거나 새 에이전트를 만들어 에이전트 노드에 에이전트를 할당합니다. 자세한 내용은 이 문서의 뒷부 분에 있는 워크플로에 에이전트 추가 를 참조하세요.

  5. 시각화 도우미에서 저장 을 선택하여 변경 내용을 저장합니다.

    중요합니다

    워크플로는 자동으로 저장되지 않습니다. 워크플로에 변경 내용을 저장할 때마다 저장 을 선택합니다.

  6. 워크플로 실행을 선택합니다.

  7. 채팅 창에서 워크플로와 상호 작용합니다.

  8. 필요에 따라 워크플로에 새 노드를 추가합니다. 이 문서의 다음 섹션에서는 노드에 대한 정보를 제공합니다.

워크플로에 노드 추가

노드는 워크플로의 구성 요소를 정의합니다. 일반적인 노드 유형은 다음과 같습니다.

  • 에이전트: 에이전트를 호출합니다.
  • 논리: if/else를 사용하거나, goto를 사용하거나, for each를 사용합니다.
  • 데이터 변환: 변수를 설정하거나 값을 구문 분석합니다.
  • 기본 채팅: 에이전트에게 메시지를 보내거나 질문을 합니다.

미리 빌드된 워크플로를 선택하면 노드 워크플로가 작성기에서 나타납니다. 각 노드는 특정 작업 또는 구성 요소에 해당하며 순서대로 단계를 수행합니다. 노드에서 세 개의 점을 선택한 다음 이동을 선택하여 노드의 순서를 수정할 수 있습니다. 작업 영역에서 더하기(+) 아이콘을 선택하여 새 노드를 추가할 수 있습니다.

워크플로에 에이전트 추가

프로젝트에서 Foundry 에이전트를 워크플로에 추가할 수 있습니다. 또한 에이전트 노드를 사용하면 모델, 프롬프트 및 도구를 구성하여 새 에이전트를 만들고 사용자 지정된 기능을 제공할 수 있습니다.

고급 옵션 및 에이전트 만들기에 대한 포괄적인 정보는 Foundry 포털의 Foundry 에이전트 탭으로 이동합니다.

기존 에이전트 추가

  1. 워크플로 시각화 도우미에서 더하기 기호를 선택합니다.

  2. 팝업 드롭다운 목록에서 에이전트 호출을 선택합니다.

  3. 새 에이전트 만들기 창에서 기존 에이전트를 선택합니다.

  4. Foundry 프로젝트에서 기존 에이전트를 검색할 에이전트 이름을 입력합니다.

  5. 원하는 에이전트를 선택하여 워크플로에 추가합니다.

새로운 에이전트 생성하기

  1. 워크플로 시각화 도우미에서 더하기 기호를 선택합니다.

  2. 팝업 드롭다운 목록에서 에이전트 호출을 선택합니다.

  3. 에이전트 이름과 에이전트가 수행하는 일에 대한 설명을 입력합니다.

  4. 추가를 선택합니다.

  5. 에이전트 호출 창에서 에이전트를 구성합니다.

  6. 저장을 선택합니다.

에이전트를 호출하기 위한 출력 응답 형식 구성

  1. Invoke 에이전트 노드를 만듭니다.

  2. 에이전트 호출 구성 창에서 새 에이전트 만들기를 선택합니다.

  3. JSON 스키마로 출력을 보내도록 에이전트를 구성합니다.

    1. 세부 정보를 선택합니다.
    2. 매개 변수 아이콘을 선택합니다.
    3. 텍스트 형식의 경우 JSON 스키마를 선택합니다.

    출력에 대한 JSON 스키마 형식을 구성하는 창을 보여 주는 스크린샷.

  4. 원하는 JSON 스키마를 복사하여 응답 형식 추가 창에 붙여넣습니다. 다음 스크린샷은 수학 예제를 보여줍니다. 저장을 선택합니다.

    JSON에서 응답 형식의 추가를 보여 주는 스크린샷

    {
      "name": "math_response",
      "schema": {
        "type": "object",
        "properties": {
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "explanation": {
                  "type": "string"
                },
                "output": {
                  "type": "string"
                }
              },
              "required": [
                "explanation",
                "output"
              ],
              "additionalProperties": false
            }
          },
          "final_answer": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "steps",
          "final_answer"
        ]
      },
      "strict": true
    }
    
  5. 작업 설정을 선택합니다. 그런 다음 json_object/json_schema를 출력 파일로 저장을 선택합니다.

  6. 새 변수 만들기를 선택합니다. 변수 이름을 선택한 다음 완료를 선택합니다.

    Microsoft Foundry 워크플로에서 새 변수를 만드는 옵션을 보여 주는 스크린샷

추가 기능 사용

  • YAML 시각화 도우미 보기: YAML 시각화 도우미 뷰 토글을 기로 설정하면 워크플로가 YAML 파일에 저장됩니다. 시각화 도우미 및 YAML 보기에서 수정할 수 있습니다. 저장하면 새 버전이 만들어지고 버전 기록에 액세스할 수 있습니다.

    시각화 도우미와 YAML은 편집할 수 있습니다. YAML 파일의 모든 변경 내용은 시각화 도우미에 반영됩니다.

  • 버전 관리: 워크플로를 저장할 때마다 변경되지 않는 새 버전이 만들어집니다. 버전 기록을 보거나 이전 버전을 삭제하려면 저장 단추 왼쪽에 있는 버전 드롭다운 목록을 엽니다.

  • 워크플로 시각화 도우미에 대한 참고 사항: 워크플로 시각화 도우미에 메모를 추가하여 워크플로에 대한 더 많은 컨텍스트 또는 정보를 추가할 수 있습니다. 워크플로 시각화 도우미의 왼쪽 위 모서리에서 메모 추가를 선택합니다.

Power Fx를 사용하여 식 만들기

Power Fx는 Excel과 유사한 수식을 사용하는 로우코드 언어입니다. Power Fx를 사용하여 에이전트가 데이터를 조작할 수 있는 복잡한 논리를 만듭니다. 예를 들어 Power Fx 수식은 변수 값을 설정하거나 문자열을 구문 분석하거나 조건에서 식을 사용할 수 있습니다. 자세한 내용은 Power Fx 개요수식 참조를 참조하세요.

수식에서 변수 사용

Power Fx 수식에서 변수를 사용하려면 이름에 접두사를 추가하여 변수의 범위를 나타내야 합니다.

  • 시스템 변수의 경우 System.
  • 지역 변수의 경우 Local.

시스템 변수는 다음과 같습니다.

이름 Description
Activity 현재 활동에 대한 정보
Bot 에이전트에 대한 정보
Conversation 현재 대화에 대한 정보
Conversation.Id 현재 대화의 고유 ID
Conversation.LocalTimeZone 사용자의 표준 시간대(IANA 표준 시간대 데이터베이스 형식)
Conversation.LocalTimeZoneOffset 현재 현지 표준 시간대에 대한 UTC의 시간 오프셋
Conversation.InTestMode 테스트 캔버스에서 대화가 발생하는지 여부를 나타내는 부울 플래그
ConversationId 현재 대화의 고유 ID
InternalId 시스템의 내부 식별자
LastMessage 사용자가 보낸 이전 메시지에 대한 정보
LastMessage.Id 사용자가 보낸 이전 메시지의 ID
LastMessage.Text 사용자가 보낸 이전 메시지
LastMessageId 사용자가 보낸 이전 메시지의 ID
LastMessageText 사용자가 보낸 이전 메시지
Recognizer 의도 인식 및 트리거 메시지에 대한 정보
User 현재 에이전트와 통신하는 사용자에 대한 정보
User.Language 대화별 사용자 언어 설정
UserLanguage 대화별 사용자 언어 설정

수식에서 리터럴 값 사용

Power Fx 수식에 변수를 사용하는 것 외에도 리터럴 값을 입력할 수 있습니다. 수식에서 리터럴 값을 사용하려면 유형에 해당하는 형식으로 입력해야 합니다.

다음 표에서는 데이터 형식과 해당 리터럴 값의 형식을 나열합니다.

유형 형식 예제
String "hi", "hello world!""copilot"
불리언 (Boolean) true 또는 false만 해당
Number 1, 532, 5.258-9201
레코드 및 테이블 [1], [45, 8, 2], ["cats", "dogs"], { id: 1 }, { message: "hello" }{ name: "John", info: { age: 25, weight: 175 } }
날짜 및 시간 Time(5,0,23), Date(2022,5,24)DateTimeValue("May 10, 2022 5:00:00 PM")
선택 지원되지 않음
Blank Blank() 전용

일반적인 Power Fx 수식

다음 표에서는 각 데이터 형식에 사용할 수 있는 Power Fx 수식을 나열합니다.

유형 Power FX 수식
String [Text function][1]
[Concat and Concatenate functions][2]
[Len function][3]
[Lower, Upper, and Proper functions][4]
[IsMatch, Match, and MatchAll functions][5]
[EndsWith and StartsWith functions][6]
[Find function][7]
[Replace and Substitute function][8]
불리언 (Boolean) [Boolean function][9]
[And, Or, and Not functions][10]
[If and Switch functions][11]
Number [Decimal, Float, and Value functions][12]
[Int, Round, RoundDown, RoundUp, and Trunc functions][13]
레코드 및 테이블 [Concat and Concatenate functions][14]
[Count, CountA, CountIf, and CountRows functions][15]
[ForAll function][16]
[First, FirstN, Index, Last, and LastN functions][17]
[Filter, Search, and LookUp functions][18]
[JSON function][19]
[ParseJSON function][20]
날짜 및 시간 [Date, DateTime, and Time functions][21]
[DateValue, TimeValue, and DateTimeValue functions][22]
[Day, Month, Year, Hour, Minute, Second, and Weekday functions][23]
[Now, Today, IsToday, UTCNow, UTCToday, IsUTCToday functions][24]
[DateAdd, DateDiff, and TimeZoneOffset functions][25]
[Text function][26]
Blank [Blank, Coalesce, IsBlank, and IsEmpty functions][27]
[Error, IfError, IsError, IsBlankOrError functions][28]

Power Fx를 사용하여 변수 설정

이 예제에서 Power Fx 식은 고객의 이름을 대문자로 저장하고 출력합니다.

  1. 워크플로를 만들고 질문하기 노드 추가합니다.

  2. 표시되는 창의 질문 상자에 이름이란? 또는 다른 메시지를 입력합니다. 사용자 응답을 저장 상자에서 변수 이름을 입력합니다. 예를 들면 다음과 같습니다Var01. 그런 다음 완료를 선택합니다.

    메시지를 보내기 위한 질문의 구성을 보여 주는 스크린샷

  3. 메시지 보내기 작업을 추가합니다. 나타나는 창에서 보낼 메시지 영역에 {Upper(Local.Var01)}를 입력합니다. 그런 다음 완료를 선택합니다.

    메시지를 보내는 작업에 대한 변수 인스턴스화를 보여 주는 스크린샷.

  4. 미리 보기를 선택합니다.

  5. 미리 보기 창에서 에이전트에 메시지를 보내 워크플로를 호출합니다.

    메시지를 보내는 작업에 대한 질문의 미리 보기를 보여 주는 스크린샷

Power Fx를 사용하여 if/else 흐름 만들기

이 예제에서 Power Fx 식은 고객의 이름을 대문자로 저장하고 출력합니다.

  1. 워크플로를 만들고 질문하기 노드 추가합니다.

  2. 아이콘을 + 선택하고 if/else 흐름을 추가합니다.

  3. System. 텍스트 상자에 입력 하여 각 if/else 조합에 대한 조건 문을 만듭니다. if-else 조건 텍스트 상자의 시스템 변수를 보여 주는 스크린샷.

  4. 워크플로에서 원하는 다음 단계에 대한 다음 작업을 선택합니다.

  5. 완료를 선택합니다. 저장을 선택하여 워크플로 저장