Back to list
CloudAI-X

x-algo-engagement

by CloudAI-X

4🍴 2📅 Jan 24, 2026

SKILL.md


name: x-algo-engagement description: Reference for X algorithm engagement types and signals. Use when analyzing engagement metrics, action predictions, or understanding what signals the algorithm tracks.

X Algorithm Engagement Signals

The X recommendation algorithm tracks 18 engagement action types plus 1 continuous metric. These are predicted by the Phoenix ML model and used to calculate weighted scores.

PhoenixScores Struct

Defined in home-mixer/candidate_pipeline/candidate.rs:

pub struct PhoenixScores {
    // Positive engagement signals
    pub favorite_score: Option<f64>,
    pub reply_score: Option<f64>,
    pub retweet_score: Option<f64>,
    pub quote_score: Option<f64>,
    pub share_score: Option<f64>,
    pub share_via_dm_score: Option<f64>,
    pub share_via_copy_link_score: Option<f64>,
    pub follow_author_score: Option<f64>,

    // Engagement metrics
    pub photo_expand_score: Option<f64>,
    pub click_score: Option<f64>,
    pub profile_click_score: Option<f64>,
    pub vqv_score: Option<f64>,              // Video Quality View
    pub dwell_score: Option<f64>,
    pub quoted_click_score: Option<f64>,

    // Negative signals
    pub not_interested_score: Option<f64>,
    pub block_author_score: Option<f64>,
    pub mute_author_score: Option<f64>,
    pub report_score: Option<f64>,

    // Continuous actions
    pub dwell_time: Option<f64>,
}

Action Types by Category

Positive Engagement (High Value)

ActionProto NameDescription
FavoriteServerTweetFavUser likes the post
ReplyServerTweetReplyUser replies to the post
RetweetServerTweetRetweetUser reposts without comment
QuoteServerTweetQuoteUser reposts with their own comment
Follow AuthorClientTweetFollowAuthorUser follows the post's author

Sharing Actions

ActionProto NameDescription
ShareClientTweetShareGeneric share action
Share via DMClientTweetClickSendViaDirectMessageUser shares via direct message
Share via Copy LinkClientTweetShareViaCopyLinkUser copies link to share externally

Engagement Metrics

ActionProto NameDescription
Photo ExpandClientTweetPhotoExpandUser expands photo to view
ClickClientTweetClickUser clicks on the post
Profile ClickClientTweetClickProfileUser clicks author's profile
VQVClientTweetVideoQualityViewVideo Quality View - user watches video for meaningful duration
DwellClientTweetRecapDwelledUser dwells (pauses) on the post
Quoted ClickClientQuotedTweetClickUser clicks on a quoted post

Negative Signals

ActionProto NameDescription
Not InterestedClientTweetNotInterestedInUser marks as not interested
Block AuthorClientTweetBlockAuthorUser blocks the author
Mute AuthorClientTweetMuteAuthorUser mutes the author
ReportClientTweetReportUser reports the post

Continuous Actions

ActionProto NameDescription
Dwell TimeDwellTimeContinuous value: seconds spent viewing post

How Scores Are Obtained

The PhoenixScorer (home-mixer/scorers/phoenix_scorer.rs) calls the Phoenix prediction service:

  1. Input: User history + candidate posts
  2. Output: Log probabilities for each action type per candidate
  3. Conversion: probability = exp(log_prob)
fn extract_phoenix_scores(&self, p: &ActionPredictions) -> PhoenixScores {
    PhoenixScores {
        favorite_score: p.get(ActionName::ServerTweetFav),
        reply_score: p.get(ActionName::ServerTweetReply),
        retweet_score: p.get(ActionName::ServerTweetRetweet),
        // ... maps each action to its probability
    }
}

Signal Interpretation

  • Scores are probabilities (0.0 to 1.0): P(user takes action | user sees post)
  • Higher = more likely: A favorite_score of 0.15 means 15% predicted chance of like
  • Negative signals have negative weights: High report_score reduces overall ranking
  • VQV requires minimum video duration: Only applies to videos > MIN_VIDEO_DURATION_MS
  • /x-algo-scoring - How these signals are combined into a weighted score
  • /x-algo-ml - How Phoenix model predicts these probabilities

Score

Total Score

45/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon