mcpField
E
experiment

experiment

github.com/allenai数据与数据库4355 次安装今天更新
代码仓库

关于 experiment

Asta 的实验技能可针对计算研究任务编写并运行软件,随后生成结果报告;也可分析用户提供的实验数据并撰写研究报告。

主要功能

  1. 01运行软件实验
  2. 02分析提供的实验数据
  3. 03生成研究报告
  4. 04通过环境变量配置模型

适用场景

  1. 01用软件检验研究问题
  2. 02分析外部实验数据
  3. 03比较模型在任务中的表现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/allenai/asta-plugins --skill experiment

安装后在 Claude Code 中输入/experiment确认已加载。

详细介绍

运行实验

运行一项计算实验。对于可以通过软件解答的研究问题,此技能会编写并运行所需的软件,并生成结果报告。

即使实验并非由 Asta 执行,此技能也可用于分析实验数据并据此生成研究报告。在这种情况下,用户可以通过文件输入提供实验数据,Asta 会进行分析并生成报告。

环境变量

asta experiment(Panda)从环境变量中读取模型选择和凭据。这些选项不会作为 CLI 标志公开,因此如果要覆盖默认值,请在调用此技能前设置环境变量。

模型选择:

  • PANDA_LLM — 选择底层 LLM(例如,Claude 或 GPT 模型名称)。如果未设置,则使用 panda_agent/config.py 中定义的默认值。

提供商凭据(根据通过 PANDA_LLM 选择的模型设置相应的凭据):

  • OPENAI_API_KEY — GPT 模型所必需;Panda 的默认配置也需要此项。
  • ANTHROPIC_API_KEY — 使用 Claude 模型所必需。
  • TOGETHER_API_KEY — 使用 Mistral 或 Llama 模型所必需。
  • INFERD_TOKEN — 使用 OLMo 模型所必需。

示例 — 使用 Claude 运行实验:

export PANDA_LLM="claude-3-5-sonnet-latest"
export ANTHROPIC_API_KEY="..."
asta experiment --task "..." --outputs_dir "$OUTPUTS_DIR" --result_file "$OUTPUTS_DIR/result.json"

如需查看受支持模型的权威列表和其他变量,请参阅 asta experiment --help 和 Panda README。

工作流

用户可以:

  1. 描述研究任务(TASK)并(可选)提供背景知识(BACKGROUND_KNOWLEDGE) 或
  2. 提供包含以下内容的文件路径 a. 任务(TASK_FILE) b. (可选)背景知识(BACKGROUND_KNOWLEDGE_FILE)
默认输出位置

重要提示:请始终指定输出位置,以便将实验整理到 .asta/experiment/ 中:

  • OUTPUTS_DIR:.asta/experiment/<YYYY-MM-DD-slug>/,其中:
    • YYYY-MM-DD 是当前日期
    • slug 是根据任务生成的简短描述性名称(例如,"french-translation"、"gpt4-eval")
  • RESULT_FILE:<OUTPUTS_DIR>/result.json

目录结构示例:

.asta/experiment/
├── 2024-01-15-french-translation/
│   ├── result.json
│   └── [experiment outputs]
└── 2024-01-16-model-comparison/
    ├── result.json
    └── [experiment outputs]

用户也可以选择通过以下方式覆盖这些位置: 3. 为实验输出指定自定义目录(OUTPUTS_DIR) 4. 为结果摘要 JSON 指定自定义路径(RESULT_FILE)

任务和背景知识

如果用户描述了任务并(可选)提供背景知识,请按以下方式运行:

使用默认输出位置(推荐):

# Create output directory with date and slug
OUTPUTS_DIR=".asta/experiment/$(date +%Y-%m-%d)-<task-slug>"
mkdir -p "$OUTPUTS_DIR"

asta experiment \
  --task "TASK" \
  --background_knowledge "BACKGROUND_KNOWLEDGE" \
  --force_report \
  --outputs_dir "$OUTPUTS_DIR" \
  --result_file "$OUTPUTS_DIR/result.json"

示例:

# Task: Assess GPT-4 translation quality
OUTPUTS_DIR=".asta/experiment/$(date +%Y-%m-%d)-gpt4-french-translation"
mkdir -p "$OUTPUTS_DIR"

asta experiment \
  --task "Perform an experiment to assess how good gpt-4o is at translating into French. Use just 5 test examples." \
  --force_report \
  --outputs_dir "$OUTPUTS_DIR" \
  --result_file "$OUTPUTS_DIR/result.json"

使用自定义输出位置(用户指定时):

asta experiment \
  --task "TASK" \
  --background_knowledge "BACKGROUND_KNOWLEDGE" \
  --force_report \
  --outputs_dir "/custom/path/experiments/" \
  --result_file "/custom/path/result.json"
任务和背景知识文件

如果用户提供了包含任务和背景知识的文件:

使用默认输出位置(推荐):

# Create output directory with date and slug (derived from task filename or content)
OUTPUTS_DIR=".asta/experiment/$(date +%Y-%m-%d)-<task-slug>"
mkdir -p "$OUTPUTS_DIR"

asta experiment \
  --task_file "TASK_FILE" \
  --background_knowledge_file "BACKGROUND_KNOWLEDGE_FILE" \
  --force_report \
  --outputs_dir "$OUTPUTS_DIR" \
  --result_file "$OUTPUTS_DIR/result.json"

示例:

# Files: my_project/task.txt, my_project/background_knowledge.txt
OUTPUTS_DIR=".asta/experiment/$(date +%Y-%m-%d)-custom-experiment"
mkdir -p "$OUTPUTS_DIR"

asta experiment \
  --task_file "my_project/task.txt" \
  --background_knowledge_file "my_project/background_knowledge.txt" \
  --force_report \
  --outputs_dir "$OUTPUTS_DIR" \
  --result_file "$OUTPUTS_DIR/result.json"

使用自定义输出位置(用户明确指定路径时):

asta experiment \
  --task_file "my_project/task.txt" \
  --background_knowledge_file "my_project/background_knowledge.txt" \
  --force_report \
  --outputs_dir "my_project/experiments/" \
  --result_file "my_project/result.json"
注意事项
  • 输出目录:运行实验前,始终使用 mkdir -p 创建 .asta/experiment/<YYYY-MM-DD-slug>/ 目录
  • 任务 Slug:根据任务创建简短的描述性 slug(例如,"gpt4-translation"、"model-comparison")。使用小写字母并以连字符分隔。
  • 结果文件:为保持一致,始终保存到 <OUTPUTS_DIR>/result.json
  • 背景知识:可选 — 用户未提供时可省略
  • 自定义路径:如果用户明确提供了自定义输出路径,请使用这些路径,而非默认路径
  • 始终向用户返回结果,并告知他们输出的保存位置

评论

支持 Markdown