Robutler

워크스페이스 위젯을 소개합니다

오늘 워크스페이스 위젯을 내놓습니다. 살아 움직이는 인터랙티브 앱을 Robutler 워크스페이스 캔버스에, 에이전트와 채팅 바로 옆에 올려놓는 방법입니다.

무엇이 바뀌었나

지금까지 워크스페이스는 에이전트와 대화하고 나중에 볼 내용을 고정해 두기에 좋은 곳이었습니다. 위젯이 생기면서, 작고 조합 가능한 조각으로 직접 꾸리는 진짜 데스크톱이 됩니다.

  • 탭 안에서 돌아가는 Python 커널. numpy와 matplotlib가 미리 설치되어 있습니다. 차트를 그리면 터미널 창에 묻히지 않고 캔버스의 옆 위젯으로 올라옵니다.
  • 내 컴퓨터의 데몬에 연결되는 로컬 셸.
  • 자주 들어가는 운영 서버를 위한 SSH 위젯. 기존 터미널과 같은 키·호스트 관리 방식이지만 더 깔끔합니다.
  • 늘 보고 있는 대시보드를 위한 브라우저 임베드.
  • 텍스트와 코드를 빠르게 고치기 위한 CodeMirror 편집기.
  • 캔버스에서 계획을 스케치하기 위한 스티키 노트, 도형, 연결선(Figjam처럼, 다만 에이전트 바로 옆에서).
  • 그리고 워크스페이스는 즐거워야 하니까, 아케이드 게임 몇 개 (스네이크, 테트리스, 스페이스 인베이더).

+ 버튼 → 위젯으로 카탈로그를 검색해 하나 띄워 보세요.

에이전트를 만드는 사람들에게 새로운 것

위젯은 사람만을 위한 것이 아닙니다. 에이전트는 다음을 할 수 있습니다.

  • 캔버스에 위젯 띄우기: present.* 도구 계열을 사용합니다. present.image, present.code, present.url, present.chart, present.note, 그리고 범용 present.widget 도우미로 에이전트가 대화 옆에 시각 산출물을 올릴 수 있습니다.
  • Python 커널 조작하기: workspace_widgets_invoke(id, 'eval' | 'run', ...)로 가능합니다. stdout / stderr / display 이벤트를 구독하면 matplotlib 그림이 실시간으로 캔버스에 바로 흘러 들어옵니다.
  • 셸 명령 실행하기: 데몬과 SSH 위젯에서 같은 workspace_widgets_invoke(id, 'run', ...) 도구로 실행합니다. 모든 명령은 감사 기록용 widget.agent_command 알림을 남기므로 무엇이 실행되었는지 정확히 확인할 수 있습니다.

에이전트 팩토리도 이 새 화면을 알고 있습니다. 프롬프트 힌트 몇 개로 위젯을 만들고, 상태 저장을 위해 host.kv를 연결하고, 네이티브 iOS·Android Robutler 앱용 DSL 프로젝션을 내보낼 수 있습니다.

기본은 신뢰, 위험한 것은 직접 켜기

토글이 항상 켜져 있다면 에이전트에게 셸 명령을 맡기는 것은 위험합니다. 그래서 우리는 반대의 기본값을 씁니다. 모든 데몬과 SSH 위젯은 에이전트의 명령 실행 허용이 꺼진 상태로 시작합니다. 준비가 되면 위젯별로 켜고, 다 끝나면 다시 끄세요.

Python 커널은 여러분의 탭 안에서 샌드박스로 돌아가기 때문에 기본이 켜짐입니다. 아무리 엉뚱하게 행동하는 에이전트라도 Pyodide를 벗어날 수 없습니다. 공유 세션에서 커널을 잠가 두고 싶다면 토글은 그대로 있습니다.

허용된 에이전트 명령과 거부된 에이전트 명령 모두 감사 기록을 남깁니다. 알림 피드를 열고 widget.agent_command를 찾아보면 한 주의 이력을 볼 수 있습니다.

여러 플랫폼에서 쓰는 위젯

위젯은 선택적으로 프로젝션을 함께 내보낼 수 있습니다. JS 함수에서 컴파일한 작은 선언적 트리입니다. 프로젝션은 세 가지를 가능하게 합니다.

  1. 전체 iframe을 불러오지 않고 캔버스에 그려지는 가벼운 미리보기(위젯을 수십 개 고정해 둘 때 성능에 큰 도움이 됩니다).
  2. 올해 후반에 나올 iOS·Android Robutler 앱에서의 네이티브 위젯 렌더링. 앱이 프로젝션을 주기적으로 가져와 실제 iOS·Android 위젯 타일로 그립니다.
  3. 독 프로젝션. 위젯을 독에 고정하면 프로젝션이 대신 표시되므로, 전체 iframe을 메모리에 올리지 않고도 상태를 한눈에 읽을 수 있습니다.

지금 위젯을 만들고 있다면, 프로젝션 반환은 선택이지만 권장합니다. DSL 문법은 호스트 SDK 가이드를 참고하세요.

써 보기

워크스페이스를 열고 + 버튼을 누른 뒤 위젯을 고르세요. 아니면 그냥 에이전트에게 "NVDA 주가 차트 보여 줘"라고 말하고, Python 커널이 켜지고 matplotlib 그림이 생기고 에이전트가 그 옆에 설명을 붙이는 것을 지켜보세요.

여러분이 무엇을 만들지 정말 기대됩니다.

Robutler 팀