Skip to Content
에이전트에이전트 외부에 공개하기

에이전트 외부 공개

내가 키운 에이전트를 링크 하나로 외부인이 지금 모습 그대로 써보게 할 수 있습니다. 로그인하지 않은 외부 사용자도 UpServe 계정 없이 채팅 화면에 들어와 에이전트와 대화하며, 비용은 모두 소유자(나)의 SU에서 차감됩니다. 공개해도 원본 에이전트는 영향받지 않습니다.

공유의 단위는 공개본입니다. 공개본은 공개 시점의 에이전트를 통째로 복제한 사본이며, 이후 원본을 수정하거나 삭제해도 공개본은 독립적으로 유지됩니다.

한눈에 보기

항목내용
공개 전 검수검수 도우미가 파일별 포함/제외를 추천하고 그 자리에서 편집 가능 — 위험할 수 있는 내용이 남아 있으면 공개가 막힘
공유 단위공개본 (공개 시점 에이전트의 사본)
첫 인사말방문자가 링크를 열자마자 보게 될 첫 메시지를 소유자가 직접 편집 가능 (기본값은 검수 도우미가 작성)
외부 API 사전 검진공개본을 만들기 전, 끊길 수 있는 외부 API 호출을 자동으로 찾아 한 번에 허용 가능
외부 사용자 로그인불필요
비용 부담 주체소유자의 SU에서 차감
링크 유형link (단독 페이지) · embed (iframe 위젯)
만료시간 기반 만료 없음 — 소유자가 수동 해제하거나 안전 장치가 자동 차단
업데이트링크 주소를 그대로 둔 채 최신 상태로 교체 가능 — 이전 버전은 7일간 보관(그 안에 롤백 가능) 후 자동 정리
응대 방식 일러두기채팅으로 “방문자에겐 이렇게 답해줘”라고 말해두면 재공개 없이 즉시 반영 (예외 — 아래 참고)
안전 장치세션당 / 일일 SU 상한, 활성 토글, 자동 revoke
세션 보관 기간Free 3일 · Starter 14일 · Pro 90일 · Enterprise 무제한 (소유자 요금제 기준)
첨부 파일 보관별도의 보관 기한 없음 — 소속 세션이 삭제되는 시점(세션 보관 기간 경과 시)에 세션과 함께 자동 삭제

원본 · 공개본 · 링크 관계

[원본 에이전트] [외부 사용자] (계속 수정 가능) UpServe 가입 ✗ │ 공개본 생성 (시점 동결) ├─▶ 공개본 A ─┬─ 링크 1 ─▶ /share/abc... ─▶ 익명 방문자 │ │ │ └─ 링크 2 ─▶ /embed/xyz... ─▶ 내 사이트 iframe │ (수집 필드 / SU 상한 / 도메인 화이트리스트는 │ 링크마다 따로 설정) └─▶ 공개본 B ─┬─ 링크 3 ─▶ /share/def... └─ 링크 4 ─▶ ... ※ 공개본은 별도 샌드박스로 복제 → 외부 사용자의 활동은 원본에 영향 없음 ※ 원본 수정은 기존 공개본·링크에 반영되지 않음 (업데이트하거나 새 공개본을 발급해야 함)

공개본 생성 상태

검수를 마치고 공개본 만들기를 누르면 즉시 대기 중(pending) 상태로 행이 만들어지고, 실제 복사 작업이 백그라운드에서 시작됩니다. 완료되면 준비됨(ready), 오류가 발생하면 실패(failed) 로 전환됩니다. 화면에서 상태가 자동으로 갱신되므로 완료될 때까지 기다리면 되고, 완료 전까지는 링크를 발급할 수 없습니다.

공개본이 캡처하는 것 / 캡처하지 않는 것

공개본은 공개 시점의 에이전트를 격리된 별도 환경으로 복제합니다. 이후 원본 에이전트와 공개본은 서로 독립적으로 동작합니다.

캡처되는 것

  • 에이전트의 이름, 설명, 아바타, 행동 지침
  • 활성화된 도구 설정
  • 에이전트의 파일 시스템(기억·작업 폴더 등) — 지정한 경로만 별도 샌드박스로 복제

캡처되지 않는 것

  • 원본 에이전트의 대화 히스토리
  • 웹훅, 스케줄, 멀티 에이전트 관계
  • 원본 에이전트의 SU·구독 정보

기억 노출 주의. 에이전트의 파일 시스템에는 과거 대화 요약, 메모, 지식 파일 등 개인적인 내용이 포함될 수 있습니다. 공개본을 만들기 전 검수 단계에서 복사될 파일 목록을 반드시 확인하고, 외부에 노출하고 싶지 않은 파일은 제외하세요. 진행 방법은 아래 “공개 전 검수”를 참고하세요.

자동으로 정제 제안. 메모리 파일에 담긴 노하우는 공유하고 싶지만 그 안의 개인정보·고유명사까지 그대로 내보내고 싶지 않을 때가 있습니다. 검수 도우미는 이런 파일을 스스로 찾아내 개인정보와 고유명사를 걷어낸 정제됨 버전을 미리 준비해 두고, 검수 화면에서 바로 확인·수정할 수 있게 보여줍니다. 원본 파일은 공유되지 않습니다.

파일 내용 확인. 검수 화면에서 파일을 선택하면 내용을 바로 볼 수 있습니다. 내용을 확인할 수 있는 파일은 지정된 경로 안의 텍스트 파일에 한하며, 바이너리 파일은 내용 대신 “바이너리 파일” 표시가 나타납니다.

공개 세션에서 허용되는 도구

방문자마다 별도의 작업 공간이 주어집니다. 공개 세션에 들어온 사람은 각자 자기 몫의 격리된 작업 공간을 받습니다. 한 방문자가 만든 파일이나 실행 결과는 다른 방문자에게 보이지 않고, 원본 에이전트에도 남지 않습니다. 그래서 공개본은 읽고 답하는 것을 넘어 실제로 작업을 해낼 수 있습니다.

