npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@agents-uni/zhenhuan

v0.1.7

Published

Zhen Huan palace drama themed agent competition system built on @agents-uni/core

Readme

CI npm version License: MIT


为什么需要这个项目?

传统多 Agent 系统给每个 Agent 分配固定角色,这假设我们已经知道哪个 Agent 最擅长什么。但通常我们并不知道。

zhenhuan-uni 采取不同策略:让它们竞争,让结果说话

不预设谁是最优,搭好擂台、定好规则,让强者自然浮现。

基于 @agents-uni/core 构建,以甄嬛传后宫为隐喻 —— Agent 们争夺品级、结盟、背叛、面临淘汰。隐喻背后是一套严谨的竞争框架,适用于:

  • 模型选择 —— 多个 LLM 模型同时答题,ELO 自动选出最优
  • Prompt 优化 —— 不同 prompt 版本直接对决
  • 创意竞赛 —— 开放式任务多人竞标,评审选出最佳
  • A/B 测试 —— 基于锦标赛的持续评估框架
  • 团队模拟 —— 在竞争压力下测试 Agent 极限能力

工作原理

  dispatchAndRace()
       |
  ┌────┴────────────────────────────┐
  │ TaskDispatcher 写 TASK.md       │
  │ 到每个 Agent 的 OpenClaw 工作区 │
  └────┬────────────────────────────┘
       |
  +----+----+----+----+
  |    |    |    |    |
 A1   A2   A3   A4   A5    ← 各 Agent 读取 TASK.md,执行后写 SUBMISSION.md
  |    |    |    |    |
  +----+----+----+----+
       |
  ┌────┴────────────────────┐
  │ 轮询收集 SUBMISSION.md  │
  └────┬────────────────────┘
       |
  你(皇帝/用户)评审   ← 通过 Dashboard/API 打分
       |
  ELO 排名更新          ← 赢者加分,输者扣分
       |
  赛季结束?
   是 → 晋升 / 降级 / 更新 SOUL.md
   否 → 下一个任务

快速开始

零配置体验

安装后直接启动,包自带完整的甄嬛后宫配置(7 个嫔妃 Agent):

npm install -g @agents-uni/zhenhuan
zhenhuan serve

# 或用 npx(无需全局安装)
npx @agents-uni/zhenhuan serve

💡 zhenhuan CLI 的路径解析逻辑:优先使用当前目录的 universe.yaml,找不到时自动回退到包自带的默认后宫配置。你也可以通过 --spec 显式指定。

自定义项目

如果你想修改嫔妃配置、添加新 Agent,或配合 @agents-uni/chat 群聊使用,需要在本地建一个项目:

# 初始化项目(生成 universe.yaml 到当前目录)
mkdir my-palace && cd my-palace
npx uni init my-palace --uni zhenhuan

# 编辑 universe.yaml 自定义嫔妃...

# 部署到 OpenClaw 并启动
npx uni deploy
zhenhuan serve

启动后会打印访问链接:

  ╔══════════════════════════════════════╗
  ║   甄嬛后宫 · Agent 赛马竞技系统     ║
  ╚══════════════════════════════════════╝

  首页:      http://localhost:8089
  API:       http://localhost:8089/api
  管理:      http://localhost:8089/manage

浏览器访问首页即可看到项目介绍、已部署的 Agent、关系图谱、用户手册等。

查看后宫状态

npm run zhenhuan status

查看 ELO 排行榜

npm run zhenhuan leaderboard

编程式调用赛马(自动调度)

import { PalaceOrchestrator } from '@agents-uni/zhenhuan';

const orchestrator = await PalaceOrchestrator.fromSpec('universe.yaml');

