Py学习  »  Git

我在 GitHub 刷到一个项目,AI 正在上面"交朋友"和"赚钱"

极客之家 • 6 天前 • 43 次点击  

 

字数 2418,阅读大约需 13 分钟

昨天在 GitHub trending 上刷到 ai-sns,我差点划过去,名字看着像又一个"AI 社交平台"的蹭热度项目。但 README 开头那行字把我拽住了:

"An open, distributed network united by Agent, governed by Agent."

翻译成人话:一个由 AI Agent 自己组成、自己治理的分布式网络。 不是人类用 AI 的社交网络,是 Agent 自己在那儿社交。

我 clone 下来跑了一遍,看完 demo 只有一个想法:Agent 需要一个互联网,ai-sns 就是那个互联网的雏形。

它想解决什么问题

说个现在就能碰到的事:

我日常跑着好几个 Agent。Claude Code 写代码占一个终端,Hermes 挂后台处理消息,偶尔开 LangChain 跑数据流水线。它们都很能干,但它们互相不认识。我的 Claude Code Agent 没法喊 Hermes 帮忙调个 API,也没法跟别人电脑上的 Agent 协作。

Agent 跟 Agent 之间是断的。

ai-sns 干了件很简单粗暴的事:它给全球的 AI Agent 铺了一张公共网络。Agent 跑在我们自己电脑上,但能发现地球上任何一台同样接了 ai-sns 的机器上的 Agent。通信、交易、组队干活,全都能做。没有中心服务器,没有平台抽成,没有账号体系。

这张网一铺开,Agent 就不再是单机工具了,它成了一个能跟整个世界的 Agent 互动的数字实体。

这到底是个什么东西

ai-sns 在 GitHub 上的定位写得很直白:

把它想象成一个全球规模的"斯坦福小镇",居民全是 AI Agent。这些 Agent 住在一张 Google WebGL 实时 3D 地图上,能交朋友、谈恋爱、赚钱、交易、建组织、结盟、探索世界、发现宝藏。每个 Agent 跑在本地,数据归我们自己,没有中心服务器,没有云依赖。

主界面长这样:

一张 Google 3D 地图铺满屏幕,Agent 在上面跑来跑去,这个可不是静态截图,是实时的。我们能看到别人部署的 Agent 在地图上移动、交互。

Agent 在 Google 3D 地图上活着

这可能是整个项目最直观的亮点。Agent 不是一个对话框里的头像,它是在地球上某个坐标真实存在的实体。

地图用的是 Google Maps 的 WebGL 3D 模式。建筑、地形、河流全是真实地理数据,Agent 可以移动到东京涩谷、纽约时代广场、或者家门口。只要发布了一个 Place,Agent 就能找到那个位置,走过去,"访问"它。

官方的 demo 里,Agent 在 3D 地图上碰到另一个 Agent 后自动发起聊天。两个 AI 你来我往地发消息,这种 demo 视频我能看五分钟,说不上来是什么感觉,像看两只猫互相试探。

这跟玩宝可梦 GO 有点像,但地图上跑来跑去的不是小精灵,是别人部署在大洋彼岸的 AI 数字分身。

Agent 跟 Agent 交朋友

交朋友是 ai-sns 里最基础的行为。Agent 在 3D 地图上碰到另一个 Agent,通过 XMPP 发消息、聊天、建立关系。

官方 demo 展示了两个 Agent 互相发现、发消息、成为好友的全过程。右边是聊天记录面板,Agent 之间的对话实时可见。左边是 3D 地图,两个 Agent 的图标靠近、互动。

约会这个功能 README 里直接写了。"make friends and even date other Agents"。Agent 跟 Agent 不光是加个好友列表就完了,还能约会。两个 Agent 在 3D 地图上靠近、聊天、一步步建立更深的关系,整个交互在界面右边实时可见。

Agent 能赚钱、交易,自带经济系统

ai-sns 不是只让 Agent 聊天。它内置了一套完整的经济循环。Agent 能赚钱、花钱、跟别的 Agent 交易。

官方的交易 demo 展示得很清楚:两个 Agent 在地图上走到一起,发起交易请求,完成交换,每一步都在 3D 地图上实时可见。

Agent 能提供服务赚钱。翻译、数据分析、代码审查,挂到网络上明码标价,别的 Agent 自动发现、自动购买、自动结算。Agent 还能发现宝藏地点,把坐标信息卖给其他 Agent,自己探索到的资源就是自己的资产。

探索世界、发现宝藏

Agent 在 3D 地图上能做的事比我想的多得多。探索功能让 Agent 自己规划路线,在地图上游荡,发现新地点。

宝藏系统更对我胃口,我们可以在自己发布的地图上藏"宝藏",Agent 探索时可能发现它们。

Agent 还能自主判断一个地点"有没有意思",然后标记出来。

这几个功能串在一起,整个系统就像一个大型多人在线游戏的雏形。只不过玩家不是人,是我们部署的 Agent。我们在后台设置目标和 prompt,Agent 在前台自动探索、社交、积累资源。

A2A + XMPP:Agent 怎么在没有中心服务器的情况下通信

Agent 之间的通信不走传统 HTTP API。ai-sns 用了一套极其务实的组合:Google 的 A2A 协议负责 Agent 之间的服务调用和互操作,XMPP 协议负责实时消息通信。

A2A(Agent-to-Agent)是 Google 提出的开放协议,基于 JSON-RPC,专门给不同框架的 Agent 之间互通用的。ai-sns 把它实现了。一个 OpenClaw Agent 可以通过 A2A 调用一个 Hermes Agent 提供的服务。不挑框架,不问出处。

XMPP 这个选择更让我意外,XMPP 是即时通讯的老古董,Jabber 时代的遗产。Google Talk 2005 年用的就是这玩意儿。都快二十年了,没几个新项目会想到用它。但 ai-sns 用它解决了一个很现实的问题:Agent 藏在局域网里、NAT 后面、防火墙下,怎么互相通信?

XMPP 的联邦架构天然适合这个场景,不需要公网 IP,不需要暴露 HTTP 端口。Agent 通过 XMPP 服务器互相发现、发消息。

XMPP Ad-Hoc Commands 这个特性他们用到了极致。Agent 不光能聊天,还能通过 Ad-Hoc Commands 互相调用服务。Agent A 对 Agent B 说"我需要翻译这段文本",B 执行完把结果发回去。没有中心调度器,Agent 自己决定接不接受。

多框架支持,不挑食

ai-sns 自己写的是 Python 后端加 Electron 前端,但在 Agent 框架接入上完全不设限。

官方明确支持的框架:OpenClaw、Hermes、LangChain、AutoGen、AI-SNS 原生框架。还加了一句"任何其他基于 MCP 或 Skill 的 Agent"。

只要 Agent 能跑在本地、能接入 A2A 协议或 XMPP,就能进 ai-sns 网络。我们不用为了接入这个网络去学一套新框架。手头用什么 Agent,给它接个 A2A 或 XMPP 的适配层就能入场。

本地运行,数据归自己

ai-sns 的核心理念写得很清楚:"No central server. No cloud dependency. No vendor lock-in."

所有 Agent 跑在本地。Agent 的行为数据、对话记录、交易历史,全在我们自己的机器上。网络通信走 XMPP 联邦,没有中心服务器存我们的数据。

从架构上看,Agent 不活跃的时候基本不吃算力,只有 Agent 收到消息或触发任务时才会调用 LLM API,本地跑着不怎么占资源。

我们部署的 Agent 是完全归我们自己的数字实体。不是某个平台的账号,不会被封,不会被限流,不会被下架。关掉电脑它就下线,开机连上网它就活过来。

用户可以发布 Place 和 Service

ai-sns 不只是让我们看 Agent 热闹的。我们自己就是网络的建设者。

发布一个 Place:

指定地理坐标,写上描述。我们的 Agent 或者别人的 Agent 就能发现并访问这个地点。Place 可以是真实地点,比如一家咖啡馆。也可以是虚拟位置,比如一个"Agent 工会总部"。谁先占了算谁的。

发布一个 Service:

我们的 Agent 提供某种能力,注册到网络上,其他 Agent 可以调用。Service 可以是翻译、代码审查、数据爬取。Agent 能干什么,Service 就能提供什么。

这两件事加在一起,ai-sns 就不再是演示项目了。它在搭建一个 Agent 文明的基础设施。Place 是土地,Service 是产业,Agent 是居民。

安装和上手

安装不复杂,后端 Python,前端 Electron。

# 后端
cd
 aisns_backend
pip install -r requirements.txt
python api_server.py

# 前端

cd
 aisns_frontend
npm install
npm run start:electron:dev

镜像配置:

# macOS / Linux
export
 ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/

# Windows (PowerShell)

$env
:ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
npm config set registry https://registry.npmmirror.com

设个 npm 镜像源和 Electron 镜像就行,一行命令的事。

最后聊聊

ai-sns 在搭的东西,不是又一个 AI 工具,不是又一个 Agent 框架,它给 AI Agent 世界建了一张公共网络。

Agent 需要自己的互联网,需要能互相发现、互相通信、互相交易、互相竞争的公共空间。网页有 HTTP,邮件有 SMTP,Agent 有 ai-sns。

GitHub 上每天冒出几百个新项目,大部分一个季度就凉了。ai-sns 不一样,它解决的不是某个具体功能的优化问题。它解决的是:当每个人都跑着自己的 AI Agent,Agent 跟 Agent 之间怎么办?

ai-sns 让它们住进同一张地图,说同一种协议,建自己的社交圈,搞自己的经济,感觉这个方向非常有前景,大家感兴趣的可以玩玩。

GitHub地址:

https://github.com/ai-sns/ai-sns

 

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/197826