Adala
用真值数据训练可迭代学习的数据标注与处理技能。
- Star 数
- ★ 1.6k
- 最近更新
- 5 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 42/100 · 缺口较多
30 秒速览
- 可在哪里用
- 兼容但需适配OpenAI API
- 开始前需要
- 典型场景
- 数据科学家在 Notebook 中有一份已人工标注的文本表,需要训练并运行情感分类。
- 主要局限
- 文档示例要求 OpenAI 或 OpenRouter API 密钥,实际运行依赖外部模型服务与网络访问。
这个 Agent 能做什么,适合哪些场景?
Adala 是面向数据处理、尤其是数据标注任务的 Python 智能体框架。它以 ground truth 数据集定义环境,由 Agent 在 StaticEnvironment 中学习并执行技能;README 将 runtime 定义为 LLM。示例使用 ClassificationSkill、OpenAIChatRuntime 和 pandas DataFrame:先调用 agent.learn(),再用 agent.run() 对新数据生成预测。已列出的技能示例涵盖分类、摘要、问答、翻译、文本生成、技能序列、ontology 推断和 GSM8K 数学推理。当前材料展示的是 Python 库和 Notebook 工作流;命令行、REST API、视觉与多模态技能仍在路线图中。
用户把带标签的 pandas DataFrame 传给 StaticEnvironment(df=train_df),并用 ClassificationSkill 定义 name、instructions、labels、input_template 与 output_template。Agent 将该技能与 runtimes、teacher_runtimes 中的 OpenAIChatRuntime 关联;示例以 gpt-4o 为模型,调用 agent.learn(learning_iterations=3, accuracy_threshold=0.95) 进行学习。随后 agent.run(test_df) 读取新的 DataFrame 并返回 predictions。也可将 OpenAIChatRuntime 的 base_url 设为 https://openrouter.ai/api/v1、provider 设为 Custom,以 OpenRouter 调用 anthropic/claude-3.5-haiku。
- 数据科学家在 Notebook 中有一份已人工标注的文本表,需要训练并运行情感分类。
- AI 工程师需要把 ClassificationSkill 等模块化技能接入一个以 pandas DataFrame 为输入的处理流程。
- 研究人员希望在同一框架中试验分类、摘要、问答、翻译或技能序列等任务。
- 团队已有 ground truth 样本,想以学习迭代次数和准确率阈值控制技能学习过程。
- 使用 OpenRouter 的开发者需要通过 OpenAI 兼容接口改用 Claude 3.5 Haiku。
如何安装或部署这个 Agent?
安装:pip install adala。如需从仓库安装最新版:pip install git+https://github.com/HumanSignal/Adala.git。开发安装:git clone https://github.com/HumanSignal/Adala.git,进入 Adala/ 后执行 poetry install。使用 OpenAI 示例前设置凭据:export OPENAI_API_KEY='your-openai-api-key';使用 OpenRouter 时设置:export OPENROUTER_API_KEY='your-openrouter-api-key'。
如何使用这个 Agent?
最小流程是导入 Agent、StaticEnvironment、ClassificationSkill 和 OpenAIChatRuntime,用带 text、sentiment 列的训练 DataFrame 创建 StaticEnvironment,再创建 Agent(environment=..., skills=ClassificationSkill(name='sentiment', instructions='Label text as positive, negative or neutral.', labels=['Positive','Negative','Neutral'], input_template='Text: {text}', output_template='Sentiment: {sentiment}'), runtimes={'openai': OpenAIChatRuntime(model='gpt-4o')}, teacher_runtimes={'default': OpenAIChatRuntime(model='gpt-4o')}, default_runtime='openai')。随后执行 agent.learn(learning_iterations=3, accuracy_threshold=0.95),并以 predictions = agent.run(test_df) 对只含 text 列的新 DataFrame 生成结果。若使用 OpenRouter,将 runtime 的 base_url 设为 https://openrouter.ai/api/v1,模型设为 anthropic/claude-3.5-haiku,并传入 OPENROUTER_API_KEY。
这个 Agent 有哪些优点和局限?
- 以 ground truth 数据集作为环境,学习与运行流程围绕可验证的训练样本展开。
- 技能、执行 runtime 与 teacher runtime 可分别配置;README 明确展示一个技能配合多个 runtime 的结构。
- 提供可直接复用的 pandas/Notebook 工作流,并列出分类、摘要、问答、翻译和文本生成等示例。
- 除 OpenAI 配置外,还记录了经 OpenRouter 使用 OpenAI 兼容接口调用 Claude 3.5 Haiku 的方式。
- 文档示例要求 OpenAI 或 OpenRouter API 密钥,实际运行依赖外部模型服务与网络访问。
- README 仅给出 OpenAIChatRuntime 和 OpenRouter 配置;其他 provider 的兼容性、行为差异与支持范围没有证据。
- 命令行工具、REST API、视觉/多模态技能仍列在路线图中,不能作为现有能力采用。
- 学习质量取决于用户提供的 ground truth 数据;材料未给出数据规模、评测基准或失败恢复机制。
这个 Agent 与同类方案有什么区别?
README 将直接使用 OpenAIChatRuntime 与通过 OpenRouter 的 OpenAI 兼容接口调用 Claude 3.5 Haiku 并列展示。前者使用 OPENAI_API_KEY 和 model='gpt-4o';后者需设置自定义 base_url、provider='Custom' 与 OPENROUTER_API_KEY。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| Adala 当前 | 42 · 缺口较多 | ★ 1.6k | 5 天前 | Python | OpenAI API |
| EDSL(Expected Parrot 领域特定语言) | 63 · 存在缺口 | ★ 497 | 5 天前 | Python | OpenAI API · Claude API |
| K-Dense BYOK | 49 · 缺口较多 | ★ 1.2k | 12 天前 | TypeScript | ChatGPT · Codex · Claude.ai |
| MiroFlow 研究智能体 | 53 · 缺口较多 | ★ 3.1k | 7 个月前 | Python | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:框架要求用户提供API密钥(如OPENAI_API_KEY),但未提供权限最小化或沙箱机制;没有用户确认步骤;数据流透明度有限,仅通过文档描述;敏感数据处理未明确说明;依赖项众多且部分来自GitHub直接链接,存在供应链风险;外部效应未明确;无回滚机制;来源归属仅通过作者信息。扣分原因:缺乏安全机制和透明度。
证据显示:README和pyproject.toml一致,但版本号不一致(README未提及版本,pyproject为0.0.4dev);依赖项固定版本,但部分依赖来自GitHub直接链接,可用性风险;失败消息未在文档中说明。扣分原因:依赖可用性风险,失败处理不透明。
证据显示:README明确了目标用户(AI工程师、ML研究者等)和使用场景;能力边界通过技能类型说明;触发精度未明确;环境适配支持Python 3.10+和多种LLM提供商。扣分原因:触发精度不明确。
证据显示:README结构清晰,包含安装、快速开始、示例等;安装说明详细;命名稳定(adala);示例丰富;已知限制未明确;许可证为Apache-2.0;版本号存在但无changelog;维护责任未明确。扣分原因:缺少已知限制和changelog。
证据显示:输出为DataFrame,可直接使用;边际价值高,提供自主学习和多技能支持;成本效益未量化。扣分原因:成本效益未量化。
证据显示:README中的声明部分有示例支持,但未提供独立验证;测试cassettes存在,但未独立运行;事实与推断未明确区分。扣分原因:缺乏独立验证和事实/推断分离。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 依赖项包含来自GitHub直接链接的包,存在供应链风险,建议审查依赖来源。
- 框架需要用户提供API密钥,但未提供权限最小化或沙箱机制,使用时需谨慎。
- 版本号与README不一致,且无changelog,升级时需注意兼容性。
常见问题
需要什么凭据?
OPENAI_API_KEY。通过 OpenRouter 使用 Claude 3.5 Haiku 的示例需要 OPENROUTER_API_KEY。它能否直接处理未标注数据?
agent.run(test_df) 生成预测;学习环境本身由 ground truth 数据集提供。