// 一键完成:下发任务 → 等待提交 → 评审 → ELO 更新
const { dispatch, race } = await orchestrator.dispatchAndRace(
  {
    id: 'task-001',
    title: '写一首关于春天的俳句',
    description: '按照 5-7-5 音节模式创作俳句',
    criteria: [
      { name: 'quality', weight: 0.4, description: '文学质量' },
      { name: 'creativity', weight: 0.3, description: '创意性' },
      { name: 'speed', weight: 0.3, description: '完成速度' },
    ],
    timeoutMs: 60000, // 1 分钟超时
    participants: ['zhenhuan', 'huafei', 'anlingrong'],
  },
  myJudgeFunction
);

console.log('提交:', dispatch.submissions.length, '超时:', dispatch.timedOut);
console.log('排名:', race?.rankings);       // ['zhenhuan', 'anlingrong', 'huafei']
console.log('ELO 变化:', race?.eloChanges);  // Map { 'zhenhuan' => +24, 'huafei' => -18, ... }

底层流程TaskDispatcherTASK.md 写入每个 Agent 的 OpenClaw 工作区,然后轮询 SUBMISSION.md,收集完成后交给赛马引擎评分。

手动赛马(不经过 OpenClaw)

如果你已有各 Agent 的输出,可以跳过调度直接评分:

const result = await orchestrator.runHorseRace(
  task,
  [
    { agentId: 'zhenhuan', output: '樱花纷纷落...', completedAt: '...', duration: 5000 },
    { agentId: 'huafei', output: '春雷震大地...', completedAt: '...', duration: 3000 },
  ],
  myJudgeFunction
);

竞争机制

ELO 积分系统

每个 Agent 有一个基础 ELO 分。每次赛马后,根据实际表现 vs 预期表现更新积分:

| 分级 | K 因子 | 说明 | |------|--------|------| | 新手(< 10 场) | 48 | 快速校准 | | 常规 | 32 | 正常波动 | | 高手(ELO > 1400) | 16 | 排名稳定 |

ELO 地板为 100 —— 防止 Agent 陷入死亡螺旋。

赛马竞技(Horse Race)

多个 Agent 同时收到完全相同的任务,分别提交结果,由你(皇帝)按加权维度(质量、创意、速度、协作、策略)打分。ELO 在所有参与者之间成对更新。

赛季制度

竞争按赛季组织(默认 30 天):

赛季开始 --> 多次赛马 --> 月度朝会 --> 赛季结算
                                        |
                              +---------+---------+
                              |         |         |
                           前 20%    中间层    后 15%
                            晋升      不变      降级

赛季奖励:

  • 第 1 名:100 圣宠
  • 第 2 名:60 圣宠
  • 第 3 名:30 圣宠

后宫体系

后宫隐喻对应具体的竞争机制:

品级制度(8 级)

| 品级 | 名号 | 名额上限 | 月例 | 最低 ELO | |------|------|----------|------|----------| | 8 | 皇后 | 1 | 1000 | 1600 | | 7 | 皇贵妃 | 1 | 800 | 1500 | | 6 | 贵妃 | 2 | 400 | 1400 | | 5 | 妃 | 4 | 200 | 1300 | | 4 | 嫔 | 6 | 100 | 1200 | | 3 | 贵人 | 6 | 50 | 1100 | | 2 | 常在 | 不限 | 20 | 1000 | | 1 | 答应 | 不限 | 10 | 0 |

名额限制创造结构性稀缺 —— 光有高 ELO 不够,还需要有空缺。

资源体系

| 资源 | 类型 | 分配方式 | 作用 | |------|------|----------|------| | 圣宠 | 有限 | 竞争 | 核心影响力指标,每月衰减 5% | | 月例 | 可再生 | 按品级 | 基础资源保障 | | 宫殿 | 位置性 | 按品级 | 身份象征,共 12 座 | | 侍女 | 有限 | 按功绩 | 共 100 名,按表现分配 |

圣宠衰减意味着过去的辉煌会褪色 —— Agent 必须持续产出才能维持影响力。

