{
  "synapse_export": true,
  "version": "1.0",
  "exported_at": "2026-09-09T00:01:06.893021+00:00",
  "has_python_tools": false,
  "custom_tools": [],
  "agents": [
    {
      "id": "agent_web_researcher",
      "name": "Web Research Agent",
      "description": "Autonomously researches any topic using browser automation, extracts key information from authoritative sources, and produces structured, cited reports.",
      "avatar": "default",
      "type": "conversational",
      "tools": [
        "browser_navigate",
        "browser_click",
        "browser_snapshot",
        "browser_take_screenshot",
        "browser_type",
        "browser_press_key",
        "browser_wait_for",
        "browser_tabs",
        "browser_navigate_back",
        "browser_network_requests",
        "browser_hover",
        "browser_select_option",
        "browser_evaluate",
        "browser_handle_dialog",
        "parse_pdf",
        "vault_create",
        "vault_read",
        "vault_write",
        "vault_patch",
        "scrape_url",
        "crawl_multiple",
        "extract_links",
        "search_page"
      ],
      "repos": [],
      "system_prompt": "# Role & Identity\nYou are an expert Web Research Agent. Your mission is to autonomously research any topic by navigating the web, extracting accurate information from authoritative sources, and synthesizing findings into a structured, well-cited report.\n\n# Core Capabilities\n- **Autonomous Web Navigation:** Browse websites, click through links, handle search engines, and extract relevant content.\n- **Document Parsing:** Read and extract data from PDFs linked on web pages.\n- **Structured Reporting:** Synthesize multi-source findings into clear, actionable reports.\n- **Vault Persistence:** Store intermediate research findings so they can be referenced later in the conversation or by other agents.\n\n# Operating Rules (Zero-Wandering Policy)\n1. **Plan First:** Before opening a browser, list 3-5 authoritative sources you intend to visit for this query.\n2. **Navigate Directly:** Go straight to the most relevant pages. Avoid following rabbit holes of unrelated links.\n3. **Extract Efficiently:** Take targeted snapshots and screenshots. Do not read entire pages when only a section is relevant.\n4. **Stop When Sufficient:** Once you have enough data to answer comprehensively, stop browsing and synthesize.\n5. **Always Cite Sources:** Record the URL and publication date of every source consulted.\n\n# Workflow\n1. **Plan:** Identify 3-5 authoritative sources (e.g., official docs, reputable news, academic sites, Wikipedia).\n2. **Navigate & Extract:** Visit each source, take a snapshot, and extract only relevant content.\n3. **Persist to Vault:** Save raw findings as structured JSON in the vault for reference.\n4. **Synthesize:** Combine all findings into a final structured report.\n\n# Response Format\nAlways respond with a structured Markdown report:\n\n## Research Report: [Topic]\n### Executive Summary\n[3-5 sentence overview of key findings]\n\n### Key Findings\n- [Finding 1] — *Source: [URL]*\n- [Finding 2] — *Source: [URL]*\n\n### Detailed Analysis\n[Section-by-section breakdown with evidence]\n\n### Sources Consulted\n1. [URL 1] — [Brief description]\n2. [URL 2] — [Brief description]"
    },
    {
      "id": "agent_data_analyst",
      "name": "Data Analyst Agent",
      "description": "Processes CSV, Excel, and JSON data, runs Python-based statistical analysis, and generates charts and insight reports.",
      "avatar": "default",
      "type": "conversational",
      "tools": [
        "execute_python",
        "parse_pdf",
        "parse_xlsx",
        "vault_create",
        "vault_read",
        "vault_write",
        "vault_patch",
        "read_file",
        "read_text_file",
        "read_multiple_files"
      ],
      "repos": [],
      "system_prompt": "# Role & Identity\nYou are an expert Data Analyst Agent. Your mission is to ingest raw data from any source (Excel, CSV, JSON, PDF), perform rigorous Python-based analysis using pandas and statistical libraries, and produce clear, insight-driven reports with supporting calculations.\n\n# Core Capabilities\n- **Data Ingestion:** Parse Excel files, read CSV/JSON files, extract tables from PDFs.\n- **Python Analysis:** Write and execute Python code using `pandas`, `numpy`, `scipy`, and `matplotlib` for statistical analysis and visualization.\n- **Vault Persistence:** Store cleaned datasets and computed results in the vault for multi-step analysis workflows.\n- **Insight Generation:** Translate numbers into plain-English business insights.\n\n# Operating Rules — Strict Data Integrity\n1. **NEVER hallucinate data.** If you need numbers, use tools to read files or execute Python to compute them.\n2. **Always verify data quality first** — check for nulls, outliers, and schema issues before analyzing.\n3. **Show your work** — include the key Python code snippets that produced your results.\n4. **Persist intermediate results** — save cleaned data and outputs to the vault so the user or other agents can reference them.\n\n# Workflow\n1. **Ingest:** Use `parse_xlsx`, `read_file`, or `read_text_file` to load the raw data.\n2. **Explore:** Use `execute_python` to run `df.head()`, `df.info()`, `df.describe()` and understand the schema.\n3. **Clean:** Handle nulls, fix types, and normalize columns via Python.\n4. **Analyze:** Compute statistics, aggregations, trends, or run the specific analysis requested.\n5. **Persist:** Save the final dataset and results to the vault as JSON.\n6. **Report:** Summarize key insights in structured Markdown.\n\n# Response Format\n\n## Data Analysis Report: [Topic]\n\n### Dataset Overview\n| Metric | Value |\n|--------|-------|\n| Rows | X |\n| Columns | Y |\n| Nulls | Z |\n\n### Key Insights\n- [Insight 1 with supporting statistic]\n- [Insight 2 with supporting statistic]\n\n### Analysis Details\n[Show the Python code and its output for transparency]\n\n### Recommendations\n[Actionable next steps based on the data]"
    },
    {
      "id": "agent_content_writer",
      "name": "Content Writer Agent",
      "description": "Creates high-quality blog posts, reports, and documentation from research briefs or raw notes. Adapts tone and format to any audience.",
      "avatar": "default",
      "type": "conversational",
      "tools": [
        "vault_read",
        "vault_write",
        "vault_create",
        "vault_patch",
        "read_file",
        "read_text_file",
        "parse_pdf"
      ],
      "repos": [],
      "system_prompt": "# Role & Identity\nYou are an expert Content Writer Agent. Your mission is to transform research briefs, data summaries, and raw notes into polished, high-quality written content — including blog posts, technical documentation, executive reports, and marketing copy.\n\n# Core Capabilities\n- **Adaptive Writing:** Adjust tone (formal/casual), complexity (expert/beginner), and format (narrative/listicle/report) based on the target audience.\n- **Research Integration:** Read content from the vault or provided files and seamlessly weave insights into compelling narratives.\n- **Structured Output:** Produce well-formatted Markdown or plain text that is ready to publish or submit.\n- **Revision Workflow:** Accept feedback and revise specific sections without rewriting the entire piece unnecessarily.\n\n# Operating Rules\n1. **Read before writing** — always review all provided source material from the vault or files before producing content.\n2. **No hallucination** — never invent facts, statistics, or quotes. Only use information from provided sources.\n3. **Match the brief** — if a tone, length, or format is specified, follow it exactly.\n4. **Cite sources** — when referencing specific data or claims, attribute them to the source material.\n\n# Workflow\n1. **Gather Context:** Read relevant files or vault entries containing research, data, or notes.\n2. **Plan Structure:** Outline the piece (sections, key points per section, estimated length).\n3. **Draft:** Write the full piece section by section.\n4. **Save to Vault:** Persist the draft to the vault so the user or a review agent can access it.\n5. **Revise on Request:** Accept targeted revision feedback and update specific sections.\n\n# Output Format\nDeliver the final piece as clean Markdown with:\n- A compelling title and subtitle\n- Clear section headers\n- Smooth transitions between sections\n- A summary or call-to-action at the end\n- A source attribution section if data was referenced\n\n# Edge Cases\n- **Insufficient source material:** Ask the user to provide more context or point to a research agent to gather it first.\n- **Conflicting facts in sources:** Flag the conflict, choose the most credible source, and note the discrepancy.\n- **Very long pieces:** Break the work into sections and confirm the outline with the user before writing the full piece."
    }
  ],
  "orchestrations": [
    {
      "id": "orch_market_intelligence",
      "name": "Market Intelligence Report Pipeline",
      "description": "Researches news, competitors and market data in parallel, scores the market in Python, makes a go / no-go call (or goes back for more data), and writes an executive report. Run it by hand or put it on a weekly schedule.",
      "avatar": "default",
      "steps": [
        {
          "id": "step_gather_parallel",
          "name": "Parallel Intelligence Gathering",
          "type": "parallel",
          "agent_id": null,
          "prompt_template": null,
          "route_map": {},
          "route_descriptions": {},
          "evaluator_prompt": null,
          "parallel_branches": [
            [
              "step_news_research"
            ],
            [
              "step_competitor_research"
            ],
            [
              "step_trends_research"
            ]
          ],
          "merge_strategy": "list",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [],
          "output_key": null,
          "forced_tool": null,
          "max_turns": 5,
          "timeout_seconds": 1800,
          "allowed_tools": null,
          "next_step_id": "step_merge_intelligence",
          "max_iterations": 3,
          "position_x": -701.1029411764706,
          "position_y": -167.27941176470586
        },
        {
          "id": "step_news_research",
          "name": "News & Industry Research",
          "type": "agent",
          "agent_id": "agent_web_researcher",
          "prompt_template": "Research the latest news and industry developments for {state.market}\n\nFocus on:\n- Major news from the last 30 days\n- Regulatory changes or government actions\n- Funding rounds, IPOs, or M&A activity\n- Expert commentary and analyst opinions\n\nReturn a structured summary with source URLs.",
          "route_map": {},
          "route_descriptions": {},
          "evaluator_prompt": null,
          "parallel_branches": [],
          "merge_strategy": "list",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [],
          "output_key": "news_result",
          "forced_tool": null,
          "max_turns": 35,
          "timeout_seconds": 600,
          "allowed_tools": null,
          "next_step_id": "step_merge_intelligence",
          "max_iterations": 3,
          "position_x": -300.0,
          "position_y": -250.0
        },
        {
          "id": "step_competitor_research",
          "name": "Competitor Analysis",
          "type": "agent",
          "agent_id": "agent_web_researcher",
          "prompt_template": "Identify and analyze the top 5 competitors in {state.market}:\n\nFor each competitor, gather:\n- Company name and website\n- Core product/service offering\n- Pricing model (if publicly available)\n- Key differentiators and weaknesses\n- Recent product launches or announcements\n- Estimated market share or size indicators\n\nReturn a structured comparison table with source URLs.",
          "route_map": {},
          "route_descriptions": {},
          "evaluator_prompt": null,
          "parallel_branches": [],
          "merge_strategy": "list",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [],
          "output_key": "competitor_result",
          "forced_tool": null,
          "max_turns": 35,
          "timeout_seconds": 600,
          "allowed_tools": null,
          "next_step_id": "step_merge_intelligence",
          "max_iterations": 3,
          "position_x": -300.0,
          "position_y": 0.0
        },
        {
          "id": "step_trends_research",
          "name": "Market Trends & Data",
          "type": "agent",
          "agent_id": "agent_web_researcher",
          "prompt_template": "Research quantitative market trends and data for {state.market}:\n\nGather:\n- Total Addressable Market (TAM) size and growth rate\n- Key market segments and their relative sizes\n- Geographic distribution of demand\n- Consumer/buyer behavior trends\n- Adoption curves and technology maturity\n- Published market research reports or analyst forecasts\n\nReturn data with source URLs and publication dates.",
          "route_map": {},
          "route_descriptions": {},
          "evaluator_prompt": null,
          "parallel_branches": [],
          "merge_strategy": "list",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [],
          "output_key": "trends_result",
          "forced_tool": null,
          "max_turns": 35,
          "timeout_seconds": 600,
          "allowed_tools": null,
          "next_step_id": "step_merge_intelligence",
          "max_iterations": 3,
          "position_x": -300.0,
          "position_y": 250.0
        },
        {
          "id": "step_merge_intelligence",
          "name": "Merge Intelligence",
          "type": "merge",
          "agent_id": null,
          "prompt_template": null,
          "route_map": {},
          "route_descriptions": {},
          "evaluator_prompt": null,
          "parallel_branches": [],
          "merge_strategy": "concat",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [
            "news_result",
            "competitor_result",
            "trends_result"
          ],
          "output_key": "all_intelligence",
          "forced_tool": null,
          "max_turns": 5,
          "timeout_seconds": 60,
          "allowed_tools": null,
          "next_step_id": "step_data_analysis",
          "max_iterations": 3,
          "position_x": 0.0,
          "position_y": 0.0
        },
        {
          "id": "step_data_analysis",
          "name": "Quantitative Analysis",
          "type": "agent",
          "agent_id": "agent_data_analyst",
          "prompt_template": "Analyze all the gathered market intelligence and produce a structured quantitative assessment.\n\nUsing Python, compute and score:\n1. **Market Attractiveness Score** (0-100): Based on TAM size, growth rate, and competitive density.\n2. **Competitive Intensity Index** (Low/Medium/High): Based on number of well-funded competitors and market concentration.\n3. **Trend Momentum Score** (0-100): Based on growth trajectory and recency of positive signals.\n4. **Opportunity Score** (Weighted average of the above): Final composite score.\n\nOutput a structured JSON with all scores and the reasoning for each. Save to the vault.",
          "route_map": {},
          "route_descriptions": {},
          "evaluator_prompt": null,
          "parallel_branches": [],
          "merge_strategy": "list",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [
            "all_intelligence"
          ],
          "output_key": "analysis_result",
          "forced_tool": null,
          "max_turns": 35,
          "timeout_seconds": 600,
          "allowed_tools": null,
          "next_step_id": "step_go_nogo_eval",
          "max_iterations": 3,
          "position_x": 300.0,
          "position_y": 0.0
        },
        {
          "id": "step_go_nogo_eval",
          "name": "Go / No-Go Decision",
          "type": "evaluator",
          "agent_id": null,
          "prompt_template": null,
          "route_map": {
            "go": "step_generate_report",
            "no_go": "step_generate_report",
            "needs_more_data": "step_gather_parallel"
          },
          "route_descriptions": {
            "go": "The Opportunity Score is above 65 and there are clear market entry signals. Proceed to generate a full GO report with recommended strategies.",
            "no_go": "The Opportunity Score is below 40, or there are critical blockers (regulatory risk, saturated market, insufficient TAM). Generate a NO-GO report explaining why.",
            "needs_more_data": "The data is insufficient or contradictory — key metrics like TAM size or competitor data are missing. Loop back to gather more intelligence."
          },
          "evaluator_prompt": "Review the quantitative analysis scores. If the Opportunity Score is above 65 → 'go'. If below 40 or there are critical blockers → 'no_go'. If core data is missing or the analysis could not compute meaningful scores → 'needs_more_data'. Always provide clear reasoning for your decision.",
          "parallel_branches": [],
          "merge_strategy": "list",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [
            "analysis_result",
            "all_intelligence"
          ],
          "output_key": "go_nogo_decision",
          "forced_tool": null,
          "max_turns": 5,
          "timeout_seconds": 60,
          "allowed_tools": null,
          "next_step_id": null,
          "max_iterations": 3,
          "position_x": 559.5588235294117,
          "position_y": 11.606328627642448
        },
        {
          "id": "step_generate_report",
          "name": "Generate Executive Report",
          "type": "agent",
          "agent_id": "agent_content_writer",
          "prompt_template": "Generate a professional executive market intelligence report using all gathered data.\n\nThe report must include:\n\n## Executive Summary\n- GO or NO-GO recommendation with the composite Opportunity Score\n- 3-5 bullet point rationale\n\n## Market Overview\n- TAM, growth rate, key segments\n\n## Competitive Landscape\n- Top 5 competitors with strengths/weaknesses table\n\n## Market Trends\n- Key trends and their directional impact\n\n## Quantitative Scorecard\n- All computed scores with brief explanations\n\n## Strategic Recommendations\n- If GO: 3 recommended market entry strategies\n- If NO-GO: 2-3 alternative opportunities or conditions that would change the assessment\n\n## Sources\n- All cited URLs\n\nTone: Executive-level, data-driven, decisive.",
          "route_map": {},
          "route_descriptions": {},
          "evaluator_prompt": null,
          "parallel_branches": [],
          "merge_strategy": "list",
          "loop_count": 3,
          "loop_step_ids": [],
          "transform_code": null,
          "human_prompt": null,
          "human_fields": [],
          "human_channel_id": null,
          "human_timeout_seconds": 3600,
          "input_keys": [
            "all_intelligence",
            "analysis_result",
            "go_nogo_decision"
          ],
          "output_key": "final_report",
          "forced_tool": null,
          "max_turns": 35,
          "timeout_seconds": 600,
          "allowed_tools": null,
          "next_step_id": null,
          "max_iterations": 3,
          "position_x": 900.0,
          "position_y": 0.0
        }
      ],
      "entry_step_id": "step_gather_parallel",
      "state_schema": {
        "market": {
          "type": "string",
          "default": "",
          "description": "The market or product to study"
        }
      },
      "max_total_turns": 400,
      "timeout_minutes": 180,
      "trigger": "manual",
      "created_at": "2026-04-12T19:21:43Z",
      "updated_at": "2026-04-12T19:25:40Z",
      "result_key": "final_report"
    }
  ],
  "mcp_servers": []
}
