Feature Request: Native Multi-Agent Dispatcher (Lobster Pattern)
- 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
Assessment
This issue has not been assessed yet.