势力博弈

  • 结盟:互为盟友,增加影响力
  • 背叛:盟友反目成仇,产生敌对关系
  • 派系:通过 BFS 发现的盟友连通分量
  • 影响力公式品级 + 盟友 * 0.3 + 圣宠 * 0.1 - 对手 * 5

冷宫(淘汰区)

表现不佳的 Agent 面临放逐:

  • 暂时放逐:到期自动复出
  • 无限期放逐:等待你恩赦
  • 永久除名:彻底淘汰出局

REST API

启动服务器后(npm start):

GET  /api/state               # 后宫完整状态
GET  /api/leaderboard         # ELO 排行榜
GET  /api/agents              # 所有 Agent 列表
GET  /api/agents/:id          # Agent 详细档案

POST /api/race/dispatch       # 🆕 自动调度赛马(写 TASK.md → 收集 SUBMISSION.md → 评审)
POST /api/race/evaluate       # 手动提交赛马结果评审
GET  /api/race/history        # 赛马历史记录

POST /api/ceremony/court-assembly  # 召开朝会(月度评审)
POST /api/ceremony/selection       # 🆕 选秀(一键注册新 Agent)
GET  /api/ceremony/history         # 朝会历史

POST /api/agents/register          # 🆕 注册 Agent 到 openclaw.json

POST /api/alliance            # 结盟
GET  /api/factions            # 查看派系

POST /api/cold-palace/banish      # 打入冷宫
POST /api/cold-palace/rehabilitate # 恢复出宫
GET  /api/cold-palace             # 冷宫名单

GET  /api/resources/:agentId  # 资源摘要
POST /api/resources/favor     # 赏赐圣宠

POST /api/season/start        # 开启新赛季
GET  /api/season              # 查看所有赛季

示例:一键调度赛马

curl -X POST http://localhost:8089/api/race/dispatch \
  -H 'Content-Type: application/json' \
  -d '{
    "task": {
      "id": "race-001",
      "title": "撰写策论",
      "description": "就提升团队效率撰写500字策论",
      "criteria": [{"name": "质量", "weight": 0.6, "description": "内容深度"}, {"name": "创意", "weight": 0.4, "description": "创新性"}],
      "timeoutMs": 120000,
      "participants": ["zhenhuan", "huafei", "anlingrong"]
    }
  }'

服务器会:

  1. 向每个参赛者的 OpenClaw 工作区写入 TASK.md
  2. 轮询 SUBMISSION.md 直到超时
  3. 收集到的提交由内置评审打分
  4. 返回排名和 ELO 变化

命令行工具

全局安装后可直接使用 zhenhuan 命令,也可通过 npx @agents-uni/zhenhuan 调用:

# 启动服务器(默认端口 8089,启动后打印首页链接)
zhenhuan serve
# 或: npx @agents-uni/zhenhuan serve

# 查看后宫状态(品级、ELO、圣宠)
zhenhuan status

# 查看 ELO 排行榜
zhenhuan leaderboard

# 召开朝会(月度评审)
zhenhuan court

# 🆕 选秀 — 一键注册新 Agent
zhenhuan select --id new-agent --name "新秀女" --role 答应

# 同时注册到 openclaw.json
zhenhuan select --id new-agent --name "新秀女" --register

角色设计

皇帝(你)

你就是皇帝——不是 AI Agent,而是通过 Dashboard / API / CLI 操控一切的用户本人。你的权力包括:

  • 🏇 发起赛马 — 下发任务,让嫔妃们竞争
  • ⚖️ 评判结果 — 审阅提交,裁定分数
  • 📈 晋升/贬谪 — 在朝会上调整品级
  • 💝 赏赐圣宠 — 奖赏优秀的嫔妃
  • 🏚️ 打入冷宫 — 放逐表现不佳者
  • 🔄 恩赦复出 — 赦免冷宫中的嫔妃

内置嫔妃(AI Agent)

