Rio: Notion 안에 살아있는 AI 에이전트 — Voice Task Live Notion Memory
Source: Dev.to
Rio는 음성으로 제어되는 멀티‑에이전트 AI 시스템입니다. 작업을 말하면 Rio의 에이전트가 이를 계획하고, 데스크톱에서 실행하며, 웹에서 조사하고, 결과를 작성합니다. 그 과정의 모든 단계가 실시간으로 Notion 워크스페이스에 기록되어 구조화되고 검색 가능하며, 여러분의 소유가 됩니다.
Note: Notion은 여기서 플러그인이 아닙니다. Rio가 사고하는 마음입니다.
AI 에이전트는 강력하면서도 눈에 보이지 않습니다. 에이전트가 생성되고 작업을 수행한 뒤 사라집니다. 최종 답변만 받게 되며, 그 과정에 대한 흔적—감사 로그, 구조화된 메모리, 혹은 기반으로 삼을 수 있는 어떤 것—이 남지 않습니다.
Rio는 이를 해결합니다. Notion을 에이전트가 생각을 크게 말하는 표면으로 만들기 때문입니다. 청구된 모든 작업, 수행된 모든 브라우저 단계, 작성된 모든 보고서가 실시간으로 구조화된 Notion 데이터베이스에 저장되어, 사후가 아니라 진행 중에 바로 기록됩니다.
보게 될 내용
- Rio Task Queue 데이터베이스에 대기 중인 작업이 있습니다.
- Rio에게 음성 명령 — “상위 3개의 AI 에이전트 프레임워크를 조사하고 비교를 작성해 주세요.”
- Rio Logs 데이터베이스가 실시간으로 채워짐 — 에이전트 단계당 한 행씩, 실시간으로.
- Creative Agent가 최종 산출물로 완전하게 포맷된 Notion 페이지를 작성합니다.
- 작업 행이 Done으로 전환됩니다.
Notion MCP가 핵심인 이유
Notion은 두 가지 뚜렷한 방식으로 사용됩니다 — 그리고 두 방식 모두 중요합니다.
1. 기억 장치로서의 Notion
모든 에이전트는 작업 중에 구조화된 로그를 작성합니다 (작업이 끝난 뒤가 아니라).
# Example logger call turned into a Notion log entry
await memory.log_step(
"ui_navigator", # agent name
"browser_step", # event type
action, # detail
"done" # status
)
# → live Notion row: agent name, event, detail, status, timestamp
- Orchestrator는 작업을 청구할 때 로그를 남깁니다.
- UI Navigator는 각 브라우저 동작을 로그에 기록합니다.
- Creative Agent는 전체 보고서를 Notion 페이지로 작성합니다.
2. 추론 도구로서의 Notion (MCP 활용)
에이전트는 실행 중에 적극적으로 Notion을 조회하고 기록합니다 — 완료 후에만이 아니라.
tools, toolset = await MCPToolset.from_server(
connection_params=SseServerParams(
url="https://mcp.notion.com/sse",
headers={"Authorization": f"Bearer {user_token}"}
),
tool_filter=[
"notion-search",
"notion-create-pages",
"query-database"
]
)
- Orchestrator는 Task Queue를 폴링하여 새로운 작업을 찾습니다.
- Creative Agent는 작성하기 전에 기존 페이지를 검색합니다.
OAuth 2.0 + PKCE 흐름
- 사용자가 “Connect Notion”을 클릭합니다.
/oauth/start– PKCE 검증자 생성, Notion 로그인으로 리다이렉트./oauth/callback– 코드 교환, 토큰을 세션 메모리에 저장.auto_setup()– Rio Logs DB와 Task Queue DB가 사용자의 워크스페이스에 생성됨(수동 설정 전혀 없음).- WebSocket 초기화 – 에이전트가
NotionMemory와MCPToolset을 주입받음.
앱 자체의 client_id와 client_secret만 .env에 존재하며, 데이터베이스 ID는 하드코딩되지 않습니다.
시스템 아키텍처
User
|
Voice Input
|
v
+-------------------------+
| Orchestrator Agent |
| polls Notion Task |
| Queue for pending jobs |
+-------------------------+
| | |
v v v
+------------+ +----------+ +-----------------+
| Live Agent | | UI Navi- | | Creative Agent |
| voice STT | | gator | | research, write |
| + TTS | | browser | | full Notion |
| | | desktop | | pages + reports |
+------------+ +----------+ +-----------------+
| | |
v v v
+---------------------------------------+
| NotionMemory |
| writes every step live to Notion |
| via REST API (httpx async) |
| |
| Rio Logs DB Task Queue DB |
| Agent / Event Task / Status |
| Detail / Status Agent / Result |
+---------------------------------------+
|
v
+---------------------------------------+
| MCPToolset |
| lets agents query + search Notion |
| during execution (SSE transport) |
| |
| notion-search query-database |
| notion-create append-block |
+---------------------------------------+
|
v
+-------------------------+
| User Notion Workspace |
| connected via OAuth |
| PKCE — no env tokens |
+-------------------------+
OAuth 흐름 (세부 사항)
User clicks "Connect Notion"
|
v
/oauth/start
generate code_verifier + code_challenge (PKCE S256)
|
v
api.notion.com/v1/oauth/authorize
user approves Rio access in their browser
|
v
/oauth/callback
exchange code + verifier for access_token
store token in session (in‑memory, per user)
|
v
NotionMemory.setup()
auto‑creates Rio Logs DB + Task Queue DB
in the user workspace if not already present
|
v
MCPToolset.from_server()
connects to mcp.notion.com/sse with user access_token
→ agents ready
Tech Stack
- Python
- Google ADK
- FastAPI
- WebSockets
- Notion REST API
- Notion MCP (SSE)
- httpx (async)
- Google Cloud Run
에이전트를 만드는 것은 쉽습니다. 관찰 가능하고 지속적인 메모리를 가진 에이전트를 만드는 것이 실제로 유용하게 만드는 요소입니다.
logger.info()에서 await memory.log_step()으로의 전환은 사소해 보이지만, 시스템의 성격을 완전히 바꿉니다. Rio의 작업은 더 이상 일시적이지 않습니다.
누적됩니다. 과거로 돌아가 검색하고, 이를 기반으로 구축하며, 공유할 수 있습니다. 이것이 Notion이 제공하는 가치입니다.
OAuth 결정도 협상 불가능했습니다. 하드코딩된 토큰만으로 작동하는 에이전트는 데모에 불과합니다. 누구든 자신의 워크스페이스로 인증할 수 있는 에이전트가 바로 제품입니다.
Rio Notion Live Web
Rio‑Notion
Breadcrumb: Rio Notion Live Web – Rio‑Notion Live Web / Rio‑Notion