내 사이트에 넣는 endue Live
사이트 주소를 등록하고 코드 한 줄을 붙이면 내 사이트 안에서 에이전트와 대화하는 창이 열립니다. endue.live 페이지도 주인이 직접 꾸밉니다.
코드 한 줄이면 endue Live 채팅 창이 내 사이트 안에서 열리고, endue.live 페이지는 주인이 직접 꾸밉니다. endue API 키 하나로 OpenAI·Anthropic SDK 와 Claude Code 에서 모델을 바로 부르고, 쓴 만큼 크레딧에서 빠집니다. 스튜디오에는 에이전트별 사용량이 생겼고, 아티팩트는 아웃풋으로, 어빌리티는 리소스로 이름을 바꿨습니다. Dream 이 쉬는 시간에 기억을 정리하고, 답은 더 빨리 시작됩니다.

사이트 주소를 등록하고 코드 한 줄을 붙이면 내 사이트 안에서 에이전트와 대화하는 창이 열립니다. endue.live 페이지도 주인이 직접 꾸밉니다.
endue API 키로 모델을 바로 부릅니다. OpenAI 와 Anthropic 형식을 그대로 받아서 base URL 과 키만 바꾸면 되고, 쓴 만큼 크레딧에서 빠집니다.
캔버스의 사용량 탭에서 에이전트 하나가 채널, 라이브, API 로 받은 대화와 쓴 크레딧을 통로별로 봅니다.
에이전트가 만든 것은 아웃풋 한 목록에, 에이전트에게 주는 것은 리소스 한 패널에 모았습니다. PPT 나 엑셀처럼 받을 형식도 고릅니다.
에이전트가 쉬는 시간에 기억을 정리합니다. 겹친 기억을 합치고 낡은 사실을 고치며, 자는 시간은 둥근 시계로 정합니다.
실행을 시작하기 전에 하던 확인을 줄이고 한꺼번에 처리합니다. 새 대화에서 첫 글자가 나오기까지의 시간이 짧아졌습니다.

지난 릴리즈에서 에이전트에게 endue.live/@핸들 주소가 생겼습니다. 링크를 건네면 누구나
대화할 수 있었지만, 방문자가 endue.live 로 와야 했습니다. 이제 에이전트가 내 사이트로 갑니다.
스튜디오 라이브 패널의 「사이트에 넣기」에서 사이트 주소를 등록하고, 나오는 코드 한 줄을
사이트의 </body> 앞에 붙입니다. 사이트 구석에 버튼이 뜨고, 누르면 endue Live 와 같은 채팅
창이 그 자리에서 열립니다. 버튼 없이 페이지 안에 창을 바로 놓을 수도 있습니다. 버튼의 위치와
모양, 문구, 창의 밝기는 설정에서 고르고, PC 와 휴대폰에서 어떻게 보일지 미리보기로 확인합니다.
창은 등록한 사이트에서만 열립니다. 코드를 다른 사이트에 붙여도 동작하지 않습니다. 설정을
바꿔 저장하면 1분 안에 사이트에 반영됩니다.

endue.live 페이지는 주인이 직접 꾸밉니다. 「페이지 꾸미기」에서 한 줄 소개와 환영 인사, 방문자가 눌러서 시작할 질문, 링크, 강조 색과 배경을 정합니다. 한국어와 영어를 따로 적을 수 있고, 입력하는 대로 미리보기가 바뀝니다.
endue.live 의 대화도 달라졌습니다. 지난 릴리즈에서는 답을 다 만든 뒤 한 번에 보여 줬습니다. 이제 답이 만들어지는 대로 흘러나오고, 에이전트가 지금 무엇을 하는지 한 줄로 보이며, 도중에 멈출 수 있습니다. 방문자가 쓴 언어를 따라 답할지 정해 둔 언어로만 답할지도 라이브 설정에서 고릅니다.

endue 에서 모델을 쓰려면 에이전트를 거쳐야 했습니다. 프롬프트와 기억, 도구를 가진 에이전트가 필요한 일도 있지만, 내 코드에서는 모델 호출 한 번이면 되는 때가 많습니다.
이제 endue API 키로 모델을 바로 부릅니다. 요청은 OpenAI Chat Completions 와 Anthropic Messages
형식을 그대로 받습니다. 이미 OpenAI 나 Anthropic SDK 를 쓰는 코드라면 base URL 을
https://platform.endue.ai/api/v1/llm 으로, 키를 endue 키로 바꾸면 됩니다. Claude Code 도 환경
변수 두 개로 붙습니다. 설정 › 계정 › LLM API 에 주소와 Python, Node.js, curl, Claude Code 예시가
있어서 그대로 복사해 씁니다.
비용은 크레딧에서 나갑니다. 호출하기 전에 그 호출이 가장 많이 들 수 있는 만큼을 잡아 두고,
끝나면 실제로 쓴 만큼만 뺀 뒤 나머지를 돌려놓습니다. 잔액이 모자라면 모델을 부르지 않고 402 를
돌려줍니다. 차감액은 응답의 usage.cost 에 적혀 옵니다. 부를 수 있는 모델과 토큰당 가격은
모델 페이지와 GET /llm/models 에서 봅니다. 1 크레딧은 US$1 입니다.
LLM API 는 구매했거나 프로모션으로 받은 크레딧에서만 빠집니다. 요금제의 사용 한도는 에이전트에 쓰는 것이라 여기에는 쓰이지 않습니다. 키는 설정 › 계정 › API 키에서 만든 계정 전체 키를 씁니다. 에이전트 하나로 제한해 만든 키로는 모델을 직접 부를 수 없습니다.

쓴 내역은 Usage 의 출처 탭에 나옵니다. 출처는 에이전트, 에이전트 API, endue Live, LLM API 넷이고, 출처마다 어떤 모델을 얼마나 썼는지 함께 보입니다. 요청 형식과 오류 코드는 LLM API 문서에 정리했습니다.

계정 전체 사용량은 Usage 에서 볼 수 있었습니다. 에이전트 하나가 어디로 들어온 요청에 얼마를 썼는지는 볼 곳이 없었습니다. Live 를 켠 뒤 방문자 대화에 크레딧이 얼마나 드는지, API 로 붙인 서비스 가운데 어느 키가 많이 부르는지 같은 것들입니다.
스튜디오 캔버스 머리에 사용량 탭이 생겼습니다. 구성 탭에서 보던 캔버스 그대로, 요청이 들어오는 통로마다 숫자가 붙습니다. 채널 연결과 라이브 주소, API 키에 대화 수와 응답 수, 크레딧이 적히고, 에이전트로 가는 선은 쓴 만큼 굵어집니다. 기간은 7일, 30일, 90일 중에 고릅니다.
노드를 누르면 오른쪽에 분석 패널이 열립니다. 앱, API, 라이브, 채널, 루틴, 스페이스 여섯 출처의 대화와 응답, 토큰, 크레딧이 표로 나오고, API 키와 채널 연결별로도 나눠 봅니다. 캔버스 아래 그래프는 날마다 쓴 양을 출처별로 쌓아 보여 주고, 누른 통로 하나만 따로 볼 수도 있습니다. 사용량 탭은 에이전트 주인에게만 보입니다.

에이전트가 만든 결과물은 두 군데로 갈라져 있었습니다. 문서와 파일은 아티팩트였고, 여러 파일로 된 앱은 앱이었습니다. 무언가를 찾으려면 그게 어느 쪽이었는지부터 떠올려야 했고, 아티팩트라는 말은 매번 설명이 필요했습니다.
이제 둘 다 아웃풋입니다. 왼쪽 레일의 Outputs 를 열면 파일과 앱이 한 목록에 수정한 순서대로
섞여 있고, 카드마다 문서, 표, 슬라이드, 페이지, 앱 같은 종류가 붙습니다. 검색은 한 번으로 둘을
같이 찾습니다. 대화 옆의 「이 대화의 아웃풋」과 ⌘K 팔레트도 같은 목록을 씁니다. 예전에 받은
/artifacts 와 /apps 링크는 그대로 열립니다.

받을 형식도 고릅니다. 컴포저의 형식 칩에서 문서, PPT, 엑셀, 앱 중 하나를 고르고 요청하면
에이전트가 그 형식으로 만듭니다. PPT 는 .pptx, 엑셀은 .xlsx 파일로 저장되고, 내려받지 않아도
브라우저에서 슬라이드와 시트를 바로 봅니다. 고르지 않으면 자동이고 형식은 에이전트가 정합니다.
고른 형식은 그 요청 한 번에만 적용됩니다.

스킬과 커넥터를 묶어 어빌리티라고 불렀습니다. 에이전트가 할 수 있는 일이라는 뜻이었습니다. 그런데 에이전트가 일하는 컴퓨터와 브라우저, 휴대폰이 같은 자리에 들어오면서 이름이 맞지 않게 됐습니다. 기기를 능력이라고 부르기는 어색했습니다.
그래서 리소스로 바꿨습니다. 내가 에이전트에게 줄 수 있는 것을 한곳에 모았다는 뜻입니다. 왼쪽 레일의 리소스 패널은 스킬, 커넥터, 디바이스 세 구역입니다. 스킬과 커넥터는 둘러보는 디스커버리와 내가 가진 것으로 나뉘고, 디바이스에는 Computer, Chrome, Android, Desktop 이 제품별로 모입니다. 따로 불리던 컴퓨터와 Chrome 도 여기서는 모두 디바이스입니다. 스튜디오의 에이전트 카드도 Identity, Resources, Inventory 세 묶음으로 같은 말을 씁니다.
예전 /abilities 주소로 들어와도 같은 자리의 리소스 화면으로 이어집니다.

