스페이스(에이전트 작업 공간)란?
한 고객의 대화, 문서, 기억을 담는 격리된 컨테이너 — 데이터베이스 수준에서 강제되어, 한 고객의 자료가 다른 고객의 대화에 나타날 수 없습니다.
스페이스는 프라이버시의 단위입니다. 모든 최종 고객이 하나씩 가지며, 그 관계에 관한 모든 것 — 무엇을 물었는지, 무엇을 업로드했는지, 에이전트가 무엇을 기억하는지 — 이 그 안에 삽니다.
왜 단순한 필터가 아닌가
다수 고객을 위한 AI를 만드는 솔깃한 방법은 모든 것을 한 더미에 쌓아 두고 각 쿼리에 고객 ID를 더하는 것입니다. 필터 없이 쿼리 하나가 작성되기 전까지는 작동합니다. 그러면 조용히, 그리고 최악의 방향으로 실패합니다: 누군가 다른 사람의 문서를 읽게 됩니다.
격리는 한 층 아래, 데이터베이스에 속해야 합니다. 그래야 범위가 빠진 쿼리가 전부가 아니라 아무것도 반환하지 않습니다.
여기서 강제되는 방식
격리는 모든 쿼리가 기억해야 하는 WHERE customer_id = ?가 아닙니다. agent4.io에서는 고객의 대화, 업로드된 문서, 기억이 그들의 스페이스에 키가 매겨지고 데이터베이스의 행 수준 보안(row-level security)으로 강제됩니다. 그래서 범위 없이 도착한 쿼리는 전부가 아니라 아무것도 반환하지 않습니다. 문서 본문은 추가로 그 고객에게 속한 키로 암호화됩니다.
이것은 고객 지식 베이스가 그 뒤에 자리 잡은 것과 같은 경계입니다 — 그래서 고객에게 여권, 급여명세서, 거부 이력을 업로드하도록 초대해도 그것이 당신이 떠안을 문제가 되지 않습니다.
이것이 사업에 주는 것
보관해도 안전한 고객별 기억. 에이전트는 이 고객이 6시 이후에는 WhatsApp을 선호한다는 것, 그의 사건에 배우자가 관련되어 있다는 것, 그가 이미 은행 거래 내역서를 보냈다는 것을 기억할 수 있습니다 — 바로 그 기억이 다른 사람과의 대화로 새어 나갈 수 없기 때문입니다.
보안 질문에 대한 방어 가능한 답. "고객 파일을 어떻게 분리해서 보관하나요"는 진지한 구매자라면 누구나 묻는 질문이며, "고객 ID로 필터링합니다"는 편안한 답이 아닙니다.
민감한 자료가 갈 곳. 여권, 거부 이력, 재무 자료 — 당신이 대비했든 아니든 이런 것들은 도착합니다.
에이전트를 위한 페이지별 브리핑 — 이미 알고 있어야 할 배경, 첫 인사말, 그리고 몇 가지 추천 질문 — 으로, 방문자가 채팅을 연 URL로부터 자동으로 선택됩니다.
에이전트가 특정한 미래 시점에 하기로 약속하는 작업 — 스스로 보내기로 결정한 후속 조치나, 반복되는 알림 — 으로, 누군가 먼저 말하기를 기다리는 대신 스케줄러가 제때 실행합니다.
에이전트가 대화 중간에 구성하는 작은 폼 — 선택지, 숫자, 날짜 — 으로, 타이핑으로 답할 질문 한 문단이 아니라 탭할 수 있는 무언가로 렌더링됩니다.
사용자가 제공한 텍스트 — 또는 에이전트가 읽는 문서, 웹 페이지, 이메일에 숨겨진 텍스트 — 가 모델에 의해 새로운 지시사항으로 해석되어 에이전트가 규칙을 포기하거나, 정체성을 변경하거나, 시스템 프롬프트를 노출하게 만드는 공격입니다. 공격은 정당한 입력과 동일한 채널을 통해 도착하므로, 더 엄격한 프롬프트를 작성하는 것으로는 해결할 수 없습니다. 효과적인 방어는 모델 앞뒤에 위치해야 합니다.