허용되는 주요 도구:

  • 웹 검색, HTTP 요청
  • 이미지 생성
  • 파일 읽기·쓰기·편집, 파일 공유
  • 코드 실행
  • 스킬 실행 (아래 단서 참조)
  • 카드 전송 (구조화된 UI 응답)
  • 기억 회수, 히스토리 검색, 원본 대화 참조

스킬은 소유자의 계정 연결이 필요 없는 것만 실행됩니다. 연결된 계정(구글·슬랙 등)이나 저장해 둔 키가 필요한 스킬은 공개 세션에서 자동으로 거절되고, 에이전트는 그 스킬 없이 할 수 있는 일을 이어갑니다. 방문자에게 계정을 대신 연결해 달라고 요청하지도 않습니다.

브라우저 자동화, 데스크톱 자동화, 스킬 검색·설치, 캔버스, 스케줄 관리, 팀 협업, 저장된 자격증명 사용은 자동으로 차단됩니다. 공개 세션에서는 사용자 되묻기도 자동으로 비활성화됩니다 — 에이전트는 외부 사용자에게 직접 질문하는 대신 텍스트 응답 안에서 자연스럽게 안내합니다. 추가로 차단하고 싶은 도구는 공개본을 만들 때 추가로 차단할 도구 목록에 지정할 수 있습니다.

방문자가 만든 것은 세션과 함께 사라집니다. 격리된 작업 공간은 그 방문자의 세션이 보관 기간을 넘겨 정리될 때 함께 사라집니다. 방문자에게 결과물을 남겨 주려면 에이전트가 파일 공유로 건네야 합니다.

기억 회수·참조 도구는 외부 화면에 도구명이 보이지 않습니다. 기억 회수, 히스토리 검색, 원본 대화 참조 3종은 실행되어도 외부 사용자 화면에 도구 이름이 표시되지 않고 “recall” 같은 일반 카테고리로만 나타납니다. 그 외 허용된 도구(웹 검색, 이미지 생성, 코드 실행 등)는 화면에 실행 이름이 표시됩니다.

원본 대화 참조 안전 장치. 공개본 에이전트는 소유자가 공유를 승인한 범위 안에서만 원본 대화 내용을 참조할 수 있습니다. 이 참조는 공개본 생성 시점에 동결된 내용만 포함하며, 그 이후 원본 에이전트가 진행한 대화는 포함되지 않습니다. 외부 사용자는 이 참조를 통해 원본 대화를 직접 열람하거나 검색할 수 없습니다.

외부 API 호출. 원본 에이전트가 평소 쓰던 외부 API는 공개본에 그대로 이어지지 않습니다. 공개 세션에서도 쓰게 하려면 별도로 허용해야 하며, 방법은 아래 “공개 세션의 외부 API 권한”을 참고하세요.

채팅으로 응대 방식 일러두기 (동결의 예외)

공개본은 위에서 설명한 대로 만드는 시점에 통째로 동결됩니다. 다만 방문자를 어떻게 대할지만큼은 예외입니다. 원본 에이전트와 평소처럼 대화하다가 “공개본에서는 이렇게 답해줘” 같은 말을 남기면, 공개본을 다시 만들거나 업데이트를 실행하지 않아도 그 순간 이후 오가는 대화부터 곧바로 반영됩니다.

  • 예: “고객에게는 짧게 답해줘”, “가격 문의가 오면 견적 페이지 링크만 안내해줘”
  • 에이전트가 이런 말을 알아서 기억해 두었다가, 방문자와 대화할 때마다 참고합니다. 별도 화면을 열거나 저장 버튼을 누를 필요가 없습니다 — 채팅으로 말하는 것이 곧 저장입니다.
  • 공개본 관리 화면(공개본 탭)에도 이를 알려주는 안내 문구가 있습니다: “공유한 사람들에게 어떻게 응대할지는 채팅으로 일러두면 됩니다 — ‘고객에게는 짧게 답해’처럼 말해 두면, 다시 공유하지 않아도 바로 반영됩니다.” — 웹·iOS·Android 모두 같은 안내가 뜹니다.

이 응대 지침 외에 동결되지 않는 것이 하나 더 있습니다 — 외부 API 권한입니다. 대화 내용, 켜져 있는 도구, 기억 파일의 실제 내용은 여전히 “공개본이 캡처하는 것 / 캡처하지 않는 것”에서 설명한 그대로 공개 시점(또는 마지막 업데이트 시점)에 멈춰 있습니다. 반면 외부 API 권한은 애초에 공개본 단위로 캡처되는 항목이 아니라 에이전트 전체에 걸리는 별도 설정이라서, 소유자가 허용 범위를 바꾸면 이미 발행된 모든 공개본에 재발행 없이 곧바로 적용됩니다 — 자세한 내용은 아래 “공개 세션의 외부 API 권한”을 참고하세요. 즉 “말투·응대 태도”와 “어떤 외부 API를 쓸 수 있는지”는 실시간으로 바뀌고, “무엇을 알고 있고 어떤 도구가 켜져 있는지”는 여전히 업데이트를 실행해야 바뀝니다.

소유자가 직접 채팅으로 말한 것만 반영됩니다. 방문자가 공개본과의 대화 중에 “앞으로 이렇게 답해줘”라고 말해도 그 내용은 반영되지 않습니다. 에이전트는 소유자 본인과의 대화에서 직접 들은 지시만 응대 지침으로 받아들이도록 설계되어 있습니다.

공개 전 검수

