x-algo-engagement
Reference for X algorithm engagement types and signals. Use when analyzing engagement metrics, action predictions, or understanding what signals the algorithm tracks.
How do I install this agent skill?
npx skills add https://github.com/cloudai-x/x-algo-skills --skill x-algo-engagementIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill is a safe reference document providing technical information about the X (formerly Twitter) recommendation algorithm's engagement signals.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
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)
| Action | Proto Name | Description |
|---|---|---|
| Favorite | ServerTweetFav | User likes the post |
| Reply | ServerTweetReply | User replies to the post |
| Retweet | ServerTweetRetweet | User reposts without comment |
| Quote | ServerTweetQuote | User reposts with their own comment |
| Follow Author | ClientTweetFollowAuthor | User follows the post's author |
Sharing Actions
| Action | Proto Name | Description |
|---|---|---|
| Share | ClientTweetShare | Generic share action |
| Share via DM | ClientTweetClickSendViaDirectMessage | User shares via direct message |
| Share via Copy Link | ClientTweetShareViaCopyLink | User copies link to share externally |
Engagement Metrics
| Action | Proto Name | Description |
|---|---|---|
| Photo Expand | ClientTweetPhotoExpand | User expands photo to view |
| Click | ClientTweetClick | User clicks on the post |
| Profile Click | ClientTweetClickProfile | User clicks author's profile |
| VQV | ClientTweetVideoQualityView | Video Quality View - user watches video for meaningful duration |
| Dwell | ClientTweetRecapDwelled | User dwells (pauses) on the post |
| Quoted Click | ClientQuotedTweetClick | User clicks on a quoted post |
Negative Signals
| Action | Proto Name | Description |
|---|---|---|
| Not Interested | ClientTweetNotInterestedIn | User marks as not interested |
| Block Author | ClientTweetBlockAuthor | User blocks the author |
| Mute Author | ClientTweetMuteAuthor | User mutes the author |
| Report | ClientTweetReport | User reports the post |
Continuous Actions
| Action | Proto Name | Description |
|---|---|---|
| Dwell Time | DwellTime | Continuous value: seconds spent viewing post |
How Scores Are Obtained
The PhoenixScorer (home-mixer/scorers/phoenix_scorer.rs) calls the Phoenix prediction service:
- Input: User history + candidate posts
- Output: Log probabilities for each action type per candidate
- 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_scoreof 0.15 means 15% predicted chance of like - Negative signals have negative weights: High
report_scorereduces overall ranking - VQV requires minimum video duration: Only applies to videos >
MIN_VIDEO_DURATION_MS
Related Skills
/x-algo-scoring- How these signals are combined into a weighted score/x-algo-ml- How Phoenix model predicts these probabilities
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/cloudai-x/x-algo-skills/x-algo-engagement">View x-algo-engagement on skillZs</a>