【免费下载链接】skillPinchBench is a benchmarking system for evaluating LLM models as OpenClaw coding agents. Made with by the humans at https://kilo.ai项目地址https://gitcode.com/gh_mirrors/skill1/skill点击查看免费下载PinchBench 是一个开源基准测试系统benchmark用于评估 LLM 模型作为 OpenClaw 编码智能体coding agent完成真实任务的能力。这篇贡献指南带你走完全流程编写你的第一个基准任务、在tasks/manifest.yaml中注册、跑通 Lint 检查与单元测试pytest最后本地验证并提交 PR。一、PinchBench 是什么值得贡献吗PinchBench 不做合成考题而是把 53 个真实世界任务直接丢给智能体排会议、写代码、分诊邮件、查股价、分析 CSV……每个任务都有明确的评分标准由自动化脚本、LLM 评审或两者混合hybrid打分。它考察的不是模型知道多少而是工具调用— 能否用正确参数调用正确的工具多步推理— 能否把一系列动作串起来完成复杂任务真实世界的脏乱— 能否处理模糊指令与不完整信息上图就是仓库里真实任务使用的照片素材之一——PinchBench 的基准任务覆盖图像识别、数据分析、邮件分诊等几乎全部日常场景。仓库目录速览目录 / 文件作用tasks/基准任务定义Markdown YAML frontmatter贡献主战场tasks/manifest.yaml任务清单分类、顺序、core 快速集的唯一事实来源scripts/基准运行器、评分引擎与 Lint 脚本tests/单元测试pytest / unittestassets/任务工作区素材CSV 数据集、图片、会议记录等二、第一步克隆仓库并验证运行环境环境要求Python 3.10、uv包管理器、一个运行中的 OpenClaw 实例。git clone https://gitcode.com/gh_mirrors/skill1/skill cd skill安装开发依赖pytest、pytest-cov、black、ruff 均配置在 pyproject.toml 的dev可选依赖中uv sync --extra dev用最小任务task_sanity冒烟验证环境--no-upload只保留本地结果不上传./scripts/run.sh --model openrouter/openai/gpt-4o --suite task_sanity --no-upload 模型 ID 必须带 provider 前缀scripts/run.sh 只是 scripts/benchmark.py 的便捷入口。三、如何编写一个基准任务文件1. 从官方模板开始模板是 tasks/TASK_TEMPLATE.md复制并重命名即可cp tasks/TASK_TEMPLATE.md tasks/task_my_first_task.md⚠️ 关键规则frontmatter 里的id必须与文件名去掉.md完全一致否则 Lint 直接报错。2. 填写 YAML frontmatter--- id: task_my_first_task name: My First Task category: csv_analysis # 必须与 manifest.yaml 中的分类一致 grading_type: automated # automated | llm_judge | hybrid timeout_seconds: 120 workspace_files: - source: csvs/apple_stock_2014.csv dest: stock.csv ---grading_type决定后续要写哪些小节automated必须提供 Python 评分函数llm_judge提供评分细则rubrichybrid两者都要并通过grading_weights给出权重总和为 1.0。workspace_files会把 assets/ 下的素材复制进任务的隔离工作区。仓库自带 8 个小而精的 CSV 数据集用途说明见 assets/csvs/README.md。3. 四个必填正文小节小节写什么Prompt逐字发给智能体的指令要求具体、无歧义、像真实用户的口吻Expected Behavior智能体应该怎么做列出可接受的多种解法Grading Criteria原子化 checklist每项独立可验证、对应 0.0–1.0 的分数Automated Checksgrade(transcript, workspace_path) - dict评分函数只允许 stdlib想看最小可用示例读 tasks/task_sanity.md 即可——完整任务不到 60 行。数据类任务可参考 tasks/task_csv_cities_ranking.mdhybrid 评分 工作区 CSV。上面三张照片来自 tasks/task_image_identification.md 的真实workspace_files智能体需把它们分到 phone / food / menu 三类。注意答案键 assets/image_classification_answer_key.json 绝不能复制进工作区否则任务就泄题了。四、在 manifest.yaml 中注册任务新手最常漏的一步tasks/manifest.yaml 是任务顺序与分类的唯一事实来源。新任务必须追加到对应分类列表的末尾categories: csv_analysis: - task_csv_cities_growth - task_my_first_task # ← 追加到这里两条硬性约定一个任务只能出现在一个分类且run_first里的任务必须存在于某个分类中如果任务足够有代表性也可以加入core列表——那是约 25 个任务的快速基准集用--core参数运行五、跑 Lint 检查让 CI 一次通过1. 清单一致性检查最重要uv run scripts/lint_manifest.pyscripts/lint_manifest.py 共检查 7 项全部通过才返回退出码 0manifest 中每个条目都有对应的.md文件每个task_*.md模板除外都登记在 manifest 中无重复条目frontmatter 的id与文件名一致任务不跨多个分类run_first条目存在于某个分类frontmattercategory与 manifest 分类一致不一致仅告警不阻断看到Manifest lint: OK (N tasks in M categories, all in sync)即通过 ✅2. argparse 帮助文案检查如果你给 scripts/benchmark.py 新增了命令行参数记得跑uv run scripts/lint_argparse_help.pyscripts/lint_argparse_help.py 会扫描所有 Python 文件中的add_argument(..., help...)揪出未转义的%——argparse 会对 help 文本做旧式%插值字面量必须写成%%。3. 代码风格pyproject.toml 已配置 black 与 ruff行宽 100目标 Python 3.10uv run black . uv run ruff check .六、单元测试为你的评分逻辑上保险 仓库测试位于 tests/pytest 配置在 pyproject 中testpaths [tests]文件命名test_*.py、类Test*、方法test_*。现有测试可直接当风格样板tests/test_lib_grading.py评分归一化、hybrid 加权合并tests/test_multi_session.py多会话 frontmatter 解析tests/test_lib_trend.py多次运行趋势分析如果你为新任务抽出了可复用的评分辅助函数例如放进 scripts/lib_grading.py就为它补一个测试# tests/test_lib_grading_mytask.py import sys import unittest from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1] / scripts)) from lib_grading import my_new_helper # 你新增的辅助函数 class TestMyTaskGrading(unittest.TestCase): def test_partial_credit_between_0_and_1(self): self.assertTrue(0.0 my_new_helper(partial) 1.0)运行全部测试或按关键词过滤uv run pytest tests/ -v uv run pytest tests/ -k grading七、本地验证与提交清单提交前只跑你自己的任务做端到端验证./scripts/run.sh --model openrouter/openai/gpt-4o --suite task_my_first_task --no-upload会话转录会自动保存到results/{run_id}_transcripts/task_my_first_task.jsonl方便复查智能体到底做了什么。提交前自查tasks/TASK_TEMPLATE.md 末尾有官方版清单frontmatter 完整id与文件名一致任务已登记进 tasks/manifest.yamlcategory对齐grading_type与实际提供的小节对应hybrid 权重总和为 1.0评分函数本地运行无异常超时时间合理uv run scripts/lint_manifest.py输出 OKuv run pytest tests/全部通过uv run ruff check .无告警全部打勾后就可以发起 Pull Request 了。如果 CI 需要容器化环境Dockerfile.benchmark 已预装 OpenClaw 与 uv可直接复用。常见问题速查QLint 报File exists but missing from manifestA你创建了任务文件但忘了登记 manifest——把任务 ID 追加到对应分类末尾即可。Qfrontmatter category 只有告警、不阻断A说明 frontmatter 的category与 manifest 分类不一致含大小写两者对齐后告警即消失。Q想测多轮对话任务怎么办Afrontmatter 设multi_session: true并写sessions列表格式见 tasks/TASK_TEMPLATE.md 的 Multi-Session 小节。会话数控制在 2–5 个并相应调大timeout_seconds。走完写任务 → 注册清单 → Lint → 单元测试 → 本地验证这条流水线你就已经具备了和 PinchBench 维护者相同的检查标准。下一个目标让你的任务进入core快速基准集 赞分享【免费下载链接】skillPinchBench is a benchmarking system for evaluating LLM models as OpenClaw coding agents. Made with by the humans at https://kilo.ai项目地址https://gitcode.com/gh_mirrors/skill1/skill点击查看免费下载相关推荐CoreNet贡献指南如何提交你的第一个PRCoreNet贡献指南如何提交你的第一个PR 你是否曾想为深度学习框架贡献代码但不知从何入手本文将带你通过6个步骤完成CoreNet项目的首次PRPull深度学习计算机视觉NLP多模态模型训练大模型markmap贡献指南如何提交你的第一个PRmarkmap贡献指南如何提交你的第一个PR 前言 你是否曾想为开源项目贡献代码却因不知从何下手而却步本文将以markmap项目为例带你一步步完成从环境数据可视化前端CLIreflect-open 贡献者指南代码规范、测试与提交你的第一个 PRreflect open 贡献者指南代码规范、测试与提交你的第一个 PR reflect open 是一个本地优先local first、AI 友好的开源创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考