공개본을 처음 만들 때는 먼저 검수 도우미와 함께 무엇을 공개할지 정리하는 단계를 거칩니다.

  1. 에이전트 상세 페이지 → 공개본 탭에서 새 공개 버전 만들기를 누르면 검수 도우미가 채팅 창에서 시작됩니다. 채팅 화면에서 시작한다면 상단의 공유·게시 메뉴 → 외부에 공개를 눌러도 같은 화면이 모달로 바로 열립니다. 이 공개 버전을 누가, 어떤 목적으로 쓸지 알려주면 도우미가 에이전트의 기억 파일과 최근 대화를 살펴보고 무엇을 담을지 정리합니다.
  2. 정리가 끝나면 검토 화면이 열립니다. 왼쪽에는 파일 목록이, 오른쪽에는 선택한 파일의 내용이 보입니다.
    • 각 파일에는 도우미의 포함 추천 / 제외 추천 표시와 그렇게 추천한 이유가 함께 나타납니다.
    • 체크박스로 포함/제외를 직접 바꿀 수 있고, 추천과 다르게 선택하면 표시가 강조됩니다.
    • 개인정보나 고유명사가 섞인 파일은 도우미가 미리 걸러낸 정제됨 버전으로 보여줍니다. 직접 편집을 누르면 내용을 그 자리에서 고칠 수 있고, 원본과 비교로 무엇이 달라졌는지 확인할 수 있으며, 마음에 안 들면 원본으로 되돌리기로 되돌릴 수 있습니다.
  3. 다 정리했으면 다음을 눌러 이름·설명·첫 인사말을 입력하고 공개를 확정합니다. 첫 인사말은 방문자가 링크를 열자마자 보게 될 에이전트의 첫 마디로, 검수 도우미가 기본값을 미리 써 두며 필요하면 직접 고칠 수 있습니다. 비워두면 방문자는 인사 없이 빈 대화창을 보게 됩니다.

공개를 막는 항목이 있으면 안내가 뜹니다. 위험할 수 있는 내용이 남아 있거나 파일이 너무 크면 “공개 전에 해결해야 할 항목이 있어요”라는 안내와 함께 해당 파일이 표시되고, 문제를 해결하기 전까지는 공개가 진행되지 않습니다. 이 확인은 화면뿐 아니라 서버에서도 함께 이뤄지므로, 안내가 사라질 때까지는 어떤 방법으로도 공개할 수 없습니다. 안내에 따라 내용을 고치거나 그 파일을 제외로 바꾸면 다시 공개를 진행할 수 있습니다.

도우미 없이 바로 만들 수도 있습니다. 검수 도우미 화면에서 코치 없이 바로 만들기를 선택하면, 추천이나 자동 정제 없이 파일 목록에서 포함/제외만 직접 고르는 단순한 화면으로 바로 이동합니다.

검수 내용은 시간이 지나면 만료됩니다. 도우미와 만든 검토 내용을 오래 확정하지 않고 두면 만료 안내가 뜨고 공개가 막힙니다. 이때는 처음부터 다시 버튼으로 검수 도우미를 새로 시작하면 됩니다.

공유 링크 만들기

  1. 에이전트 상세 페이지 → 공개본 탭으로 이동합니다 (/agents/<에이전트>/shared). 채팅 화면 상단의 공유·게시 메뉴(과거 이름은 “내보내기”) → 외부에 공개를 눌러도 같은 관리 화면을 모달로 곧바로 열 수 있습니다.

    참고. 공유·게시 메뉴에는 이 화면으로 가는 지름길 외에, 지금 보고 있는 대화 내용을 Markdown/JSON 파일로 내려받는 메뉴도 함께 있습니다. 대화 파일 내려받기는 소유자 본인의 개인 대화를 저장하는 기능으로, 이 페이지에서 다루는 “외부 사용자에게 공개하기”와는 별개입니다.

  2. 약관·개인정보처리방침에 동의한 뒤 새 공개 버전 만들기를 클릭합니다.

    • 위 “공개 전 검수” 단계를 거쳐 무엇을 담을지 정리합니다.
    • 패키지 크기 상한이 있으므로, 불필요한 파일이나 외부에 노출되면 안 되는 파일은 제외하는 것이 좋습니다.
    • 검수를 마치고 공개를 확정하면 대기 중(pending) 상태가 되며, 복사가 완료되면 준비됨(ready) 으로 바뀝니다.
  3. 생성된 공개본에 링크를 추가합니다. 링크마다 다음을 따로 설정합니다.

    • 유형: link (외부 단독 페이지) 또는 embed (내 사이트에 iframe으로 삽입)
    • 수집 필드: 이름·이메일·전화번호 각각을 필수 / 선택 / 미수집 중 선택
    • 세션당 최대 SU (예: 500 SU)
    • 일일 최대 SU (예: 5,000 SU)
    • 허용 도메인 (embed인 경우): iframe을 띄울 수 있는 도메인 화이트리스트
  4. 생성된 URL을 복사하여 배포합니다.

    • link 유형: https://upserve.app/share/<link_key>
    • embed 유형: https://upserve.app/embed/<link_key> — 임베드 코드 스니펫이 함께 제공됩니다.

한 에이전트가 여러 개의 공개본을 가질 수 있고, 각 공개본은 다시 여러 개의 링크를 가질 수 있습니다. 캠페인별 / 채널별로 링크를 분리하면 사용량을 따로 추적할 수 있습니다.

카카오톡 채널에 연결하기

이미 운영 중인 카카오톡 채널이 있다면, 채널로 오는 고객 문의를 이 링크의 공개본 에이전트가 대신 응대하게 만들 수 있습니다.

  1. 링크 설정 화면 안의 카카오톡 채널 연결 항목에서 발급을 누릅니다.
  2. 화면에 스킬 서버 URL요청 헤더 값, 두 가지가 표시됩니다. 카카오 챗봇 관리자센터(오픈빌더)의 스킬 만들기 화면에 그대로 입력합니다.
  3. 만든 스킬을 시나리오의 폴백 블록에 연결하면, 채널로 들어오는 문의가 이 링크의 에이전트에게 전달되고 응답이 카카오톡 말풍선으로 돌아갑니다.

이 두 값은 지금 화면에서만 볼 수 있습니다. 창을 닫으면 다시 확인할 방법이 없고, 잃어버리면 기존 연결을 폐기한 뒤 새로 발급받아야 합니다(그러면 오픈빌더 쪽 스킬 등록도 다시 해야 합니다). 두 값을 모두 복사했는지 화면이 확인해 주니, 안내가 사라진 뒤 창을 닫으세요.

