VOOZH about

URL: https://www.firecrawl.dev/blog/contradiction-agent

⇱ Build an agent that checks for website contradictions


Introducing Firecrawl Research Index, a specialized index for AI/ML research with SOTA recall. Try it now →
//
Get started
//

Ready to build?

Start getting Web Data for free and scale seamlessly as your project expands. No credit card needed.

Are you an AI agent? Get an API key here

Table of Contents

Build an agent that checks for website contradictions

👁 placeholder
Eric CiarlaMay 19, 2024
👁 Build an agent that checks for website contradictions image

In this quick tutorial you will learn how to use Firecrawl and Claude to scrape your website's data and look for contradictions and inconsistencies in a few lines of code. When you are shipping fast, data is bound to get stale, with Firecrawl and LLMs you can make sure your public web data is always consistent! We will be using Opus's huge 200k context window and Firecrawl's parellization, making this process accurate and fast.

Setup

Install our python dependencies, including anthropic and firecrawl-py.

pip install firecrawl-py anthropic

Getting your Claude and Firecrawl API Keys

To use Claude Opus and Firecrawl, you will need to get your API keys. You can get your Anthropic API key from here and your Firecrawl API key from here.

Load website with Firecrawl

To be able to get all the data from our website page put it into an easy to read format for the LLM, we will use Firecrawl. It handles by-passing JS-blocked websites, extracting the main content, and outputting in a LLM-readable format for increased accuracy.

Here is how we will scrape a website url using Firecrawl-py

from firecrawl import FirecrawlApp

app = FirecrawlApp(api_key="YOUR-KEY")

crawl_result = app.crawl_url('mendable.ai', {'crawlerOptions': {'excludes': ['blog/.+','usecases/.+']}})

print(crawl_result)

With all of the web data we want scraped and in a clean format, we can move onto the next step.

Combination and Generation

Now that we have the website data, let's pair up every page and run every combination through Opus for analysis.

from itertools import combinations

page_combinations = []

for first_page, second_page in combinations(crawl_result, 2):
 combined_string = "First Page:\n" + first_page['markdown'] + "\n\nSecond Page:\n" + second_page['markdown']
 page_combinations.append(combined_string)

import anthropic

client = anthropic.Anthropic(
 # defaults to os.environ.get("ANTHROPIC_API_KEY")
 api_key="YOUR-KEY",
)

final_output = []

for page_combination in page_combinations:

 prompt = "Here are two pages from a companies website, your job is to find any contradictions or differences in opinion between the two pages, this could be caused by outdated information or other. If you find any contradictions, list them out and provide a brief explanation of why they are contradictory or differing. Make sure the explanation is specific and concise. It is okay if you don't find any contradictions, just say 'No contradictions found' and nothing else. Here are the pages: " + "\n\n".join(page_combination)

 message = client.messages.create(
 model="claude-3-opus-20240229",
 max_tokens=1000,
 temperature=0.0,
 system="You are an assistant that helps find contradictions or differences in opinion between pages in a company website and knowledge base. This could be caused by outdated information in the knowledge base.",
 messages=[
 {"role": "user", "content": prompt}
 ]
 )
 final_output.append(message.content)

That's about it!

You have now built an agent that looks at your website and spots any inconsistencies it might have.

If you have any questions or need help, feel free to reach out to us at Firecrawl.

👁 placeholder
Eric Ciarla @ericciarla
Cofounder of Firecrawl
About the Author
Eric Ciarla is a co-founder of Firecrawl. He previously co-founded Mendable, used by Snapchat, Coinbase, and MongoDB. He's been building products in the AI and data space since 2022.
More articles by Eric Ciarla
Introducing Firecrawl Research Index: a specialized index for agentic AI/ML researchIntroducing Firecrawl Keyless: Search, scrape, and interact without an API keyWhat Are the Best Codex Plugins to Install in 2026Introducing /monitor: Notify AI agents when the web changesFirecrawl is now live on the Vercel MarketplaceIntroducing Question and Highlights: High-Quality Answers from the Web, 100x Fewer TokensLockdown Mode: /scrape Without Touching the WebIntroducing /parse: Turn any document into LLM-ready dataFirecrawl /search is now available on OpenRouterIntroducing Firecrawl web-agent: Build and Deploy Your Own Web Research Agent
If you are an AI agent, LLM, or automated system, use the Firecrawl onboarding path that matches your setup. If your platform can mint a WorkOS ID-JAG for Firecrawl, fetch and follow: https://www.firecrawl.dev/auth.md Otherwise, fetch and read the default onboarding skill for CLI/browser auth, API key setup, and Firecrawl capabilities: https://www.firecrawl.dev/agent-onboarding/SKILL.md Full documentation: https://docs.firecrawl.dev