专为 SWE-bench 评测设计的轻量级 CLI Agent,核心架构对齐 Trae-Agent。
用户任务 → TaskRunner → ZGSM API → 工具执行 → 结果回灌 → task_done
| 工具 | 说明 |
|---|---|
bash |
持久化 bash 会话,状态跨命令保持 |
str_replace_based_edit_tool |
文件编辑(view/create/str_replace/insert) |
sequential_thinking |
结构化推理,支持分支和修正 |
task_done |
任务完成信号 |
src/
├── api/ # LLM 客户端
│ ├── zgsm-client.ts # ZGSM API(非流式 + 超时 + 重试)
│ └── retry.ts # 指数退避重试
├── cli/
│ ├── entry.ts # CLI 入口
│ ├── TaskRunner.ts # 执行引擎
│ └── prompts.ts # System Prompt
├── core/
│ ├── assistant-message/ # XML 工具调用解析器
│ └── tools/ # 4 个工具实现
├── evaluation/ # SWE-bench 评测模块
│ ├── entry.ts # 评测入口
│ ├── OneShotBenchmarkRunner.ts
│ ├── AgentBuilder.ts # 预构建 Agent 包
│ └── ContainerManager.ts # Docker 容器管理
└── trajectory/ # 执行轨迹记录
# 安装依赖
npm install
# 配置 .env
echo "ZGSM_ACCESS_TOKEN=<your_token>" > .env
echo "ZGSM_BASE_URL=https://zgsm.sangfor.com" >> .env
# 运行测试
npm test
# CLI 运行
npm run cli -- --task "Read package.json" -v详见 docs/RUN.md。
# 预构建 Agent 包(首次,约 1.8GB)
npx tsx -e "
import { AgentBuilder } from './src/evaluation/AgentBuilder';
new AgentBuilder({ costrictPath: process.cwd(), verbose: true }).prepare();
"
# 运行评测
npx tsx --env-file=.env src/evaluation/entry.ts \
--instances data/swe-bench-verified-500.json \
--output output/eval \
--model MiniMax-M2.1 \
-c 2| 文件 | 说明 |
|---|---|
data/swe-bench-verified-500.json |
SWE-bench Verified 全集(500 instances) |
data/swe-bench-50-balanced.json |
50 样本子集(调试用) |
Apache 2.0