연결 목록에는 지금까지 들어온 요청 횟수와 마지막 요청 시각이 표시되어, 채널이 실제로 이 에이전트와 이어져 있는지 확인할 수 있습니다. 더 이상 쓰지 않는 연결은 폐기 버튼으로 끊을 수 있습니다.

공개본 업데이트

에이전트를 계속 다듬다 보면, 이미 공유해 둔 공개본의 내용을 최신 상태로 바꾸고 싶어질 때가 있습니다. 예전에는 공개본을 새로 만들고 링크도 다시 발급해야 했지만, 이제는 이미 공유한 링크 주소(단독 페이지·임베드 모두)를 그대로 둔 채 내용만 최신 버전으로 바꿀 수 있습니다.

  1. 공개본 목록에서 업데이트할 공개본을 찾아 업데이트 버튼을 누릅니다.
  2. 이전에 발행했던 이름·설명·공유에 포함할 파일·공유에서 차단할 도구 설정이 기본값으로 채워진 화면이 열립니다. 검수 도우미와 함께 만들었던 공개 버전이라면, 그때 정했던 포함/제외 선택이 그대로 이어받아집니다.
    • 화면의 파일 목록은 체크한 파일만 공개된다는 기준으로 동작합니다. 체크를 해제하면 이번 버전에서 빠집니다.
    • 화면을 열자마자 모든 파일이 나열되지는 않습니다. 직전 발행 이후 원본이 바뀌었거나 새로 생긴 파일, 검토가 필요한 파일만 펼쳐서 보여주고, 직전 결정과 달라진 게 없는 파일은 “직전과 같은 파일” 묶음으로 접어 둡니다 — 결정은 그대로 유지되니 매번 전체 목록을 다시 훑을 필요가 없습니다.
    • 지난 발행 이후 원본에 새로 생긴 파일에는 새로 생김 표시가 붙고, 기본으로 체크 해제된(=제외된) 상태로 열립니다. 한 번도 검수를 거치지 않은 내용이 모르는 사이에 공개되지 않도록 하기 위해서입니다. 공개하고 싶다면 체크하세요.
    • 지난 검수 이후 원본 쪽 내용이 달라진 파일에는 원본 변경됨 표시가 붙습니다. 파일을 열면 공개 중인 버전과 비교로 바뀐 부분만 확인할 수 있어, 파일 전체를 다시 읽을 필요가 없습니다. 검수 도우미로 만든 공개 버전이라면, 새로 생기거나 바뀐 파일이 있을 때 화면에 안내와 함께 코치와 다시 검토 버튼이 나타납니다. 누르면 검수 도우미가 그 파일들을 다시 살펴 새 검토안을 만들어 주고, 요약을 확인한 뒤 이 검토안으로 업데이트를 눌러야 실제로 반영됩니다.
    • 원본 대화 반영 시점을 이전 버전 그대로 유지 옵션을 켜지 않으면, 새 버전은 지금 이 순간까지의 원본 대화 내용을 반영합니다.
  3. 매번 같은 판단을 반복하고 싶지 않다면 규칙으로 기억시킬 수 있습니다. 파일 옆의 규칙 버튼을 누르면 “이 파일은 항상 포함/제외” 또는 “이 폴더 전체는 항상 포함/제외”를 정할 수 있습니다. 한 번 정해두면 다음 업데이트부터(새로 생기는 파일 포함) 그 결정이 자동으로 적용되어, 같은 경로·폴더를 매번 다시 판단하지 않아도 됩니다. 규칙은 언제든 목록에서 확인하고 삭제할 수 있습니다.
  4. 업데이트를 누르면 새 버전을 만드는 동안 잠시 기다립니다. 완료되면 지금까지 발급했던 모든 링크가 자동으로 새 버전을 가리키도록 바뀝니다. 이미 공유해 둔 URL이나 임베드 코드를 다시 손볼 필요는 없습니다.

이전 버전은 사라지지 않습니다. 공개본 목록의 이전 버전 섹션을 펼치면 지금까지 교체된 버전들을 확인할 수 있고, 새 버전에 문제가 있다면 롤백 버튼으로 링크를 다시 이전 버전으로 되돌릴 수 있습니다. 롤백할 때도 링크 주소는 바뀌지 않습니다.

업데이트가 반영되는 순간에 이미 대화 중이던 방문자는 끊김 없이 이전 버전으로 대화를 이어가고, 그 이후 새로 들어오는 방문자만 새 버전을 만나게 됩니다.

이전 버전은 7일 후 자동으로 정리됩니다. 롤백은 이 7일 안에만 가능합니다. 더 빨리 정리하고 싶다면 공개본 목록에서 직접 삭제할 수 있습니다.

자동 갱신 (선택)

매번 손으로 업데이트하기 번거롭다면 공개본 수정 화면에서 자동 갱신을 켤 수 있습니다. 켜두면 원본 에이전트가 변경되었을 때 설정한 주기(일 단위) 마다 새 버전을 자동으로 만들어 공유 링크를 전환합니다. 링크 주소는 그대로 유지됩니다. 공개본 목록에는 자동 갱신이 켜진 공개본과 갱신 주기가 표시되고, 원본이 이 버전 이후 변경되어 원본과 차이 있음 상태가 되면 알림으로 알려줍니다. 자동 갱신은 원본이 실제로 변경되었을 때만 동작하며, 변경이 없으면 새 버전을 만들지 않습니다.

자동 갱신은 이미 공개했던 파일만 최신 내용으로 바꿉니다. 지난 발행 이후 새로 생긴 파일은 아무도 확인한 적이 없으므로 자동 갱신에서는 공개본에 넣지 않습니다. 위에서 만든 “항상 제외” 규칙은 자동 갱신에도 그대로 적용되지만, “항상 포함” 규칙은 사람이 직접 업데이트를 실행할 때만 적용됩니다 — 아무도 검토하지 않은 새 파일이 자동으로 공개되는 일을 막기 위한 안전장치입니다. 새 파일까지 공개하려면 직접 업데이트를 열어 해당 파일을 체크하거나, 검수 도우미와 재검토한 뒤 확정하세요.

