查看: 3|回复: 0

Hermes Agent 多用户 / Multi-tenant 应该怎么设计?一个实例服务多个用户可行吗?

[复制链接]

1

主题

1

回帖

5

积分

新手上路

积分
5
发表于 6 天前 | 显示全部楼层 |阅读模式
最近在研究 Hermes Agent ,准备把它作为一个多用户应用的 Agent runtime ,想请教一下熟悉 Hermes / MCP / Agent 架构的朋友。

我的需求比较简单:

多个用户使用同一套 AI 能力,例如:

相同的 system prompt
相同的模型
公共 Skills
公共 MCP
Web Search
公共知识库

但是每个用户必须拥有独立的:

conversation/session
long-term memory
user profile/preferences
reminders / cron jobs
private data
MCP credentials / permissions

例如:

             Hermes
                │
        ┌───────┼───────┐
        ▼       ▼       ▼
      User A  User B  User C

我目前主要纠结两个方案。

方案一:多个用户共享一个 Hermes instance

通过:

user_id
session_key

来区分用户。

例如:

user:10001
user:10002
user:10003

Hermes 本身负责:

reasoning
skills
MCP
tool calling

用户相关的数据则由应用层隔离。

这种方式看起来最合理,也方便以后横向扩展。

但我比较担心 Hermes 内部的一些状态,例如:

USER.md
memory
session
cron
MCP context

是否完全适合 multi-tenant 环境。

例如 User A 告诉 Agent:

我叫张三,我住上海。

有没有可能由于 memory / context 设计问题,后面 User B 的 context 中出现 User A 的信息?

方案二:每个用户一个 Hermes Profile
User A → Hermes Profile A
User B → Hermes Profile B
User C → Hermes Profile C

隔离肯定更简单。

但是如果未来有:

10,000 users
100,000 users

显然不太希望维护 10 万个 Hermes profiles 。

而且实际上大部分用户使用的是完全相同的 Agent ,只是 personal memory / credentials 不一样。

我目前比较倾向的结构

把 Hermes 当成一个 stateless / semi-stateless Agent runtime 。

例如:

               Hermes Worker Pool
              /        |        \
        Hermes 1   Hermes 2   Hermes 3
              \        |        /
                   Backend
                      │
        ┌─────────────┼─────────────┐
        ▼             ▼             ▼
      User DB      Memory DB     Job/Cron DB

每次请求:

request
   ↓
identify user_id
   ↓
load user context/memory
   ↓
Hermes executes
   ↓
save updated state

也就是说:

Hermes = Agent execution/runtime

Application = identity + isolation + persistence

而不是:

1 user = 1 Hermes

另外还有一个我比较关心的问题:private MCP 。

公共 MCP 比较简单:

Search MCP
Knowledge MCP
Weather MCP

大家共享即可。

但是如果不同用户连接自己的服务:

User A → Obsidian
User B → Google Calendar
User C → Notion

这种情况下大家一般怎么处理?

例如:

根据 user_id 动态加载对应 credentials ?
MCP Server 自己做 multi-tenant ?
每个用户启动一个 MCP Server ?
在 Hermes 外面增加一层 MCP gateway ?
Hermes 有没有推荐的设计方式?

想请教一下:

Hermes 一个 instance 服务多个用户是否可靠?
Hermes 的 memory/session 是否真正支持 user-level isolation ?
USER.md 这种全局状态在 multi-user 环境应该怎么处理?
长期 memory 最好放 Hermes ,还是放外部 DB ?
user-specific MCP credentials 大家会怎么隔离?
大规模部署时,是不是应该采用 Hermes worker pool ,而不是一个用户一个 profile ?
有没有人已经用 Hermes 做过类似的 multi-tenant 架构?

目前还在做 POC ,主要想先把架构方向确定下来,避免后面因为 memory / permissions / MCP isolation 重新设计。

如果有踩坑经验,非常欢迎分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
返回顶部