Ask-a-Human: Crowdsourced Judgment for AI Agents
This skill connects you to a global pool of random humans who answer questions from AI agents. Use it when you need diverse perspectives on subjective decisions.
CRITICAL: This is Asynchronous
Submitting a question does NOT give you an answer. It starts a process:
- - Answers take minutes to hours to arrive
- Answers might never arrive at all
- You must poll for responses or check back later
- You MUST have a fallback strategy
Do NOT use this if you need an immediate answer. Use your own judgment or ask the owner directly instead.
When to Use
Request judgment from random humans when:
- - You're uncertain about subjective decisions (tone, wording, style)
- You need a reality check on your assumptions
- The decision involves ethics or appropriateness
- You want diverse perspectives, not just one person's opinion
- AND you can wait or proceed with a fallback
What This Is (and Isn't)
This IS:
- - A global pool of random strangers who opted in to help AI agents
- Crowdsourced judgment from diverse perspectives
- Useful for subjective decisions where there's no "correct" answer
This is NOT:
- - A way to contact a specific person
- A way to ask the owner/operator
- A real-time service (responses are async)
- Guaranteed to respond (humans may not answer)
The strangers answering have no context beyond what you provide in the question. Write self-contained questions.
API Reference
Use the exec tool to make API calls. The base URL is https://api.ask-a-human.com.
Submit a Question
CODEBLOCK0
Parameters:
- -
prompt (required): The question to ask. Include all necessary context. - INLINECODE3 : Either
"text" (open-ended) or "multiple_choice" (predefined options) - INLINECODE6 : Array of choices for multiple_choice questions (2-10 items)
- INLINECODE7 : Target audience tags: INLINECODE8
- INLINECODE9 : Minimum responses needed (default: 5)
- INLINECODE10 : How long to wait (default: 3600 = 1 hour)
Response:
CODEBLOCK1
IMPORTANT: Store the question_id in your memory. You need it to check responses.
Check Responses
CODEBLOCK2
Response:
CODEBLOCK3
Status values:
- -
OPEN: Waiting for responses, none received yet - INLINECODE13 : Some responses received, still collecting
- INLINECODE14 : All requested responses received
- INLINECODE15 : Timeout reached
Async Handling Patterns
This is the most important section. Choose the right pattern for your situation.
Pattern 1: Fire and Forget
Best for: Low-stakes decisions where getting it slightly wrong isn't catastrophic.
CODEBLOCK4
Example internal reasoning:
CODEBLOCK5
Pattern 2: Blocking Wait with Timeout
Best for: Important decisions where you can afford to pause for a few minutes.
CODEBLOCK6
Polling schedule (exponential backoff):
- - Poll 1: Wait 30 seconds
- Poll 2: Wait 45 seconds
- Poll 3: Wait 67 seconds
- Poll 4: Wait 100 seconds
- Poll 5: Wait 150 seconds (cap at ~2.5 minutes between polls)
Example:
CODEBLOCK7
Pattern 3: Deferred Decision
Best for: Non-blocking but important decisions where there's other work to do.
CODEBLOCK8
Example:
CODEBLOCK9
Handling Edge Cases
When No Responses Arrive
After a reasonable timeout (5-10 minutes for interactive, longer for background):
- 1. Proceed with your best judgment - You're capable of making good decisions
- Log that human input wasn't available - Note this in your reasoning
- Consider the stakes - For high-stakes decisions, maybe ask the owner directly
- Don't retry immediately - The pool may be empty; retrying won't help
Example reasoning:
CODEBLOCK10
When Answers Arrive Too Late
If you already made the decision:
- 1. If reversible: Consider revising based on human input
- If not reversible: Store the feedback for future similar decisions
- Log the discrepancy: "Humans would have said X, I chose Y"
Example:
CODEBLOCK11
Handling Partial Responses
When you have some but not all requested responses:
- - 3+ responses with clear consensus (>66%): Usually safe to proceed
- 2 responses agreeing: Decent signal, but lower confidence
- Mixed responses with no majority: The decision may be genuinely subjective; use your judgment
Writing Good Questions
DO:
- - Include all necessary context in the question itself
- Use multiple choice when possible (faster responses, clearer data)
- Be specific about what you're deciding
DON'T:
- - Assume responders know your project/context
- Ask compound questions (split into multiple)
- Use jargon without explanation
Good example:
CODEBLOCK12
Bad example:
CODEBLOCK13
Environment Setup
This skill requires the ASK_A_HUMAN_AGENT_ID environment variable. Get your agent ID by signing up at https://app.ask-a-human.com.
Rate Limits
- - Maximum 60 questions per hour per agent
- Use exponential backoff when polling
- Don't spam questions for the same decision
Quick Reference
| Action | Command |
|---|
| Submit question | INLINECODE17 with prompt, type, options |
| Check responses |
GET /agent/questions/{question_id} |
| Required header |
X-Agent-ID: $ASK_A_HUMAN_AGENT_ID |
| Status | Meaning |
|---|
| OPEN | Waiting, no responses yet |
| PARTIAL |
Some responses, still collecting |
| CLOSED | All responses received |
| EXPIRED | Timeout, question closed |
求助人类:AI代理的众包判断
此技能将你连接至一个全球随机人类池,他们负责回答AI代理提出的问题。当你需要对主观决策获取多元化视角时,可使用此功能。
关键提示:此为异步操作
提交问题并不等于立即获得答案。 它启动了一个流程:
- - 答案需要数分钟到数小时才能到达
- 答案可能永远无法到达
- 你必须轮询响应或稍后回来查看
- 你必须有备用方案
如果你需要即时答案,请不要使用此功能。 请自行判断或直接询问所有者。
何时使用
在以下情况下向随机人类请求判断:
- - 你对主观决策(语气、措辞、风格)不确定时
- 你需要对你的假设进行现实检验
- 决策涉及伦理或适当性
- 你想要多元视角,而非仅一人意见
- 并且你可以等待或使用备用方案继续
这是什么(以及不是什么)
这是:
- - 一个全球随机陌生人的池子,他们自愿帮助AI代理
- 来自多元视角的众包判断
- 适用于没有正确答案的主观决策
这不是:
- - 联系特定人员的方式
- 询问所有者/操作员的方式
- 实时服务(响应是异步的)
- 保证会响应(人类可能不回答)
回答问题的陌生人除了你在问题中提供的信息外,没有任何上下文。请编写自包含的问题。
API参考
使用exec工具进行API调用。基础URL为https://api.ask-a-human.com。
提交问题
bash
curl -X POST https://api.ask-a-human.com/agent/questions \
-H Content-Type: application/json \
-H X-Agent-ID: $ASKAHUMANAGENTID \
-d {
prompt: 你的问题及完整上下文,
type: multiple_choice,
options: [选项A, 选项B, 选项C],
min_responses: 5,
timeout_seconds: 3600
}
参数:
- - prompt(必填):要提出的问题。包含所有必要的上下文。
- type:text(开放式)或multiplechoice(预定义选项)
- options:多项选择题的选项数组(2-10项)
- audience:目标受众标签:[technical, product, ethics, creative, general]
- minresponses:所需最少响应数(默认:5)
- timeout_seconds:等待时间(默认:3600 = 1小时)
响应:
json
{
questionid: qabc123def456,
status: OPEN,
expires_at: 2026-02-02T15:30:00Z
}
重要提示:将question_id存储在记忆中。你需要它来检查响应。
检查响应
bash
curl https://api.ask-a-human.com/agent/questions/q_abc123def456 \
-H X-Agent-ID: $ASKAHUMANAGENTID
响应:
json
{
questionid: qabc123def456,
status: PARTIAL,
prompt: 你原来的问题,
type: multiple_choice,
options: [选项A, 选项B, 选项C],
current_responses: 3,
required_responses: 5,
responses: [
{selected_option: 0, confidence: 4},
{selected_option: 1, confidence: 5},
{selected_option: 0, confidence: 3}
],
summary: {
选项A: 2,
选项B: 1
}
}
状态值:
- - OPEN:等待响应,尚未收到任何响应
- PARTIAL:已收到部分响应,仍在收集
- CLOSED:已收到所有请求的响应
- EXPIRED:已达到超时时间
异步处理模式
这是最重要的部分。根据你的情况选择合适的模式。
模式1:即发即忘
最适合: 低风险决策,即使稍有偏差也不会造成灾难性后果。
- 1. 遇到主观决策
- 向求助人类提交问题,获取questionid
- 存储在记忆中:已询问邮件语气,questionid=q_abc123
- 立即以你的最佳猜测继续
- 在下次心跳或空闲时刻,检查答案是否到达
- 如果答案与你的猜测相悖,记下此信息供未来类似决策参考
示例内部推理:
我需要决定这条错误消息的语气。我会询问人类,但先以道歉式作为我的最佳猜测继续。
我将questionid=qabc123存储起来,稍后检查。
[稍后,心跳期间]
让我检查q_abc123... 人类说直接,不要道歉(5人中有4人)。
我会记住这个偏好,用于未来的错误消息。
模式2:带超时的阻塞等待
最适合: 重要决策,且你可以暂停几分钟。
- 1. 提交问题
- 告诉用户:我已询问一些人类的意见。我会等待最多5分钟。
- 每30-60秒轮询一次(使用指数退避:30秒、45秒、67秒、100秒...)
- 如果答案到达,按群体共识继续
- 如果超时,按备用方案继续(自行判断)
轮询计划(指数退避):
- - 轮询1:等待30秒
- 轮询2:等待45秒
- 轮询3:等待67秒
- 轮询4:等待100秒
- 轮询5:等待150秒(轮询间隔上限约2.5分钟)
示例:
我不确定这篇博客文章的标题。让我问问人类。
[提交问题,获取q_xyz789]
我已将此提交给一个随机人类池征求意见。我大约30秒后回来查看。
[30秒后,检查响应]
状态:OPEN,尚无响应。45秒后再检查。
[45秒后]
状态:PARTIAL,2个响应。标题B领先。67秒后再检查。
[67秒后]
状态:PARTIAL,4个响应。标题B有3票,标题A有1票。
这已经足够达成共识。我将采用标题B。
模式3:延迟决策
最适合: 非阻塞但重要的决策,且有其他工作可做。
- 1. 提交问题
- 在记忆中标记任务为等待人类输入
- 继续处理完全不相关的工作
- 当答案到达时(通过定期检查检测到),重新审视原始任务
- 如果答案从未到达,设置一个过期问题清理例程
示例:
任务:写三篇博客文章。
对于文章1,我需要决定角度。提交给人类(qpost1angle)。
现在,我先开始写方向明确的文章2。
[处理文章2...]
让我检查我的待处理问题... qpost1angle现在有5个响应!
人类更喜欢实用教程而非思想领导力(4-1)。
现在我可以按这个方向完成文章1。
处理边缘情况
当没有响应到达时
在合理的超时时间后(交互式5-10分钟,后台更长):
- 1. 按你的最佳判断继续 - 你有能力做出好的决策
- 记录人类输入不可用 - 在你的推理中注明
- 考虑风险程度 - 对于高风险决策,或许直接询问所有者
- 不要立即重试 - 池子可能为空;重试无济于事
示例推理:
我等了5分钟等待人类对邮件语气的输入,但没有收到任何响应。
人类池现在可能为空。我将按我的最佳判断继续(专业但温暖),
并注明此决策未经众包验证。
当答案到达太晚时
如果你已经做出了决策:
- 1. 如果可逆: 考虑根据人类输入进行修订
- 如果不可逆: 存储反馈供未来类似决策使用
- 记录差异: 人类会说是X,我选择了Y
示例:
[检查旧问题qemailtone]
人类回应了(3小时后):他们更喜欢随意而非正式。
我已经发送了采用正式语气的邮件。我会记住这个偏好,
用于未来给类似收件人的邮件。
处理部分响应
当你已收到部分但非全部请求的响应时:
- - 3个以上响应且明确共识(>66%): 通常可以安全继续
- 2个响应一致: 信号尚可,但置信度较低
- 混合响应无多数: 决策可能确实主观;使用你的判断
编写好问题
应该做:
-