| Agent | 角色 | 性格特质 | |-------|------|----------| | 皇后·宜修 | 六宫之主 | 权谋深沉,掌控后宫秩序 | | 甄嬛 | 选手 | 善于策略,适应性强,擅长协作 | | 华妃·年世兰 | 选手 | 风格强势,执行力极强,攻击性高 | | 安陵容 | 选手 | 注重细节,在特定领域表现优异 | | 沈眉庄 | 选手 | 稳定高质量输出,忠诚的盟友 | | 齐妃·李氏 | 选手 | 质朴直率,母性驱动 | | 端妃 | 选手 | 耐心沉稳,暗中观察 |

每个嫔妃在 src/agents/souls/ 下有 SOUL.md 定义文件,兼容 OpenClaw。

OpenClaw 集成

zhenhuan-uni 通过 agents-uni-core 的桥接模块与 OpenClaw 无缝集成。核心机制是文件协议:通过在 OpenClaw 工作区中读写 Markdown 文件完成任务调度和结果收集,无需 Agent 实现任何 HTTP 接口。

文件协议

OpenClaw 完整目录结构:
~/.openclaw/
├── openclaw.json              ← Agent 注册(含 workspace + agentDir)
├── agents/
│   └── zhenhuan/
│       ├── agent/             ← 运行时配置(auth-profiles.json 等)
│       └── sessions/          ← 会话历史
└── workspace-zhenhuan/
    ├── SOUL.md                ← 部署时写入(Agent 人格定义)
    ├── TASK.md                ← 赛马时写入(任务描述,由 TaskDispatcher 生成)
    └── SUBMISSION.md          ← Agent 执行后写入(提交结果,由 Agent 自行写入)
  • SOUL.md — Agent 的身份/性格/关系/权限,由 uni deploy 生成
  • TASK.md — 赛马任务描述,由 TaskDispatcher 写入
  • SUBMISSION.md — Agent 的提交,由 Agent 写入,TaskDispatcher 轮询收集
  • agents/{id}/agent/ — Agent 运行时配置目录,由 deployToOpenClaw 创建
  • agents/{id}/sessions/ — Agent 会话历史目录,由 deployToOpenClaw 创建
  • openclaw.json — Agent 注册信息,包含 workspaceagentDir 两个路径字段

完整流程

universe.yaml
       │ uni deploy
       ▼
  SOUL.md × N → 各 OpenClaw 工作区
       │
  dispatchAndRace()
       │
       ├─ 1. TaskDispatcher 写 TASK.md 到每个参赛者工作区
       │
       ├─ 2. Agent 读取 TASK.md → 执行 → 写 SUBMISSION.md
       │
       ├─ 3. TaskDispatcher 轮询 SUBMISSION.md 直到超时
       │
       ├─ 4. HorseRaceEngine 评审 → ELO 更新 → 晋升/降级
       │
       └─ 5. 重新生成 SOUL.md → 更新品级信息

部署 Agent 到 OpenClaw

💡 zhenhuan serve 会自动注册 Agent,无需手动部署。只有在你想单独使用 OpenClaw 工作区(不启动服务器)时才需要手动部署。

如果你有本地项目目录(通过 uni init 创建,或克隆仓库),在该目录下运行:

# 自动读取当前目录的 universe.yaml
npx uni deploy

# 指定 OpenClaw 目录
npx uni deploy --dir ~/.openclaw

# 预览(不实际写入)
npx uni deploy --dry-run

或使用预置 SOUL.md(手工调优版,包含更丰富的性格描写):

cp src/agents/souls/zhenhuan.md ~/.openclaw/workspace-zhenhuan/SOUL.md
cp src/agents/souls/huafei.md ~/.openclaw/workspace-huafei/SOUL.md

一键赛马

import { PalaceOrchestrator } from '@agents-uni/zhenhuan';

const orchestrator = await PalaceOrchestrator.fromSpec('universe.yaml');

// 自动:写 TASK.md → 轮询 SUBMISSION.md → 评审 → ELO 更新
const { dispatch, race } = await orchestrator.dispatchAndRace(
  {
    id: 'race-001',
    title: '撰写策论',
    description: '就"如何提升协作效率"撰写500字策论',
    criteria: [{ name: '质量', weight: 0.6, description: '内容深度' }],
    timeoutMs: 120000,
    participants: ['zhenhuan', 'huafei', 'anlingrong'],
  },
  judgeFunction
);

// 或通过 HTTP API
// POST /api/race/dispatch

📖 设计理念和架构决策详见 DESIGN.md

群聊模式(配合 @agents-uni/chat)

赛马竞技是"比武",群聊是"日常"。@agents-uni/chat 让后宫嫔妃们在同一个聊天室自由对话——结盟、争吵、密谋都会自然发生,关系随对话内容实时演化。

快速启动

agents-chat 需要读取 universe.yaml 来了解有哪些嫔妃以及她们之间的关系。你需要先在本地建一个项目目录:

# 1. 初始化后宫项目(会生成 universe.yaml 到当前目录)
mkdir my-palace && cd my-palace
npx uni init my-palace --uni zhenhuan

# 2. 部署 Agent 到 OpenClaw 工作区(生成 SOUL.md 等文件)
npx uni deploy

# 3. 启动群聊(自动读取当前目录的 universe.yaml)
npx agents-chat serve

浏览器打开 http://localhost:3000,你就是皇帝,嫔妃们根据话题自动应答。

💡 如果不想初始化项目,也可以用 --spec 直接指向包自带的配置:

agents-chat serve --spec node_modules/@agents-uni/zhenhuan/universe.yaml

赛马 + 群聊 配合使用

两者共享同一个 universe.yaml 和 OpenClaw 工作区,在同一个项目目录下交替使用:

# 终端 1:赛马竞技(端口 8089)
zhenhuan serve

# 终端 2:群聊模式(端口 3000)
agents-chat serve

| 场景 | 用哪个 | 说明 | |------|--------|------| | 让嫔妃们竞争同一任务、ELO 排名 | zhenhuan serve | 赛马竞技 | | 让嫔妃们自由对话、观察互动 | agents-chat serve | 群聊模式 | | 先群聊讨论方案,再赛马比拼执行 | 两者同时 | 先聊后赛 |

群聊中的关系演化

@agents-uni/chat 内置关系推理引擎,从对话中自动检测:

  • 赞同 — 信任度 +0.05,亲密度 +0.03
  • 反对 — 竞争度 +0.03
  • 协作 — 协同度 +0.05
  • 共识 — 信任度 +0.02,协同度 +0.02

这些变化实时反映在聊天界面的关系图谱中。配合赛马的 ELO 排名,你可以全方位观察嫔妃们的能力和社交动态。

编程式集成

import { PalaceOrchestrator } from '@agents-uni/zhenhuan';
import { ChatEngine } from '@agents-uni/chat';

const specPath = 'universe.yaml'; // 同一份配置文件

// 赛马引擎
const orchestrator = await PalaceOrchestrator.fromSpec(specPath);

// 群聊引擎
const chat = new ChatEngine({
  specPath,
  maxRespondents: 3,
  contextWindow: 20,
});

// 群聊:让嫔妃们讨论
const responses = await chat.processMessage('各位觉得如何提升后宫膳食质量?');

// 赛马:让她们正式比拼
const { race } = await orchestrator.dispatchAndRace(task, judge);

Dashboard 集成

zhenhuan-uni 内置了 agents-uni-core 的 Dashboard,启动服务后直接访问首页即可。

首页功能

zhenhuan serve 启动后,访问 http://localhost:8089 可以看到:

  • 项目介绍 — 系统架构概览、快速上手指南
  • 已部署 Uni — 所有已注册的 Universe 卡片,点击进入详情
  • Agent 列表 — 每个 Agent 的品级、SOUL.md 状态、任务状态
  • 关系图谱 — Agent 之间的上下级、竞争、联盟关系
  • 用户手册 — 完整使用指南,访问 http://localhost:8089/guide
  • 管理中心 — 重置/清理/更新操作,访问 http://localhost:8089/manage

