hermes - 💡(How to fix) Fix [Feature]: Feishu: Support per-group Profile routing with shared Skills [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#13633Fetched 2026-04-22 08:05:09
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
labeled ×3

Code Example

feishu:
  appId: cli_xxx
  appSecret: xxx
  channel_profiles:
    oc_group_a:
      profile: laotao        # routes to profile "laotao"
    oc_group_b:
      profile: analyst        # routes to profile "analyst"
    oc_group_c:
      profile: assistant     # routes to profile "assistant"
  # Skills shared across all profiles
  skills:
    external_dirs:
      - /shared/skills

  

### Proposed Solution

How it would work

1. Gateway receives a message from Feishu group oc_group_a
2. Looks up channel_profiles[oc_group_a].profile → resolves to "laotao"
3. Spawns or routes to the Hermes agent running under profile "laotao"
4. Profile laotao has its own:
- ~/.hermes/profiles/laotao/memory/
- ~/.hermes/profiles/laotao/sessions/
- ~/.hermes/profiles/laotao/config.yaml (personality, toolsets, etc.)
5. Skills in /shared/skills are loaded via skills.external_dirs

Alternative: Shared memory + Independent personalities
If full profile isolation is too heavy, an intermediate solution would be:

- Keep a shared memory backend across groups
- Allow per-group ephemeral prompts (already supported via channel_prompts)
- Add per-group personality via display.personality in channel_profiles[chat_id]

Prior Art

- Discord: channel_prompts already exists for ephemeral prompts
- Discord/Telegram: auto_skill binding per channel exists
- The missing piece is profile-level routing

### Alternatives Considered

_No response_

### Feature Type

Gateway / messaging improvement

### Scope

Small (single file, < 50 lines)

### Contribution

- [ ] I'd like to implement this myself and submit a PR

### Debug Report (optional)
RAW_BUFFERClick to expand / collapse

Problem or Use Case

Feature Request: Per-Group Profile Routing for Feishu (Same App ID)

What problem does this solve?

Today, a single Feishu app (one appId + appSecret) can serve multiple groups. Currently, channel_prompts allows per-group ephemeral system prompts, but there is no way to route each group to a dedicated Hermes Profile with:

  • Independent memory
  • Independent session history
  • Independent personality / display settings
  • While sharing a common Skills library

This would enable a powerful multi-tenant pattern: one Feishu app, multiple groups, each with its own persona + memory, all sharing the same skill set.

Proposed Solution

Introduce a channel_profiles configuration option in the Feishu (and generically applicable) gateway config, alongside channel_prompts:

feishu:
  appId: cli_xxx
  appSecret: xxx
  channel_profiles:
    oc_group_a:
      profile: laotao        # routes to profile "laotao"
    oc_group_b:
      profile: analyst        # routes to profile "analyst"
    oc_group_c:
      profile: assistant     # routes to profile "assistant"
  # Skills shared across all profiles
  skills:
    external_dirs:
      - /shared/skills

  

### Proposed Solution

How it would work

1. Gateway receives a message from Feishu group oc_group_a
2. Looks up channel_profiles[oc_group_a].profile → resolves to "laotao"
3. Spawns or routes to the Hermes agent running under profile "laotao"
4. Profile laotao has its own:
- ~/.hermes/profiles/laotao/memory/
- ~/.hermes/profiles/laotao/sessions/
- ~/.hermes/profiles/laotao/config.yaml (personality, toolsets, etc.)
5. Skills in /shared/skills are loaded via skills.external_dirs

Alternative: Shared memory + Independent personalities
If full profile isolation is too heavy, an intermediate solution would be:

- Keep a shared memory backend across groups
- Allow per-group ephemeral prompts (already supported via channel_prompts)
- Add per-group personality via display.personality in channel_profiles[chat_id]

Prior Art

- Discord: channel_prompts already exists for ephemeral prompts
- Discord/Telegram: auto_skill binding per channel exists
- The missing piece is profile-level routing

### Alternatives Considered

_No response_

### Feature Type

Gateway / messaging improvement

### Scope

Small (single file, < 50 lines)

### Contribution

- [ ] I'd like to implement this myself and submit a PR

### Debug Report (optional)

```shell

extent analysis

TL;DR

To implement per-group profile routing for Feishu, introduce a channel_profiles configuration option in the gateway config to route each group to a dedicated Hermes Profile.

Guidance

  • Add a channel_profiles section to the Feishu gateway configuration to define profile mappings for each group.
  • Update the gateway to look up the profile for an incoming message based on the channel_profiles configuration and route it to the corresponding Hermes agent.
  • Ensure that each profile has its own memory, session history, and personality settings, while sharing a common Skills library.
  • Consider an intermediate solution with shared memory and independent personalities if full profile isolation is not feasible.

Example

feishu:
  appId: cli_xxx
  appSecret: xxx
  channel_profiles:
    oc_group_a:
      profile: laotao
    oc_group_b:
      profile: analyst
  skills:
    external_dirs:
      - /shared/skills

Notes

The proposed solution requires updates to the gateway configuration and routing logic, and may involve changes to the Hermes agent and Skills library.

Recommendation

Apply the proposed workaround by introducing the channel_profiles configuration option and updating the gateway to support per-group profile routing, as it provides a flexible and scalable solution for multi-tenant scenarios.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix [Feature]: Feishu: Support per-group Profile routing with shared Skills [1 participants]