mirror of
https://github.com/langgenius/dify.git
synced 2026-10-04 13:47:55 +08:00
Add assess_capability_gap: one plain sentence naming a plan step nothing installed can perform, or "" when the plan is covered. Grounded only in installed resources -- there is no marketplace lookup, so it names a missing CAPABILITY, never a product to install. A missing_config tool (installed but unauthorized, from the prior task's real readiness) doesn't count as covering a step either, since the model is shown each option's readiness alongside its label and kind. Wired through the full agent seam: the DifyBuilderAgent protocol, the real LlmBuilderAgent (delegates to build.assess_capability_gap), and the PlaceholderAgent test double (returns ""). handlers_build.py calls it after discover_resources and, when non-empty, appends a NoticeItem beside the existing empty-resources notice -- the two are independent and can both fire. Like its sibling cognition functions, it degrades to "" (never raises) on no model, an LLM error, or an unparseable reply: a gap that can't be assessed isn't a gap worth inventing. The sentence is LLM-generated prose already in the user's language (json_language_instruction), not a catalogue entry, so no static string was added. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>