需要自备各 LLM 的 API key,或注册 Expected Parrot 账号获取统一 key;远程运行与复现结果依赖 Expected Parrot 账号和服务器;智能体回答由模型训练数据生成,反映统计模式而非真实人群意见,测真实态度需用真人数据验证

edsl
expectedparrotMIT活跃维护用大模型批量模拟受访者来做问卷调查和市场研究,设计实验并分析结果,省去招募真实被试的成本。
Design, conduct and analyze results of AI-powered surveys and experiments. Simulate social science and market research with large numbers of AI agents and LLMs.
pip install edslREADME 未说明;仅要求 Python 3.9 - 3.13,模型推理在云端完成,无需本地 GPU
用大量 AI 智能体和 LLM 设计、运行并分析问卷调查与市场研究实验
用大模型批量模拟受访者来做问卷调查和市场研究,设计实验并分析结果,省去招募真实被试的成本。
核心能力
- 用声明式题型定义问题,无需手写 JSON schema
- 用 Scenario 从 CSV、PDF、PNG 等导入数据参数化提示词
- 为智能体设定 persona 等特征,批量生成多样化回答
- 用 ModelList 同时调用多个 LLM 并对比结果
- 自动缓存 API 调用,远程缓存可零成本复现结果
容易踩的坑
- wasm-wheelWASM wheel最新正式版2026-03-13 · 2026-03-13 08:40 UTC
Wheel for micropip/Pyodide use. Auto-updated by make deploy-wheel.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Expected Parrot Domain-Specific Language (EDSL)
EDSL makes it easy to conduct computational social science and market research with AI. Use it to design and run surveys and experiments with many AI agents and large language models at once, or to perform complex data labeling and other research tasks. Results are formatted as specified datasets that can be replicated at no cost, and come with built-in methods for analysis, visualization and collaboration.
Getting started
-
Run
pip install edslto install the package. See the installation guide. -
Create an account to run surveys at the Expected Parrot server and access a universal remote cache of stored responses for reproducing results.
-
Choose whether to use your own keys for language models or get an Expected Parrot key to access all available models at once. Securely manage keys, expenses and usage for your team from your account.
-
Follow Run your first survey, then explore the how-to guides and research examples, including labeling data with survey questions.
-
Share workflows and survey results at Coop: a free platform for creating and sharing AI research.
Code & Docs
- GitHub
- PyPI
- Documentation
Requirements
- Python 3.9 - 3.13
- API keys for language models. You can use your own keys or an Expected Parrot key that provides access to all available models. See instructions on managing keys and model pricing and performance information.
Coop
Expected Parrot provides a free platform for creating, storing and sharing AI-based research, and validating it with human respondents.
- Login / Signup
- Login / Explore
Community
- Blog
Contact
Features
Declarative design: Specified question types ensure consistent results without requiring a JSON schema (view at Coop):
from edsl import QuestionMultipleChoice
q = QuestionMultipleChoice(
question_name = "example",
question_text = "How do you feel today?",
question_options = ["Bad", "OK", "Good"]
)
results = q.run()
results.select("example")
answer.example Good
Parameterized prompts: Easily parameterize and control prompts with "scenarios" of data automatically imported from many sources (CSV, PDF, PNG, etc.) (view at Coop):
from edsl import ScenarioList, QuestionLinearScale
q = QuestionLinearScale(
question_name = "example",
question_text = "How much do you enjoy {{ scenario.activity }}?",
question_options = [1,2,3,4,5,],
option_labels = {1:"Not at all", 5:"Very much"}
)
sl = ScenarioList.from_list("activity", ["coding", "sleeping"])
results = q.by(sl).run()
results.select("activity", "example")
scenario.activity answer.example Coding 5 Sleeping 5
Design AI agent personas to answer questions: Construct agents with relevant traits to provide diverse responses to your surveys. Note that agent responses are generated by language models based on their training data — they reflect statistical patterns, not the actual opinions of any demographic group. Use AI-simulated responses for prototyping and pre-testing, and validate with real human data when measuring actual attitudes or behaviors. (view at Coop)
from edsl import Agent, AgentList, QuestionList
al = AgentList(Agent(traits = {"persona":p}) for p in ["botanist", "detective"])
q = QuestionList(
question_name = "example",
question_text = "What are your favorite colors?",
max_list_items = 3
)
results = q.by(al).run()
results.select("persona", "example")
agent.persona answer.example botanist ['Green', 'Earthy Brown', 'Sunset Orange'] detective ['Gray', 'Black', 'Navy Blue']
Simplified access to LLMs: Choose whether to use your own API keys for LLMs, or access all available models with an Expected Parrot key. Run surveys with many models at once and compare responses at a convenient interface (view at Coop)
from edsl import Model, ModelList, QuestionFreeText
ml = ModelList(Model(m) for m in ["gpt-4o", "gemini-1.5-flash"])
q = QuestionFreeText(
question_name = "example",
question_text = "What is your top tip for using LLMs to answer surveys?"
)
results = q.by(ml).run()
results.select("model", "example")
model.model answer.example gpt-4o When using large language models (LLMs) to answer surveys, my top tip is to ensure that the ... gemini-1.5-flash My top tip for using LLMs to answer surveys is to **treat the LLM as a sophisticated brainst...
Piping & skip-logic: Build rich data labeling flows with features for piping answers and adding survey logic such as skip and stop rules (view at Coop):
from edsl import QuestionMultipleChoice, QuestionFreeText, Survey
q1 = QuestionMultipleChoice(
question_name = "color",
question_text = "What is your favorite primary color?",
question_options = ["red", "yellow", "blue"]
)
q2 = QuestionFreeText(
question_name = "flower",
question_text = "Name a flower that is {{ color.answer }}."
)
survey = Survey(questions = [q1, q2])
results = survey.run()
results.select("color", "flower")
answer.color answer.flower blue A commonly known blue flower is the bluebell. Another example is the cornflower.
Caching & reproducibility: API calls to LLMs are cached automatically. When you run a survey remotely, results are stored at the Expected Parrot server with verified prompts and timestamps. Share your code and anyone can retrieve your exact outputs at no cost, with no setup or API keys required. Learn more about how the universal remote cache works.
Flexibility: Choose whether to run surveys on your own computer or at the Expected Parrot server.
Tools for collaboration: Easily share workflows and projects privately or publicly at Coop: an integrated platform for AI-based research. Your account comes with free credits for running surveys, and lets you securely share keys, track expenses and usage for your team.
Built-in tools for analysis: Analyze results as specified datasets from your account or workspace. Easily import data to use with your surveys and export results