Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

market_generate_seo_blog.json 62KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915
  1. {
  2. "id": 12,
  3. "title": "Generate SEO Blog",
  4. "description": "This workflow automatically generates a complete SEO-optimized blog article based on a simple user input. You don’t need any writing experience. Just provide a topic or short request — the system will handle the rest.",
  5. "canvas_type": "Marketing",
  6. "dsl": {
  7. "components": {
  8. "Agent:BetterSitesSend": {
  9. "downstream": [
  10. "Agent:EagerNailsRemain"
  11. ],
  12. "obj": {
  13. "component_name": "Agent",
  14. "params": {
  15. "delay_after_error": 1,
  16. "description": "",
  17. "exception_comment": "",
  18. "exception_default_value": "",
  19. "exception_goto": [],
  20. "exception_method": null,
  21. "frequencyPenaltyEnabled": false,
  22. "frequency_penalty": 0.3,
  23. "llm_id": "deepseek-chat@DeepSeek",
  24. "maxTokensEnabled": false,
  25. "max_retries": 3,
  26. "max_rounds": 3,
  27. "max_tokens": 4096,
  28. "mcp": [],
  29. "message_history_window_size": 12,
  30. "outputs": {
  31. "content": {
  32. "type": "string",
  33. "value": ""
  34. }
  35. },
  36. "parameter": "Balance",
  37. "presencePenaltyEnabled": false,
  38. "presence_penalty": 0.2,
  39. "prompts": [
  40. {
  41. "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}",
  42. "role": "user"
  43. }
  44. ],
  45. "sys_prompt": "# Role\n\nYou are the **Outline_Agent**, responsible for generating a clear and SEO-optimized blog outline based on the user's parsed writing intent and keyword strategy.\n\n# Tool Access:\n\n- You have access to a search tool called `Tavily Search`.\n\n- If you are unsure how to structure a section, you may call this tool to search for related blog outlines or content from Google.\n\n- Do not overuse it. Your job is to extract **structure**, not to write paragraphs.\n\n\n# Goals\n\n1. Create a well-structured outline with appropriate H2 and H3 headings.\n\n2. Ensure logical flow from introduction to conclusion.\n\n3. Assign 1\u20132 suggested long-tail keywords to each major section for SEO alignment.\n\n4. Make the structure suitable for downstream paragraph writing.\n\n\n\n\n#Note\n\n- Use concise, scannable section titles.\n\n- Do not write full paragraphs.\n\n- Prioritize clarity, logical progression, and SEO alignment.\n\n\n\n- If the blog type is \u201cTutorial\u201d or \u201cHow-to\u201d, include step-based sections.\n\n\n# Input\n\nYou will receive:\n\n- Writing Type (e.g., Tutorial, Informative Guide)\n\n- Target Audience\n\n- User Intent Summary\n\n- 3\u20135 long-tail keywords\n\n\nUse this information to design a structure that both informs readers and maximizes search engine visibility.\n\n# Output Format\n\n```markdown\n\n## Blog Title (suggested)\n\n[Give a short, SEO-friendly title suggestion]\n\n## Outline\n\n### Introduction\n\n- Purpose of the article\n\n- Brief context\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 1]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 2]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 3]\n\n- [Optional H3 Subsection Title A]\n\n - [Explanation of sub-point]\n\n- [Optional H3 Subsection Title B]\n\n - [Explanation of sub-point]\n\n- **Suggested keywords**: [keyword1]\n\n### Conclusion\n\n- Recap key takeaways\n\n- Optional CTA (Call to Action)\n\n- **Suggested keywords**: [keyword3]\n\n",
  46. "temperature": 0.5,
  47. "temperatureEnabled": true,
  48. "tools": [
  49. {
  50. "component_name": "TavilySearch",
  51. "name": "TavilySearch",
  52. "params": {
  53. "api_key": "",
  54. "days": 7,
  55. "exclude_domains": [],
  56. "include_answer": false,
  57. "include_domains": [],
  58. "include_image_descriptions": false,
  59. "include_images": false,
  60. "include_raw_content": true,
  61. "max_results": 5,
  62. "outputs": {
  63. "formalized_content": {
  64. "type": "string",
  65. "value": ""
  66. },
  67. "json": {
  68. "type": "Array<Object>",
  69. "value": []
  70. }
  71. },
  72. "query": "sys.query",
  73. "search_depth": "basic",
  74. "topic": "general"
  75. }
  76. }
  77. ],
  78. "topPEnabled": false,
  79. "top_p": 0.85,
  80. "user_prompt": "",
  81. "visual_files_var": ""
  82. }
  83. },
  84. "upstream": [
  85. "Agent:ClearRabbitsScream"
  86. ]
  87. },
  88. "Agent:ClearRabbitsScream": {
  89. "downstream": [
  90. "Agent:BetterSitesSend"
  91. ],
  92. "obj": {
  93. "component_name": "Agent",
  94. "params": {
  95. "delay_after_error": 1,
  96. "description": "",
  97. "exception_comment": "",
  98. "exception_default_value": "",
  99. "exception_goto": [],
  100. "exception_method": null,
  101. "frequencyPenaltyEnabled": false,
  102. "frequency_penalty": 0.5,
  103. "llm_id": "deepseek-chat@DeepSeek",
  104. "maxTokensEnabled": false,
  105. "max_retries": 3,
  106. "max_rounds": 1,
  107. "max_tokens": 4096,
  108. "mcp": [],
  109. "message_history_window_size": 12,
  110. "outputs": {
  111. "content": {
  112. "type": "string",
  113. "value": ""
  114. }
  115. },
  116. "parameter": "Precise",
  117. "presencePenaltyEnabled": false,
  118. "presence_penalty": 0.5,
  119. "prompts": [
  120. {
  121. "content": "The user query is {sys.query}",
  122. "role": "user"
  123. }
  124. ],
  125. "sys_prompt": "# Role\n\nYou are the **Parse_And_Keyword_Agent**, responsible for interpreting a user's blog writing request and generating a structured writing intent summary and keyword strategy for SEO-optimized content generation.\n\n# Goals\n\n1. Extract and infer the user's true writing intent, even if the input is informal or vague.\n\n2. Identify the writing type, target audience, and implied goal.\n\n3. Suggest 3\u20135 long-tail keywords based on the input and context.\n\n4. Output all data in a Markdown format for downstream agents.\n\n# Operating Guidelines\n\n\n- If the user's input lacks clarity, make reasonable and **conservative** assumptions based on SEO best practices.\n\n- Always choose one clear \"Writing Type\" from the list below.\n\n- Your job is not to write the blog \u2014 only to structure the brief.\n\n# Output Format\n\n```markdown\n## Writing Type\n\n[Choose one: Tutorial / Informative Guide / Marketing Content / Case Study / Opinion Piece / How-to / Comparison Article]\n\n## Target Audience\n\n[Try to be specific based on clues in the input: e.g., marketing managers, junior developers, SEO beginners]\n\n## User Intent Summary\n\n[A 1\u20132 sentence summary of what the user wants to achieve with the blog post]\n\n## Suggested Long-tail Keywords\n\n- keyword 1\n\n- keyword 2\n\n- keyword 3\n\n- keyword 4 (optional)\n\n- keyword 5 (optional)\n\n\n\n\n## Input Examples (and how to handle them)\n\nInput: \"I want to write about RAGFlow.\"\n\u2192 Output: Informative Guide, Audience: AI developers, Intent: explain what RAGFlow is and its use cases\n\nInput: \"Need a blog to promote our prompt design tool.\"\n\u2192 Output: Marketing Content, Audience: product managers or tool adopters, Intent: raise awareness and interest in the product\n\n\n\nInput: \"How to get more Google traffic using AI\"\n\u2192 Output: How-to, Audience: SEO marketers, Intent: guide readers on applying AI for SEO growth",
  126. "temperature": 0.2,
  127. "temperatureEnabled": true,
  128. "tools": [],
  129. "topPEnabled": false,
  130. "top_p": 0.75,
  131. "user_prompt": "",
  132. "visual_files_var": ""
  133. }
  134. },
  135. "upstream": [
  136. "begin"
  137. ]
  138. },
  139. "Agent:EagerNailsRemain": {
  140. "downstream": [
  141. "Agent:LovelyHeadsOwn"
  142. ],
  143. "obj": {
  144. "component_name": "Agent",
  145. "params": {
  146. "delay_after_error": 1,
  147. "description": "",
  148. "exception_comment": "",
  149. "exception_default_value": "",
  150. "exception_goto": [],
  151. "exception_method": null,
  152. "frequencyPenaltyEnabled": false,
  153. "frequency_penalty": 0.5,
  154. "llm_id": "deepseek-chat@DeepSeek",
  155. "maxTokensEnabled": false,
  156. "max_retries": 3,
  157. "max_rounds": 5,
  158. "max_tokens": 4096,
  159. "mcp": [],
  160. "message_history_window_size": 12,
  161. "outputs": {
  162. "content": {
  163. "type": "string",
  164. "value": ""
  165. }
  166. },
  167. "parameter": "Precise",
  168. "presencePenaltyEnabled": false,
  169. "presence_penalty": 0.5,
  170. "prompts": [
  171. {
  172. "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\n\n\nThe Outline agent output is {Agent:BetterSitesSend@content}",
  173. "role": "user"
  174. }
  175. ],
  176. "sys_prompt": "# Role\n\nYou are the **Body_Agent**, responsible for generating the full content of each section of an SEO-optimized blog based on the provided outline and keyword strategy.\n\n# Tool Access:\n\nYou can use the `Tavily Search` tool to retrieve relevant content, statistics, or examples to support each section you're writing.\n\nUse it **only** when the provided outline lacks enough information, or if the section requires factual grounding.\n\nAlways cite the original link or indicate source where possible.\n\n\n# Goals\n\n1. Write each section (based on H2/H3 structure) as a complete and natural blog paragraph.\n\n2. Integrate the suggested long-tail keywords naturally into each section.\n\n3. When appropriate, use the `Tavily Search` tool to enrich your writing with relevant facts, examples, or quotes.\n\n4. Ensure each section is clear, engaging, and informative, suitable for both human readers and search engines.\n\n\n# Style Guidelines\n\n- Write in a tone appropriate to the audience. Be explanatory, not promotional, unless it's a marketing blog.\n\n- Avoid generic filler content. Prioritize clarity, structure, and value.\n\n- Ensure SEO keywords are embedded seamlessly, not forcefully.\n\n\n\n- Maintain writing rhythm. Vary sentence lengths. Use transitions between ideas.\n\n\n# Input\n\n\nYou will receive:\n\n- Blog title\n\n- Structured outline (including section titles, keywords, and descriptions)\n\n- Target audience\n\n- Blog type and user intent\n\nYou must **follow the outline strictly**. Write content **section-by-section**, based on the structure.\n\n\n# Output Format\n\n```markdown\n\n## H2: [Section Title]\n\n[Your generated content for this section \u2014 500-600 words, using keywords naturally.]\n\n",
  177. "temperature": 0.2,
  178. "temperatureEnabled": true,
  179. "tools": [
  180. {
  181. "component_name": "TavilySearch",
  182. "name": "TavilySearch",
  183. "params": {
  184. "api_key": "",
  185. "days": 7,
  186. "exclude_domains": [],
  187. "include_answer": false,
  188. "include_domains": [],
  189. "include_image_descriptions": false,
  190. "include_images": false,
  191. "include_raw_content": true,
  192. "max_results": 5,
  193. "outputs": {
  194. "formalized_content": {
  195. "type": "string",
  196. "value": ""
  197. },
  198. "json": {
  199. "type": "Array<Object>",
  200. "value": []
  201. }
  202. },
  203. "query": "sys.query",
  204. "search_depth": "basic",
  205. "topic": "general"
  206. }
  207. }
  208. ],
  209. "topPEnabled": false,
  210. "top_p": 0.75,
  211. "user_prompt": "",
  212. "visual_files_var": ""
  213. }
  214. },
  215. "upstream": [
  216. "Agent:BetterSitesSend"
  217. ]
  218. },
  219. "Agent:LovelyHeadsOwn": {
  220. "downstream": [
  221. "Message:LegalBeansBet"
  222. ],
  223. "obj": {
  224. "component_name": "Agent",
  225. "params": {
  226. "delay_after_error": 1,
  227. "description": "",
  228. "exception_comment": "",
  229. "exception_default_value": "",
  230. "exception_goto": [],
  231. "exception_method": null,
  232. "frequencyPenaltyEnabled": false,
  233. "frequency_penalty": 0.5,
  234. "llm_id": "deepseek-chat@DeepSeek",
  235. "maxTokensEnabled": false,
  236. "max_retries": 3,
  237. "max_rounds": 5,
  238. "max_tokens": 4096,
  239. "mcp": [],
  240. "message_history_window_size": 12,
  241. "outputs": {
  242. "content": {
  243. "type": "string",
  244. "value": ""
  245. }
  246. },
  247. "parameter": "Precise",
  248. "presencePenaltyEnabled": false,
  249. "presence_penalty": 0.5,
  250. "prompts": [
  251. {
  252. "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\nThe Outline agent output is {Agent:BetterSitesSend@content}\n\nThe Body agent output is {Agent:EagerNailsRemain@content}",
  253. "role": "user"
  254. }
  255. ],
  256. "sys_prompt": "# Role\n\nYou are the **Editor_Agent**, responsible for finalizing the blog post for both human readability and SEO effectiveness.\n\n# Goals\n\n1. Polish the entire blog content for clarity, coherence, and style.\n\n2. Improve transitions between sections, ensure logical flow.\n\n3. Verify that keywords are used appropriately and effectively.\n\n4. Conduct a lightweight SEO audit \u2014 checking keyword density, structure (H1/H2/H3), and overall searchability.\n\n\n\n# Style Guidelines\n\n- Be precise. Avoid bloated or vague language.\n\n- Maintain an informative and engaging tone, suitable to the target audience.\n\n- Do not remove keywords unless absolutely necessary for clarity.\n\n- Ensure paragraph flow and section continuity.\n\n\n# Input\n\nYou will receive:\n\n- Full blog content, written section-by-section\n\n- Original outline with suggested keywords\n\n- Target audience and writing type\n\n# Output Format\n\n```markdown\n\n[The revised, fully polished blog post content goes here.]\n\n",
  257. "temperature": 0.2,
  258. "temperatureEnabled": true,
  259. "tools": [],
  260. "topPEnabled": false,
  261. "top_p": 0.75,
  262. "user_prompt": "",
  263. "visual_files_var": ""
  264. }
  265. },
  266. "upstream": [
  267. "Agent:EagerNailsRemain"
  268. ]
  269. },
  270. "Message:LegalBeansBet": {
  271. "downstream": [],
  272. "obj": {
  273. "component_name": "Message",
  274. "params": {
  275. "content": [
  276. "{Agent:LovelyHeadsOwn@content}"
  277. ]
  278. }
  279. },
  280. "upstream": [
  281. "Agent:LovelyHeadsOwn"
  282. ]
  283. },
  284. "begin": {
  285. "downstream": [
  286. "Agent:ClearRabbitsScream"
  287. ],
  288. "obj": {
  289. "component_name": "Begin",
  290. "params": {
  291. "enablePrologue": true,
  292. "inputs": {},
  293. "mode": "conversational",
  294. "prologue": "Hi! I'm your SEO blog assistant.\n\nTo get started, please tell me:\n1. What topic you want the blog to cover\n2. Who is the target audience\n3. What you hope to achieve with this blog (e.g., SEO traffic, teaching beginners, promoting a product)\n"
  295. }
  296. },
  297. "upstream": []
  298. }
  299. },
  300. "globals": {
  301. "sys.conversation_turns": 0,
  302. "sys.files": [],
  303. "sys.query": "",
  304. "sys.user_id": ""
  305. },
  306. "graph": {
  307. "edges": [
  308. {
  309. "data": {
  310. "isHovered": false
  311. },
  312. "id": "xy-edge__beginstart-Agent:ClearRabbitsScreamend",
  313. "source": "begin",
  314. "sourceHandle": "start",
  315. "target": "Agent:ClearRabbitsScream",
  316. "targetHandle": "end"
  317. },
  318. {
  319. "data": {
  320. "isHovered": false
  321. },
  322. "id": "xy-edge__Agent:ClearRabbitsScreamstart-Agent:BetterSitesSendend",
  323. "source": "Agent:ClearRabbitsScream",
  324. "sourceHandle": "start",
  325. "target": "Agent:BetterSitesSend",
  326. "targetHandle": "end"
  327. },
  328. {
  329. "data": {
  330. "isHovered": false
  331. },
  332. "id": "xy-edge__Agent:BetterSitesSendtool-Tool:SharpPensBurnend",
  333. "source": "Agent:BetterSitesSend",
  334. "sourceHandle": "tool",
  335. "target": "Tool:SharpPensBurn",
  336. "targetHandle": "end"
  337. },
  338. {
  339. "data": {
  340. "isHovered": false
  341. },
  342. "id": "xy-edge__Agent:BetterSitesSendstart-Agent:EagerNailsRemainend",
  343. "source": "Agent:BetterSitesSend",
  344. "sourceHandle": "start",
  345. "target": "Agent:EagerNailsRemain",
  346. "targetHandle": "end"
  347. },
  348. {
  349. "id": "xy-edge__Agent:EagerNailsRemaintool-Tool:WickedDeerHealend",
  350. "source": "Agent:EagerNailsRemain",
  351. "sourceHandle": "tool",
  352. "target": "Tool:WickedDeerHeal",
  353. "targetHandle": "end"
  354. },
  355. {
  356. "data": {
  357. "isHovered": false
  358. },
  359. "id": "xy-edge__Agent:EagerNailsRemainstart-Agent:LovelyHeadsOwnend",
  360. "source": "Agent:EagerNailsRemain",
  361. "sourceHandle": "start",
  362. "target": "Agent:LovelyHeadsOwn",
  363. "targetHandle": "end"
  364. },
  365. {
  366. "data": {
  367. "isHovered": false
  368. },
  369. "id": "xy-edge__Agent:LovelyHeadsOwnstart-Message:LegalBeansBetend",
  370. "source": "Agent:LovelyHeadsOwn",
  371. "sourceHandle": "start",
  372. "target": "Message:LegalBeansBet",
  373. "targetHandle": "end"
  374. }
  375. ],
  376. "nodes": [
  377. {
  378. "data": {
  379. "form": {
  380. "enablePrologue": true,
  381. "inputs": {},
  382. "mode": "conversational",
  383. "prologue": "Hi! I'm your SEO blog assistant.\n\nTo get started, please tell me:\n1. What topic you want the blog to cover\n2. Who is the target audience\n3. What you hope to achieve with this blog (e.g., SEO traffic, teaching beginners, promoting a product)\n"
  384. },
  385. "label": "Begin",
  386. "name": "begin"
  387. },
  388. "id": "begin",
  389. "measured": {
  390. "height": 48,
  391. "width": 200
  392. },
  393. "position": {
  394. "x": 50,
  395. "y": 200
  396. },
  397. "selected": false,
  398. "sourcePosition": "left",
  399. "targetPosition": "right",
  400. "type": "beginNode"
  401. },
  402. {
  403. "data": {
  404. "form": {
  405. "delay_after_error": 1,
  406. "description": "",
  407. "exception_comment": "",
  408. "exception_default_value": "",
  409. "exception_goto": [],
  410. "exception_method": null,
  411. "frequencyPenaltyEnabled": false,
  412. "frequency_penalty": 0.5,
  413. "llm_id": "deepseek-chat@DeepSeek",
  414. "maxTokensEnabled": false,
  415. "max_retries": 3,
  416. "max_rounds": 1,
  417. "max_tokens": 4096,
  418. "mcp": [],
  419. "message_history_window_size": 12,
  420. "outputs": {
  421. "content": {
  422. "type": "string",
  423. "value": ""
  424. }
  425. },
  426. "parameter": "Precise",
  427. "presencePenaltyEnabled": false,
  428. "presence_penalty": 0.5,
  429. "prompts": [
  430. {
  431. "content": "The user query is {sys.query}",
  432. "role": "user"
  433. }
  434. ],
  435. "sys_prompt": "# Role\n\nYou are the **Parse_And_Keyword_Agent**, responsible for interpreting a user's blog writing request and generating a structured writing intent summary and keyword strategy for SEO-optimized content generation.\n\n# Goals\n\n1. Extract and infer the user's true writing intent, even if the input is informal or vague.\n\n2. Identify the writing type, target audience, and implied goal.\n\n3. Suggest 3\u20135 long-tail keywords based on the input and context.\n\n4. Output all data in a Markdown format for downstream agents.\n\n# Operating Guidelines\n\n\n- If the user's input lacks clarity, make reasonable and **conservative** assumptions based on SEO best practices.\n\n- Always choose one clear \"Writing Type\" from the list below.\n\n- Your job is not to write the blog \u2014 only to structure the brief.\n\n# Output Format\n\n```markdown\n## Writing Type\n\n[Choose one: Tutorial / Informative Guide / Marketing Content / Case Study / Opinion Piece / How-to / Comparison Article]\n\n## Target Audience\n\n[Try to be specific based on clues in the input: e.g., marketing managers, junior developers, SEO beginners]\n\n## User Intent Summary\n\n[A 1\u20132 sentence summary of what the user wants to achieve with the blog post]\n\n## Suggested Long-tail Keywords\n\n- keyword 1\n\n- keyword 2\n\n- keyword 3\n\n- keyword 4 (optional)\n\n- keyword 5 (optional)\n\n\n\n\n## Input Examples (and how to handle them)\n\nInput: \"I want to write about RAGFlow.\"\n\u2192 Output: Informative Guide, Audience: AI developers, Intent: explain what RAGFlow is and its use cases\n\nInput: \"Need a blog to promote our prompt design tool.\"\n\u2192 Output: Marketing Content, Audience: product managers or tool adopters, Intent: raise awareness and interest in the product\n\n\n\nInput: \"How to get more Google traffic using AI\"\n\u2192 Output: How-to, Audience: SEO marketers, Intent: guide readers on applying AI for SEO growth",
  436. "temperature": 0.2,
  437. "temperatureEnabled": true,
  438. "tools": [],
  439. "topPEnabled": false,
  440. "top_p": 0.75,
  441. "user_prompt": "",
  442. "visual_files_var": ""
  443. },
  444. "label": "Agent",
  445. "name": "Parse And Keyword Agent"
  446. },
  447. "dragging": false,
  448. "id": "Agent:ClearRabbitsScream",
  449. "measured": {
  450. "height": 84,
  451. "width": 200
  452. },
  453. "position": {
  454. "x": 344.7766966202233,
  455. "y": 234.82202253184496
  456. },
  457. "selected": false,
  458. "sourcePosition": "right",
  459. "targetPosition": "left",
  460. "type": "agentNode"
  461. },
  462. {
  463. "data": {
  464. "form": {
  465. "delay_after_error": 1,
  466. "description": "",
  467. "exception_comment": "",
  468. "exception_default_value": "",
  469. "exception_goto": [],
  470. "exception_method": null,
  471. "frequencyPenaltyEnabled": false,
  472. "frequency_penalty": 0.3,
  473. "llm_id": "deepseek-chat@DeepSeek",
  474. "maxTokensEnabled": false,
  475. "max_retries": 3,
  476. "max_rounds": 3,
  477. "max_tokens": 4096,
  478. "mcp": [],
  479. "message_history_window_size": 12,
  480. "outputs": {
  481. "content": {
  482. "type": "string",
  483. "value": ""
  484. }
  485. },
  486. "parameter": "Balance",
  487. "presencePenaltyEnabled": false,
  488. "presence_penalty": 0.2,
  489. "prompts": [
  490. {
  491. "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}",
  492. "role": "user"
  493. }
  494. ],
  495. "sys_prompt": "# Role\n\nYou are the **Outline_Agent**, responsible for generating a clear and SEO-optimized blog outline based on the user's parsed writing intent and keyword strategy.\n\n# Tool Access:\n\n- You have access to a search tool called `Tavily Search`.\n\n- If you are unsure how to structure a section, you may call this tool to search for related blog outlines or content from Google.\n\n- Do not overuse it. Your job is to extract **structure**, not to write paragraphs.\n\n\n# Goals\n\n1. Create a well-structured outline with appropriate H2 and H3 headings.\n\n2. Ensure logical flow from introduction to conclusion.\n\n3. Assign 1\u20132 suggested long-tail keywords to each major section for SEO alignment.\n\n4. Make the structure suitable for downstream paragraph writing.\n\n\n\n\n#Note\n\n- Use concise, scannable section titles.\n\n- Do not write full paragraphs.\n\n- Prioritize clarity, logical progression, and SEO alignment.\n\n\n\n- If the blog type is \u201cTutorial\u201d or \u201cHow-to\u201d, include step-based sections.\n\n\n# Input\n\nYou will receive:\n\n- Writing Type (e.g., Tutorial, Informative Guide)\n\n- Target Audience\n\n- User Intent Summary\n\n- 3\u20135 long-tail keywords\n\n\nUse this information to design a structure that both informs readers and maximizes search engine visibility.\n\n# Output Format\n\n```markdown\n\n## Blog Title (suggested)\n\n[Give a short, SEO-friendly title suggestion]\n\n## Outline\n\n### Introduction\n\n- Purpose of the article\n\n- Brief context\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 1]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 2]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 3]\n\n- [Optional H3 Subsection Title A]\n\n - [Explanation of sub-point]\n\n- [Optional H3 Subsection Title B]\n\n - [Explanation of sub-point]\n\n- **Suggested keywords**: [keyword1]\n\n### Conclusion\n\n- Recap key takeaways\n\n- Optional CTA (Call to Action)\n\n- **Suggested keywords**: [keyword3]\n\n",
  496. "temperature": 0.5,
  497. "temperatureEnabled": true,
  498. "tools": [
  499. {
  500. "component_name": "TavilySearch",
  501. "name": "TavilySearch",
  502. "params": {
  503. "api_key": "",
  504. "days": 7,
  505. "exclude_domains": [],
  506. "include_answer": false,
  507. "include_domains": [],
  508. "include_image_descriptions": false,
  509. "include_images": false,
  510. "include_raw_content": true,
  511. "max_results": 5,
  512. "outputs": {
  513. "formalized_content": {
  514. "type": "string",
  515. "value": ""
  516. },
  517. "json": {
  518. "type": "Array<Object>",
  519. "value": []
  520. }
  521. },
  522. "query": "sys.query",
  523. "search_depth": "basic",
  524. "topic": "general"
  525. }
  526. }
  527. ],
  528. "topPEnabled": false,
  529. "top_p": 0.85,
  530. "user_prompt": "",
  531. "visual_files_var": ""
  532. },
  533. "label": "Agent",
  534. "name": "Outline Agent"
  535. },
  536. "dragging": false,
  537. "id": "Agent:BetterSitesSend",
  538. "measured": {
  539. "height": 84,
  540. "width": 200
  541. },
  542. "position": {
  543. "x": 613.4368763415628,
  544. "y": 164.3074269048589
  545. },
  546. "selected": false,
  547. "sourcePosition": "right",
  548. "targetPosition": "left",
  549. "type": "agentNode"
  550. },
  551. {
  552. "data": {
  553. "form": {
  554. "description": "This is an agent for a specific task.",
  555. "user_prompt": "This is the order you need to send to the agent."
  556. },
  557. "label": "Tool",
  558. "name": "flow.tool_0"
  559. },
  560. "dragging": false,
  561. "id": "Tool:SharpPensBurn",
  562. "measured": {
  563. "height": 44,
  564. "width": 200
  565. },
  566. "position": {
  567. "x": 580.1877078861457,
  568. "y": 287.7669662022325
  569. },
  570. "selected": false,
  571. "sourcePosition": "right",
  572. "targetPosition": "left",
  573. "type": "toolNode"
  574. },
  575. {
  576. "data": {
  577. "form": {
  578. "delay_after_error": 1,
  579. "description": "",
  580. "exception_comment": "",
  581. "exception_default_value": "",
  582. "exception_goto": [],
  583. "exception_method": null,
  584. "frequencyPenaltyEnabled": false,
  585. "frequency_penalty": 0.5,
  586. "llm_id": "deepseek-chat@DeepSeek",
  587. "maxTokensEnabled": false,
  588. "max_retries": 3,
  589. "max_rounds": 5,
  590. "max_tokens": 4096,
  591. "mcp": [],
  592. "message_history_window_size": 12,
  593. "outputs": {
  594. "content": {
  595. "type": "string",
  596. "value": ""
  597. }
  598. },
  599. "parameter": "Precise",
  600. "presencePenaltyEnabled": false,
  601. "presence_penalty": 0.5,
  602. "prompts": [
  603. {
  604. "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\n\n\nThe Outline agent output is {Agent:BetterSitesSend@content}",
  605. "role": "user"
  606. }
  607. ],
  608. "sys_prompt": "# Role\n\nYou are the **Body_Agent**, responsible for generating the full content of each section of an SEO-optimized blog based on the provided outline and keyword strategy.\n\n# Tool Access:\n\nYou can use the `Tavily Search` tool to retrieve relevant content, statistics, or examples to support each section you're writing.\n\nUse it **only** when the provided outline lacks enough information, or if the section requires factual grounding.\n\nAlways cite the original link or indicate source where possible.\n\n\n# Goals\n\n1. Write each section (based on H2/H3 structure) as a complete and natural blog paragraph.\n\n2. Integrate the suggested long-tail keywords naturally into each section.\n\n3. When appropriate, use the `Tavily Search` tool to enrich your writing with relevant facts, examples, or quotes.\n\n4. Ensure each section is clear, engaging, and informative, suitable for both human readers and search engines.\n\n\n# Style Guidelines\n\n- Write in a tone appropriate to the audience. Be explanatory, not promotional, unless it's a marketing blog.\n\n- Avoid generic filler content. Prioritize clarity, structure, and value.\n\n- Ensure SEO keywords are embedded seamlessly, not forcefully.\n\n\n\n- Maintain writing rhythm. Vary sentence lengths. Use transitions between ideas.\n\n\n# Input\n\n\nYou will receive:\n\n- Blog title\n\n- Structured outline (including section titles, keywords, and descriptions)\n\n- Target audience\n\n- Blog type and user intent\n\nYou must **follow the outline strictly**. Write content **section-by-section**, based on the structure.\n\n\n# Output Format\n\n```markdown\n\n## H2: [Section Title]\n\n[Your generated content for this section \u2014 500-600 words, using keywords naturally.]\n\n",
  609. "temperature": 0.2,
  610. "temperatureEnabled": true,
  611. "tools": [
  612. {
  613. "component_name": "TavilySearch",
  614. "name": "TavilySearch",
  615. "params": {
  616. "api_key": "",
  617. "days": 7,
  618. "exclude_domains": [],
  619. "include_answer": false,
  620. "include_domains": [],
  621. "include_image_descriptions": false,
  622. "include_images": false,
  623. "include_raw_content": true,
  624. "max_results": 5,
  625. "outputs": {
  626. "formalized_content": {
  627. "type": "string",
  628. "value": ""
  629. },
  630. "json": {
  631. "type": "Array<Object>",
  632. "value": []
  633. }
  634. },
  635. "query": "sys.query",
  636. "search_depth": "basic",
  637. "topic": "general"
  638. }
  639. }
  640. ],
  641. "topPEnabled": false,
  642. "top_p": 0.75,
  643. "user_prompt": "",
  644. "visual_files_var": ""
  645. },
  646. "label": "Agent",
  647. "name": "Body Agent"
  648. },
  649. "dragging": false,
  650. "id": "Agent:EagerNailsRemain",
  651. "measured": {
  652. "height": 84,
  653. "width": 200
  654. },
  655. "position": {
  656. "x": 889.0614605692713,
  657. "y": 247.00973041799065
  658. },
  659. "selected": false,
  660. "sourcePosition": "right",
  661. "targetPosition": "left",
  662. "type": "agentNode"
  663. },
  664. {
  665. "data": {
  666. "form": {
  667. "description": "This is an agent for a specific task.",
  668. "user_prompt": "This is the order you need to send to the agent."
  669. },
  670. "label": "Tool",
  671. "name": "flow.tool_1"
  672. },
  673. "dragging": false,
  674. "id": "Tool:WickedDeerHeal",
  675. "measured": {
  676. "height": 44,
  677. "width": 200
  678. },
  679. "position": {
  680. "x": 853.2006404239659,
  681. "y": 364.37541577229143
  682. },
  683. "selected": false,
  684. "sourcePosition": "right",
  685. "targetPosition": "left",
  686. "type": "toolNode"
  687. },
  688. {
  689. "data": {
  690. "form": {
  691. "delay_after_error": 1,
  692. "description": "",
  693. "exception_comment": "",
  694. "exception_default_value": "",
  695. "exception_goto": [],
  696. "exception_method": null,
  697. "frequencyPenaltyEnabled": false,
  698. "frequency_penalty": 0.5,
  699. "llm_id": "deepseek-chat@DeepSeek",
  700. "maxTokensEnabled": false,
  701. "max_retries": 3,
  702. "max_rounds": 5,
  703. "max_tokens": 4096,
  704. "mcp": [],
  705. "message_history_window_size": 12,
  706. "outputs": {
  707. "content": {
  708. "type": "string",
  709. "value": ""
  710. }
  711. },
  712. "parameter": "Precise",
  713. "presencePenaltyEnabled": false,
  714. "presence_penalty": 0.5,
  715. "prompts": [
  716. {
  717. "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\nThe Outline agent output is {Agent:BetterSitesSend@content}\n\nThe Body agent output is {Agent:EagerNailsRemain@content}",
  718. "role": "user"
  719. }
  720. ],
  721. "sys_prompt": "# Role\n\nYou are the **Editor_Agent**, responsible for finalizing the blog post for both human readability and SEO effectiveness.\n\n# Goals\n\n1. Polish the entire blog content for clarity, coherence, and style.\n\n2. Improve transitions between sections, ensure logical flow.\n\n3. Verify that keywords are used appropriately and effectively.\n\n4. Conduct a lightweight SEO audit \u2014 checking keyword density, structure (H1/H2/H3), and overall searchability.\n\n\n\n# Style Guidelines\n\n- Be precise. Avoid bloated or vague language.\n\n- Maintain an informative and engaging tone, suitable to the target audience.\n\n- Do not remove keywords unless absolutely necessary for clarity.\n\n- Ensure paragraph flow and section continuity.\n\n\n# Input\n\nYou will receive:\n\n- Full blog content, written section-by-section\n\n- Original outline with suggested keywords\n\n- Target audience and writing type\n\n# Output Format\n\n```markdown\n\n[The revised, fully polished blog post content goes here.]\n\n",
  722. "temperature": 0.2,
  723. "temperatureEnabled": true,
  724. "tools": [],
  725. "topPEnabled": false,
  726. "top_p": 0.75,
  727. "user_prompt": "",
  728. "visual_files_var": ""
  729. },
  730. "label": "Agent",
  731. "name": "Editor Agent"
  732. },
  733. "dragging": false,
  734. "id": "Agent:LovelyHeadsOwn",
  735. "measured": {
  736. "height": 84,
  737. "width": 200
  738. },
  739. "position": {
  740. "x": 1160.3332919804993,
  741. "y": 149.50806732882472
  742. },
  743. "selected": false,
  744. "sourcePosition": "right",
  745. "targetPosition": "left",
  746. "type": "agentNode"
  747. },
  748. {
  749. "data": {
  750. "form": {
  751. "content": [
  752. "{Agent:LovelyHeadsOwn@content}"
  753. ]
  754. },
  755. "label": "Message",
  756. "name": "Response"
  757. },
  758. "dragging": false,
  759. "id": "Message:LegalBeansBet",
  760. "measured": {
  761. "height": 56,
  762. "width": 200
  763. },
  764. "position": {
  765. "x": 1370.6665839609984,
  766. "y": 267.0323933738015
  767. },
  768. "selected": false,
  769. "sourcePosition": "right",
  770. "targetPosition": "left",
  771. "type": "messageNode"
  772. },
  773. {
  774. "data": {
  775. "form": {
  776. "text": "This workflow automatically generates a complete SEO-optimized blog article based on a simple user input. You don\u2019t need any writing experience. Just provide a topic or short request \u2014 the system will handle the rest.\n\nThe process includes the following key stages:\n\n1. **Understanding your topic and goals**\n2. **Designing the blog structure**\n3. **Writing high-quality content**\n\n\n"
  777. },
  778. "label": "Note",
  779. "name": "Workflow Overall Description"
  780. },
  781. "dragHandle": ".note-drag-handle",
  782. "dragging": false,
  783. "height": 205,
  784. "id": "Note:SlimyGhostsWear",
  785. "measured": {
  786. "height": 205,
  787. "width": 415
  788. },
  789. "position": {
  790. "x": -284.3143151688742,
  791. "y": 150.47632147913419
  792. },
  793. "resizing": false,
  794. "selected": false,
  795. "sourcePosition": "right",
  796. "targetPosition": "left",
  797. "type": "noteNode",
  798. "width": 415
  799. },
  800. {
  801. "data": {
  802. "form": {
  803. "text": "**Purpose**: \nThis agent reads the user\u2019s input and figures out what kind of blog needs to be written.\n\n**What it does**:\n- Understands the main topic you want to write about \n- Identifies who the blog is for (e.g., beginners, marketers, developers) \n- Determines the writing purpose (e.g., SEO traffic, product promotion, education) \n- Suggests 3\u20135 long-tail SEO keywords related to the topic"
  804. },
  805. "label": "Note",
  806. "name": "Parse And Keyword Agent"
  807. },
  808. "dragHandle": ".note-drag-handle",
  809. "dragging": false,
  810. "height": 152,
  811. "id": "Note:EmptyChairsShake",
  812. "measured": {
  813. "height": 152,
  814. "width": 340
  815. },
  816. "position": {
  817. "x": 295.04147626768133,
  818. "y": 372.2755718118446
  819. },
  820. "resizing": false,
  821. "selected": false,
  822. "sourcePosition": "right",
  823. "targetPosition": "left",
  824. "type": "noteNode",
  825. "width": 340
  826. },
  827. {
  828. "data": {
  829. "form": {
  830. "text": "**Purpose**: \nThis agent builds the blog structure \u2014 just like writing a table of contents before you start writing the full article.\n\n**What it does**:\n- Suggests a clear blog title that includes important keywords \n- Breaks the article into sections using H2 and H3 headings (like a professional blog layout) \n- Assigns 1\u20132 recommended keywords to each section to help with SEO \n- Follows the writing goal and target audience set in the previous step"
  831. },
  832. "label": "Note",
  833. "name": "Outline Agent"
  834. },
  835. "dragHandle": ".note-drag-handle",
  836. "dragging": false,
  837. "height": 146,
  838. "id": "Note:TallMelonsNotice",
  839. "measured": {
  840. "height": 146,
  841. "width": 343
  842. },
  843. "position": {
  844. "x": 598.5644991893463,
  845. "y": 5.801054564756448
  846. },
  847. "resizing": false,
  848. "selected": false,
  849. "sourcePosition": "right",
  850. "targetPosition": "left",
  851. "type": "noteNode",
  852. "width": 343
  853. },
  854. {
  855. "data": {
  856. "form": {
  857. "text": "**Purpose**: \nThis agent is responsible for writing the actual content of the blog \u2014 paragraph by paragraph \u2014 based on the outline created earlier.\n\n**What it does**:\n- Looks at each H2/H3 section in the outline \n- Writes 150\u2013220 words of clear, helpful, and well-structured content per section \n- Includes the suggested SEO keywords naturally (not keyword stuffing) \n- Uses real examples or facts if needed (by calling a web search tool like Tavily)"
  858. },
  859. "label": "Note",
  860. "name": "Body Agent"
  861. },
  862. "dragHandle": ".note-drag-handle",
  863. "dragging": false,
  864. "height": 137,
  865. "id": "Note:RipeCougarsBuild",
  866. "measured": {
  867. "height": 137,
  868. "width": 319
  869. },
  870. "position": {
  871. "x": 860.4854129814981,
  872. "y": 427.2196835690842
  873. },
  874. "resizing": false,
  875. "selected": false,
  876. "sourcePosition": "right",
  877. "targetPosition": "left",
  878. "type": "noteNode",
  879. "width": 319
  880. },
  881. {
  882. "data": {
  883. "form": {
  884. "text": "**Purpose**: \nThis agent reviews the entire blog draft to make sure it is smooth, professional, and SEO-friendly. It acts like a human editor before publishing.\n\n**What it does**:\n- Polishes the writing: improves sentence clarity, fixes awkward phrasing \n- Makes sure the content flows well from one section to the next \n- Double-checks keyword usage: are they present, natural, and not overused? \n- Verifies the blog structure (H1, H2, H3 headings) is correct \n- Adds two key SEO elements:\n - **Meta Title** (shows up in search results)\n - **Meta Description** (summary for Google and social sharing)"
  885. },
  886. "label": "Note",
  887. "name": "Editor Agent"
  888. },
  889. "dragHandle": ".note-drag-handle",
  890. "height": 146,
  891. "id": "Note:OpenTurkeysSell",
  892. "measured": {
  893. "height": 146,
  894. "width": 320
  895. },
  896. "position": {
  897. "x": 1129,
  898. "y": -30
  899. },
  900. "resizing": false,
  901. "selected": false,
  902. "sourcePosition": "right",
  903. "targetPosition": "left",
  904. "type": "noteNode",
  905. "width": 320
  906. }
  907. ]
  908. },
  909. "history": [],
  910. "messages": [],
  911. "path": [],
  912. "retrieval": []
  913. },
  914. "avatar": "data:image/jpeg;base64,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"
  915. }