This is a submission for the Agent.ai Challenge: Full-Stack Agent (See Details)
What I Built
I created BlogAI: Read or Skip?, an agent designed to help readers decide whether a blog post is worth reading. The agent analyzes the content of articles and provides:
- A concise summary of the article.
- A detailed quality evaluation, scored on specific criteria such as coherence, uniqueness, and structure.
- An AI-generation detection result, determining if the article was likely written by a human or AI.
This agent saves time for readers by quickly highlighting the strengths, weaknesses, and authenticity of a blog post, allowing users to focus on content that truly matters.
Demo
You can try the agent here: BlogAI: Read or Skip?.
Here's a quick demo of how the agent works: I took a real article from Dev.to's main page and ran it through the system. You'll see how it generates a summary, evaluates the content's quality, and detects if it might be AI-generated—all in just a few steps!
Here's another demo using my own article: Logs Don’t Lie: Debugging My Data Engineering Crisis in 2025. This showcases how the agent summarizes, evaluates the quality, and detects AI patterns, giving quick and actionable insights into the content.
Below is the result generated by the agent:
Title: Logs Don't Lie: Debugging My Data Engineering Crisis in 2025
Quick Overview: So I just read this really honest blog post by a data engineer reflecting on their career and personal growth heading into 2025. It's a refreshingly vulnerable piece about professional identity, imposter syndrome, and career evolution in tech. The writing style is engaging and relatable, using clever programming-themed headers to organize different topics.
Key Points: The author opens up about questioning their identity as "just another data engineer" despite having solid credentials and experience. They're working toward AWS certification not just for the credential, but to broaden their knowledge and create new opportunities. It's nice to see someone acknowledge that certifications aren't just about LinkedIn badges.
There's an interesting section about wanting to transition from pure data engineering to data architecture. The author explains how they're drawn to bigger-picture thinking and system design, though they're realistic about the time and experience needed for this shift. They're also planning to learn more about AI to stay relevant.
A big focus is on their struggles with blogging and getting feedback. They recently moved to a hosted platform but are finding it challenging to build an audience and maintain motivation for promotion. This part felt particularly genuine - the frustration of creating content without knowing if it's reaching or helping anyone.
Why It's Useful: This article would resonate with many tech professionals dealing with career uncertainty or imposter syndrome. While it doesn't offer groundbreaking solutions, it provides a relatable perspective on common challenges and some practical steps for professional growth. The honest tone and personal examples make it more valuable than typical career advice pieces.
Article Evaluation
Text Length: 8/10 Comprehensive article with substantial depth, personal insights, and detailed exploration of multiple relevant topics in data engineering career development.
Usefulness: 7/10 Provides actionable insights about career development, certification paths, and personal growth in data engineering, though some sections could be more specific with concrete steps.
Uniqueness: 8/10 Refreshingly honest personal narrative that combines technical insights with vulnerability about career challenges, offering a distinctive perspective on professional growth.
Coherence: 9/10 Well-structured flow using a debugging metaphor throughout, with clear transitions between topics and consistent thematic elements.
Structure: 9/10 Excellent use of headers formatted as error messages, appropriate use of images, bullet points, and formatting that enhances readability and engagement.
Overall Rating: 8.2/10
Verdict: This article is worth reading in full, particularly for data engineers experiencing career uncertainty or seeking growth direction, as it offers an authentic, well-structured narrative that combines personal experience with practical career development insights.
AI-generated text conclusion: The text is likely written by a human.
How It Works:
-
User Input:
The user provides the URL of a blog post they want to evaluate.
-
Content Scraping:
The agent retrieves the article's content using the Web Page Content scraper, ensuring all necessary text data is extracted for analysis.
-
Summary Generation:
A conversational summary is created using an LLM prompt. The summary explains the key points of the article in a natural, conversational style while highlighting any potential weaknesses or areas where the article might lack depth.
-
Quality Evaluation:
The agent evaluates the article across several criteria to determine its overall quality:
Text Length: The LLM prompt assesses whether the article provides sufficient depth and detail, flagging overly brief or shallow content.
Usefulness: The LLM prompt determines if the article delivers actionable insights and valuable knowledge, avoiding generic or surface-level information.
Uniqueness: The LLM evaluates whether the article offers original perspectives or simply rehashes common knowledge.
Coherence and Structure: The LLM assesses the logical flow, organization, and clarity of the article. -
Text Sample Extraction:
To perform AI-detection analysis, three non-overlapping text samples (maximum of 400 characters each) are extracted from different parts of the article (beginning, middle, and end) using another LLM prompt. The prompt ensures the samples are representative and preserve the original wording without introducing errors or formatting issues.
-
Text Sanitization:
The extracted text samples are sanitized using a Python serverless function. This function removes non-ASCII characters, single quotes, and any potentially problematic symbols, ensuring the samples are safe for the POST request payload.
-
AI Detection:
The sanitized text samples are sent to Winston's AI-detection API using a POST request. The API evaluates the text and returns a JSON result with a "score" field (indicating the likelihood of the text being AI-generated) and a "status" field (indicating the success of the API call).
-
Results Display:
The agent combines all outputs into a comprehensive and user-friendly report, which includes:
A conversational summary of the article.
A quality evaluation with detailed scores for each criterion.
An AI-detection verdict that specifies whether the text is likely AI-generated, based on the API score.
Agent.ai Experience
In general, if you need to create a simple agent with 4-5 actions (like basic LLM prompts) without complex transformations, this tool works quite well, especially for users with limited programming experience. However, more advanced functionalities give the impression of a product that is still in development.
Here are some issues I encountered:
- The existing documentation is outdated and unhelpful (e.g., https://docs.agent.ai/actions/invoke_other_agent).
- Some features are unintuitive. For example, extracting a field from a JSON returned by an API call required a lot of trial and error due to a lack of clear guidance.
- API calls wrap the entire POST request body into a string instead of handling parameters separately. This required me to create a Python serverless function to sanitize parameters for POST requests, and even then, its reliability wasn’t consistent.
- The Web Page Scraper occasionally returned an empty result with no clear explanation or error messaging.
- It would be helpful if task parallelization was supported. For example, in my agent, three LLM models process the variable from web scraping sequentially. If they could run in parallel, the agent would be significantly faster.
The Python serverless function workflow is not intuitive either. The dual "Save" and "Deploy" buttons make the process confusing, and there is no debugging for serverless code. This leads to unnecessary guesswork during development.
Finally, I attempted to wrap my AI Content Detector into a separate agent, but 50% of the time it returned errors with no way to debug the root cause, even though the same steps worked perfectly in the main agent.
Earlier in the week, the UI frequently froze on "Save," but this seems to have improved. However, the lack of response to reported issues (e.g., wrapping parameters in POST requests) was frustrating.
Overall, while the tool has potential, it feels too raw for consistent use at this stage. I look forward to future improvements that could make it more reliable for building complex workflows.
Top comments (0)