langgenius / langgenius/dify

Feature Request: Native Multi-Agent Dispatcher (Lobster Pattern)

Open
#37,259 5 comments 2 reactions 0 assignees View on GitHub
project#dify
Dominant language
TypeScript
Stars
156k
Forks
24.6k
Avg merge
22h 9m
Merged PRs (30d)
610

Description

### Self Checks

- [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542).
- [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones.
- [x] I confirm that I am using English to submit this report, otherwise it will be closed.
- [x] Please do not modify this template :) and fill in all the required fields.

### 1. Is this request related to a challenge you're experiencing? Tell me about your story.

Current Pain Point:
Currently, managing multiple skills (e.g., querying different internal APIs like ticketing systems, BI tools) requires manually building a complex router using prompt engineering and state machines (Conversation Variables).
As the number of skills grows (beyond 5-10), the dispatcher logic becomes extremely fragile and hard to maintain.

Inspired by "Lobster" Pattern:
We need a "Lobster" style capability where the AI can learn and automatically select the correct skill from a registry without manual routing configuration.

Proposed Feature:
Request for a native **Skill Registry & Auto-Dispatcher** mechanism.
1. **Skill Registry**: A centralized place to define skills with structured JSON schemas (inputs/outputs).
2. **Auto-Matching**: The AI runtime should automatically classify user queries and match them to the correct skill in the registry.
3. **Auto Slot-Filling**: If required parameters are missing, the system should automatically manage the state and generate natural language follow-ups to collect information, instead of just stopping or giving errors.
4. **Seamless Execution**: Once parameters are collected, execute the skill and return the result as part of the main conversation flow.

### 2. Additional context or comments

**Use Case Example:**
A user wants to analyze a network fault.
- User Input: "Check the status of ticket TICKET-1024"
- System Action: Matches "Check Ticket" skill -> Discovers missing "Department ID" -> Automatically asks "Which department does this belong to?" -> Runs analysis -> Returns result.

**Reference:**
This is often referred to in the community as the "Lobster" architecture (Single entry point, multiple backend skills, automatic chaining).

### 3. Can you help us with this feature?

- [ ] I am interested in contributing to this feature.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.