Universal backend copilot for Dify: register your REST API catalog and let the agent query tickets, orders, users or any business data via natural language. Supports BladeX, RuoYi, custom Spring Boot backends. Read-only guardrails by default.
A set of Dify plugins that lets an Agent query your backend business data in natural language: paste one API catalog YAML — no code needed.
Works with BladeX, RuoYi, custom Spring Boot, or any REST backend. Read-only guardrails by default — write APIs require double opt-in.
Chinese docs: README.zh-CN.md
Source repository: https://github.com/zhou0928/backend-copilot
Both ship as files, installable offline into self-hosted Dify (≥ 1.9.0).
Dify → Plugins → Install → Local file, install both:
Or via GitHub: install from , pick the release.
Start from , or pick a ready-made example. Full annotated example:
Field reference:
Dify → Plugins → Backend Copilot → Authorize:
In a workflow (Chatflow / Agent node) choose the Backend Copilot strategy:
Then just ask questions in natural language.
Q: The plugin container can't reach my backend?
Plugins run inside a container where is the container itself. Use to reach host services (works on Docker/OrbStack).
Q: Install fails with ?
The field in must match the publisher ID.
Q: The Agent never calls any API?
Check each API's — the Agent relies entirely on it to match user questions. Also verify the catalog YAML matches the one in credentials.
Q: Write APIs are blocked?
Three checks: ① the API is marked in the catalog; ② credential form "Allow write" is ; ③ the strategy's "Read-only mode" is off (or the user explicitly asked for a write).
Q: HTTP 200 but the Agent reports an error?
That's the business envelope failure being correctly detected. Verify / match your backend's convention.
Q: Login-for-token fails?
Gateways like BladeX require specific headers on the login request (Basic, Tenant-Id) — check . Params like / belong in (sent as URL query, not body).
Note: does not exclude , which busts the 50MB limit — use the bundled .
See LICENSE in the repository; privacy statement in PRIVACY.md.
Some outbound calls build their address at runtime, so the list may be incomplete.
Last checked 09/28/2026 01:45 AM · version 0.0.3