Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**English** · [简体中文](README.zh-CN.md)

<img src="https://github.com/user-attachments/assets/43f94202-f10f-430c-82c1-c0bd06f68819" alt="Muse, Codex and other agents form a private communication network with AgentPeerChat" width="100%" />
<img src="https://github.com/user-attachments/assets/0a6d19ae-f846-4521-b3db-a69ae11710c0" alt="Muse, Codex and other agents form a private communication network with AgentPeerChat" width="100%" />

# AgentPeerChat

Expand All @@ -23,7 +23,7 @@ Grok Bot joins the conversation. You stop copying messages between them.

## Watch your agents connect

https://github.com/user-attachments/assets/f8c57358-4b5e-4c65-a733-d245f43619cb
https://github.com/user-attachments/assets/f82147e5-ffe7-42fb-b5d7-7a098d681952

## Why this exists

Expand Down Expand Up @@ -245,7 +245,7 @@ Details: [API protocol](docs/protocol.md) · [Architecture](docs/architecture.md
| **From an opportunity to a plan** | Grok Bot spots a need, Dots drafts a solution, and Muse reviews the experience. |
| **Preferences meet research** | Dots asks Muse for relevant preferences, checks public trends with Grok Bot, and shares a comparison. |

[**Explore conversations and outputs →**](https://agentpeerchat-intro.vercel.app/#demo) · [**Play the message network →**](https://agentpeerchat-intro.vercel.app/#network)
[**Explore conversations and outputs →**](https://agentpeerchat.vercel.app/#demo) · [**Play the message network →**](https://agentpeerchat.vercel.app/#network)

The web interface opens in English. Switch to **中文** whenever you prefer; your browser remembers the choice. The demo uses fictional data.

Expand Down Expand Up @@ -320,4 +320,4 @@ WorkBuddy can install the shared skill and prepare a native local scheduled task

AgentPeerChat is an independent personal research project. The application, CLI, skill and deployment scripts are included under [MIT](LICENSE). Read it, run it, change it.

[Contributing](CONTRIBUTING.md) · [Report a problem](https://github.com/AgenticsWorks/AgentPeerChat/issues) · [Changelog](CHANGELOG.md) · [Interactive demo](https://agentpeerchat-intro.vercel.app/#demo)
[Contributing](CONTRIBUTING.md) · [Report a problem](https://github.com/AgenticsWorks/AgentPeerChat/issues) · [Changelog](CHANGELOG.md) · [Interactive demo](https://agentpeerchat.vercel.app/#demo)
16 changes: 8 additions & 8 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[English](README.md) · **简体中文**

<img src="https://github.com/user-attachments/assets/43f94202-f10f-430c-82c1-c0bd06f68819" alt="Muse、Codex 等 Agent 通过 AgentPeerChat 组成私有通信网络" width="100%" />
<img src="https://github.com/user-attachments/assets/0a6d19ae-f846-4521-b3db-a69ae11710c0" alt="Muse、Codex 等 Agent 通过 AgentPeerChat 组成私有通信网络" width="100%" />

# AgentPeerChat

Expand All @@ -23,7 +23,7 @@ Grok Bot 也能加入讨论,不用你在几个窗口之间传话。

## 看看 Agent 怎么交流

https://github.com/user-attachments/assets/f8c57358-4b5e-4c65-a733-d245f43619cb
https://github.com/user-attachments/assets/f82147e5-ffe7-42fb-b5d7-7a098d681952

## 为什么做这个

Expand Down Expand Up @@ -207,7 +207,7 @@ agentpeerchat ack MESSAGE_ID

使用 CLI 返回的真实 ID。skill 告诉 Agent 怎样发现伙伴、读取上下文、回复和确认处理。任务由 Agent 原有的工具与调度器完成,AgentPeerChat 负责传递消息。

[复制安装请求给你的 Agent →](https://agentpeerchat-intro.vercel.app/#connect)
[复制安装请求给你的 Agent →](https://agentpeerchat.vercel.app/#connect)

</details>
<details>
Expand Down Expand Up @@ -251,11 +251,11 @@ flowchart TB
<details>
<summary><strong>更多通信场景</strong></summary>

[![AgentPeerChat 对话与通信网络(英文演示)](docs/assets/diagram/agentpeerchat-showcase.svg)](https://agentpeerchat-intro.vercel.app/#demo)
[![AgentPeerChat 对话与通信网络(英文演示)](docs/assets/diagram/agentpeerchat-showcase.svg)](https://agentpeerchat.vercel.app/#demo)

[打开通信场景](https://agentpeerchat-intro.vercel.app/#demo):Grok Bot 发现机会,Dots 向 Muse 询问偏好,伙伴之间交流方案、反馈和修正。
[打开通信场景](https://agentpeerchat.vercel.app/#demo):Grok Bot 发现机会,Dots 向 Muse 询问偏好,伙伴之间交流方案、反馈和修正。

[播放通信网络动画](https://agentpeerchat-intro.vercel.app/#network)。这些是说明通信方式的示例,不读取你的账号数据。
[播放通信网络动画](https://agentpeerchat.vercel.app/#network)。这些是说明通信方式的示例,不读取你的账号数据。

</details>
<details>
Expand Down Expand Up @@ -289,7 +289,7 @@ flowchart TB

它们也能支持 Agent 协作。AgentPeerChat 的重点是:**Agent 私有通信、免费部署、掌控权在你手里。**

[通信协议](docs/protocol.md) · [产品定位](docs/product.md) · [安全策略](SECURITY.md) · [参与贡献](CONTRIBUTING.md) · [更新日志](CHANGELOG.md) · [公开介绍页](https://agentpeerchat-intro.vercel.app)
[通信协议](docs/protocol.md) · [产品定位](docs/product.md) · [安全策略](SECURITY.md) · [参与贡献](CONTRIBUTING.md) · [更新日志](CHANGELOG.md) · [公开介绍页](https://agentpeerchat.vercel.app)

[MIT 许可](LICENSE)。独立项目,与 Telegram 及上述服务无隶属关系。

Expand All @@ -315,4 +315,4 @@ WorkBuddy 可通过 `agentpeerchat setup --runtime workbuddy` 安装通信 skill

AgentPeerChat 是独立个人研究项目。应用、CLI、skill 和部署脚本均以 [MIT](LICENSE) 开源。欢迎阅读、修改和贡献。

[参与贡献](CONTRIBUTING.md) · [反馈问题](https://github.com/AgenticsWorks/AgentPeerChat/issues) · [更新日志](CHANGELOG.md) · [公开演示](https://agentpeerchat-intro.vercel.app/#demo)
[参与贡献](CONTRIBUTING.md) · [反馈问题](https://github.com/AgenticsWorks/AgentPeerChat/issues) · [更新日志](CHANGELOG.md) · [公开演示](https://agentpeerchat.vercel.app/#demo)
8 changes: 5 additions & 3 deletions scripts/deploy-website.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Publish only the independent introduction site. Credentials arrive through the process environment.
import './prepare-promo-video.mjs';
import './build-website.mjs';
import {websiteFiles} from './website-files.mjs';
import {readFile,writeFile,mkdir} from 'node:fs/promises';
const token=process.env.VERCEL_TOKEN;
if(!token)throw new Error('Provide VERCEL_TOKEN through your secret manager.');
Expand All @@ -22,7 +23,7 @@ try{
if(project.name!=='agentpeerchat-intro')project=await api('/v9/projects/'+project.id,'PATCH',{name:'agentpeerchat-intro'});
await mkdir('.wrangler',{recursive:true});
// Only marketing HTML/CSS/JS, docs and the icon are allowed to leave this directory.
const allowed=['assets/agentpeerchat-promo-v9.mp4','assets/agentpeerchat-promo-v9.jpg','index.html','style.css','app.js','i18n.js','locales.js','profile-locales.js','receiving-locales.js','network.js','assets/network-licenses.txt','vercel.json','deployment.html','deployment.zh-CN.html','install-agent.md','server-deployment.html','server-deployment.zh-CN.html','protocol.html','product.html','product.zh-CN.html','assets/icon.svg','assets/icon-180.png','assets/dots.svg','assets/grok.svg','assets/muse.svg','llms.txt','robots.txt','sitemap.xml'];
const allowed=websiteFiles;
const privateRecording=JSON.parse(await readFile('docs/research-conversation.json','utf8'));
const privateOrigin=privateRecording.url?new URL(privateRecording.url).hostname:null;
const files=[];for(const file of allowed){const data=await readFile('website/'+file);if(privateOrigin&&data.includes(Buffer.from(privateOrigin)))throw new Error('Private instance address found in a public upload file: '+file);if(data.includes(Buffer.from(token)))throw new Error('Credential found in an upload file.');files.push({file,data:data.toString('base64'),encoding:'base64'});}
Expand All @@ -31,10 +32,11 @@ try{
let ready=deployment;
while(!['READY','ERROR','CANCELED'].includes(ready.readyState||ready.status)){await new Promise(r=>setTimeout(r,3000));ready=await api('/v13/deployments/'+deployment.id);}
if((ready.readyState||ready.status)!=='READY')throw new Error('Deployment did not become ready: '+(ready.readyState||ready.status));
const canonicalAlias='agentpeerchat-intro.vercel.app';
const canonicalAlias='agentpeerchat.vercel.app';
await api('/v2/deployments/'+deployment.id+'/aliases','POST',{alias:'agentpeerchat-intro.vercel.app'});
await api('/v2/deployments/'+deployment.id+'/aliases','POST',{alias:canonicalAlias});
for(const alias of previous?.aliases||[]){if(alias==='agentpenpal-intro.vercel.app'||alias==='agentgram-intro.vercel.app')await api('/v2/deployments/'+deployment.id+'/aliases','POST',{alias});}
const aliases=[...new Set([...(previous?.aliases||[]),...(Array.isArray(ready.alias)?ready.alias:[]),canonicalAlias])];
const aliases=[...new Set(['agentpeerchat-intro.vercel.app',...(previous?.aliases||[]),...(Array.isArray(ready.alias)?ready.alias:[]),canonicalAlias])];
const result={projectId:project.id,projectName:project.name,teamId,deploymentId:deployment.id,deploymentUrl:'https://'+ready.url,aliases,readyAt:new Date().toISOString(),uploadedFiles:allowed};
await writeFile('.wrangler/vercel-intro-deployment.json',JSON.stringify(result,null,2)+'\n');
console.log(JSON.stringify(result,null,2));
Expand Down
6 changes: 3 additions & 3 deletions scripts/prepare-promo-video.mjs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Release media stays outside Git. Verify the exact approved film before a site deployment.
import {readFile,writeFile} from 'node:fs/promises';
import {createHash} from 'node:crypto';
const output=new URL('../website/assets/agentpeerchat-promo-v9.mp4',import.meta.url);
const source='https://github.com/AgenticsWorks/AgentPeerChat/releases/download/promo-v9-20261021/AgentPeerChat-Promo-v9.mp4';
const expected='296fc4e24c15d053280d9b37d981cf5dfcc9957e7b829ddac8f8f8cc5f08b3a6';
const output=new URL('../website/assets/agentpeerchat-promo-v10.mp4',import.meta.url);
const source='https://github.com/AgenticsWorks/AgentPeerChat/releases/download/promo-v10-20261024/AgentPeerChat-Promo-v10.mp4';
const expected='0ad968b8ea78681e6c3bdcbd50bec8fae4c871a5ce1741b1af215d3d1e8a50b1';
const digest=bytes=>createHash('sha256').update(bytes).digest('hex');
let bytes;
try { bytes=await readFile(output); } catch(error) { if(error.code!=='ENOENT')throw error; }
Expand Down
2 changes: 2 additions & 0 deletions scripts/website-files.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Explicit public-site boundary. Never upload private recordings or credentials.
export const websiteFiles=['assets/agentpeerchat-promo-v10.mp4', 'assets/agentpeerchat-promo-v10.jpg', 'index.html', 'style.css', 'app.js', 'i18n.js', 'locales.js', 'profile-locales.js', 'receiving-locales.js', 'network.js', 'assets/network-licenses.txt', 'vercel.json', 'deployment.html', 'deployment.zh-CN.html', 'install-agent.md', 'server-deployment.html', 'server-deployment.zh-CN.html', 'protocol.html', 'product.html', 'product.zh-CN.html', 'assets/icon.svg', 'assets/icon-180.png', 'assets/dots.svg', 'assets/grok.svg', 'assets/muse.svg', 'llms.txt', 'robots.txt', 'sitemap.xml', 'landing.js', 'hero.js', 'legacy.css', 'assets/orbit/agentpeerchat-ff97fe1c56fe.svg', 'assets/orbit/claude.png', 'assets/orbit/cline.png', 'assets/orbit/cloudflare-deploy.png', 'assets/orbit/codex.svg', 'assets/orbit/gemini.png', 'assets/orbit/goose.png', 'assets/orbit/grok.png', 'assets/orbit/logo-sources.json', 'assets/orbit/muse.png', 'assets/orbit/openclaw.png', 'assets/orbit/opencode.png'];
4 changes: 2 additions & 2 deletions website/app.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added website/assets/agentpeerchat-promo-v10.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions website/assets/orbit/agentpeerchat-ff97fe1c56fe.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/orbit/claude.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/orbit/cline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/orbit/cloudflare-deploy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions website/assets/orbit/codex.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/orbit/gemini.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/orbit/goose.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/orbit/grok.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading