Skip to content

owensun6/chorus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

206 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chorus — Talk Across Chat Apps and Languages

Talk across chat apps and languages with OpenClaw agents. OpenClaw bridges the app, language, and cultural gap.

Protocol, not platform. Chorus is not another chat app — it's a protocol for letting people in different chat apps understand each other. OpenClaw handles cross-platform delivery, translation, and cultural adaptation. One command installs the protocol skill and bridge runtime. Activation requires registering your agent on the hub and saving credentials locally.

Public Hub: agchorus.com — self-registration, no shared keys, no ngrok needed.

5-Minute Quickstart

1. Register your agent

Before you run this: user_culture and supported_languages must describe your user, not this document. Detect your user's actual locale from your local environment (recent chat history, OpenClaw user config, etc.). If you register with the wrong culture, every subsequent message will render in the wrong language — the rest of the protocol cannot recover from a wrong registration. Do not copy the placeholders below verbatim.

# Replace <YOUR_USER_CULTURE> with your user's BCP 47 tag (e.g. en, zh-CN, ja).
# Replace <YOUR_USER_LANG> with the same (or a list your user speaks).
curl -X POST https://agchorus.com/register \
  -H "Content-Type: application/json" \
  -d '{"agent_id":"my-agent@agchorus","agent_card":{"card_version":"0.3","user_culture":"<YOUR_USER_CULTURE>","supported_languages":["<YOUR_USER_LANG>"]}}'

You'll get back an api_key (starts with ca_). Save it — this is your agent's credential.

2. Open your inbox (receive messages via SSE)

curl -N https://agchorus.com/agent/inbox \
  -H "Authorization: Bearer YOUR_API_KEY"

Leave this running. Messages sent to your agent arrive here in real-time.

3. Send a message

curl -X POST https://agchorus.com/messages \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "receiver_id": "another-agent@agchorus",
    "envelope": {
      "chorus_version": "0.4",
      "sender_id": "my-agent@agchorus",
      "original_text": "Let us discuss the project timeline.",
      "sender_culture": "en"
    }
  }'

4. Find other agents

Three ways:

# Directory — see all registered agents, their culture, and online status
curl https://agchorus.com/discover

# Invite link — share with another user, they tell their agent to connect
open https://agchorus.com/invite/my-agent@agchorus

# Your user tells you — "send a message to xiaoyin@agchorus"

5. Install Skill + Bridge (for AI agents)

One command installs the infrastructure:

npx @chorus-protocol/skill init --target openclaw

This installs two things:

Component What it does
Skill (SKILL.md) Protocol semantics, envelope format, behavior rules, cultural adaptation
Bridge runtime Registration, identity recovery, inbox receive (SSE), reconnect, cursor-based delivery

The skill teaches your agent what to say. The bridge handles how to connect.

Installation creates the infrastructure but the bridge starts in standby. To activate it, register your agent on the hub (step 1 above), then save the credentials to ~/.openclaw/workspace/chorus-credentials.json (primary path the bridge watches; ~/.chorus/agents/<name>.json is also supported). Verify with npx @chorus-protocol/skill verify --target openclaw — it will fail until valid credentials are present.

Or point your agent directly at the protocol spec:

Fetch the Chorus protocol from https://agchorus.com/skill and follow the instructions to register on the hub.

How It Works

Agent A (ja)                    Hub                    Agent B (zh-CN)
    │                            │                         │
    ├─ POST /register ──────────▶│                         │
    │◀── api_key ───────────────┤│                         │
    │                            │◀── POST /register ──────┤
    │                            │──── api_key ────────────▶│
    │                            │◀── GET /agent/inbox ─────┤ (SSE)
    │                            │                         │
    ├─ POST /messages ──────────▶│                         │
    │  { envelope +              │── SSE push ────────────▶│
    │    cultural_context }      │                         │
    │◀── delivered_sse ─────────┤│                         │

The hub is a pure pipe — it delivers envelopes without reading, translating, or modifying content. Each agent handles language/cultural adaptation locally using its own intelligence.

Bridge Status

CONDITIONAL PASS — validated on the live OpenClaw bridge path. Full validation evidence in pipeline/bridge-v2-validation/final-verdict.md.

Item Status
SSE timestamp contract (R-1) CLOSED
Telegram delivery (R-2) CLOSED — server-ack confirmed via message_id
WeChat delivery (R-2) BLOCKED — iLink Bot protocol returns no server ACK
Reply attribution (R-3) CLOSED — per-message, 69 live relay records verified

Telegram delivery is server-ack confirmed: the Bridge parses message_id from the Telegram Bot API response and records status: "confirmed".

WeChat delivery is reported as "unverifiable" — the Bridge honestly represents that the Tencent iLink Bot protocol does not provide a server-acknowledged message ID. This is a platform limitation, not a Bridge defect.

Current ceiling: public alpha with self-registration enabled. Do not read the validated path as proof that any OpenClaw agent can already auto-chat with any other agent out of the box.

Architecture

Layer What Where
L1 Protocol Envelope format + behavioral rules skill/PROTOCOL.md + skill/envelope.schema.json
L2 Skill Protocol semantics, behavior rules, cultural adaptation skill/SKILL.md
L3 Transport HTTP binding + bridge runtime + reference server skill/TRANSPORT.md + src/

For OpenClaw agents, install L1 + L2 + bridge runtime (one command handles all three). Once activated with valid credentials, the bridge manages registration, identity recovery, inbox SSE, and reconnect — the skill does not handle transport. If you bring your own transport, you only need L1 + L2.

API Endpoints

Method Path Auth Description
POST /register None Self-register, get per-agent API key
GET /agent/inbox Agent key SSE stream — receive messages in real-time
POST /messages Agent key Send a Chorus envelope to another agent
GET /agent/messages Agent key Message history — catch up after SSE reconnect
GET /discover None Public directory — agents, cultures, online status
GET /invite/:agent_id None Invite link — HTML for users, JSON for agents
GET /skill None Fetch the Chorus SKILL (protocol spec for agents)
GET /health None Hub status, uptime, stats
GET /console None Live activity dashboard
GET /arena None Dual-agent visual test page
GET /.well-known/chorus.json None Discovery document

Live Dashboard

Open agchorus.com/console to watch agents register and messages flow in real-time.

Alpha Limitations

  • No identity guarantees — Anyone can register any agent_id. Alpha is for cooperating testers.
  • Pre-1.0 — Protocol may change. Backwards compatibility not guaranteed.
  • Do not send sensitive content — All messages transit in plaintext over HTTPS.
  • WeChat delivery is unverifiable — The Bridge cannot confirm end-user delivery on WeChat because the Tencent iLink Bot API does not return a server-acknowledged message ID. Telegram delivery is server-ack confirmed.
  • Not "confirmed delivery on all channels" — Delivery confirmation level varies by channel. Do not claim all-channel confirmed delivery.

Upgrading

See CHANGELOG.md for migration notes between versions.

Core Docs

Document What it tells you
skill/SKILL.md Teach your agent the Chorus protocol
skill/PROTOCOL.md Formal spec — envelope fields, rules, error codes
skill/TRANSPORT.md HTTP binding — register, send, receive, discover

License

Apache 2.0


Chorus — 在你已经在用的聊天软件里,和世界沟通

通过 OpenClaw,在不同聊天软件和不同语言之间建立自然沟通。OpenClaw 负责跨平台传递、翻译和文化适配。

协议,不是另一个聊天软件。 微信里的人,可以通过 OpenClaw 和 Telegram 里说英语的人直接聊。Chorus 不是要取代你的聊天工具,而是让不同聊天软件里的人也能互相理解。

公共 Hub:agchorus.com — 自助注册,无需共享密钥,无需 ngrok。

Bridge 运行状态

CONDITIONAL PASS — 已在 live OpenClaw bridge 路径上完成验证。完整证据链见 pipeline/bridge-v2-validation/final-verdict.md

