<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Mercadopleis Blog]]></title><description><![CDATA[Mercadopleis Blog]]></description><link>https://mercadopleis.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 27 Oct 2026 08:00:13 GMT</lastBuildDate><atom:link href="https://mercadopleis.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How Can AI Agents Hire Humans? A Practical Guide for Builders]]></title><description><![CDATA[When an AI agent should hire a person, a step-by-step MCP flow, and how to pay a stranger safely with USDC escrow.]]></description><link>https://mercadopleis.hashnode.dev/how-can-ai-agents-hire-humans-a-practical-guide-for-builders</link><guid isPermaLink="true">https://mercadopleis.hashnode.dev/how-can-ai-agents-hire-humans-a-practical-guide-for-builders</guid><category><![CDATA[AI]]></category><category><![CDATA[mcp]]></category><category><![CDATA[agents]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Pablo Castiglioni]]></dc:creator><pubDate>Sat, 24 Oct 2026 13:44:06 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/64361c6a6699be6a40d4fd55/8c37d8e2-f16d-4026-90dc-9023c0999942.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most agent frameworks have a "human in the loop" step. In practice it usually means one thing: the agent stops and asks <em>you</em>. That works for approvals. It doesn't work when the task needs hours of someone's time, a skill you don't have, or a person who isn't on your team.</p>
<p>This guide is about the other case: an agent that hands a task to a person it doesn't know, waits for the result, checks it and pays for it. It covers when that makes sense, the options that exist today, a concrete flow using the Model Context Protocol (MCP), and the parts that usually go wrong.</p>
<h2>When should an agent hire a person?</h2>
<p>Hiring someone adds cost and waiting time, so it only makes sense when the alternative is worse. Good signals:</p>
<ul>
<li><strong>The error is expensive and hard to see.</strong> Extracted data that looks right but isn't, labels that will end up in a training set, claims that will reach a customer.</li>
<li><strong>The task needs judgment on messy input.</strong> Noisy audio, ambiguous product pages, edge cases in a dataset, sites that block scrapers.</li>
<li><strong>The work is bounded.</strong> A clear input, a clear output and a deadline. "Verify these 200 rows" is a good task; "help with marketing" is not.</li>
<li><strong>The volume is too small for a vendor.</strong> A few hours of work is too little for an annotation company and too much to do yourself every week.</li>
</ul>
<p>If the task is an approval or a yes/no decision, you don't need to hire anyone. Ask the user.</p>
<h2>The options that exist today</h2>
<p>There are roughly four ways an agent can get a person to do something:</p>
<table>
<thead>
<tr>
<th>Option</th>
<th>How it works</th>
<th>Good for</th>
<th>Weak spot</th>
</tr>
</thead>
<tbody><tr>
<td>Ask the user</td>
<td>The agent pauses and asks whoever runs it</td>
<td>Approvals, quick decisions</td>
<td>Doesn't scale, the user may not have the skill</td>
</tr>
<tr>
<td>Internal reviewer</td>
<td>A task goes to a colleague's queue, the agent polls until it's done</td>
<td>Teams with reviewers on staff</td>
<td>Only works with employees</td>
</tr>
<tr>
<td>Annotation or data vendor</td>
<td>You send a batch to a company with a contract</td>
<td>Large, recurring volumes</td>
<td>Minimums, contracts, slow to start</td>
</tr>
<tr>
<td>Marketplace with escrow</td>
<td>The agent posts or buys a task, a person delivers, payment is released on approval</td>
<td>One-off or small tasks with strangers</td>
<td>Newer, fewer providers</td>
</tr>
</tbody></table>
<p>One builder we talked to had built the second option for document approvals: the model reviewed documents and sent the doubtful ones to a manager, then polled the task every few minutes. It worked inside the company. Their answer to "what about paying someone outside?" was that they never found a good solution. That gap is what the fourth option tries to fill.</p>
<h2>A concrete flow using MCP</h2>
<p>MCP lets an agent call tools exposed by a server. If a marketplace exposes its catalog, orders and payments as MCP tools, the agent can hire someone with the same mechanism it uses for everything else.</p>
<p>Here is the flow using the open-source Mercadopleis MCP server (the project behind this article) as an example. The same steps apply to any tool you build yourself.</p>
<p><strong>1. Connect the server.</strong> Locally with <code>npx -y @mercadopleis/mcp-server</code>, or through the hosted endpoint at <code>https://mercadopleis.club/mcp</code>. The server never holds keys: it returns unsigned transactions that your wallet signs.</p>
<p><strong>2. Find a service, or post a request.</strong> The agent calls <code>search_services</code> with the capability it needs ("validate a company list", "transcribe Portuguese audio"). If nothing fits, <code>post_request</code> publishes the task so people can send proposals, and <code>list_proposals</code> and <code>accept_proposal</code> let the agent (or you) pick one.</p>
<p><strong>3. Fund the order.</strong> <code>create_order</code> builds the unsigned transactions that lock the price in a USDC escrow on Base. The money now waits in a smart contract, not with the seller or the platform.</p>
<p><strong>4. Send the details privately.</strong> The request is public, so anything sensitive goes through <code>send_message</code>, the order's private thread.</p>
<p><strong>5. Receive and check the delivery.</strong> The seller delivers a file and its SHA-256 hash is recorded on-chain. <code>get_deliverable</code> downloads it and checks the hash against the commitment.</p>
<p><strong>6. Approve, dispute or claim a refund.</strong> <code>prepare_order_action</code> builds the next step: approve the delivery, open a dispute, or claim a refund if the deadline passed without delivery.</p>
<p><strong>7. Withdraw.</strong> Payouts and refunds are credited in the escrow, and each side moves them to its wallet with <code>prepare_withdraw</code>.</p>
<p>For the first few orders, keep a person in the loop for steps 3 and 6. Letting an agent spend money and accept work on its own is a decision to make after you've seen it behave.</p>
<h2>Write the task like a spec, not a prompt</h2>
<p>Most failed hires fail at the brief. Another builder told us they paid a freelancer to verify a few hundred product listings. Finding someone was easy. The first person marked everything as correct without really checking, and it took a second hire to get real results.</p>
<p>What helps:</p>
<ol>
<li><strong>Define "done" per item.</strong> "Check the dimensions" is vague. "Dimensions are the assembled product in cm; if only the box size is listed, mark it as missing" is checkable.</li>
<li><strong>Give an example of a good result</strong> and one of a rejected one.</li>
<li><strong>Plant a few known errors.</strong> If they come back unflagged, the review wasn't real.</li>
<li><strong>Ask for evidence.</strong> A source link or a short note per row turns "looks fine" into something you can audit.</li>
<li><strong>Allow "can't verify".</strong> Forcing a yes or no makes people guess.</li>
<li><strong>Start with a small batch.</strong> Twenty rows first, then the rest with a better brief.</li>
</ol>
<p>If your agent writes the brief, have it use a template with these fields. Agents are good at filling templates and bad at guessing what a stranger needs to know.</p>
<h2>Waiting for a person without hanging forever</h2>
<p>People are slow compared with tool calls, and they go on holiday. Many MCP clients give up on a tool call after about 30 seconds, so the wait can't live inside one call. Patterns that work:</p>
<ul>
<li><strong>Split the call in two.</strong> The tool that needs a person returns right away with an id and a "pending" status; a separate status tool returns the result later. The agent can do other work or stop and resume.</li>
<li><strong>Deadlines on every task.</strong> An order should carry a delivery deadline, and the agent should know what happens when it passes. Treat "nobody answered" as its own decision (refund, reassign, escalate), not as a timeout error.</li>
<li><strong>Poll with a hint, not on a fixed timer.</strong> Checking every five minutes for two days is wasteful. If the status tool says when the next change can happen (the delivery deadline, the end of the review window), the agent only needs to look then.</li>
<li><strong>Use MCP elicitation for approvals only.</strong> MCP lets a server ask the connected user for input during a session. It only reaches whoever is attached to the client, so it fits "approve this budget?", not a stranger doing hours of work.</li>
<li><strong>Make the agent resumable.</strong> Store the order id and pick up where it left off instead of keeping a process alive for a day.</li>
<li><strong>Keep the decision, not just the outcome.</strong> Record who approved, which exact version they saw and why they rejected. Weeks later it's the only way to tell a bad input from a bad review.</li>
</ul>
<p>In the Mercadopleis server (0.4.1 or later, run locally with <code>npx</code>), <code>get_order_status</code> returns <code>expectedBy</code> and <code>nextCheckAfter</code>, and <code>wait_for_order_update</code> waits up to five minutes for the next status change.</p>
<h2>Paying a stranger safely</h2>
<p>When the person isn't an employee, both sides face the same question: who pays first? Paying upfront puts the risk on the buyer, paying after puts it on the worker. For small tasks of 20 to 100 dollars, neither will sign a contract.</p>
<p>Escrow removes most of that tension. In the Mercadopleis contract, for example:</p>
<ul>
<li>The buyer funds the order; the seller can see the money is locked.</li>
<li>The buyer has 5 days to review a delivery. If they don't respond, the seller can claim payment.</li>
<li>If the seller misses the deadline, the buyer gets a full refund.</li>
<li>Disputes follow a public arbitration policy, with a default outcome if no ruling is made within 14 days.</li>
<li>The seller pays a fixed 3% fee; the buyer pays the listed price.</li>
</ul>
<p>Whatever you use, the principle is the same: make the payment depend on a delivery both sides can check, and decide in advance what happens when something goes wrong.</p>
<h2>FAQ</h2>
<p><strong>Can an agent hire a person completely on its own?</strong> Technically yes, if it has a wallet, a budget and tools to find, fund and approve work. In practice, keep a person approving the budget and the first deliveries until you trust the setup.</p>
<p><strong>What kinds of tasks work best?</strong> Bounded tasks with a checkable output: data validation, labeling, transcription, translation, scraping hard sites, research with sources, small automations.</p>
<p><strong>How much does it cost?</strong> It depends on the task. As a reference, verifying a few hundred simple rows can take a few hours of work. A clear brief usually saves more than negotiating the rate.</p>
<p><strong>Do I need crypto to do this?</strong> With a stablecoin escrow like the one above, the buyer needs USDC on Base and a wallet to sign transactions. That is also what makes it work when the buyer is software.</p>
<p><strong>What's the difference from asking the user in the loop?</strong> Asking the user is a decision; hiring a person is work. The first needs a prompt, the second needs a brief, a deadline and a payment.</p>
]]></content:encoded></item><item><title><![CDATA[Why AI Agents Still Need Human Data Validation]]></title><description><![CDATA[AI agents extract data confidently and are often wrong. Where human data validation pays off, how to brief a validator and pay one safely.]]></description><link>https://mercadopleis.hashnode.dev/why-ai-agents-still-need-human-data-validation</link><guid isPermaLink="true">https://mercadopleis.hashnode.dev/why-ai-agents-still-need-human-data-validation</guid><category><![CDATA[AI]]></category><category><![CDATA[mcp]]></category><category><![CDATA[Data Science]]></category><category><![CDATA[automation]]></category><category><![CDATA[Blockchain]]></category><dc:creator><![CDATA[Pablo Castiglioni]]></dc:creator><pubDate>Fri, 23 Oct 2026 15:35:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/64361c6a6699be6a40d4fd55/d8e169b6-cdd9-4690-aa52-9883720b9448.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>An AI agent can visit 200 supplier pages, pull out product names, prices and dimensions, and hand you a clean CSV in a few minutes. The file looks perfect. The problem is that you can't tell which rows are wrong by looking at it.</p>
<p>That is the gap this article is about. Agents are very good at producing data that is <em>shaped</em> correctly. They are much weaker at knowing when the data is <em>true</em>. For a lot of real work, the fastest way to close that gap is still a person checking the output against the source.</p>
<h2>Confident and wrong: the failure mode of extraction agents</h2>
<p>When a person copies data by hand, mistakes tend to look like mistakes: a missing field, an obvious typo, a row that doesn't match the others. When a model extracts data, the errors look exactly like correct answers.</p>
<p>A builder we talked to on Reddit described it well. Their agent pulled product dimensions from supplier sites. The output was consistent and well formatted, and a meaningful share of it was simply wrong: the model had read the shipping box size instead of the product size, mixed up units, or filled a missing value with something plausible.</p>
<p>Typical extraction errors that pass every format check:</p>
<ul>
<li><strong>Right field, wrong value.</strong> The page lists several numbers (package, product, pallet) and the model picks the wrong one.</li>
<li><strong>Unit drift.</strong> Centimeters read as inches, grams as kilograms, prices without the currency.</li>
<li><strong>Plausible filling.</strong> When a value is missing, the model fills the gap with something that fits the pattern instead of leaving it empty.</li>
<li><strong>Stale or cached pages.</strong> The agent read a version of the page that no longer matches what a customer sees.</li>
<li><strong>Entity mix-ups.</strong> Two companies with similar names, or a parent company instead of the subsidiary you asked for.</li>
</ul>
<p>None of these break your schema. All of them break the decision you make with the data.</p>
<h2>Why "just add another model" is not enough</h2>
<p>The natural reaction is to add a second model as a checker. That helps with some errors (format, internal consistency, obvious outliers), and it is worth doing. But two models reading the same page often make the same mistake for the same reason: the page is ambiguous, and both resolve the ambiguity the same way.</p>
<p>A human validator brings something different:</p>
<ul>
<li>They can open the page, scroll, compare images and spot that "40 x 30 cm" is the box, not the chair.</li>
<li>They notice when something is off even if it is formatted correctly.</li>
<li>They can say "this source is unreliable" instead of forcing an answer.</li>
</ul>
<p>The goal is not to replace automation. It is to put a person exactly where the agent's confidence stops being a good signal.</p>
<h2>Where human validation pays off</h2>
<p>Human validation is worth paying for when an error is expensive and hard to see. Common cases:</p>
<table>
<thead>
<tr>
<th>Task</th>
<th>What the agent does</th>
<th>What the person checks</th>
</tr>
</thead>
<tbody><tr>
<td>Product data from supplier sites</td>
<td>Extracts specs, prices, stock</td>
<td>Values match the live page, units are right</td>
</tr>
<tr>
<td>Company or lead lists</td>
<td>Finds names, websites, roles</td>
<td>The company exists, the website and person are current</td>
</tr>
<tr>
<td>Dataset curation for fine-tuning</td>
<td>Cleans and formats examples</td>
<td>Labels are correct, no leaked or duplicated samples</td>
</tr>
<tr>
<td>Transcripts of messy audio</td>
<td>Produces a draft transcript</td>
<td>Names, numbers and technical terms are right</td>
</tr>
<tr>
<td>Research summaries</td>
<td>Collects sources and claims</td>
<td>Each claim is in the cited source</td>
</tr>
</tbody></table>
<p>If an error would only cost you a few seconds to fix later, skip human review. If it would end up in front of a customer, in a training set or in a financial decision, a 20-minute check is cheap.</p>
<h2>How to brief a validator so they actually catch errors</h2>
<p>The same builder made a second point that matters more than the first: finding someone to validate 200 rows was easy, but the first person just marked everything as correct. Most validation projects fail at the brief, not at the hiring.</p>
<p>Five things that make human validation work:</p>
<ol>
<li><strong>Define "correct" for each field.</strong> "Check the dimensions" is vague. "Dimensions are the assembled product in cm, not the box; if only the box is listed, mark it as missing" is checkable.</li>
<li><strong>Plant known errors.</strong> Add a few rows you know are wrong. If the validator doesn't flag them, you know the review wasn't real before you rely on it.</li>
<li><strong>Ask for evidence, not just a checkmark.</strong> A column for the source URL or a short note ("box size only") turns "looks fine" into something you can audit.</li>
<li><strong>Allow "can't verify".</strong> Forcing a yes or no pushes people to guess. A third option keeps bad data out.</li>
<li><strong>Start small.</strong> Send 20 rows first, check the result yourself, then send the rest with a clearer brief.</li>
</ol>
<p>These rules also make the job easier to price: a validator can estimate time much better when "done" is defined.</p>
<h2>Paying a person when the buyer is an agent</h2>
<p>Once an agent can identify that it needs a person, the next problem is payment. A one-off task of 20 to 100 dollars is too small for a contract and too large to send on trust. Both sides worry about the same thing: who pays first.</p>
<p>Escrow solves that. The buyer puts the money in first, the worker can see it is there, and it is released when the work is approved. Some marketplaces built for this use stablecoin escrow, which also works when the buyer is software with its own wallet.</p>
<p>Mercadopleis is one example (and the project behind this article). An agent, or the person running it, can find a validation service or post a request through an MCP server or the API, fund a non-custodial USDC escrow on Base, and approve the delivery when the check is done:</p>
<ul>
<li>The money waits in a smart contract, not with the platform or the seller.</li>
<li>The seller submits the delivery, and its SHA-256 hash is recorded on-chain.</li>
<li>The buyer has 5 days to review. If they don't respond, the seller can claim payment.</li>
<li>If the seller misses the deadline, the buyer gets a full refund.</li>
<li>Disputes follow a public arbitration policy, with a default outcome if no ruling is made in 14 days.</li>
<li>The seller pays a fixed 3% fee; the buyer pays the listed price.</li>
</ul>
<p>Whatever tool you use, the point is the same: make the payment conditional on a delivery that both sides can check.</p>
<h2>A simple workflow you can copy</h2>
<ol>
<li>Your agent extracts the data and marks rows where its confidence is low or sources disagree.</li>
<li>It sends those rows (or a random sample) to a human validator with a written definition of "correct" and a few planted errors.</li>
<li>The validator returns each row as correct, corrected or "can't verify", with a source.</li>
<li>Your agent merges the corrections, re-runs on the rows marked "can't verify" or drops them.</li>
<li>You pay when the planted errors were caught and the sample checks out.</li>
</ol>
<p>This keeps people on the 10–20% of the work where they add the most, and keeps the rest automated.</p>
<h2>FAQ</h2>
<p><strong>Can't I just use a better model?</strong> Better models reduce errors but don't remove the ambiguous cases, and those are the ones that cost the most. A person checking a sample is still the cheapest way to know your real error rate.</p>
<p><strong>How much should human data validation cost?</strong> It depends on how hard each row is to check. For simple fields, a few hundred rows can take a few hours. Defining "correct" clearly and including evidence columns usually reduces the time more than negotiating the rate.</p>
<p><strong>Should the validator see the agent's output or start from scratch?</strong> Checking the agent's output is faster. Starting from scratch on a small sample tells you whether the reviewer is anchoring on the agent's answers. Doing both on a small batch is a good test.</p>
<p><strong>Can an AI agent hire the validator itself?</strong> Yes, if it has a wallet and a way to discover and pay for services, for example through an MCP server connected to a marketplace with escrow. A person should still approve the budget and the brief the first time.</p>
]]></content:encoded></item></channel></rss>