Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 28b0c483b8 |
@@ -0,0 +1,77 @@
|
|||||||
|
---
|
||||||
|
name: autonomous-web-research-agent
|
||||||
|
version: 1.0.0
|
||||||
|
description: Autonomously research a given query on the web using multiple search
|
||||||
|
tools and generate a structured report with summary, detailed sections, source tracking,
|
||||||
|
and bias analysis.
|
||||||
|
inputs:
|
||||||
|
- 'query (string): the research question or topic to investigate'
|
||||||
|
- 'tools (list, optional): selected web search/tools to use (e.g., Tavily, Google,
|
||||||
|
NewsAPI, DuckDuckGo)'
|
||||||
|
- 'api_keys (dict, optional): credentials for LLM and external search APIs'
|
||||||
|
- 'model_config (dict, optional): LLM provider and parameters'
|
||||||
|
steps:
|
||||||
|
- 1. Accept user query and optional tool selections.
|
||||||
|
- '2. Initialize agent framework (e.g., LangGraph) with integrated tools: web search
|
||||||
|
(Tavily, Google, DuckDuckGo), news API, web scraping.'
|
||||||
|
- 3. Decompose query into sub-questions if needed and iteratively call tools to gather
|
||||||
|
relevant information.
|
||||||
|
- 4. Extract and deduplicate content from retrieved sources, tracking source metadata
|
||||||
|
(URL, tool used).
|
||||||
|
- 5. Use a large language model to synthesize findings into an executive summary and
|
||||||
|
detailed sections.
|
||||||
|
- 6. Analyze potential biases or limitations of gathered sources.
|
||||||
|
- 7. Compile a structured report object (ResearchReport) containing query, summary,
|
||||||
|
sections, sources, biases.
|
||||||
|
- 8. Optionally present report via a UI (e.g., Streamlit) or return as JSON.
|
||||||
|
outputs:
|
||||||
|
- 'ResearchReport (JSON/dict) with fields: query (string), summary (string), sections
|
||||||
|
(list of {heading, content}), sources (list of {url, tool_used, title}), potential_biases
|
||||||
|
(string)'
|
||||||
|
- Optional UI rendering of report with source badges and expandable sections
|
||||||
|
tags: []
|
||||||
|
metadata:
|
||||||
|
source_repo: https://github.com/DennisDRX/Faraday-Web-Researcher-Agent.git
|
||||||
|
extracted_at: ''
|
||||||
|
confidence: 0.85
|
||||||
|
---
|
||||||
|
|
||||||
|
# autonomous-web-research-agent
|
||||||
|
|
||||||
|
Autonomously research a given query on the web using multiple search tools and generate a structured report with summary, detailed sections, source tracking, and bias analysis.
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
1. 1. Accept user query and optional tool selections.
|
||||||
|
2. 2. Initialize agent framework (e.g., LangGraph) with integrated tools: web search (Tavily, Google, DuckDuckGo), news API, web scraping.
|
||||||
|
3. 3. Decompose query into sub-questions if needed and iteratively call tools to gather relevant information.
|
||||||
|
4. 4. Extract and deduplicate content from retrieved sources, tracking source metadata (URL, tool used).
|
||||||
|
5. 5. Use a large language model to synthesize findings into an executive summary and detailed sections.
|
||||||
|
6. 6. Analyze potential biases or limitations of gathered sources.
|
||||||
|
7. 7. Compile a structured report object (ResearchReport) containing query, summary, sections, sources, biases.
|
||||||
|
8. 8. Optionally present report via a UI (e.g., Streamlit) or return as JSON.
|
||||||
|
|
||||||
|
## Inputs
|
||||||
|
|
||||||
|
- query (string): the research question or topic to investigate
|
||||||
|
- tools (list, optional): selected web search/tools to use (e.g., Tavily, Google, NewsAPI, DuckDuckGo)
|
||||||
|
- api_keys (dict, optional): credentials for LLM and external search APIs
|
||||||
|
- model_config (dict, optional): LLM provider and parameters
|
||||||
|
|
||||||
|
## Outputs
|
||||||
|
|
||||||
|
- ResearchReport (JSON/dict) with fields: query (string), summary (string), sections (list of {heading, content}), sources (list of {url, tool_used, title}), potential_biases (string)
|
||||||
|
- Optional UI rendering of report with source badges and expandable sections
|
||||||
|
|
||||||
|
## Failure Modes
|
||||||
|
|
||||||
|
- Missing or invalid API keys causing tool authentication failures
|
||||||
|
- Rate limits or network errors from search APIs
|
||||||
|
- Insufficient or low-quality search results leading to incomplete report
|
||||||
|
- LLM hallucination or mis-summarization despite source tracking
|
||||||
|
- Parsing errors in HTML/scraped content
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Extracted from: [https://github.com/DennisDRX/Faraday-Web-Researcher-Agent.git](https://github.com/DennisDRX/Faraday-Web-Researcher-Agent.git)
|
||||||
|
Confidence: 0.85
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Commands: autonomous-web-research-agent
|
||||||
|
|
||||||
|
## Available Commands
|
||||||
|
|
||||||
|
- `/skill autonomous-web-research-agent` — Load this skill
|
||||||
|
- `/run autonomous-web-research-agent` — Execute workflow
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Examples: autonomous-web-research-agent
|
||||||
|
|
||||||
|
## Usage Example
|
||||||
|
|
||||||
|
```python
|
||||||
|
# How to use this skill
|
||||||
|
# Inputs: query (string): the research question or topic to investigate, tools (list, optional): selected web search/tools to use (e.g., Tavily, Google, NewsAPI, DuckDuckGo), api_keys (dict, optional): credentials for LLM and external search APIs, model_config (dict, optional): LLM provider and parameters
|
||||||
|
# Process: 1. Accept user query and optional tool selections. → 2. Initialize agent framework (e.g., LangGraph) with integrated tools: web search (Tavily, Google, DuckDuckGo), news API, web scraping. → 3. Decompose query into sub-questions if needed and iteratively call tools to gather relevant information.
|
||||||
|
# Outputs: ResearchReport (JSON/dict) with fields: query (string), summary (string), sections (list of {heading, content}), sources (list of {url, tool_used, title}), potential_biases (string), Optional UI rendering of report with source badges and expandable sections
|
||||||
|
```
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "autonomous-web-research-agent",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"goal": "Autonomously research a given query on the web using multiple search tools and generate a structured report with summary, detailed sections, source tracking, and bias analysis.",
|
||||||
|
"inputs": [
|
||||||
|
"query (string): the research question or topic to investigate",
|
||||||
|
"tools (list, optional): selected web search/tools to use (e.g., Tavily, Google, NewsAPI, DuckDuckGo)",
|
||||||
|
"api_keys (dict, optional): credentials for LLM and external search APIs",
|
||||||
|
"model_config (dict, optional): LLM provider and parameters"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
"1. Accept user query and optional tool selections.",
|
||||||
|
"2. Initialize agent framework (e.g., LangGraph) with integrated tools: web search (Tavily, Google, DuckDuckGo), news API, web scraping.",
|
||||||
|
"3. Decompose query into sub-questions if needed and iteratively call tools to gather relevant information.",
|
||||||
|
"4. Extract and deduplicate content from retrieved sources, tracking source metadata (URL, tool used).",
|
||||||
|
"5. Use a large language model to synthesize findings into an executive summary and detailed sections.",
|
||||||
|
"6. Analyze potential biases or limitations of gathered sources.",
|
||||||
|
"7. Compile a structured report object (ResearchReport) containing query, summary, sections, sources, biases.",
|
||||||
|
"8. Optionally present report via a UI (e.g., Streamlit) or return as JSON."
|
||||||
|
],
|
||||||
|
"outputs": [
|
||||||
|
"ResearchReport (JSON/dict) with fields: query (string), summary (string), sections (list of {heading, content}), sources (list of {url, tool_used, title}), potential_biases (string)",
|
||||||
|
"Optional UI rendering of report with source badges and expandable sections"
|
||||||
|
],
|
||||||
|
"failure_modes": [
|
||||||
|
"Missing or invalid API keys causing tool authentication failures",
|
||||||
|
"Rate limits or network errors from search APIs",
|
||||||
|
"Insufficient or low-quality search results leading to incomplete report",
|
||||||
|
"LLM hallucination or mis-summarization despite source tracking",
|
||||||
|
"Parsing errors in HTML/scraped content"
|
||||||
|
],
|
||||||
|
"confidence": 0.85,
|
||||||
|
"explanation": "The repository implements a generic autonomous web research agent that can be reused for any topical query. The workflow of querying, multi-tool retrieval, synthesis, and structured reporting is not domain-specific and can be extracted as a reusable skill.",
|
||||||
|
"source_repo": "https://github.com/DennisDRX/Faraday-Web-Researcher-Agent.git",
|
||||||
|
"score": 1.0
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# Tests: conditional-request-routing-workflow
|
# Tests: autonomous-web-research-agent
|
||||||
|
|
||||||
## Test Checklist
|
## Test Checklist
|
||||||
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
---
|
|
||||||
name: conditional-request-routing-workflow
|
|
||||||
version: 1.0.0
|
|
||||||
description: Collect a request, classify it via branching logic, and route to an approval
|
|
||||||
or rejection handler to produce a final result
|
|
||||||
inputs:
|
|
||||||
- name: request
|
|
||||||
type: string
|
|
||||||
description: The input text or request to be evaluated and routed
|
|
||||||
steps:
|
|
||||||
- node: Start
|
|
||||||
agent_type: input
|
|
||||||
description: Prompt user and capture the request into state field 'request'
|
|
||||||
next: Classify
|
|
||||||
- node: Classify
|
|
||||||
agent_type: branching
|
|
||||||
description: Evaluate the request and set 'decision' field, routing to Approve on
|
|
||||||
success or Reject on failure
|
|
||||||
input_fields:
|
|
||||||
- request
|
|
||||||
output_field: decision
|
|
||||||
next_node: Approve
|
|
||||||
on_failure: Reject
|
|
||||||
- node: Approve
|
|
||||||
agent_type: default
|
|
||||||
description: Format and output an approval message containing the request
|
|
||||||
input_fields:
|
|
||||||
- request
|
|
||||||
output_field: result
|
|
||||||
prompt: 'Request approved: {request}'
|
|
||||||
- node: Reject
|
|
||||||
agent_type: default
|
|
||||||
description: Format and output a rejection message containing the request
|
|
||||||
input_fields:
|
|
||||||
- request
|
|
||||||
output_field: result
|
|
||||||
prompt: 'Request rejected: {request}'
|
|
||||||
outputs:
|
|
||||||
- name: result
|
|
||||||
type: string
|
|
||||||
description: Final formatted message indicating the outcome (approved or rejected)
|
|
||||||
- name: decision
|
|
||||||
type: string
|
|
||||||
description: Routing decision produced by the branching node
|
|
||||||
tags: []
|
|
||||||
metadata:
|
|
||||||
source_repo: https://github.com/jwwelbor/AgentMap.git
|
|
||||||
extracted_at: ''
|
|
||||||
confidence: 0.92
|
|
||||||
---
|
|
||||||
|
|
||||||
# conditional-request-routing-workflow
|
|
||||||
|
|
||||||
Collect a request, classify it via branching logic, and route to an approval or rejection handler to produce a final result
|
|
||||||
|
|
||||||
## Steps
|
|
||||||
|
|
||||||
1. {'node': 'Start', 'agent_type': 'input', 'description': "Prompt user and capture the request into state field 'request'", 'next': 'Classify'}
|
|
||||||
2. {'node': 'Classify', 'agent_type': 'branching', 'description': "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure", 'input_fields': ['request'], 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'}
|
|
||||||
3. {'node': 'Approve', 'agent_type': 'default', 'description': 'Format and output an approval message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request approved: {request}'}
|
|
||||||
4. {'node': 'Reject', 'agent_type': 'default', 'description': 'Format and output a rejection message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request rejected: {request}'}
|
|
||||||
|
|
||||||
## Inputs
|
|
||||||
|
|
||||||
- {'name': 'request', 'type': 'string', 'description': 'The input text or request to be evaluated and routed'}
|
|
||||||
|
|
||||||
## Outputs
|
|
||||||
|
|
||||||
- {'name': 'result', 'type': 'string', 'description': 'Final formatted message indicating the outcome (approved or rejected)'}
|
|
||||||
- {'name': 'decision', 'type': 'string', 'description': 'Routing decision produced by the branching node'}
|
|
||||||
|
|
||||||
## Failure Modes
|
|
||||||
|
|
||||||
- Empty or missing request input prevents meaningful classification
|
|
||||||
- Branching node fails to resolve a valid route and defaults to rejection path
|
|
||||||
- Prompt template variable missing causes malformed output
|
|
||||||
|
|
||||||
## Source
|
|
||||||
|
|
||||||
Extracted from: [https://github.com/jwwelbor/AgentMap.git](https://github.com/jwwelbor/AgentMap.git)
|
|
||||||
Confidence: 0.92
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Commands: conditional-request-routing-workflow
|
|
||||||
|
|
||||||
## Available Commands
|
|
||||||
|
|
||||||
- `/skill conditional-request-routing-workflow` — Load this skill
|
|
||||||
- `/run conditional-request-routing-workflow` — Execute workflow
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
# Examples: conditional-request-routing-workflow
|
|
||||||
|
|
||||||
## Usage Example
|
|
||||||
|
|
||||||
```python
|
|
||||||
# How to use this skill
|
|
||||||
# Inputs: {'name': 'request', 'type': 'string', 'description': 'The input text or request to be evaluated and routed'}
|
|
||||||
# Process: {'node': 'Start', 'agent_type': 'input', 'description': "Prompt user and capture the request into state field 'request'", 'next': 'Classify'} → {'node': 'Classify', 'agent_type': 'branching', 'description': "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure", 'input_fields': ['request'], 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'} → {'node': 'Approve', 'agent_type': 'default', 'description': 'Format and output an approval message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request approved: {request}'}
|
|
||||||
# Outputs: {'name': 'result', 'type': 'string', 'description': 'Final formatted message indicating the outcome (approved or rejected)'}, {'name': 'decision', 'type': 'string', 'description': 'Routing decision produced by the branching node'}
|
|
||||||
```
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "conditional-request-routing-workflow",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"goal": "Collect a request, classify it via branching logic, and route to an approval or rejection handler to produce a final result",
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"name": "request",
|
|
||||||
"type": "string",
|
|
||||||
"description": "The input text or request to be evaluated and routed"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"node": "Start",
|
|
||||||
"agent_type": "input",
|
|
||||||
"description": "Prompt user and capture the request into state field 'request'",
|
|
||||||
"next": "Classify"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node": "Classify",
|
|
||||||
"agent_type": "branching",
|
|
||||||
"description": "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure",
|
|
||||||
"input_fields": [
|
|
||||||
"request"
|
|
||||||
],
|
|
||||||
"output_field": "decision",
|
|
||||||
"next_node": "Approve",
|
|
||||||
"on_failure": "Reject"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node": "Approve",
|
|
||||||
"agent_type": "default",
|
|
||||||
"description": "Format and output an approval message containing the request",
|
|
||||||
"input_fields": [
|
|
||||||
"request"
|
|
||||||
],
|
|
||||||
"output_field": "result",
|
|
||||||
"prompt": "Request approved: {request}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node": "Reject",
|
|
||||||
"agent_type": "default",
|
|
||||||
"description": "Format and output a rejection message containing the request",
|
|
||||||
"input_fields": [
|
|
||||||
"request"
|
|
||||||
],
|
|
||||||
"output_field": "result",
|
|
||||||
"prompt": "Request rejected: {request}"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"name": "result",
|
|
||||||
"type": "string",
|
|
||||||
"description": "Final formatted message indicating the outcome (approved or rejected)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "decision",
|
|
||||||
"type": "string",
|
|
||||||
"description": "Routing decision produced by the branching node"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"failure_modes": [
|
|
||||||
"Empty or missing request input prevents meaningful classification",
|
|
||||||
"Branching node fails to resolve a valid route and defaults to rejection path",
|
|
||||||
"Prompt template variable missing causes malformed output"
|
|
||||||
],
|
|
||||||
"confidence": 0.92,
|
|
||||||
"explanation": "Extracted from the ReviewFlow CSV example in the AgentMap README. This is a declarative, CSV-defined LangGraph workflow demonstrating the reusable pattern of input -> branching classification -> conditional handling paths. It can be generalized for ticket triage, content moderation, or any route-by-condition use case.",
|
|
||||||
"source_repo": "https://github.com/jwwelbor/AgentMap.git",
|
|
||||||
"score": 1.0
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user