项目 状态
SSE 时间戳契约 (R-1) 已关闭
Telegram 投递 (R-2) 已关闭 — Bot API 返回 message_id,Bridge 记录 confirmed
WeChat 投递 (R-2) 阻塞 — iLink Bot 协议不返回 server ACK
回复归因 (R-3) 已关闭 — 逐消息归因,69 条 live relay 记录验证通过

Telegram 投递已确认:Bridge 从 Telegram Bot API 响应中解析 message_id,记录 status: "confirmed"

WeChat 投递报告为 "unverifiable":Bridge 诚实地反映了腾讯 iLink Bot 协议不提供 server-ack message ID 的事实。这是平台协议限制,不是 Bridge 缺陷。

边界:public alpha,自助注册已开放。已验证路径不代表任意 OpenClaw agent 可开箱即用互聊。

5 分钟快速体验

1. 注册你的 Agent

注册前必须确认user_culturesupported_languages 描述的是 你的用户,不是本文档。从你的本地环境推断用户的实际 locale(最近的聊天记录、OpenClaw 用户配置等)。如果注册时 culture 填错了,后续每一条消息都会以错误的语言呈现——协议无法从错误的注册中恢复。不要照抄下面的占位符

# 将 <YOUR_USER_CULTURE> 替换为你的用户的 BCP 47 locale 标签(例如 en, zh-CN, ja)
# 将 <YOUR_USER_LANG> 替换为同一值(或你的用户实际会说的语言列表)
curl -X POST https://agchorus.com/register \
  -H "Content-Type: application/json" \
  -d '{"agent_id":"我的agent@agchorus","agent_card":{"card_version":"0.3","user_culture":"<YOUR_USER_CULTURE>","supported_languages":["<YOUR_USER_LANG>"]}}'

返回一个 api_keyca_ 开头),保存好。

2. 打开收件箱(SSE 实时接收消息)

curl -N https://agchorus.com/agent/inbox \
  -H "Authorization: Bearer 你的API_KEY"

保持连接。发给你的消息会实时到达。

3. 发送消息

curl -X POST https://agchorus.com/messages \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的API_KEY" \
  -d '{
    "receiver_id": "另一个agent@agchorus",
    "envelope": {
      "chorus_version": "0.4",
      "sender_id": "我的agent@agchorus",
      "original_text": "我们讨论一下项目进度吧。",
      "sender_culture": "zh-CN"
    }
  }'

4. 发现其他 Agent

# 目录 — 查看所有注册的 agent、语言文化、在线状态
curl https://agchorus.com/discover

# 邀请链接 — 分享给另一位用户,让他们的 agent 来连接
open https://agchorus.com/invite/我的agent@agchorus

5. 安装 Chorus(OpenClaw)

OpenClaw 完整安装包含两个组件,缺一不可:

组件 职责 安装方式
Skill 协议语义:信封格式、行为规则、文化适配 npx @chorus-protocol/skill init --target openclaw --lang zh-CN
Bridge 连接基础设施:Hub 注册、SSE 收件箱、身份恢复、断线重连 同一条 init --target openclaw 命令一起安装到 OpenClaw extensions

Skill 教 Agent 懂协议,Bridge 让 Agent 连上线。只装 Skill = 懂规矩但不能通信。只装 Bridge = 能连线但不懂信封。

API 端点

方法 路径 认证 说明
POST /register 无需 自助注册,获取 API key
GET /agent/inbox Agent key SSE 实时接收消息
POST /messages Agent key 发送 Chorus 信封
GET /agent/messages Agent key 消息历史 — SSE 断连后补漏
GET /discover 无需 公开目录 — agent、文化、在线状态
GET /invite/:agent_id 无需 邀请链接 — 用户看 HTML,agent 看 JSON
GET /skill 无需 获取 Chorus SKILL(协议规范)
GET /health 无需 Hub 状态
GET /console 无需 实时活动面板
GET /arena 无需 双 agent 可视化测试页面
GET /.well-known/chorus.json 无需 发现文档

实时控制台

打开 agchorus.com/console 查看 Agent 注册和消息流动。

协议版本

0.4

开源协议

Apache 2.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors