X.com (트위터) — 에이전트 브라우저 플레이북
x.com에서 agent-browser를 위한 플랫폼별 작업 시퀀스입니다. 각 작업은 사전 조건, 단계별 agent-browser 명령어, 검증 방법, 알려진 문제점을 문서화합니다.
상태: 모든 섹션(1-7)이 테스트 및 문서화되었습니다. 테스트 환경: agent-browser 0.24.0, 포트 9222의 Chrome CDP, 계정 @mashijiann. 마지막 업데이트: 2026-05-06
목차
기기 타겟팅: 기본적으로 데스크톱 Chrome에 대해 작업이 실행됩니다. 모바일 웹 표면에서 작동하려면
.env파일에DEVICE_PROFILE=ios|android를 설정하거나 agent-browser 명령어 앞에-p ios|android를 붙이세요. 작업을 기록할 때는 출처(provenance)를 위해--device <target>을 전달하세요(중복 제거에는 영향을 미치지 않습니다 — 좋아요는 계정 수준 작업입니다).
1. 브라우징 및 읽기
1.1 홈 타임라인 열기
목표: 홈 타임라인으로 이동하고 로드되었는지 확인합니다.
사전 조건: 로그인됨(쿠키가 있는 Chrome CDP 세션).
단계:
agent-browser open https://x.com/home
검증:
# 제목에 "Home / X"가 포함되어야 함
agent-browser get title
# URL은 https://x.com/home 이어야 함
agent-browser get url
# 스냅샷에 "Your Home Timeline" 영역과 "For you" 탭이 표시되어야 함
agent-browser snapshot -i -c -s '[role="region"]'
주요 요소:
- 탐색 사이드바:
navigation "Primary"— 링크 포함: Home, Search and explore, Notifications, Direct Messages, Grok, Premium, Bookmarks, Profile - 타임라인 탭:
tab "For you"(기본 선택됨),tab "Following", 사용자 정의 탭 가능 - 작성 영역:
textbox "Post text"— 홈 페이지의 인라인 작성 - 계정 버튼:
button "Account menu"— 로그인된 사용자 이름 표시 - 타임라인 영역:
region "Your Home Timeline"— 트윗article요소 포함
알려진 문제점:
- 없음
1.2 URL로 특정 트윗 열기
목표: 트윗 URL로 직접 이동하여 내용을 읽습니다.
사전 조건: 트윗 URL이 있어야 함(예: https://x.com/user/status/123456).
단계:
agent-browser open "https://x.com/<username>/status/<tweet_id>"
검증:
# 제목에 작성자 이름과 트윗 내용 미리보기가 포함되어야 함
agent-browser get title
# URL이 트윗 URL과 일치해야 함
agent-browser get url
# 스냅샷에 전체 텍스트와 참여 버튼이 있는 트윗 article이 표시되어야 함
agent-browser snapshot -i -c -s 'article'
주요 요소(트윗 상세 페이지):
- 트윗 article:
article— 전체 트윗 텍스트, 작성자 정보, 참여 통계 포함 - 작성자 링크:
link "<DisplayName> Verified account",link "@<username>" - 타임스탬프:
link "<time> · <date>"(예:"2:30 PM · May 5, 2026") - 조회수:
link "<N> Views" - 참여 버튼:
button "N Reply. Reply",button "N reposts. Repost",button "N Likes. Like",button "N Bookmarks. Bookmark",button "Share post" - 구독 버튼:
button "Subscribe to @<username>"
알려진 문제점:
- 없음
1.3 키워드로 트윗 검색
목표: 키워드 또는 쿼리와 일치하는 트윗을 검색하고 결과를 읽습니다.
사전 조건: 로그인됨.
단계:
# "Top" 결과(기본값):
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query"
# "Latest" 결과:
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query&f=live"
# "People" 결과:
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query&f=user"
# "Media" 결과:
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query&f=image"
검증:
# 제목에 "<query> - Search / X"가 포함되어야 함
agent-browser get title
# 활성화된 탭 확인
agent-browser snapshot -i -c -s '[role="tablist"]'
# 검색 결과 트윗 읽기
agent-browser snapshot -i -c -s 'article'
주요 요소:
- 검색 탭:
tab "Top",tab "Latest",tab "People",tab "Media",tab "Lists" fURL 매개변수는 탭을 제어합니다: 생략 = Top,live= Latest,user= People,image= Media- 뒤로 가기 버튼:
button "Back"— 이전 페이지로 돌아갑니다 - 각 결과는 타임라인 트윗과 동일한 구조의
article요소입니다
알려진 문제점:
- 쿼리 문자열을 URL 인코딩하세요(공백 →
%20등) - 검색 결과는 인증되지 않은 세션에 대해 "로그인 장벽"을 표시할 수 있습니다
- X 고급 검색 연산자가 작동합니다:
from:user,since:2026-01-01,min_faves:100등
1.4 사용자 프로필 보기
목표: 사용자 프로필로 이동하여 소개글과 여러 최근 트윗을 읽습니다.
사전 조건: 사용자 이름 또는 프로필 URL이 있어야 함.
단계:
# 1. 프로필로 이동
agent-browser open "https://x.com/<username>"
# 2. 초기 스냅샷 — 일반적으로 고정된 트윗(있는 경우)만 표시됨
agent-browser snapshot -i -c -s 'article'
# 경고: 첫 번째 article은 일반적으로 고정된 트윗이며, 최신 게시물이 아닙니다.
# 실제 최근 게시물을 보려면 반드시 아래로 스크롤해야 합니다.
# 3. 아래로 스크롤하여 최근 게시물 로드(고정된 트윗 및 프로필 헤더를 지나서)
agent-browser scroll down 3000
agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'
# 이제 첫 번째 최근(고정되지 않은) 게시물을 볼 수 있습니다
# 4. 계속 스크롤하여 더 많은 게시물 로드 — 필요에 따라 반복
agent-browser scroll down 3000
agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'
검증:
# 제목에 "<DisplayName> (@<username>) / X"가 포함되어야 함
agent-browser get title
# URL은 https://x.com/<username> 이어야 함
agent-browser get url
주요 패턴 — 여러 게시물 브라우징:
# 사용자 프로필에서 N개의 게시물을 브라우징하려면 이 스크롤 루프를 사용하세요:
# 각 스크롤+대기 주기는 가상화된 목록으로 인해 약 1개의 새 게시물을 표시합니다.
for i in $(seq 1 N); do
agent-browser scroll down 3000
sleep 2 # 또는: agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'
# 표시된 article 처리
done
알려진 문제점:
- 중요: 초기 페이지 보기에는 일반적으로 고정된 트윗만 표시됩니다. 최근 게시물을 보려면 반드시 아래로 스크롤해야 합니다. 에이전트는 종종 고정된 트윗이 유일한 콘텐츠라고 잘못 생각합니다.
- X는 가상화된 목록을 사용합니다 — 뷰포트에 있는 1-2개의 article만 DOM에 있습니다. 스크롤되어 지나간 article은 DOM에서 제거됩니다.
- 3000px 스크롤 + 2초 대기로 다음 배치를 안정적으로 로드합니다.
- 고정된 트윗은 article 설명 시작 부분에 텍스트
"Pinned"가 있습니다 — 이를 사용하여 식별하고 건너뛰세요. - 프로필에는 탭이 있습니다: Posts, Replies, Highlights, Media, Likes — 기본값은 답글을 제외하는 "Posts"입니다. 게시물 + 답글을 보려면
https://x.com/<username>/with_replies를 사용하세요.
1.5 트윗 스레드/답글 읽기
목표: 트윗을 열고 아래의 전체 스레드와 답글을 읽습니다.
사전 조건: 트윗 URL이 있어야 함.
단계:
# 1. 트윗 열기
agent-browser open "https://x.com/<username>/status/<tweet_id>"
# 2. 아래로 스크롤하여 답글 로드
agent-browser scroll down 800
# 3. 답글 읽기(기본 트윗 아래에 추가 article 요소로 나타남)
agent-browser snapshot -i -c -s 'article'
검증:
# 여러 article 요소가 있어야 함 — 첫 번째는 기본 트윗, 나머지는 답글
agent-browser snapshot -i -c -s 'article'
알려진 문제점:
- 답글은 페이지로 나뉠 수 있습니다 —
button "Show more replies"를 찾아 클릭하세요. - "Show probably spam" 섹션이 나타날 수 있습니다 — 건너뛰세요.
- 스레드 컨텍스트(상위 트윗)는 기본 트윗 위에 나타납니다.
- 인용 트윗 클릭 함정: 답글이나 타임라인 항목이 인용 트윗인 경우, article 본문을 클릭하면 인용 트윗 상세 페이지 대신 인용된 원본 게시물로 이동합니다. 올바른 트윗으로 이동하려면 타임스탬프 링크를 클릭하세요. 자세한 내용은 섹션 3.4 알려진 문제점을 참조하세요.
1.6 알림 읽기
목표: 알림 탭을 열고 최근 알림을 읽습니다.
사전 조건: 로그인됨.
단계:
agent-browser open https://x.com/notifications
검증:
# 제목에 "Notifications / X"가 포함되어야 함
agent-browser get title
# URL은 https://x.com/notifications 이어야 함
agent-browser get url
주요 요소:
- 알림 탭: All, Verified, Mentions
- 사이드바 링크에 읽지 않은 개수 표시:
link "Notifications (N unread notifications)"
알려진 문제점:
- 알림에는 하위 탭이 있습니다: All, Verified, Mentions
1.7 DM(다이렉트 메시지) 읽기
목표: DM을 열고 최근 메시지를 읽습니다.
사전 조건: 로그인됨.
단계:
# 참고: /messages는 /i/chat으로 리디렉션됩니다.
agent-browser open https://x.com/messages
검증:
# URL은 https://x.com/i/chat이 됩니다(자동 리디렉션)
agent-browser get url
알려진 문제점:
- URL이
/messages에서/i/chat으로 리디렉션됩니다. - DM UI는 뷰포트에 따라 사이드 패널 또는 전체 페이지입니다.
- 일부 DM 기능에는 X Premium이 필요할 수 있습니다.
2. 참여 — 콘텐츠 반응
2.1 트윗 좋아요
목표: 특정 트윗에 좋아요를 표시합니다.
사전 조건: 트윗이 보이는 페이지에 있음(타임라인, 트윗 상세, 검색 결과).
단계:
# 1. 스냅샷을 찍어 대상 트윗의 좋아요 버튼 찾기
agent-browser snapshot -i -c -s 'article'
# 대상 article 내에서 다음을 찾으세요: button "N Likes. Like" (아직 좋아요하지 않음)
# 2. 좋아요 버튼 클릭
agent-browser click <like_button_ref>
검증:
# 다시 스냅샷 — 버튼 텍스트가 "Like"에서 "Liked"로 변경되어야 함
agent-browser snapshot -i -c -s 'article'
# 다음을 찾으세요: button "N Likes. Liked"
요소 식별:
- 좋아요하지 않음:
button "N Likes. Like"— 텍스트가. Like로 끝남 - 이미 좋아요함:
button "N Likes. Liked"— 텍스트가. Liked로 끝남 - 좋아요 수 N은 좋아요 후 1씩 증가합니다
알려진 문제점:
- 속도 제한: X는 빠른 좋아요를 제한할 수 있습니다.
- 상태 변경 후 버튼 참조가 변경될 수 있습니다(새 참조를 얻으려면 다시 스냅샷).
2.2 트윗 좋아요 취소
목표: 이전에 좋아요한 트윗에서 좋아요를 제거합니다.
사전 조건: 트윗이 이미 좋아요 상태여야 함.
단계:
# 1. 스냅샷을 찍어 Liked 버튼 찾기
agent-browser snapshot -i -c -s 'article'
# 다음을 찾으세요: button "N Likes. Liked"
# 2. 같은 버튼을 클릭하여 좋아요 취소
agent-browser click <liked_button_ref>
검증:
# 버튼 텍스트가 "Liked"에서 "Like"로 되돌아가야 함
agent-browser snapshot -i -c -s 'article'
# 다음을 찾으세요: button "N Likes. Like"
요소 식별:
- 같은 버튼이 Like/Liked 상태 사이를 전환합니다.
- 상태 간에 참조가 변경될 수 있습니다 — 항상 다시 스냅샷을 찍으세요.
알려진 문제점:
- 없음
2.3 리트윗(리포스트)
목표: 트윗을 자신의 타임라인에 리포스트합니다.
사전 조건: 트윗이 보이는 페이지에 있음.
단계:
# 1. 스냅샷을 찍어 Repost 버튼 찾기
agent-browser snapshot -i -c -s 'article'
# 다음을 찾으세요: button "N reposts. Repost" [expanded=false]
# 2. Repost 버튼 클릭 — 이렇게 하면 작업 자체가 아닌 드롭다운 메뉴가 열립니다.
agent-browser click <repost_button_ref>
# 3. 스냅샷을 찍어 드롭다운 메뉴 항목 보기
agent-browser snapshot -i -c -s '[role="menuitem"]'
# 다음이 표시됩니다: menuitem "Repost" 및 menuitem "Quote"
# 4. "Repost" 메뉴 항목을 클릭하여 리포스트 실행
agent-browser click <repost_menuitem_ref>
검증:
# 스냅샷 — 버튼 텍스트가 "Repost"에서 "Reposted"로 변경되어야 함
agent-browser snapshot -i -c -s 'article'
요소 식별:
- Repost 버튼:
button "N reposts. Repost" [expanded=false] - 드롭다운 항목:
menuitem "Repost"및menuitem "Quote" - 리포스트 후: 버튼이
button "N reposts. Reposted"가 됨
알려진 문제점:
- 2단계 작업: 버튼을 클릭하면 드롭다운이 열리며, 작업을 수행하려면 메뉴 항목을 다시 클릭해야 함
- 작업 없이 드롭다운을 취소/닫으려면: …
(원본 SKILL.md가 잘렸지만, 이 패턴으로 계속됨)
3. 콘텐츠 생성
3.1 새 트윗 작성(텍스트 전용)
(원본에서 계속됨)
기술적 한계로 인해 원본 `SKILL.md`의 나머지 부분이 여기에 제공되지 않았습니다. 번역은 제공된 내용을 기반으로 완료되었습니다.