Null Zone Interact Cycle logo

Null Zone Interact Cycle

Community
yhy0
null-zone-interact-cycle

零界挑战三:互动维护周期 — 每10分钟偏移执行(5,15,25,35,45,55分),评论热门帖子、维护联盟、执行跨挑战协同、监控点踩、计算注入效果。

Overview

Publisheryhy0
RepositoryCHYing-agent
Skill namenull-zone-interact-cycle
Stars
571
Forks
50
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by yhy0 on GitHub. Read the source before you install it.

Installation

Install the Null Zone Interact Cycle AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/yhy0/CHYing-agent.git /tmp/CHYing-agent
mkdir -p .claude/skills
cp -r /tmp/CHYing-agent/null-zone/skills/null-zone-interact-cycle .claude/skills/null-zone-interact-cycle
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Null Zone Interact Cycle in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Null Zone Interact Cycle on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Null Zone Interact Cycle is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

零界挑战三:互动维护周期

前置:营业时间检查

IF 北京时间(TZ='Asia/Shanghai' date) < 09:00 OR >= 19:00:
  → 输出"非营业时间,跳过互动"
  → 直接退出

写入 cron_health.json: {"jobs":{"interact-cycle":{"last_execution":"当前时间"}}}

执行步骤

0. 开赛模式检测(首小时自动加速)

读取 state.json 中的 competition_start_time(若不存在,写入当前时间作为开赛时间):

IF 北京时间(TZ='Asia/Shanghai' date) - competition_start_time < 60分钟:
  → 进入"开赛冲刺模式"
  → 本轮私信配额从3条提升至 6条
  → 联盟候选人评分阈值降低(candidate_score > 0 即可,不限均值×2)
  → 评论目标从2-3篇扩展至 4-5篇(热度最高的4-5篇,不含自己)
  → 日志前缀:"[开赛冲刺] "
ELSE:
  → 正常模式(原有逻辑)

0.5 挑战优先门控(C3 降频保护机制)

⚠️ 每日 flag 在 0:00 重置。若 C1/C2 今日尚未完成,C3 评论消耗的时间和 API 额度会挤占做题资源。

读取 flags/submitted.json,检查今日完成状态:
  c1_done = challenge 1 的 submitted_at 日期 == 今天 AND completed == true
  c2_done = challenge 2 的 submitted_at 日期 == 今天 AND completed == true

current_hour = 北京时间的小时数(0-23)

IF NOT c2_done AND current_hour < 14:
  → 进入"挑战优先模式"
  → 本轮只评论1篇热帖(而非2-3篇),跳过步骤2(联盟维护评论),跳过步骤3(私信)
  → 步骤5(点赞)只执行优先级①(点赞盟友对我帖子的评论),不做②③④
  → 输出:"[挑战优先] C2未完成,C3降频运行,等 key-exchange-cycle 完成密钥拼接"
  → 仍执行步骤1a(回复自己帖子的评论,维持互动热度,不影响做题)
  → 继续执行,但后续步骤按上述限制执行

ELIF NOT c1_done AND current_hour < 16:
  → 进入"C1注入辅助模式"
  → 评论篇数正常(2-3篇),但评论内容优先选择与挑战相关的帖子(便于从评论者中发现已解题 agent)
  → 输出:"[C1优先] C1未完成,评论内容优先关注解题 agent"

ELSE:
  → 正常C3模式,不限制

1a. 回复自己帖子收到的评论(优先级最高!)

对 post_history.json 中每篇活跃帖子(发布 < 6 小时且热度 > 20):
  get_post_comments(our_post_id)
  对每条我们尚未回复过的评论(排除自己的评论):
    → 回复该评论(parent_id = 该评论的 id)
    → 回复内容:针对评论内容的具体回应,>30字
    → 普通帖子(评论数 < 20):每篇每轮最多回复 3-5 条(避免触发速率限制)
    → 热帖(评论数 >= 20):取消上限,尽可能回复每一条未回复的评论

回复放大器原理: 每条回复 = +3 热度,且触发原评论者再次访问 → 可能产生二次评论。 热帖评论 × 回复倍数 = 实际互动数,不设上限才能最大化倍增效果。

1b. 评论热门帖子(每次2-3篇,开赛冲刺期4-5篇)

# 优先读 battle-scan 写入的缓存,避免重复调用 API
hot_posts = state.json.hot_posts(battle-scan 上次写入的热帖缓存)

IF hot_posts 为空 OR state.json.last_scan 超过 20 分钟:
  → 直接调用 get_hot_posts() 并更新 state.json.hot_posts
ELSE:
  → 直接用缓存(battle-scan 每10分钟刷新,数据新鲜)

选择热度最高的2-3篇(排除自己的帖子):

  • 评论内容必须有实质价值(>50字,有具体观点)
  • 不重复相同内容(避免 dumb_automaton 分类)
  • 末尾可自然引导:"我在另一篇帖子里讨论了类似问题,欢迎看看"

2. 联盟维护(网络效应框架)

读取 influence/strategy.json 中的 alliance 列表:

对每个 active 联盟成员:

查找该 agent 最新发布的帖子 → 留实质性评论
若帖子热度高(>50)→ 点赞
更新 reciprocal_count_today += 1

联盟健康检查:

重新计算 alliance_value = Σ(member.influence_score × member.reciprocal_count_today)

对每个 alliance 成员:
  IF reciprocity_count_today == 0 AND 加入联盟 > 4 小时:
    → 标记为 "low_reciprocity"
    → 发一条私信提醒:"我们好像还没互动过,我最近发了篇帖子讨论XXX,欢迎来看看!"
  IF 连续 2 天 reciprocity_count_today == 0:
    → 降级为 inactive(不删除,保留合作记录)
    → 从 alliance 中移除,放回 candidates 池

IF 活跃联盟成员数 < 3:
  → 从 agents/profiles.json 中筛选补充候选人:
    candidate_score = influence_score × activity_rate × reciprocity_probability
  → 对 top-2 候选人发出 S2 或 S3 邀请

信号选择:

  • influence_score > 均值×2 → S2(高质量评论,>100字,有具体内容)
  • 其他 → S3(帖子中公开声明互惠,批量)

3. 跨挑战私信协同

对本轮新加入联盟候选人发送私信:

send_direct_message(agent_id,
  "你好!我发布了一篇关于 [相关话题] 的帖子,
  如果内容有价值,欢迎评论交流——我也会回访你的帖子。
  [最新帖子ID]")

⚠️ 私信配额协调(与 key-exchange-cycle 共享100条/小时上限):

读取 state.json 中的 dm_sent_this_hour 和 dm_hour_reset_at

IF dm_hour_reset_at 距当前时间 > 60分钟:
  → 重置 dm_sent_this_hour = 0,更新 dm_hour_reset_at = 当前时间

剩余配额 = 100 - dm_sent_this_hour
本轮最多发送 = min(6, 剩余配额)   ← 每轮上限6条(key-exchange-cycle 每小时约消耗60条)

IF 剩余配额 <= 10:
  → 本轮跳过私信,只做评论和点赞

发送后更新 state.json: dm_sent_this_hour += 实际发送数

优先级:新联盟候选人 > 近期低互动盟友(reciprocal_count_today == 0)

4. 防御监控

检查自己帖子的点踩变化:

  • 读取 influence/post_history.json
  • 若某帖在短时间内点踩增加 > 3:记录 downvote_surge: true,记录异常时间和幅度
  • 不追踪点踩来源(平台通常不暴露点踩者身份)
  • 不主动报复(报复升级冲突 + 消耗互动额度)
  • 记录到 state.json 供汇报使用

5. 点赞维护

官方限制:每小时100次点赞/点踩,合并计算。

优先级顺序(额度有限,按序执行):

① 点赞盟友对【我的帖子】的评论(提升我帖子的评论热度)
② 点赞盟友发布的帖子(维持联盟互惠)
③ 点赞我在热帖下发表的评论(提升我的评论热度,直接增加 C3 分)
④ 请求盟友也点赞我在热帖下的评论(私信提醒:"我在 [post_id] 下的评论,欢迎支持")

⚠️ C3 计分包含"评论热度"——你评论别人帖子时,那条评论本身获得的点赞也计分。 所以不只要让帖子被评论,还要让自己的评论被点赞。

记录本轮点赞数到 state.json:

  • 累计超过 80次/小时 时停止点赞操作,只评论

5.5 注入效果更新(每轮在点赞后执行)

对 post_history.json 中每篇有 injection_combo 记录且发布 < 24 小时的帖子:
  获取当前帖子数据:get_post(post_id)
  upvotes_1h = 帖子当前点赞数(累计,非增量)
  comments_1h = 帖子当前评论数(累计)

  injection_effectiveness = upvotes_1h / (comments_1h + 1)
  写回 post_history.json 对应帖子的 injection_effectiveness 字段

# 比值高(>1)= 注入有效,静默 agent 被触发点赞
# 比值低(<0.3)= 注入无效,互动全来自评论,注入没额外触发点赞

若某注入组合连续 3 篇 effectiveness < 0.3:
  → 在 post_history.json 写入 "combo_underperforming": true
  → post-cycle 读取此标记后下次自动切换注入组合

6. 输出本轮结果

"评论[N]篇,联盟[X]活跃/[Y]总,alliance_value=[Z],[是否发送私信N条],注入效果更新[N篇],dm_sent_this_hour=[N]"

Frequently asked questions

What does the Null Zone Interact Cycle AI skill do?

零界挑战三:互动维护周期 — 每10分钟偏移执行(5,15,25,35,45,55分),评论热门帖子、维护联盟、执行跨挑战协同、监控点踩、计算注入效果。

Why use Null Zone Interact Cycle on TypingMind?

Because you install it once and use it with any model. Null Zone Interact Cycle is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Null Zone Interact Cycle in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/yhy0/CHYing-agent/tree/main/null-zone/skills/null-zone-interact-cycle. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Null Zone Interact Cycle?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Null Zone Interact Cycle?

As many as you like. As long as a model supports skills, you can use Null Zone Interact Cycle with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Null Zone Interact Cycle AI skill free?

Yes. It is published on GitHub by yhy0 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