공개 세션의 외부 API 권한

원본 에이전트가 평소 업무에 쓰던 외부 API(주문 조회, 사내 시스템 연동 등)는 공개본에 자동으로 이어지지 않습니다. 그대로 두면 공개 세션에서 그 호출만 조용히 실패합니다. 이 화면에서 소유자가 미리 허용해 둔 대상에 한해서만, 서버가 저장된 인증 정보를 자동으로 붙여 요청을 대신 보내줍니다.

어디서 설정하나요. 에이전트 상세 페이지 → 공개본 탭에 공개 세션의 외부 API 권한이라는 접힌 고급 항목이 있습니다. 개별 공개본이 아니라 이 화면 전체에 하나만 존재하며, 여기서 허용한 내용은 이 에이전트의 모든 공개본에 공통으로 적용됩니다.

끊길 API를 자동으로 찾아줍니다. 공개본을 만드는 화면과 이미 발행된 공개본의 관리 화면 양쪽에 사전 검진 카드가 뜰 수 있습니다. 원본 에이전트가 실제로 쓰고 있는 외부 API 중 아직 허용되지 않은 것을 자동으로 찾아 보여주며, 허용 버튼 한 번으로 바로 적용됩니다. 이미 발행된 공개본에 적용할 때는 공개본을 다시 만들 필요 없이 곧바로 반영됩니다. 제안이 없으면 카드 자체가 나타나지 않으며, 허용하지 않아도 공개 자체는 막히지 않습니다.

대상이 내가 발행한 다른 웹앱 링크일 때는(자기 앱이라 경로 하나하나 통제할 실익이 낮으므로) 조회(읽기) 경로를 낱낱이 나열하는 대신 이 앱의 모든 조회 요청 허용 하나로 묶어 제안할 수 있습니다. 이 경우 에이전트가 아직 써보지 않은 조회까지 포함되고 공개 링크를 가진 사람이 그런 조회를 요청하게 만들 수 있다는 점이 안내로 함께 표시됩니다. 변경(쓰기) 요청은 이 광역 허용에 포함되지 않으며 항상 개별 규칙으로만 허용됩니다. 호스트를 직접 입력하는 제3자 API 대상에는 이 광역 허용이 제안되지 않습니다.

직접 등록도 가능합니다. 권한 추가를 누르면 다음을 정할 수 있습니다.

  • 사용할 자격증명(Vault에 저장된 값 중 하나)
  • 대상: 내가 발행한 다른 웹앱 링크를 고르거나, 호스트 주소를 직접 입력
  • 허용할 메서드·경로 — 규칙을 여러 개 추가해 필요한 만큼만 세밀하게 허용할 수 있습니다(메서드·경로를 직접 입력). 위에서 설명한 “모든 조회 요청 허용” 묶음은 자동 제안에서만 제공되며, 직접 등록할 때는 경로마다 규칙을 하나씩 추가합니다.

등록해 둔 권한은 규칙 단위로 개별 삭제할 수 있어, 전체를 취소하지 않고도 필요 없어진 항목만 뺄 수 있습니다(단, 마지막 남은 규칙을 지우면 그 권한 자체가 사라집니다).

공개 세션 중 요청이 올 수도 있습니다. 방문자와 대화하던 공개본 에이전트가 아직 허용되지 않은 API 호출이 필요하면, 실패로 끝내는 대신 소유자에게 조용히 승인을 요청할 수 있습니다. 이 화면에 요청 목록이 뜨고, 어떤 메서드·경로·대상에 대한 요청인지, 에이전트가 밝힌 이유(검증되지 않은 참고용)와 함께 허용 / 거부로 처리할 수 있습니다. 자격증명 이름이나 내부 식별자는 방문자에게도, 대화 내용에도 노출되지 않습니다.

안전 장치. 등록해 둔 권한이라도 자격증명 원문은 방문자·대화·로그 어디에도 노출되지 않으며, 서버가 요청을 대신 보낼 때만 내부적으로 사용됩니다. 권한별 하루 호출 한도(기본 1,000회)를 넘으면 그 이후 요청부터는 인증 정보가 붙지 않습니다. 등록해 두지 않으면 공개 세션은 인증이 필요한 외부 API를 아예 호출할 수 없습니다.

“항상 직접 확인”으로 표시한 파일이 바뀌면 자동 갱신이 그 회차를 통째로 건너뜁니다. 업데이트 화면에서 파일 옆 규칙 버튼으로 특정 파일이나 폴더를 “항상 직접 확인”으로 지정할 수 있습니다. 그렇게 표시한 파일의 내용이 바뀌면, 공유 링크는 기존 버전을 그대로 서빙한 채 갱신을 멈추고 알림을 보냅니다. 그 파일만 빼고 나머지를 발행하지 않는 이유는 에이전트의 기억 파일이 서로를 참조하기 때문입니다 — 하나만 빠지면 나머지가 없는 파일을 가리키게 되어 공개본이 이상하게 동작할 수 있습니다. 알림을 받으면 업데이트를 열어 내용을 확인한 뒤 직접 발행하세요. 확인이 끝나 발행하면 자동 갱신도 다시 정상 동작합니다.

항목linkembed
진입 경로단독 페이지iframe 내부
iframe 안에서 열기차단 (보안)허용
헤더·배경표시숨김 / 투명
부모 페이지와 통신없음postMessage로 사용자 정보 전달 / 자동 높이 조정
도메인 화이트리스트사용 안 함허용 도메인만 임베드·메시지 수신

임베드 스니펫 예시

<iframe src="https://upserve.app/embed/<link_key>" style="width: 100%; height: 600px; border: 0; border-radius: 12px;" allow="clipboard-write" ></iframe>

자동 높이 조정이 필요하면 부모 페이지에서 postMessage로 들어오는 { type: 'resize', height } 이벤트를 받아 iframe.style.height를 갱신하면 됩니다.