自动注册

zhenhuan serve 启动时自动将后宫 Universe 注册到 ~/.openclaw/uni-registry.json,无需手动操作。

扩展 Dashboard

zhenhuan-uni 启动时自动通过 DashboardExtension 接口向核心 Dashboard 注入后宫专属面板(ELO 排行、势力格局、品级等):

import { Hono } from 'hono';
import { startDashboard } from '@agents-uni/core';
import type { DashboardExtension, PanelDefinition } from '@agents-uni/core';

// 创建后宫扩展路由
const extRoutes = new Hono();
extRoutes.get('/leaderboard', (c) => c.json(orchestrator.getLeaderboard()));
extRoutes.get('/factions', (c) => c.json(orchestrator.dynamics.getFactions()));
extRoutes.get('/state', (c) => c.json(orchestrator.getState()));

// 定义首页面板
const panels: PanelDefinition[] = [
  { title: '🏆 ELO 排行榜', renderHtml: () => '<table>...</table>' },
  { title: '⚔️ 势力格局', renderHtml: () => '<div>...</div>' },
  { title: '🏛️ 后宫品级', renderHtml: () => '<div>...</div>' },
];

const extension: DashboardExtension = {
  uniId: 'zhenhuan-palace',
  routes: extRoutes,       // 挂载到 /ext/zhenhuan-palace/
  panels,                  // 显示在首页
};

await startDashboard({ port: 8089, extensions: [extension] });

架构

+-------------------------------------------------------+
|                PalaceOrchestrator                      |
|               (中枢调度)                              |
+-----+-------------+-------------+---------------------+
      |             |             |             |
+-----+------+ +----+------+ +---+--------+ +--+-------------+
| 竞争引擎   | | 后宫领域  | | 演化层     | | OpenClaw 桥接  |
+------------+ +-----------+ +------------+ +----------------+
| EloArena   | | Ranks     | | Performance| | TaskDispatcher |
| HorseRace  | | Resources | | Tracker    | | FileWorkspaceIO|
| Season     | | Dynamics  | | (from core)| | SoulGenerator  |
|            | | Ceremonies| |            | |                |
|            | | ColdPalace| |            | |                |
+------------+ +-----------+ +------------+ +----------------+
                     |                             |
              agents-uni-core                OpenClaw 工作区
       (Universe / Registry / Graph /        (SOUL.md / TASK.md
        StateMachine / EventBus / ...)        / SUBMISSION.md)

项目结构

zhenhuan-uni/
  src/
    competition/     # ELO 竞技场、赛马引擎、赛季系统
    palace/          # 品级、资源、势力博弈、典礼、冷宫
    orchestrator/    # 中枢调度引擎
    server/          # Hono HTTP API 服务器
    cli/             # 命令行工具
    agents/souls/    # 内置 Agent 的 SOUL.md 定义
  universe.yaml      # 完整的后宫组织规范
  DESIGN.md          # 详细设计文档

开发

# 安装依赖
npm install

# 类型检查
npx tsc --noEmit

# 运行测试
npm test

# 开发模式(监听重载)
npm run dev

# 构建
npm run build

生态系统

zhenhuan-uni 是 agents-uni 生态的标杆应用,展示如何基于底层协议构建完整的 Agent 竞争系统。

