Software as Content: Dynamic Applications를 위한 Human-Agent Interaction Layer
Software as Content: Dynamic Applications as the Human-Agent Interaction Layer
배경 및 소개
최근 AI agent가 web browsing, code execution, API 호출, GUI 조작까지 수행할 수 있을 정도로 빠르게 발전했는데요. 그런데도 인간과 agent가 소통하는 기본 방식은 여전히 chat에 머물러 있다는 문제의식에서 이 글이 출발합니다. 저자들은 이 구조가 현대 agent의 능력과 잘 맞지 않는다고 보는데요. 특히 structured data를 text로 풀어내야 하는 representation mismatch, 사용자가 무엇을 입력해야 할지 매번 추론해야 하는 interaction entropy, 그리고 대화 맥락이 UI에 남지 않는 ephemeral state가 핵심 한계라고 정리합니다. 이는 단순히 prompt engineering으로 해결할 수 있는 수준이 아니라는 점에서 의미가 있습니다. 결국 이 글은 “agent가 무엇을 할 수 있느냐”보다 “그 능력을 어떤 interaction layer로 드러낼 것인가”를 다시 묻고 있습니다.
주요 내용
저자들이 제안하는 핵심은 Software as Content, 즉 SaC입니다. 이는 agent가 생성한 dynamic application을 단순한 출력물로 보는 것이 아니라, 인간과 agent가 함께 상호작용하는 본체로 삼는 관점인데요. 사용자는 더 이상 긴 자연어로 매번 요청하지 않고, filter나 selector, button, slider 같은 affordance를 통해 구조화된 방식으로 의도를 전달합니다. 이때 application은 한번 보여주고 끝나는 artifact가 아니라, interaction cycle마다 상태가 누적되고 갱신되는 shared workspace가 됩니다. 개인적으로는 여기서 chat을 “대화 창”이 아니라 사실상 “low-fidelity command line”처럼 보고 있다는 점이 흥미롭습니다. 언어는 여전히 남아 있지만, 고빈도이고 반복적인 작업에서는 직접 조작 가능한 UI가 중심이 된다는 해석이라고 볼 수 있습니다.
이 논문의 중요한 논점은 SaC가 GenUI와 다르다는 점입니다. 기존 GenUI는 agent output을 text 대신 table, map, chart 같은 interactive UI로 바꾸는 데 강점이 있는데요. 하지만 대체로 그 UI는 한 번 생성되는 결과물이고, 사용자는 결국 다음 수정 요청을 다시 chat에 입력해야 합니다. 즉, output representation은 좋아졌지만 interaction architecture 자체는 그대로라는 한계가 있습니다. SaC는 바로 이 지점을 넘어, generated application이 다음 turn까지 지속되고 스스로 진화해야 한다고 주장합니다. 이를 위해 저자들은 incremental refinement, structural extension, full reconfiguration 같은 multi-level rendering strategy를 제시하는데요. 이는 단순히 화면을 예쁘게 만드는 문제가 아니라, task가 진행되며 interface가 어떻게 성장해야 하는지를 설계 대상으로 끌어올렸다는 점에서 중요합니다.
또 하나 주목할 부분은 SaC가 natural language를 없애지 않는다는 점입니다. 오히려 structured affordance와 natural language를 병행하는 dual-channel model을 택하는데요. 이는 모든 intent가 버튼이나 selector로 환원될 수는 없기 때문입니다. 예기치 않은 요청, 예외적인 조건, 미묘한 맥락 조정은 여전히 언어가 더 적합합니다. 다만 SaC에서는 language가 주된 운반 수단이 아니라 보조 채널이 되고, 반복적이고 파라미터가 분명한 작업은 UI가 담당합니다. 저자들은 selection, exploration, execution task에서 이를 구현해 보이며 기술적 타당성을 확인하고, 동시에 structured interaction이 항상 최선은 아니라는 boundary condition도 함께 제시합니다. 이는 HCI 관점에서 “언제 chat을 써야 하고, 언제 generated software를 써야 하는가”를 구체적으로 나누려는 시도라는 점에서 의미가 있습니다.
결론 및 시사점
이 글의 결론은 꽤 분명합니다. 앞으로의 human-agent interaction을 개선하려면 단순히 더 똑똑한 agent를 만드는 것만으로는 부족하고, interaction medium 자체를 재설계해야 한다는 것입니다. SaC는 dynamic software를 대화의 결과물이 아니라 대화가 이루어지는 layer로 바꾸어 놓는데요. 이 접근은 직접 조작, affordance, 상태 지속성이라는 HCI의 오래된 원리를 agent 시대에 다시 적용한 것으로 볼 수 있습니다. 그래서 기존 chat이 적합한 짧고 단발적인 요청에는 여전히 유효하지만, 구조화된 정보 탐색이나 multi-step task에서는 SaC가 더 자연스러운 대안이 될 수 있습니다. 다만 한계도 분명합니다. 모든 작업이 이런 형태에 잘 맞는 것은 아니고, UI 생성의 복잡성, capability boundary, 개인정보나 신뢰성 문제도 함께 고려해야 합니다. 그럼에도 이 논문은 “dynamic software”를 실체가 있는 연구 대상으로 만들었다는 점에서 의미가 크고, future UI design과 agent orchestration의 방향을 꽤 선명하게 제시한다고 볼 수 있습니다.
💡 HCI 실무자라면 반복적인 chat 기반 업무를 바로 대체하기보다, 자주 조정하는 parameter나 상태가 있는 작업부터 generated UI로 옮겨보는 것이 좋습니다. 연구자라면 SaC를 통해 interface persistence, affordance discovery, agent-state co-evolution을 평가하는 실험 설계를 생각해볼 수 있습니다.
뉴스레터 구독
매주 금요일, 주간 HCI 하이라이트를 이메일로 받아보세요.