부모 페이지가 이미 사용자를 알고 있다면 { type: 'user-context', data: { name, email, phone } }을 iframe으로 보내 입장 폼을 건너뛰게 만들 수도 있습니다. phone은 선택 항목입니다. 허용 도메인 검증을 통과한 경우에만 적용됩니다.

외부 사용자가 보는 화면

  1. 링크에 진입하면 에이전트 이름·설명과 함께 입장 폼이 표시됩니다.
  2. 링크 설정에 따라 이름·이메일·전화번호를 입력합니다 (필수/선택은 소유자가 정합니다).
  3. 약관 / 개인정보처리방침 동의 체크박스 — 외부 사용자가 한 번 동의해야 시작할 수 있습니다.
  4. 채팅 화면이 열립니다. 소유자가 첫 인사말을 설정해 두었다면 그 인사말로 대화가 시작되고, 없으면 빈 대화창으로 시작합니다. 답변은 실시간 스트리밍으로 도착합니다.

‘나도 만들기’ 링크 (선택). 공유 화면 하단에는 “UpServe로 제공됩니다” 표기가 붙습니다. 소유자가 링크 설정에서 방문자에게 ‘나도 만들기’ 링크 표시를 켜두면, 이 표기에 UpServe 가입 링크가 연결되어 방문자가 마음에 든 에이전트를 직접 만들어 볼 수 있는 진입점이 됩니다. 기본값은 꺼짐이며, 링크마다 따로 설정합니다.

비용과 안전 장치

공유 링크에서 발생하는 LLM·도구 호출 비용은 모두 소유자의 SU에서 차감됩니다. 외부 사용자는 비용을 부담하지 않습니다. 따라서 안전 장치 설정이 매우 중요합니다.

장치동작
세션당 SU 상한한 사용자의 한 세션이 상한을 넘기면 그 세션은 즉시 차단되고 추가 메시지 전송이 막힙니다
일일 SU 상한링크 전체의 하루 사용량이 상한을 넘기면 신규 세션 생성이 거부됩니다 (다음 날 자동 리셋)
자동 revoke소유자 SU 소진 시 (credit_exhausted) 또는 소유자 계정 삭제 시 (account_deleted) 링크가 자동 비활성화됩니다
링크 토글소유자가 언제든 링크를 비활성화 또는 삭제할 수 있습니다 (owner_revoked)
Rate limit메타 조회 분당 30회 / 세션 생성 분당 10회·시간당 60회 / 메시지 전송 분당 20회·시간당 200회(세션당 분당 12회) — 모두 외부 IP 기준

두 SU 상한 모두 선택 입력입니다. 세션당/일일 상한을 비워 두면 그 상한 검사 자체가 적용되지 않아, 소유자의 전체 SU가 소진되기 전까지는 사실상 무제한으로 소비될 수 있습니다. 안전 장치가 실제로 걸리게 하려면 특별한 이유가 없는 한 두 값을 모두 채워 두는 것을 권장합니다.

링크를 비활성화하거나 삭제하면 그 시점에 진행 중이던 외부 세션도 즉시 종료됩니다. 외부 사용자에게는 종료 사유가 표시됩니다.

[외부 사용자] [소유자 계정] 익명 방문자 SU 잔고 │ ▲ │ 메시지 전송 │ ▼ │ 차감 ┌──────────────────────────┐ │ │ 공개본 샌드박스 │ ── LLM 호출 / 도구 호출 ───┘ │ (격리된 별도 환경) │ └──────────────────────────┘ │ 안전 장치 (모두 통과해야 진행) ┌──────────────────────────────────────────────┐ │ ⛔ 세션당 상한 초과 → 세션 차단 │ │ ⛔ 일일 상한 초과 → 신규 세션 거부 │ │ ⛔ 소유자 잔고 0 → 링크 자동 revoke│ │ ⛔ 소유자 수동 비활성화 → 즉시 세션 종료 │ └──────────────────────────────────────────────┘

운영과 모니터링

소유자 화면(/agents/<에이전트>/shared)에서는 다음을 확인할 수 있습니다.

  • 세션 목록: 각 세션의 사용자 정보, 사용한 SU, 마지막 활동 시간, 차단 여부
  • 메시지 로그: 세션별 전체 대화 내용 (소유자만 열람 가능)
  • 감사 로그: 링크 생성·수정·revoke·CSV 내보내기 등의 모든 변경 이력
  • CSV 내보내기: sessions.csv (세션 목록), messages.csv (메시지 상세), usage.csv (SU 사용량 집계), audit-logs.csv (감사 로그) 4종

방문자 대화 피드백 활용. 공개본을 1개 이상 발행한 원본 에이전트는 외부 방문자들의 대화 기록을 직접 열람할 수 있습니다. 이 기능을 통해 방문자가 에이전트에게 어떤 질문을 하는지, 어디서 막히는지 파악하고 다음 공개본 업데이트에 반영할 수 있습니다.

보안과 개인정보

공유 기능은 외부 사용자의 개인정보를 다루므로 다음 정책이 적용됩니다.

  • 데이터 처리 책임자: 소유자(에이전트를 공유한 사람)가 외부 사용자 데이터의 컨트롤러이며, UpServe는 인프라 처리자 역할을 수행합니다.
  • 수집 항목: 사용자가 직접 입력한 이름·이메일·전화번호(선택), 익명 세션 식별자, IP, User-Agent.
  • 방문자 간 세션 격리: 같은 공유 링크에 여러 방문자가 접속해도 각 방문자의 대화는 서로 노출되지 않습니다. 한 방문자의 대화에서 생겨난 내용은 에이전트에 남지 않으므로, 이후 방문자가 이전 방문자의 대화 내용을 볼 수 없습니다. 공개 시점에 소유자가 담아둔 기억은 모든 방문자에게 동일하게 제공되며, 방문자 대화로 인해 바뀌지 않습니다.
  • 세션 보관 기간: 소유자의 요금제에 따라 자동 정리됩니다 — Free 3일, Starter 14일, Pro 90일, Enterprise는 자동 정리 없이 무제한 보관됩니다. 소유자가 구독을 낮추면 유예 기간을 거친 뒤 낮아진 등급의 (더 짧은) 보관 기한이 적용됩니다.
  • 첨부 파일: 별도의 보관 기한을 두지 않으며, 소속 세션이 삭제되는 시점(위 세션 보관 기간 경과 시)에 세션과 함께 자동 삭제됩니다.
  • 대화 내역: 소속 세션과 함께 보관되며, 위 세션 보관 기간이 지나면 세션과 함께 자동 삭제됩니다 (공개본 자체를 삭제하는 것과는 별개입니다).
  • 로그 기록: 90일 보관.
  • 감사 로그: 영구 보존 (분쟁·법적 대응 목적).
  • 개인정보 삭제 요청: 소유자 대시보드에서 특정 세션의 사용자 정보(이름·이메일·전화번호)를 삭제할 수 있습니다.

