firecrawl's extract tool cannot be used as a tool in a dify agent node plugin #91

Open
opened 2026-02-22 17:18:17 -05:00 by yindo · 1 comment
Owner

Originally created by @Gamatel on GitHub (Jun 12, 2025).

Hello,

When using the Firecrawl plugin via an agent in ReAct mode on Dify, it appears that only the url parameter is passed to the Firecrawl plugin when calling the API. This results in an error from the Firecrawl API, which expects a correctly formatted payload (for example, when the extract or json format is specified, the corresponding options must also be provided).
Example Workflow

Image
Where the Problem Occurs

Based on my observations, the issue seems to occur here:

Image.
Consequence

As a result, the agent calls the Firecrawl extract endpoint with an incomplete payload, even if the correct format is specified in the prompt. Consequently, the Firecrawl API returns an error, preventing the retrieval of the expected data.
Example of the Problematic Call

Image

{
"action_input": {
"url": "https://www.trustpilot.com/review/miumlab.com"
},
"action_name": "scrape",
"observation": "tool response: {"details": [{"code": "custom", "message": "When 'extract' or 'json' format is specified, corresponding options must be provided, and vice versa", "path": []}], "error": "Bad Request", "success": false}.",
"thought": "I found the Trustpilot URL for MiumLab, now I will scrape it to get the required details. Then, I will do the same for Avis Vérifiés and the official website."
}

Summary

Expected behavior: The ability to send a full payload to Firecrawl, as specified in the prompt, including all parameters required by the API.

Actual behavior: Only the URL is sent, which leads to an error from Firecrawl.

Thank you in advance for your help on this!
Please let me know if you need any additional information or further examples.

Plugin Link: https://marketplace.dify.ai/plugins/langgenius/firecrawl

Originally created by @Gamatel on GitHub (Jun 12, 2025). Hello, When using the Firecrawl plugin via an agent in ReAct mode on Dify, it appears that only the url parameter is passed to the Firecrawl plugin when calling the API. This results in an error from the Firecrawl API, which expects a correctly formatted payload (for example, when the extract or json format is specified, the corresponding options must also be provided). Example Workflow ![Image](https://github.com/user-attachments/assets/ffc44b1b-ba0a-406a-9228-3b6c7413e45d) Where the Problem Occurs Based on my observations, the issue seems to occur here: ![Image](https://github.com/user-attachments/assets/5b39e9a9-d909-4a6a-87fd-9bc99f085f8a). Consequence As a result, the agent calls the Firecrawl extract endpoint with an incomplete payload, even if the correct format is specified in the prompt. Consequently, the Firecrawl API returns an error, preventing the retrieval of the expected data. Example of the Problematic Call ![Image](https://github.com/user-attachments/assets/40f4542f-8f33-43d7-a763-7f8d73482d1f) { "action_input": { "url": "https://www.trustpilot.com/review/miumlab.com" }, "action_name": "scrape", "observation": "tool response: {\"details\": [{\"code\": \"custom\", \"message\": \"When 'extract' or 'json' format is specified, corresponding options must be provided, and vice versa\", \"path\": []}], \"error\": \"Bad Request\", \"success\": false}.", "thought": "I found the Trustpilot URL for MiumLab, now I will scrape it to get the required details. Then, I will do the same for Avis Vérifiés and the official website." } Summary Expected behavior: The ability to send a full payload to Firecrawl, as specified in the prompt, including all parameters required by the API. Actual behavior: Only the URL is sent, which leads to an error from Firecrawl. Thank you in advance for your help on this! Please let me know if you need any additional information or further examples. Plugin Link: https://marketplace.dify.ai/plugins/langgenius/firecrawl
yindo added the bug label 2026-02-22 17:18:17 -05:00
Author
Owner

@ftonato commented on GitHub (Jul 23, 2025):

Hello @Gamatel,

Would it be possible for you to help us by creating a simple test flow (on your account)? Specifically, we'd like you to pass a single URL and call the scrape method, then share the results with us. We suspect the issue may be related to the agent not correctly identifying the intended action, rather than a problem with the core plugin functionality.

I'll continue investigating on my end, but your test results would be invaluable for our debugging process. Also, feel free to share the workflow, the DSL file or the URL.

Thank you very much for your time and cooperation

@ftonato commented on GitHub (Jul 23, 2025): Hello @Gamatel, Would it be possible for you to help us by creating a simple test flow (on your account)? Specifically, we'd like you to pass a single URL and call the scrape method, then share the results with us. We suspect the issue may be related to the agent not correctly identifying the intended action, rather than a problem with the core plugin functionality. I'll continue investigating on my end, but your test results would be invaluable for our debugging process. Also, feel free to share the workflow, the DSL file or the URL. Thank you very much for your time and cooperation
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-plugins#91