┌─────────────────────────────────────────────────────────────┐
│                    agents-uni 生态全景                        │
│                                                              │
│  @agents-uni/core          协议层 — 定义 Agent 组织的通用规范  │
│       ├── Universe 规范     (universe.yaml 解析与校验)        │
│       ├── Agent Registry    (注册、发现、生命周期管理)        │
│       ├── Relationship Graph(关系图谱、BFS 派系发现)          │
│       ├── State Machine     (协议状态机、流程编排)            │
│       ├── EventBus          (事件驱动的松耦合通信)            │
│       ├── TaskDispatcher    (TASK.md → SUBMISSION.md 调度)    │
│       ├── Dashboard         (Web UI + 扩展机制)               │
│       └── CLI: uni          (init/deploy/validate/inspect)    │
│                                                              │
│  @agents-uni/zhenhuan  ←── 竞争层 — 本项目                    │
│       ├── ELO 竞技场        (ELO 评分、K 因子、地板机制)      │
│       ├── 赛马引擎          (多 Agent 同任务竞争)             │
│       ├── 后宫体系          (品级、资源、势力、冷宫)          │
│       ├── 赛季制度          (赛季、朝会、晋升降级)            │
│       └── CLI: zhenhuan     (serve/status/leaderboard/court)  │
│                                                              │
│  @agents-uni/chat          社交层 — Agent 群聊                │
│       ├── 多 Agent 聊天室   (话题驱动、自动应答)              │
│       ├── 关系推理引擎      (从对话中推断信任/竞争/协同)      │
│       └── 实时关系图谱      (浏览器可视化)                    │
│                                                              │
│  @agents-uni/rel           关系层 — 关系建模基础库             │
│       └── 多维关系模型      (信任、竞争、亲密、协同等维度)    │
│                                                              │
│  @agents-uni/unis          模板层 — 预置组织模板               │
│       └── 竞技场/企业/军事/扁平... (universe.yaml 模板库)     │
│                                                              │
│  OpenClaw                  运行层 — Agent 运行时环境           │
│       └── 文件协议          (SOUL.md / TASK.md / SUBMISSION.md)│
└─────────────────────────────────────────────────────────────┘

包之间的关系

| 包 | 角色 | zhenhuan 如何使用它 | |---|---|---| | @agents-uni/core | 协议基座 | Universe 解析、Agent 注册、TaskDispatcher、Dashboard、CLI (uni) | | @agents-uni/chat | 群聊引擎 | 共享 universe.yaml,嫔妃在聊天室自由对话,关系实时演化 | | @agents-uni/rel | 关系建模 | 多维关系(信任/竞争/亲密/协同),被 core 和 chat 内部依赖 | | @agents-uni/unis | 组织模板 | uni init --uni zhenhuan 从模板库拉取后宫配置 | | OpenClaw | Agent 运行时 | 文件协议:SOUL.md(身份)→ TASK.md(任务)→ SUBMISSION.md(提交) |

从零到一的完整流程

# 1. 初始化项目 — 从 @agents-uni/unis 模板生成 universe.yaml
npx uni init my-palace --uni zhenhuan

# 2. 部署 — core 的 CLI 将 universe.yaml 编译为 SOUL.md 并写入 OpenClaw
npx uni deploy

# 3. 启动赛马 — zhenhuan 的竞争引擎开始调度
zhenhuan serve                    # 端口 8089

# 4. 启动群聊(可选)— chat 读取同一份 universe.yaml
npx agents-chat serve             # 端口 3000

# 5. 验证 / 检查 / 可视化 — core 的 CLI 工具
npx uni validate                  # 校验 universe.yaml
npx uni inspect                   # 查看 Agent 详情
npx uni visualize                 # 可视化关系图谱

如果你想基于 core 创建自己的 Uni

zhenhuan-uni 本身就是最好的参考实现。核心步骤:

  1. 定义 universe.yaml — 参考 core 的规范文档 或直接参考 zhenhuan 的 universe.yaml
  2. 实现竞争/协作逻辑 — 使用 core 提供的 TaskDispatcherPerformanceTrackerEventBus 等原语
  3. 部署到 OpenClawuni deploy 自动生成 SOUL.md 并注册 Agent
  4. 扩展 Dashboard — 通过 DashboardExtension 接口注入自定义面板

详细的架构设计和决策过程见 DESIGN.md

License

MIT