1. 먼저 알아둘 원칙
OwnAgents 웹사이트와 Personal AX 서비스의 운영자는 대한민국 개인사업자 오운에이전츠 (OwnAgents)입니다. NICEPAY(NICEPAYMENTS)는 결제대행 서비스이며 OwnAgents 운영자가 아닙니다. 사업자 정보와 이용약관에서 자세히 확인할 수 있습니다.
OwnAgents는 공개 웹 서비스로 제공됩니다. 신원 확인·고객별 분리·비밀값 보호·실패 시 중단이 한 흐름으로 이어집니다.
서비스 안내 문서는 로그인 없이 읽을 수 있습니다. 계정·상담 화면과 API 응답에는 검색 제외 지침을 적용하지만, 이 지침이 데이터를 보호하지는 않습니다. 비공개 데이터의 접근 권한은 서버에서 별도로 확인합니다.
설치를 준비할 때는 설치 전 확인할 것과 스킬 검토 안내를 참고하세요. 두 안내는 한국어와 영어로 읽을 수 있습니다.
2. 가입과 신원 확인
로그인과 개인정보 입력에는 HTTPS 주소를 사용해 주세요. 비보안 API 요청은 같은 경로의 HTTPS 주소로 전환하고 처리하지 않습니다. HTTPS 응답에는 브라우저가 비보안 연결로 되돌아가지 않도록 하는 전송 정책을 적용합니다.
로그인 시도와 가입·비밀번호 재설정 메일은 처리 전에 횟수를 예약해 동시 요청에도 한도를 적용합니다. 메일 발송 결과를 확인하지 못해도 예약을 되돌리지 않습니다. 재설정 메일 요청에도 가입과 같은 사람 확인을 요구합니다.
정지된 계정은 기존 연결 비밀이나 활성화 코드가 있어도 연결을 활성화하거나 새 작업을 받을 수 없습니다. 작업을 시작하기 직전에 계정 상태를 다시 확인합니다.
로그인은 발급 후 최대 8시간 유지되고, 30분 동안 인증된 요청이 없으면 만료됩니다. 로그아웃은 해당 로그인을 서버에서 폐기한 뒤 브라우저의 로그인 정보를 지웁니다. 통신 오류로 폐기를 확인하지 못하면 다시 시도하도록 안내합니다.
새 계정은 통합 로그인(OIDC)을 통해 Google 또는 Microsoft에서 신원을 확인한 뒤 만듭니다. 이메일 글자만 같다는 이유로 두 계정을 합치지 않습니다. 로그인 제공자가 발급한 변하지 않는 식별자를 기준으로 기존 계정을 찾습니다.
로그인 제공자가 이메일 확인을 완료했는지 확인합니다. 회사·학교 주소는 제공자가 확인한 조직 도메인과 주소의 도메인도 같아야 합니다.
검증된 로그인 증표의 이메일과 사용자 정보 응답의 이메일을 양끝 공백 제거와 소문자 변환 뒤 비교합니다. 두 주소가 같고, 주소 도메인 소유 확인이 참일 때만 신규 가입에 사용합니다.
가입을 제한하는 규칙이 하나라도 켜져 있으면 해당 이메일 또는 도메인과 일치하는 사람만 계정을 만들 수 있습니다. 일치하지 않는 요청은 계정과 고객 작업공간을 만들지 않고 대기 상태로 남깁니다.
비밀번호 가입은 사람 확인(Turnstile)만으로 메일함 소유권을 증명하지 못합니다. 그래서 이 경로는 두 단계로 나뉩니다. 가입을 요청하면 계정을 바로 만들지 않고 확인 링크를 보내며, 그 링크를 열었을 때만 위와 같은 가입 심사를 거쳐 계정과 고객 작업공간을 만듭니다. 비밀번호 재설정도 같은 방식이고, 성공하면 그 계정의 기존 로그인은 모두 끊깁니다.
가입 자체를 닫아 둔 환경에서는 이 검사를 사람 확인보다 먼저 합니다. 확인 링크를 보내지도, 어떤 기록을 남기지도 않고 거절합니다. 또한 가입 요청에는 등록된 주소인지 아닌지와 상관없이 같은 응답을 돌려주어, 이 화면이 “이 주소가 가입돼 있는지” 알아내는 도구가 되지 않게 합니다.
상담지는 계정 없이도 쓸 수 있지만, 연락처가 담긴 상담 내용을 저장하기 전에 메일함 소유를 증명해야 합니다. 증명 방법은 두 가지이고 같은 메일에 함께 담깁니다. 하나는 지금 보던 탭에서 바로 입력하는 6자리 코드이고, 다른 하나는 기존의 긴 확인 주소입니다. 6자리 코드는 평문으로 보관하지 않고 무작위 값을 섞은 해시(salted PBKDF2-SHA256, 100,000회)만 저장합니다. 코드는 10분 뒤 만료되고, 틀린 입력 5회로 잠기며, 한 번 쓰면 코드와 확인 주소가 함께 사라집니다.
6자리 코드는 시도 횟수와 발송 횟수를 여러 겹으로 제한합니다. 익명 세션과 메일 주소는 처음 연결한 조합으로 고정하므로, 동시에 다른 주소로 요청해도 세션 하나가 여러 주소에 묶이지 않습니다. 주소별 발송은 지난 한 시간의 예약 횟수로 제한하고, 새 코드를 저장할 때 이전 코드를 무효화합니다. 발송 결과가 불확실해도 예약은 남습니다.
코드는 요청한 익명 세션과 정확히 일치할 때만 비교 횟수를 예약합니다. 다른 세션이나 연결 정보가 없는 요청은 그 코드의 기회를 차감하지 않으며, 존재하지 않거나 만료된 코드와 같은 오류 및 해시 계산 경로를 사용합니다. 인증 코드 확인 기록에는 실제 비교 예약 시각을 남기고, 코드별 횟수 증가와 같은 트랜잭션에서 서비스 전체의 지난 한 시간 한도를 확인합니다. 코드 재발송·사용·삭제로 이 한도가 초기화되지 않으며, 전체 한도에 도달해도 긴 확인 주소는 사용할 수 있습니다. 익명 세션 발급·메일 발송·코드 확인에는 별도의 네트워크 주소 기준 제한도 적용합니다. 예약 기록은 한도가 끝난 뒤 정리하고, 주소 연결은 익명 세션의 수명이 끝난 뒤 정리합니다.
3. 고객별 분리
인증을 마친 사람은 자신에게 연결된 고객 작업공간만 사용합니다. 요청마다 작업공간 소속을 다시 확인하며, 다른 고객의 식별자를 본문에 넣어도 권한이 바뀌지 않습니다.
- 새 작업공간은 가입 심사를 통과한 뒤에만 생깁니다.
- 기존 로그인은 이메일이 아니라 이미 연결된 로그인 식별자로 찾습니다.
- 작업과 사용량은 고객 작업공간 단위로 기록합니다.
- 한 고객의 임시 자료를 다른 고객에게 옮기지 않습니다.
4. 자료와 비밀값
로그인과 연결 비밀
세션과 일회용 교환 코드, 게스트 토큰, 연결 비밀은 원문 대신 복원할 수 없는 지문(hash)으로 저장합니다. 저장소를 읽더라도 그 값만으로 유효한 로그인 비밀을 되살릴 수 없게 합니다.
DigitalOcean 서버 연결
상담 작성 화면과 VPS 설치 안내에서 계정 화면으로 이동할 수 있습니다. 로그인한 고객이 계정 화면에서 서버 이름과 위치, 사양을 고르면 서버가 DigitalOcean 권한 확인 주소를 돌려주고, 브라우저가 그 주소로 이동합니다. 로그인 비밀은 요청 헤더에만 있고 주소에는 들어가지 않습니다. 요청하는 권한은 서버 생성과 DigitalOcean이 그 생성에 필요하다고 정한 조회 권한(서버·지역·사양·이미지·스냅샷·VPC·작업 내역 읽기)뿐이며, 삭제·계정 변경·SSH 키 권한은 요청하지 않습니다. 이 연결로 OwnAgents 계정을 새로 만들거나 다른 고객의 작업공간에 접근할 수는 없습니다. 확인 요청은 5분 동안 한 번만 쓸 수 있고, 선택한 서버 정보와 요청한 작업공간에 묶입니다.
DigitalOcean 계정 연결만으로 유료 서버를 만들지 않습니다. 돌아온 뒤 서버 사양과 본인 계정의 비용 부담을 확인하고 직접 생성을 승인해야 합니다. 승인하지 않거나 생성 전에 취소하면 서버를 만들지 않습니다. 생성 직전에도 계정 상태를 다시 확인합니다. 생성은 한 번만 시도하며, 생성 직후 받은 임시 권한은 그 권한 자체로 인증한 폐기 요청을 두 번(갱신용·접근용) 보내 즉시 버립니다. 결과나 권한 폐기를 확인하지 못하면 새 연결로도 중복 생성하지 않고 사람의 확인을 기다립니다. 확정된 실패 뒤 새로 연결한 경우에는 새 요청의 승인 화면을 표시하지만, 이미 생성되었거나 처리 결과를 확인하지 못한 요청은 새 요청보다 우선 표시하고 중복 생성을 막습니다. 첫 부팅 설치는 고정된 공식 설치 파일 지문(SHA-256)과 고정된 Hermes 버전을 함께 검증하며, 지문이 다르면 설치하지 않으며, 설치 뒤 실제 체크아웃 버전도 고정한 버전과 같아야 합니다. 서버 생성 접수는 설치 완료나 정상 작동을 뜻하지 않습니다. 설치 로그와 이후 모델·메신저·재부팅 상태는 사용자가 소유한 서버에서 따로 확인해야 합니다.
스튜디오 기록
스튜디오의 고객별 표현 설정은 agent_characters, 변경 불가 지시문 버전은 agent_instruction_versions, 능력 선언 버전은 agent_capability_registries에 분리해 저장합니다. agent_execution_approvals는 선언과 별개의 승인 기록이며, agent_memory_items와 agent_memory_settings는 기억의 제안·확정·사용 중단 상태와 검토 주기를 보관합니다. 모든 기록은 고객 작업공간과 소유한 에이전트에 묶이고, 원래 상담을 삭제하면 함께 삭제됩니다. 기존 설계 원문은 수정하지 않습니다.
스튜디오의 읽기와 쓰기는 제품 로그인, 유효한 계정과 작업공간, 요청 속도, 에이전트 소유권을 확인한 뒤 처리합니다. 변경 요청은 다른 사이트에서 보낼 수 없습니다. 능력의 선택, 설계에 포함, 실행 승인을 구분하며, 저장만으로 승인하지 않습니다. 실행 승인은 해당 선언의 지문과 EXECUTE 확인에 묶여 버전당 한 번 기록되고 30일 뒤 만료됩니다. 취소하거나 새 선언을 저장하면 그 선언에는 이전 승인이 적용되지 않습니다. 준비 중인 능력과 금지한 능력은 승인 대상에서 제외하고, 결제는 매번 승인 또는 금지만 허용합니다.
승인 기록이 있어도 실행 환경은 연결되지 않습니다. 실행 요청은 실행 불가로 거절하며 작업이나 비용 기록을 만들지 않습니다. 실행 위치와 보관 지역은 선언 정보이며 실제 설치나 자료 이동을 수행하지 않습니다. 캐릭터, 최신 지시문의 앞 2,000자, 최근 확정 기억 최대 12개(각 200자)는 체험 답변의 표현에만 반영합니다. 제안·사용 중단 상태의 기억은 제외하며 도구, 권한, 비용 한도와 고객 작업공간은 바꾸지 않습니다.
게스트 자료
익명 상담 초안은 명시적 동의 뒤 저장하며 24시간 후 만료됩니다. 초안에는 이름·이메일·전화번호를 받지 않습니다. 로그인 뒤 한 고객 작업공간으로 한 번 옮겨지면 임시 토큰은 다시 쓸 수 없습니다.
상담 연락처
제출한 자료를 서비스 개선에 사용할 수 있다는 동의를 개인정보 동의와 같은 체크 항목에서 받습니다. 동의한 문구의 버전을 기록하며, 이전 문구에 동의한 기록을 새 동의로 바꾸지 않습니다.
상담의 첫 단계는 이메일 연락처만 받습니다. 로그인한 계정의 이름과 이메일을 미리 채우지만 직접 고칠 수 있습니다. 계정 이메일과 다른 주소는 기존 이메일 확인 코드나 링크로 소유를 확인해야 합니다. 서버는 상담 신청과 최종 제출에서 이 증명을 다시 확인하며, 상담용 증명이 계정이나 작업공간 소유자를 바꾸지는 않습니다.
코드를 확인하는 동안 뒤로 가거나 입력을 바꾸면 이전 요청으로 상담을 이어가지 않습니다. 확인이나 저장 응답이 늦어지면 다시 시도할 수 있습니다.
직무 분야의 학생 선택과 기타 직접 입력은 상담 내용에 저장합니다. 기타를 고르면 설명이 필수입니다.
최종 설문 저장을 확인하면 완료 화면에서 선택 사항인 만족도 조사와 화상 미팅 신청을 함께 보여 줍니다. 만족도와 짧은 의견은 상담 의견 기록에 접수 번호별로 저장합니다. 기존 1–10점 척도를 유지하며, 서버는 응답자가 해당 상담의 주인인지 확인합니다.
화상 미팅은 완료된 상담의 주인만 신청할 수 있습니다. 계정 로그인 또는 이메일을 확인한 상담용 출입증이 필요합니다. 상담에 저장된 이름과 주소로 초대 대상을 정하고 예약을 기록합니다. 요청 본문의 이름이나 이메일로 초대 대상을 바꾸지 않습니다. 이전에 저장한 상담이라도 계정과 다른 연락처는 유효한 이메일 소유 증명을 다시 확인합니다. Microsoft 연결이 없거나 실패하면 신청 접수 상태를 유지하고 담당자가 확인합니다. Teams 참여 주소를 확인하기 전에는 미팅 확정으로 안내하지 않습니다.
상담 신청에 필요한 연락처는 목적을 나누어 보관하고, 수집 후 1년 또는 삭제 요청 중 빠른 시점까지만 유지합니다. 공개 화면에는 이를 조회하는 기능을 두지 않습니다.
로그인하지 않고 상담을 신청하면, 적어 주신 주소로 확인 링크를 먼저 보냅니다. 그 링크를 열기 전까지는 연락처가 담긴 상담 내용을 저장하지 않고 접수 번호도 만들지 않습니다. 다른 사람의 주소를 적어 넣어도 그 사람의 상담이 만들어지지 않게 하기 위한 순서입니다.
링크를 열면 그 상담에만 쓸 수 있는 임시 출입증이 이 브라우저에 발급됩니다. 유효기간은 24시간이고, 상담지 저장, 만족도 남기기, 완료한 상담의 화상 미팅 신청 외에는 아무 권한도 없습니다.
접수 번호는 화면에 보여 주는 표시일 뿐이며 열쇠가 아닙니다. 번호만 알아도 남의 상담을 열어볼 수 없고, 서버가 요청한 사람과 그 상담의 주인이 같은지 매번 확인합니다.
상담 접수 메일은 보내기에 성공했다는 증거(제공자가 돌려준 메시지 번호)를 확인한 뒤에만 “보냈음”으로 기록합니다. 메일 발송이 아직 연결되지 않았거나 실패하면 보낼 목록에 남겨 두고, 화면에도 보냈다고 적지 않습니다.
5. AI 사용 경계
에이전트 설계 · 실행과 분리
스튜디오의 입력 검증과 저장 재시도 판단은 브라우저의 표준 자바스크립트 모듈로 분리합니다. 화면과 통신 없이도 이 판단을 검사하며, 서버의 소유권·입력 검증을 대신하지 않습니다.
브라우저 테스트 명령은 공개 정적 파일을 먼저 빌드하고 콘텐츠 검사를 통과한 뒤 테스트를 하나씩 실행합니다. 이전 빌드가 남아 있을 필요가 없으며, 테스트끼리 같은 빌드 파일을 동시에 바꾸지 않습니다.
에이전트 설계 메뉴는 AI 체험과 별개입니다. 로그인 전에도 분야별 업무와 검증 요건을 비교할 수 있습니다. 로그인한 고객은 상담 없이도 전문 분야, 말투, 기억 방식, 설치할 곳을 고르고 업무 기준을 직접 적을 수 있습니다. 다만 서버에 설계 버전을 저장하려면 내 계정의 완료한 상담을 연결해야 합니다. 프로필과 추가 파일은 설계 입력에 연결되지 않으며, 저장 전 입력은 이 화면에만 남습니다. 내부 제작 도구와 고객 화면은 같은 버전의 설계 규칙을 사용하지만, 고객 화면에서는 매번 로그인과 상담 소유권을 별도로 확인합니다. 원문이 바뀌거나 확인되지 않으면 저장된 설계를 정상으로 표시하지 않습니다.
맞춤 질문의 답변은 목적, 입력 자료, 결과물, 완료 기준, 하지 않을 일 중 연결된 항목의 제안으로 채워집니다. 답변이 없거나 한 항목에 답변이 여러 개면 미정으로 남기고 원문은 보존합니다. 예전 질문의 용도를 추측하지 않으며, 저장된 설계는 당시 규칙으로 다시 확인합니다.
상담 질문·답변과 출처를 해당 제안 옆에 보여주고, 고객이 수락 버튼을 누르면 직접 결정한 입력으로 옮깁니다. 상담의 제안과 직접 확정한 업무 내용을 구분하며, 빈 결정은 미정으로 남깁니다. 말투를 바꿔도 자료 접근, 도구, 승인, 비용 권한이 늘어나지 않습니다. 같은 저장 요청의 재시도는 중복 버전을 만들지 않고, 다른 수정이 먼저 저장되면 최신 버전을 확인하도록 안내합니다. 상담 삭제 시 연결된 설계도 함께 삭제합니다.
설계 저장 시 서버는 선택한 분야의 호환 목록에 설치 대상이 있는지 확인하고, 없는 조합은 거부합니다. 화면의 경고만으로 승인 여부를 판단하지 않습니다. 이 검사는 기존 설계 내용이나 해시를 바꾸지 않으며 실제 동작 검증을 대신하지 않습니다.
카탈로그에 있다는 것은 실행할 수 있다는 뜻이 아닙니다. 금융·코딩·3D·영상 항목은 모두 설정과 별도 검증이 필요합니다. 설계 카탈로그의 기억 방식과 선택 가능한 추가 기억 서비스는 아직 실행 환경에 연결하지 않으며, 운영자의 기억이나 인증정보를 가져오지 않습니다. 추가 기억 서비스는 별도 서비스·데이터베이스·컴퓨팅 자원·백업·운영 및 추출 모델 비용이 추가될 수 있습니다.
로그인한 계정은 저장된 최신 설계의 버전과 해시를 지정해 실행 준비 기록을 별도로 만들 수 있습니다. 서버가 소유권과 원문·설계의 무결성을 다시 확인하며, 같은 설계의 재요청은 서버가 재시작되어도 같은 변경 불가 기록을 돌려줍니다. 준비 기록도 상담 삭제 시 함께 삭제합니다. 제공자·예산·도구·실행 환경·별도 실행 승인은 미해결로 남고 상태는 실행 불가입니다. 준비 기록과 설치용 자료 제작은 다릅니다. 설치 준비 자료의 제작 경로는 미국 PE 분야에만 연결되어 있으며, 다른 분야는 설계와 준비 기록만 저장합니다. 어느 분야도 이 화면에서 설치하거나 실행하지 않습니다. 기록을 만들거나 저장했다고 실행 권한이 생기지 않으며, 브라우저의 계정이 바뀌면 이전 계정의 준비 상태도 지웁니다.
준비 자료를 서비스 간 전달하는 새 경로는 기본적으로 꺼져 있습니다. 이 경로를 사용하려면 계정과 저장된 준비 요청 하나에 묶인 짧은 유효기간의 읽기 권한이 필요합니다. 서버가 원래 계정의 유효성과 최신 설계를 다시 확인하고, 읽기와 결과 확인을 각각 한 번만 허용합니다. 로그인 정보를 다른 서비스에 넘기거나 기록을 실행 승인으로 바꾸지 않습니다.
로그인한 계정은 저장된 설계 버전에 자기만의 이름을 붙여 “내 에이전트”로 둘 수 있습니다. 이름은 표시용 이름표이며 권한을 바꾸지 않습니다. 이름은 계정 안에서만 유일하고, 다른 계정의 설계 번호로는 이름을 붙일 수 없으며 거절된 시도는 기록을 남기지 않습니다. 브라우저의 계정이 바뀌면 이전 계정의 에이전트 목록도 화면에서 지웁니다.
AI 체험에서는 기본 도우미 대신 내 에이전트 중 하나를 골라 답하게 할 수 있습니다. 서버는 STAR 예약 전에 그 에이전트가 로그인한 계정의 것인지 확인하며, 남의 에이전트 번호는 잔액 변동이나 요청 기록 없이 거절됩니다. 선택한 설계에서 확정된 항목(목적·결과물·하지 않을 일·분야·말투)만 답변 지침에 덧붙이고, 미정 항목은 넣지 않습니다. 이 지침은 표시용이며 도구나 실행 권한을 주지 않습니다. 지침 길이는 사용량 예약에 포함되고, 같은 요청 번호에 다른 에이전트를 붙이면 재사용이 아니라 충돌로 처리합니다. 각 체험 기록은 그때 사용한 설계 버전에 묶여, 이후 설계를 고쳐도 과거 대화가 가리키는 버전은 바뀌지 않습니다.
지금 저장하는 것은 실행용 패키지가 아닌 설계 기록입니다. 사용자 소유 서버나 기기 선택은 설치 준비만 나타냅니다. 이 화면에서는 도구 실행·외부 서비스 연결·유료 서버 생성·배포를 하지 않으며, 활성화 기능도 제공하지 않습니다. 실제 동작과 비용, 자료 범위, 승인 유효기간을 검증하고 별도 승인을 받기 전에는 실행하지 않습니다.
브라우저에는 AI 제공자 비밀키나 모델 실행 권한을 넣지 않습니다. 서버가 요청 크기, 고객별 STAR 예약·무료 한도·요청 속도와 공급자별 전체 예산·동시 실행 한도를 확인한 뒤 허용된 요청만 전달합니다. 공급자 동시 실행 한도는 고객별 별도 동시 실행 한도가 아닙니다.
프로필별 실행 경로를 사용하는 경우, 서버가 로그인한 고객과 사용 목적에 연결된 유효한 권한을 비용 예약 전에 확인합니다. 만료되거나 취소된 권한으로 다른 고객의 경로를 사용하지 못하며, 브라우저에서 모델이나 연결 비밀을 지정할 수 없습니다. 로그인 제공자 연결 자체가 AI 실행 권한을 뜻하지는 않습니다.
프로필별 실행 경로에서는 미리 허용된 일시적 처리 제한에만 대체 경로를 한 번 시도합니다. 인증·권한 오류, 불완전한 응답, 처리 여부를 알 수 없는 통신 실패에는 대체 호출을 하지 않습니다. 대체 호출 전에 권한을 다시 확인하고, 두 경로의 비용 상한을 함께 예약합니다.
프로필별 경로와 별도의 서버측 대체 연결 모드는 동시에 선택할 수 없습니다. 두 설정이 겹치면 비용 예약 전에 거절하여 대체 호출이 중첩되거나 권한 확인을 우회하지 못하게 합니다.
출력 길이를 반영한 사용량이 예약 범위를 넘거나, 응답에서 연결 비밀 또는 비밀키 형태가 발견되면 결과를 저장하거나 공개하지 않습니다. 이미 시작된 처리 비용은 예약 범위 안에서 보수적으로 확정하며, 거절된 출력을 정상 결과처럼 잘라서 반환하지 않습니다.
별도의 서버측 추론 연결 모드는 허용된 모델과 인증된 연결만 사용하며, 실행되지 않았음이 확인된 일부 실패에 한해 대체 연결을 한 번 허용합니다. 추론 강도는 각 연결의 서버 설정으로 고정하며, 호출자가 다른 값으로 바꾸거나 기본 연결의 설정을 대체 연결에 넘길 수 없습니다. 설정 전달 여부와 실제 공급자 지원·출력 한도 검증은 구분합니다. 부분 응답이나 실행 여부가 불분명한 실패는 자동 재실행하지 않습니다. 취소와 시간 제한은 연결 전체에 전파하고, 사용량과 STAR 정산은 기존 서버 원장에서 한 번만 처리합니다.
- 사용량은 고객 작업공간에 연결된 기록으로 남깁니다.
- 같은 요청이 반복돼도 중복 과금과 중복 실행을 줄이도록 요청 식별자를 확인합니다.
- 처리 결과를 확정할 수 없으면 같은 외부 호출을 함부로 반복하지 않습니다. 체험과 질문지 생성 모두 실행 전 취소가 확인되면 예약을 해제하고, 실행 기록 저장 여부가 불확실하면 조정 가능한 예약을 유지합니다. 취소 상태·STAR 예약 해제·요청 상태는 같은 저장 단위로 처리하며, 복구 중인 오래된 요청이 새 재시도의 상태를 덮지 않도록 소유권을 확인합니다.
- 결제나 사용량 확인을 끝내지 못하면 새 유료 사용을 시작하지 않습니다. 공급자 예산 정산이 끝나도 미정산 STAR 예약은 완료로 덮지 않습니다. 저장 오류가 복구되면 기존 실행 기록과 STAR 예약을 다시 확인해 한 번만 차감하며, 공급자를 다시 호출하지 않습니다.
6. 1회 결제와 STAR 원장
AI 체험은 로그인한 계정의 이용 가능 여부와 남은 한도를 확인합니다. 무료 한도 이후에는 AI 사용량과 작업량에 따라 STAR가 자동으로 차감됩니다. 같은 요청을 동시에 보내거나 다시 확인해도 한 번만 처리합니다. 계정을 바꾸면 열려 있던 충전창과 이전 답변을 닫고, 이전 요청의 늦은 응답이나 재시도로 새 결제 또는 답변을 시작하지 않습니다. 이미 실행을 시작한 작업과 결제는 원래 계정의 처리 내역에 남습니다.
OwnAgents는 홈과 프로필에서 같은 STAR 충전창을 엽니다. 서버가 기존 상품과 결제 금액을 결정합니다. OwnAgents는 로그인 뒤 홈을 보여 줍니다. 같은 브라우저에서 상담 중 로그인을 시작한 경우에만 해당 단계를 이어갑니다. 저장한 상담지는 홈에서 따로 이어갈 수 있습니다.
OwnAgents는 닉네임과 이메일 확인 시각을 기록합니다. 닉네임은 한글·영문·숫자·밑줄 3–20자로 제한하고 영문 대소문자를 구분하지 않습니다. OwnAgents는 금지 표현을 확인하며 저장한 닉네임을 변경하지 않습니다. 기존 계정이나 가입 중 닉네임이 겹친 계정은 프로필에서 한 번 설정합니다. 닉네임은 가입 후 프로필에서 설정합니다.
OwnAgents는 계정별 초대 코드와 링크를 제공합니다. 새 사용자가 프로필에 추천인의 닉네임 또는 코드를 직접 등록해야 지급을 시작합니다. 링크를 열기만 해서는 지급하지 않습니다. 이메일 확인을 마친 가입 14일 이내 계정만 추천인을 등록할 수 있습니다. 추천인마다 최근 30일 동안 20명까지 받을 수 있습니다. 자기 추천은 거절하고 계정마다 추천인 한 명만 등록합니다. 기존 비밀번호 계정의 이메일 확인 여부는 추정하지 않습니다. 해당 계정은 이메일 비밀번호 재설정으로 소유권을 확인할 수 있습니다.
OwnAgents는 추천 관계를 한 번 기록합니다. 추천 등록 조건을 확인한 뒤 추천 관계 기록과 두 계정의 500 STAR 지급을 함께 처리합니다. 고유 제약이 반복 요청과 동시 등록의 이중 지급을 막습니다. 어느 항목이든 실패하면 전체 변경을 취소합니다. OwnAgents는 추천 등록으로 결제 주문이나 결제 제공자를 호출하지 않습니다.
프로필의 STAR 잔액은 확인된 적립에서 사용분과 진행 중인 요청의 예약분을 뺀 값입니다. 확인 중인 충전은 포함하지 않습니다. 이미 쓴 STAR가 취소되면 음수 잔액을 그대로 표시하고 추가 사용을 막습니다.
새 고객 작업공간에는 300 STAR를 한 번만 지급합니다. 지급 내역은 고객별로 기록하며, 동시 가입·재시도·로그인 재생에서도 중복 지급을 막습니다. 지급 기록이 완료되지 않으면 가입이나 로그인 성공을 표시하지 않으며, 다음 정상 인증에서 같은 항목을 중복 없이 다시 확인합니다.
STAR를 충전할 때는 NICEPAYMENTS 결제창에서 선불로 1회 구매합니다. 구독이나 자동 충전은 하지 않습니다. 로그인한 고객의 주문만 받고, 서버가 상품·금액·서명을 확인한 뒤 결제 완료가 확인된 경우에만 STAR를 적립합니다.
- 로그인한 고객이 서버 소유 상품 ID와 중복 방지 키를 보내면 서버가 금액과 STAR 수량을 결정해 NICEPAYMENTS 결제창의 안전한 공개 필드만 돌려줍니다.
- 결제 기록에는 고객 작업공간, 서버 주문, 금액, 상태, 불투명한 결제 참조와 지문만 둡니다. 카드번호·결제수단 원문·가맹점 비밀키·콜백 또는 웹훅 원문은 저장하지 않습니다.
- NICEPAYMENTS가 보내는 인증 콜백은 제품 세션 없이 도달할 수 있지만, 서버는 주문·클라이언트·금액·서명을 정확히 묶고 NICEPAYMENTS 승인 API의 결제 완료 응답까지 검증한 뒤에만 STAR를 적립합니다. 같은 고객의 승인과 승인 실패 뒤 취소 요청은 고객별 순서 제어 장치가 한 줄로 처리해, 두 콜백이 외부 결제 요청 사이에서 서로 추월하지 못하게 합니다. 브라우저 리디렉션만으로는 적립하지 않습니다. 승인 결과를 확인하지 못하면 취소를 먼저 요청하고, 취소 결과까지 확인하지 못한 경우에는 해당 주문을 조정 대기 상태로 바꾸고 그 주문의 STAR를 사용 가능 잔액에서 제외합니다.
- 조정 대기 상태의 주문은 NICEPAYMENTS 거래 조회로 실제 결제 상태를 다시 확인해 정리합니다. 결제가 살아 있으면 STAR를 적립하고, 취소된 거래였으면 적립하지 않습니다. 이 확인은 고객이 결제 화면을 열 때도 자동으로 실행되므로 알림이 유실돼도 결제한 STAR가 묶여 있지 않습니다. 확인이 끝나지 않은 주문이 남아 있으면 같은 고객의 새 결제를 받지 않아 중복 결제를 막습니다.
- 서명된 결제 알림도 알려진 주문·금액·거래 참조에만 적용합니다. 알림 서명에 결제 상태와 남은 금액이 포함되지 않으므로, STAR를 더하거나 빼기 전에는 NICEPAYMENTS 거래 조회로 현재 상태를 다시 확인합니다. 결제 취소는 원래 적립분을
star_ledger에 반대 항목으로 한 번만 기록하며, 이미 쓴 STAR가 있으면 잔액이 음수가 되어 추가 사용을 막을 수 있습니다. - 유료 체험은 무료 한도와 별도로 표시합니다. 공급자 호출 전에 STAR를 예약하고, 공급자 응답과 요청·출력 길이를 바탕으로 보정한 토큰 사용량에 따라 입력 1,000토큰 시작 단위당 2 STAR와 출력 1,000토큰 시작 단위당 5 STAR로 정산합니다. 같은 요청의 재생은 다시 차감하지 않습니다. 사용량이 불확실한 실행은 예약한 상한으로 보수적으로 정산합니다.
- 서버에 기록한 API 환산 비용은 설정된 모델 단가로 계산한 예산 관리값이며, OAuth 구독 제공자의 실제 청구서가 아닙니다. STAR는 별도의 토큰 요금표를 따르며 API 비용에 대한 화폐 환율이 아닙니다. 맞춤 문항 생성은 공급자 사용량만 기록하며 체험의 STAR 차감 규칙을 적용하지 않습니다.
승인 결과가 불확실하면 결제를 자동으로 다시 요청하지 않고, 취소를 먼저 시도한 뒤 거래 조회로 실제 상태를 확인해 정리합니다. 설정이 빠졌거나 결제 상태를 확정할 수 없으면 새 결제와 새 유료 실행을 허용하지 않습니다.
7. 실패와 복구
필수 확인이 빠졌거나 외부 확인이 끝나지 않으면 저장과 실행 전에 멈춥니다. 화면에서 버튼을 숨기는 방식이 아니라 서버가 결정합니다.
신원 또는 가입 조건이 맞지 않으면 계정과 고객 작업공간을 만들지 않습니다.
완료 여부가 불분명한 요청은 기록을 남기고 자동 중복 실행을 피합니다.
보관 기한이 지난 게스트 자료와 일회용 로그인 교환값은 사용할 수 없게 정리합니다.
필수 보안 설정이 없으면 기능을 열어 두는 대신 닫힌 상태로 응답합니다.
8. Modules · 모듈 경계
브라우저도 같은 방식으로 화면 진입점과 탐색 항목을 선언합니다. 순수 판단, 통신 어댑터, 화면을 분리하고 공개 빌드에는 명시한 모듈 파일만 포함합니다. 기존 스튜디오 주소는 그대로 유지합니다.
스튜디오는 경로, 소유 테이블, 필요한 스키마 변경과 의존 서비스를 선언하는 명세로 등록합니다. 하나의 서비스 안에서 기존 인증·소유권·요청 제한을 통과한 요청만 해당 모듈로 전달합니다. 다른 기능의 기존 경로와 확인 순서는 유지합니다.
HTTP 처리는 입력 해석과 응답 변환을 맡고, 서비스는 주입받은 저장소·시계·해시 함수를 사용합니다. 모듈의 데이터베이스 접근은 저장소 어댑터 한 곳으로 제한하며, 선언한 테이블과 등록된 스키마 변경만 참조하는지 테스트로 검사합니다.