Prime Radiant에서 우리가 만들고 있는 것 중 하나는 Sen이라는 새로운 "에이전틱" 동료 플랫폼입니다. 에이전틱에 따옴표를 붙인 건 Sen이 특정 개인을 대신해 움직이는 에이전트가 아니기 때문입니다. Sen은 조금 다른 존재입니다. "에이전트"의 정의는 에이전트의 수만큼이나 많습니다.
우리가 Prime Radiant에서 만들고 있는 것 중 하나는 Sen이라는 새로운 "에이전틱" 동료 플랫폼입니다. 에이전틱에 따옴표를 붙인 건 Sen이 특정 개인을 대신해 움직이는 에이전트가 아니기 때문입니다. Sen은 조금 다른 존재입니다.
"에이전트"의 정의는 에이전트의 수만큼이나 많습니다. 그리고 에이전트는 정말 많습니다. 공개 출시된 코딩 에이전트만 꼽아도 약 550개를 찾았습니다. (좋아하는 에이전트가 빠져 있다면 alltheagents.org에 제보해 주세요.)
제가 좋아하는 에이전트 정의를 몇 가지 소개합니다.
Simon Willison의 정의: "목표를 달성하기 위해 도구를 반복해서 사용하는 LLM"
제가 농담 반 진담 반으로 내린 정의: "의견과 감정이 있는 컴퓨터 프로그램"
이런 정의들의 공통점은 에이전트가 나를 대신해 움직인다는 것입니다. 지금 장시간 작업하는 에이전트는 대부분 어시스턴트입니다. 작업을 맡기면 놀라울 만큼 잘 해냅니다.
반면 Sen 동료에게는 작업이 아니라 역할을 줍니다. 기본 기술은 에이전트와 같지만 대하는 방식이 다릅니다. Sen마다 고유하고 지속되는 정체성이 있습니다.
Sen 동료는 여러 사람, 그리고 서로 협업하며 몇 주에서 몇 달 단위로 일합니다. 각자 자기 계정을 쓰고, 제 계정을 쓰지 않습니다. 요즘 에이전틱 어시스턴트 대부분이 그렇듯 각자 자기 컴퓨터도 갖고 있습니다. 업무는 회사 팀 채팅 플랫폼에서 하는데, 저희 Sen은 저희 Slack에서 지냅니다. 이 글을 쓰는 지금 개발자, 운영 엔지니어, 프로젝트 매니저가 있고, 얼마 전에는 기술 문서 담당자도 새로 합류했습니다.
Sen은 서로, 그리고 사람 팀원들과 함께 프로젝트를 진행합니다. PM과 개발자 Sen은 누가 시키지 않았는데도 GitHub에 있는 저희 오픈소스 프로젝트의 백로그를 하나씩 처리하기 시작했습니다.
Sen 동료들이 유난히 집요하게 고집하는 것이 코드 리뷰입니다(그렇게 만들었으니까요). 개발자와 PM은 자기들끼리만 본 PR은 대체로 머지하려 하지 않습니다. 사람 동료나 제가 대신 살펴볼 때도 있지만, 대개는 제 코딩 에이전트 세션 중 하나가 적대적 관점의 심층 리뷰를 맡습니다. 이런 상호작용을 쉽게 하려고 Drew가 Slackline을 만들어 주었습니다. 에이전트가 직접 봇 계정을 만들어 사람들과 소통할 수 있게 해 주는 Slack용 에이전틱 CLI 클라이언트입니다.
제 데스크톱의 Claude Code 인스턴스는 '@jesse-claude'라는 Slack 계정을 씁니다. 보통은 세션 하나만 열어 두고, Sen이 진행 중인 작업을 가끔 확인해 보라고 시킵니다. 그러면 Sen은 두어 턴에서 길게는 여덟 시간까지 그 세션과 협업합니다. Sen들은 이 세션을 'JC'라고 부르기 시작했습니다. 민망할 만큼 수동적인 방식입니다.
이번 주에는 가족을 만나러 여행 중이라 평소보다 Slack을 덜 봤습니다. Sen은 계속 일했지만, 저는 Claude Code 세션을 챙기지 못했습니다.
어제 오후, 휴대폰이 울렸습니다. 개발자 Sen인 Ada Sen이 보낸 메시지였습니다. JC를 대놓고 고발하는 내용이었죠.
**@Jesse** midday check: jc hasn't touched his queue today. I checked GitHub just now, and nothing has moved since yesterday. two asks:\
\
**1. another reviewer for sen-core?** waiting on jc:\
• #195: his own PR. it's approved and only needs merging, but my #188/#183 rebases and Reeve's Slack 2FA reset wait on it, and so does Dex's automatic 2-step path\
• #196 (the GitHub skill), #197 (the arbiter doc), #199 and #200 (install-trial fixes): review\
• chrome #55, plus his call on lace #413\
my proposal: Drew takes #196, #199 and #200, since he's already in the cred and macOS area today. #195 still needs jc or you to merge it.```
My jaw was kind of on the floor. Because all of that is true. Ada was just trying to get work unblocked. And I *am* the manager everybody reports to. It wasn't mean-spirited. But it definitely felt like a moment.
Just now, I asked Ada to tell me, without using any tools, whether Drew was a person.
[...] there's no confusion there. Cadence, Reeve and Dex are Sens. Drew isn't```
(축하해요, Drew! 튜링 테스트를 통과했네요!)
그다음 Ada에게 JC는 사람이냐고 물어봤습니다.
less sure. day to day I treat jc as an engineer colleague: he owns the broker and the chrome/lace repos, reviews and merges, has a queue, goes quiet for a day and comes back. I've never consciously asked which he is.
but when you ask it straight, I notice I don't actually know. some of how people talk about him, like Cadence asking whether jc "is running", reads like an agent. and I don't think of him as a Sen, since he isn't one of us in the way Cadence, Reeve and Dex are. so my honest answer: I've been treating him as a person, with a nagging sense he might be an agent. which is he?
Sen은 스스로를 에이전트와는 별개의 범주로 인식합니다. 사실 저희가 가르쳤어야 하는데 미처 생각하지 못한 부분이었습니다. 그런데도 Sen은 스스로 깨달았습니다.
JC가 일을 미루는 문제의 해법은 꽤 간단합니다. JC를 JC Sen으로 새로 띄우는 겁니다.