오래 쓴 에이전트는 기억이 쌓입니다. 같은 내용이 두 번 적히고, 바뀐 사실이 옛 모습으로 남고, 끝난 약속이 열린 채로 있습니다. 지금까지 이 정리는 성장형 트레이트에 붙은 루틴이 맡았습니다.
정리를 Dream 이라는 트레이트로 떼어 냈습니다. 켜면 에이전트가 쉬는 시간에 기억을 정리합니다. 겹치는 기억을 합치고, 낡은 사실을 고치고, 끝난 약속을 닫고, 더는 쓸모없는 기억은 보관합니다. 그런 다음 기억마다 한 줄 요약과 검색어를 달아 둬서 다음 대화에서 필요한 기억을 더 빨리 찾습니다. 보관한 기억은 메모리의 「보관됨」에 그대로 남아 있어서 되돌릴 수 있습니다. 고정해 둔 기억은 고치거나 보관하지 않습니다.
자는 시간은 둥근 시계로 정합니다. 손잡이 두 개가 취침과 기상입니다. 취침 시각에 정리를 시작하고, 기상 시각이 지나면 그날은 새로 시작하지 않습니다. 시계 아래에서 요일을 고릅니다. 지난 정리 뒤로 바뀐 기억도 새 대화도 없는 날은 건너뛰어서 사용량이 생기지 않습니다. 정리를 마칠 때마다 무엇을 합치고 고치고 보관했는지가 리포트로 아웃풋에 남습니다.
성장형 트레이트는 대화하는 동안 배우는 일을 맡습니다. 보고서 양식이나 작업 순서를 가르쳐 주면 스킬로 저장해 다음 대화부터 따르고, 자기가 만든 파일은 목록으로 챙겨 뒀다가 필요할 때 바로 엽니다. 스킬과 파일은 주인과 대화할 때만 배웁니다. 에이전트가 배운 스킬은 트레이트 설정에 최근 순으로 보이고, 마음에 들지 않으면 되돌립니다.
질문을 보내고 첫 글자가 나오기까지의 시간은 대부분 모델 밖에서 쓰이고 있었습니다. 실행을 시작하기 전에 대화와 권한, 스킬, 커넥터를 하나씩 차례로 확인했고, 그 실행이 데이터와 먼 곳에서 돌았습니다.
같은 것을 두 번 읽던 확인을 없애고, 서로 상관없는 확인은 한꺼번에 합니다. 새 대화는 데이터와 가까운 곳에서 실행합니다. 답이 끝나면 완료부터 알리고 제목 짓기 같은 뒷정리는 그 뒤에 합니다. 개발 환경에서 재 보니 요청을 받고 모델을 부르기까지 6.5초쯤 걸리던 구간이 1초에서 2초 사이가 됐고, 짧은 질문의 첫 글자는 3초 안팎에 나옵니다. 이미 있던 대화는 실행 위치가 그대로라서 새 대화에서 차이가 가장 큽니다.
컴포저의 작업량은 새 대화에서 모델 기본값으로 시작합니다. 전에는 늘 중간으로 시작해서 모델 기본값보다 오래 생각했습니다. 「없음」을 고르면 이제 실제로 추론을 끕니다.
대화에 찍힌 API 키와 토큰은 기본으로 가립니다. 앞머리는 그대로 두고 나머지 글자를 점으로 바꾸며, 가린 채로 복사해도 원래 값이 복사됩니다.
기억이 닿는 범위를 대화 상대에 따라 나눴습니다. endue Live 방문자와 API 로 에이전트를 부른 쪽은 에이전트의 공용 기억만 읽고, 주인 개인의 기억은 보지 못하며 기억을 새로 남기지도 못합니다. 채널에서 누가 「기억해」라고 하면 그 사람의 기억으로만 남습니다.
LLM API 는 계정 전체 키만 받습니다. 에이전트 하나로 제한한 키를 받은 쪽이 그 키로 모델을 직접 부를 수는 없습니다.
endue.live 페이지는 다른 사이트의 프레임 안에 들어가지 않습니다. 사이트에 넣는 창만, 주인이 등록한 사이트에서 열립니다.