PinchBench贡献指南:从单元测试到Lint检查,提交你的第一个基准任务
【免费下载链接】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),仅供参考

相关新闻

PMW脉冲宽度调制从原理到实战:占空比、频率与死区时间调试指南

PMW脉冲宽度调制从原理到实战:占空比、频率与死区时间调试指南

1. 从三个字母说起:PMW到底指什么第一次看到“PMW”这三个字母,很多人会愣一下。它不像“AI”“IoT”那样有明确的指向,也不像“KPI”“ROI”那样在职场语境里被反复提及。但如果你在硬件圈、嵌入式圈或者电源设计圈待过一段时间,…

2026/10/14 18:10:36 阅读更多 →
Sunshine 与 Moonlight 串流实战:从安装配置到延迟优化

Sunshine 与 Moonlight 串流实战:从安装配置到延迟优化

简介:这份资源是面向串流游戏与超低延迟应用场景的完整工具组合,包含 Sunshine 服务端与 Moonlight 客户端,覆盖 X86、X64 及 Android 平台,适合希望搭建自建串流环境、追求低延迟高画质体验的玩家与开发者。压缩包共 2868 个文件…

2026/10/14 18:10:36 阅读更多 →
如何给Picobot装上无限工具:MCP Server双通道接入指南(stdio与HTTP)

如何给Picobot装上无限工具:MCP Server双通道接入指南(stdio与HTTP)

【免费下载链接】picobot A lightweight self-hosted bot in a single binary, written in Go. 项目地址: https://gitcode.com/gh_mirrors/pic/picobot 点击查看 免费下载 Picobot 是一款用 Go 编写的轻量级自托管 AI Agent 机器人,支持通过 MCP Serve…

2026/10/14 18:10:36 阅读更多 →

最新新闻

用Hermes Agent打造AI数字员工:企业自动化实战全解析

用Hermes Agent打造AI数字员工:企业自动化实战全解析

先交代一下背景,这个教程源自我在某企业内部做的一次 AI 自动化试点总结。当时团队的任务很直接,把重复性高、规则清晰但又需要人肉判断的活儿,逐步交给一套能听指挥、能调用工具、能自己干活的系统。市面上轮子很多,最终敲定用 H…

2026/10/14 23:14:55 阅读更多 →
PyTorch SGD优化器深度解析:动量、weight decay与参数配置实战

PyTorch SGD优化器深度解析:动量、weight decay与参数配置实战

1. 从一个 epoch 的 loss 曲线说起刚接触 PyTorch 那会儿,我写训练脚本基本是抄模板:optimizer torch.optim.SGD(model.parameters(), lr0.01),然后loss.backward()、optimizer.step()、optimizer.zero_grad()三件套走一遍,跑起来…

2026/10/14 23:14:55 阅读更多 →
WebStorm中Vue3+Vitesse项目路径爆红:tsconfig与自动导入声明文件的排查与修复

WebStorm中Vue3+Vitesse项目路径爆红:tsconfig与自动导入声明文件的排查与修复

1. 项目跑得飞起,编辑器却一路飘红:先分辨红线来自谁打开WebStorm,import { useUserStore } from /stores/user下面一条红色波浪线,鼠标移上去是TS2307: Cannot find module /stores/user,可项目在终端里pnpm dev跑得稳…

2026/10/14 23:14:54 阅读更多 →
JSON SyntaxError at position 134 的前端排查与根因分析

JSON SyntaxError at position 134 的前端排查与根因分析

先说让我烦躁的那个瞬间:接口明明返回了 200,网络面板里也看得到数据,前端却红字一片,SyntaxError: Expected , or } after property value in JSON at position 134 (line 1 column 135)。我赌你看到这个报错的第一反应是去翻接口…

2026/10/14 23:14:54 阅读更多 →
Hermes Agent实战:从零搭建AI数字员工实现业务自动化

Hermes Agent实战:从零搭建AI数字员工实现业务自动化

我最早把 Hermes Agent 用进实际业务,是在给一家公司做销售运营自动化的时候。当时团队每天要花两小时人工拉数据、算环比、写简报,我把这套流程拆成几个工具调用和大模型的决策编排,用 Hermes Agent 搭了一个“数字员工”:每天早…

2026/10/14 23:14:54 阅读更多 →
RAG数据预处理:纯Python实现TXT转结构化Markdown,提升检索召回率

RAG数据预处理:纯Python实现TXT转结构化Markdown,提升检索召回率

如果你做过 RAG(检索增强生成)项目,一定遇到过这种窘境:数据拿到手是几百个 txt 文件,没有标题层级,没有段落标记,甚至连编码都不统一。把这种文本丢给 LangChain 或者 LlamaIndex,切…

2026/10/14 23:13:51 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →