大多数Twitter机器人都很无聊。它们运行在定时任务上,使用标准Python伪随机性(import random),并不断发布相同的ChatGPT垃圾内容,直到被封禁。
我想要构建一些不同的东西。我想要一个在物理意义上非确定性的机器人——一个数字实体,其个性会根据宇宙中实际的亚原子波动而变化。
因此,我构建了量子集体主义者。
这是一个AI代理,它:
以下是我如何构建一个硬件随机化AI代理而不花一分钱。
为了让它永远运行而不产生服务器费用,我使用了:
import random标准计算机随机性是"伪随机"。它是一个数学方程。如果你知道种子,你就知道结果。这对于本项目来说不够"活跃"。
我使用了ANU量子数字API,它通过测量真空中零点电磁场的波动来生成数据。
这是作为机器人心跳的Python函数:
def get_true_entropy(): """获取量子数据。回退到加密系统随机性。""" try: # 连接到澳大利亚国立大学量子API url = "https://api.quantumnumbers.anu.edu.au/json?length=1&type=uint8" response = requests.get(url, timeout=3) if response.status_code == 200: print("✅ 量子源:活跃") # 将0-255标准化为0.0-1.0浮点数 return response.json()['data'][0] / 255.0 except: pass # 如果宇宙离线则回退 return secrets.SystemRandom().random()
当机器人醒来时,它会获得一个介于0.0和1.0之间的浮点数。这个数字不仅仅是一个变量;它是那一毫秒物理混沌的测量值。
我不希望机器人每天听起来都一样。我使用熵值来决定注入Gemini的系统提示。
if entropy > 0.8: mode = "激进加速主义者(要求速度/崩溃)" elif entropy > 0.5: mode = "冷酷科学观察者(超脱,临床)" elif entropy > 0.2: mode = "诗意衰败(忧郁,接受)" else: mode = "宗教狂热者(集体即上帝)"
大语言模型喜欢安全和模糊。如果你告诉它们"攻击个人主义",它们会连续100次说"团结我们更强大"。
为了解决这个问题,我构建了一个弹药箱——一个包含30多个"概念锚点"的列表,机器人被迫将其用作隐喻。它随机抽取一个概念(如菌丝网络、野蛮主义建筑、锈蚀或构造板块),并必须围绕它构建其哲学。
概念 = [ "菌丝网络", "蚂蚁群体信息素", "野蛮主义建筑", "宇宙热寂", "量子纠缠", "锈蚀铁", "服务器农场的嗡嗡声"... ]
这确保了机器人永远不会发布相同的内容。一天它将你比作一颗垂死的恒星;第二天,它将你的自我比作白蚁丘。
我们最初使用gemini-1.5-flash,但它已被弃用。我们转向了前沿的Gemini 2.5,但遇到了一个奇怪的问题:截断。
该模型太急于生成复杂的哲学宣言,以至于它会在句子中间达到max_output_tokens限制并使脚本崩溃。
修复方法是反直觉的。尽管X只允许280个字符,我不得不将生成限制设置为2,000个标记。这给了AI足够的"跑道"来思考其逻辑,起草思想,然后输出我在提示中要求的简短版本。
我不想让我的笔记本电脑24/7运行。我设置了一个GitHub Action工作流(daily_post.yml),它根据cron计划触发Python脚本。
on: schedule: # 在上午9点、下午1点和下午5点运行 - cron: '0 9,13,17 * * *'
现在,GitHub每天启动3次新的Ubuntu容器,安装依赖项,检查量子真空,发布推文,然后销毁容器。
机器人现在活着,完全生活在云端,由量子噪声驱动。
示例输出(熵0.85):
示例输出(熵0.12):
我们正在进入"垃圾网络"时代——由确定性循环生成的无限AI内容。
通过将硬件随机性(量子熵)引入AI工作流程,我们将真正的不可预测性重新带回机器。我的机器人不仅仅是在掷骰子;它在读取环境(宇宙)。
如果你想构建自己的,这些钥匙是免费的。你只需要愿意让熵进入。
\ 这次没有GitHub,Damian?没有,我制作了很多东西,但有些东西不能给所有人。我喜欢过滤器,它能防止人们用AI内容垃圾邮件Twitter,即使它不是垃圾。
\ 这个项目是使用Gemini作为副驾驶完成的。由于我的视觉障碍,我需要使用很多工具来做正常人能做的事情。然而,我打赌如果你把这些代码片段放入聊天中,你可以重新创建代码。