mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 23:58:34 +00:00
- Added documentation for file operation tools - Added documentation for search tools - Added documentation for web scraping tools - Added documentation for specialized tools (RAG, code interpreter) - Added documentation for API-based tools (SerpApi, Serply) Link to Devin run: https://app.devin.ai/sessions/d2f72a2dfb214659aeb3e9f67ed961f7 Co-Authored-By: Joe Moura <joao@crewai.com>
185 lines
4.0 KiB
Plaintext
185 lines
4.0 KiB
Plaintext
---
|
|
title: LinkupSearchTool
|
|
description: A search tool powered by Linkup API for retrieving contextual information
|
|
icon: search
|
|
---
|
|
|
|
## LinkupSearchTool
|
|
|
|
The LinkupSearchTool provides search capabilities using the Linkup API. It allows for customizable search depth and output formatting, returning structured results with contextual information.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
pip install 'crewai[tools]'
|
|
pip install linkup # Required dependency
|
|
```
|
|
|
|
## Usage Example
|
|
|
|
```python
|
|
from crewai import Agent
|
|
from crewai_tools import LinkupSearchTool
|
|
|
|
# Initialize the tool with your API key
|
|
search_tool = LinkupSearchTool(api_key="your-linkup-api-key")
|
|
|
|
# Create an agent with the tool
|
|
researcher = Agent(
|
|
role='Information Researcher',
|
|
goal='Find relevant contextual information',
|
|
backstory='Expert at retrieving and analyzing contextual data.',
|
|
tools=[search_tool],
|
|
verbose=True
|
|
)
|
|
```
|
|
|
|
## Function Signature
|
|
|
|
```python
|
|
def __init__(self, api_key: str):
|
|
"""
|
|
Initialize the Linkup search tool.
|
|
|
|
Args:
|
|
api_key (str): Linkup API key for authentication
|
|
"""
|
|
|
|
def _run(
|
|
self,
|
|
query: str,
|
|
depth: str = "standard",
|
|
output_type: str = "searchResults"
|
|
) -> dict:
|
|
"""
|
|
Perform a search using the Linkup API.
|
|
|
|
Args:
|
|
query (str): The search query
|
|
depth (str): Search depth ("standard" by default)
|
|
output_type (str): Desired result type ("searchResults" by default)
|
|
|
|
Returns:
|
|
dict: {
|
|
"success": bool,
|
|
"results": List[Dict] | None,
|
|
"error": str | None
|
|
}
|
|
|
|
On success, results contains list of:
|
|
{
|
|
"name": str,
|
|
"url": str,
|
|
"content": str
|
|
}
|
|
"""
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
1. Always provide a valid API key
|
|
2. Use specific, focused search queries
|
|
3. Choose appropriate search depth based on needs
|
|
4. Handle potential API errors in agent prompts
|
|
5. Process structured results effectively
|
|
|
|
## Integration Example
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
from crewai_tools import LinkupSearchTool
|
|
|
|
# Initialize tool with API key
|
|
search_tool = LinkupSearchTool(api_key="your-linkup-api-key")
|
|
|
|
# Create agent
|
|
researcher = Agent(
|
|
role='Context Researcher',
|
|
goal='Find detailed contextual information about topics',
|
|
backstory='Expert at discovering and analyzing contextual data.',
|
|
tools=[search_tool]
|
|
)
|
|
|
|
# Define task
|
|
research_task = Task(
|
|
description="""Research the latest developments in quantum computing,
|
|
focusing on recent breakthroughs and applications. Use standard depth
|
|
for comprehensive results.""",
|
|
agent=researcher
|
|
)
|
|
|
|
# The tool will use:
|
|
# query: "quantum computing recent breakthroughs applications"
|
|
# depth: "standard"
|
|
# output_type: "searchResults"
|
|
|
|
# Create crew
|
|
crew = Crew(
|
|
agents=[researcher],
|
|
tasks=[research_task]
|
|
)
|
|
|
|
# Execute
|
|
result = crew.kickoff()
|
|
```
|
|
|
|
## Advanced Usage
|
|
|
|
### Search Depth Options
|
|
```python
|
|
# Quick surface-level search
|
|
results = search_tool._run(
|
|
query="quantum computing",
|
|
depth="basic"
|
|
)
|
|
|
|
# Standard comprehensive search
|
|
results = search_tool._run(
|
|
query="quantum computing",
|
|
depth="standard"
|
|
)
|
|
|
|
# Deep detailed search
|
|
results = search_tool._run(
|
|
query="quantum computing",
|
|
depth="deep"
|
|
)
|
|
```
|
|
|
|
### Output Type Options
|
|
```python
|
|
# Default search results
|
|
results = search_tool._run(
|
|
query="quantum computing",
|
|
output_type="searchResults"
|
|
)
|
|
|
|
# Custom output format
|
|
results = search_tool._run(
|
|
query="quantum computing",
|
|
output_type="customFormat"
|
|
)
|
|
```
|
|
|
|
### Error Handling
|
|
```python
|
|
results = search_tool._run(query="quantum computing")
|
|
if results["success"]:
|
|
for result in results["results"]:
|
|
print(f"Name: {result['name']}")
|
|
print(f"URL: {result['url']}")
|
|
print(f"Content: {result['content']}")
|
|
else:
|
|
print(f"Error: {results['error']}")
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Requires valid Linkup API key
|
|
- Returns structured search results
|
|
- Supports multiple search depths
|
|
- Configurable output formats
|
|
- Built-in error handling
|
|
- Thread-safe operations
|
|
- Efficient for contextual searches
|