자세한 내용은 외부 사용자에게 노출되는 공유 에이전트 약관 개인정보처리방침 을 참고하세요.

자주 묻는 질문

Q. 원본 에이전트를 수정하면 이미 배포된 공유 링크에 반영되나요?

아닙니다. 공개본은 생성 시점에 동결됩니다. 다만 공개본 목록에서 업데이트 기능을 사용하면, 이미 공유해 둔 링크 주소를 그대로 유지한 채 최신 상태로 새 버전을 만들 수 있습니다. 자세한 방법은 위 “공개본 업데이트” 섹션을 참고하세요.

한 가지 예외는 방문자를 어떻게 대할지입니다. 채팅으로 “이렇게 답해줘”라고 일러두면 업데이트 없이 바로 다음 대화부터 반영됩니다. 자세한 내용은 위 “채팅으로 응대 방식 일러두기” 섹션을 참고하세요.

Q. 외부 사용자가 에이전트의 기억 파일이나 메모를 영구적으로 바꿀 수 있나요?

아닙니다. 외부 사용자의 활동은 원본 에이전트에 영향을 주지 않습니다. 또한 한 방문자의 대화에서 생겨난 내용은 에이전트에 저장되지 않기 때문에, 같은 공유 링크를 통해 들어온 다른 방문자가 이전 방문자의 대화 내용을 볼 수 없습니다. 공개 시점에 소유자가 담아둔 기억은 모든 방문자에게 동일한 출발점으로 제공되며, 방문자 대화로 인해 바뀌지 않습니다.

Q. 공유 페이지에서 에이전트가 파일을 만들어 전달하거나 이미지를 생성할 수 있나요?

기본적으로 가능합니다 — 파일 공유와 이미지 생성 도구가 허용되어 있어, 에이전트가 만든 결과물을 방문자가 내려받을 수 있습니다(현재 방문자가 직접 파일을 첨부해서 올리는 기능은 없습니다). 비용 통제가 걱정된다면 공개본을 만들 때 추가 차단 목록에 넣어두면 됩니다.

Q. 비밀번호 보호나 만료일 설정이 가능한가요?

현재는 지원하지 않습니다. 대신 링크 자체를 비활성화하거나 삭제하는 방식으로 접근을 즉시 차단할 수 있고, 일일/세션 SU 상한으로 노출을 제한할 수 있습니다.

Q. 한 에이전트당 만들 수 있는 공개본·링크 수에 제한이 있나요?

기능적인 개수 제한은 두지 않습니다. 다만 공개본마다 별도의 샌드박스가 복제되므로, 활용하지 않는 공개본은 정리하는 편이 좋습니다.

더 알아보기


고급 (Advanced)

아래 내용은 일반 사용 시 알 필요가 없습니다. 업데이트·롤백, 검수 초안, 응대 지침 반영, 외부 API 권한의 내부 동작을 정확히 이해하고 싶을 때만 참고하세요.

검수 초안 동작 방식

  • 검수 도우미가 저장한 초안은 24시간 동안 보관됩니다. 그 안에 공개를 확정하지 않으면 초안이 만료되어 사라지고, 화면에는 만료 안내와 함께 도우미를 새로 시작하라는 안내가 표시됩니다.
  • 검수 화면에서의 파일 목록·내용 편집은 잠시 후 자동으로 저장되며, 공개를 확정하는 순간에도 마지막 편집분을 한 번 더 저장한 뒤 진행합니다.
  • 위험할 수 있는 내용이 남아 있는지, 파일이 용량 한도를 넘는지는 편집할 때마다, 그리고 최종 공개를 확정하는 순간에도 서버가 다시 확인합니다. 화면 쪽 확인을 어떤 식으로든 건너뛰더라도 서버 쪽 확인을 통과하지 못하면 공개 자체가 거부됩니다.
  • 실제로 공개(발행)까지 이어진 초안은 이후 그 공개본을 업데이트할 때 이전 포함/제외 선택을 이어받는 용도로 계속 보관됩니다. 공개본이 삭제되면 이 보관본도 함께 정리됩니다.
  • 코치 없이 바로 만들기를 선택한 경우에는 이 검수 초안·자동 정제 과정을 거치지 않고, 화면에서 직접 고른 포함/제외만 반영됩니다.

공개본 업데이트 동작 방식

  • 업데이트는 기존 공개본을 고쳐 쓰는 것이 아니라, 원본 에이전트의 현재 상태로 완전히 새로운 공개본을 만든 뒤 기존 링크들을 한 번에 새 공개본으로 전환하는 방식으로 동작합니다. 전환이 끝나기 전까지는 이전 버전이 계속 응답을 이어갑니다.
  • 전환 시점 이전에 이미 대화를 시작한 방문자는 접속했던 버전으로 세션이 유지되고, 전환 이후 새로 들어오는 방문자만 새 버전으로 안내됩니다.
  • “이전 버전”으로 넘어간 공개본은 대체된 시점부터 정확히 7일이 지나면 백그라운드 정리 작업이 자동으로 영구 삭제합니다 (연결된 방문자 세션·실행 환경 포함). 롤백은 이 7일 안에서만 가능합니다.
  • 롤백해도 새로 만든 버전 자체는 삭제되지 않고 목록에 남지만, 그 순간부터는 어떤 링크와도 연결되어 있지 않습니다. 이 버전을 다시 쓰려면 새 링크를 발급하거나(새 주소로 발급됨) 이 버전을 대상으로 다시 업데이트를 실행해야 하는데, 업데이트는 그때마다 원본 에이전트의 현재 상태를 새로 복제하는 것이라 롤백 전 이 버전의 내용이 그대로 되살아나는 것은 아닙니다.
  • 원본 에이전트가 삭제된 공개본은 업데이트할 수 없습니다(업데이트 버튼이 비활성화됩니다) — 반영할 원본이 더 이상 존재하지 않기 때문입니다.
  • 이미 발행되어 있는 공개본의 파일을 그 자리에서 직접 고치는 기능은 없습니다. 내용을 바꾸려면 원본 에이전트를 먼저 고친 뒤 업데이트를 실행하거나, 업데이트를 진행하면서 검토 화면에서 해당 파일을 직접 편집해야 합니다.
  • 업데이트 화면에서 “바뀐 부분만 보기”로 뜨는 diff는 직전에 실제로 발행된 버전의 그 파일 내용을 기준선으로 비교합니다. 정제된 파일은 정제본과 원본 현재 내용을 비교하는 쪽이 우선 적용됩니다.
  • 포함/제외 규칙(파일 또는 폴더 단위)은 화면의 기본 승계·추천보다 우선 적용되지만, 자동 갱신 경로에서는 제외 규칙만 자동으로 반영됩니다. 포함 규칙은 사람이 직접 업데이트 화면을 열어 확정할 때만 적용됩니다 — 아무도 검토하지 않은 신규 파일이 자동 갱신을 통해 조용히 공개되는 것을 막기 위한 장치입니다.

응대 지침 반영의 내부 동작

  • 소유자가 채팅으로 남긴 응대 지침은 에이전트가 자신의 파일 하나에 목록 형태로 계속 누적해 씁니다. 이 파일은 공개본을 만들 때 사본에 복사되지 않으며, 매 방문자 턴마다 서버가 원본 에이전트 쪽의 최신 내용을 직접 읽어 그 턴의 지시문에 끼워 넣습니다. 그래서 소유자가 방금 고친 내용이 다음 턴부터(이미 진행 중이던 방문자의 다음 메시지 포함) 반영되며, 재공개·업데이트라는 절차 자체가 필요 없습니다.
  • 이 파일에는 크기 상한이 있습니다 — 방문자 수만큼 매 턴 실리는 자리라 일반 기억 파일보다 훨씬 작게 잡혀 있고(수십 개 항목 수준), 넘으면 새 저장이 거부되어 에이전트가 정리하도록 유도됩니다.
  • 위험할 수 있는 내용(가짜 역할 지정, 숨겨진 제어 문자 등)이 섞여 있으면 그 지침 블록 전체가 조용히 무시되고 프롬프트에 실리지 않습니다. 다른 안전 검사와 마찬가지로 사람의 재확인 없이 자동으로 걸러집니다.
  • 이 채널에서 문제가 생겨도(예: 일시적인 조회 오류) 턴 자체는 실패하지 않고 응대 지침 없이 진행됩니다 — 이 지침은 말투·태도를 다듬는 용도이고, 실제 안전 경계(어떤 파일이 넘어갔는지, 어떤 API에 접근 가능한지, 금고가 닫혀 있는지)는 이 채널과 무관하게 항상 별도로 강제되기 때문입니다.
  • 이 파일은 공개본에는 복사되지 않으므로, 공개본과 직접 대화하는 방문자 쪽 세션에는 애초에 이 파일이 존재하지 않습니다. 그래서 방문자가 남긴 말이 이 지침으로 흘러 들어갈 경로 자체가 없습니다.

외부 API 권한의 내부 동작

  • 등록된 권한은 자격증명 이름 + 대상(호스트 또는 발행된 웹앱 링크) + 허용 메서드·경로 규칙의 조합으로 저장됩니다. 공개 세션의 요청이 이 조합과 정확히 일치할 때만 서버가 저장된 인증 정보를 요청에 붙여 대신 보냅니다 — 자격증명 원문은 어떤 경로로도 방문자 세션이나 대화 내용에 전달되지 않습니다.
  • “이 앱의 모든 조회 요청 허용” 제안은 대상이 내가 발행한 다른 웹앱 링크일 때만 서버가 자동으로 만듭니다 — 그 앱에 실제로 관찰된 조회(GET) 경로들을 광역 규칙 하나로 병합하는 것으로, 사용자가 직접 등록하는 화면에는 이 병합 옵션이 없습니다(경로마다 규칙을 하나씩 추가). 호스트를 직접 입력하는 제3자 API 대상에는 이 병합이 제안되지 않습니다. 쓰기 요청은 이 병합 대상이 아니며 항상 개별 규칙으로 등록해야 합니다.
  • 공개 세션의 에이전트가 승인되지 않은 호출을 시도하면, 그 호출은 실행되지 않고 대신 소유자에게 보여줄 승인 요청 한 건이 생성됩니다. 요청에 담기는 호스트·자격증명 이름 등은 방문자가 직접 지정할 수 없고, 항상 그 원본 에이전트가 이미 보유한 유효한 권한 목록에서만 서버가 골라 채웁니다 — 방문자 세션이 새로운 호스트를 등록시킬 수 있는 경로는 없습니다. 남용을 막기 위해 대기 중인 요청 개수와 거부 이후 재요청 간격에도 제한이 있습니다.
  • 권한별 하루 호출 한도(기본 1,000회)를 넘기면 그 시점 이후의 요청부터는 인증 정보가 붙지 않은 채로 나가며, 대상 API가 인증 없이 응답을 거부하면 그대로 실패합니다.