SWE-agent 装完先改 keys.cfg,Base URL 填 TaoToken 再跑 run.py
1. SWE-agent 装完跑不起来问题多半出在 keys.cfgSWE-agent 是普林斯顿 NLP 组开源的一个 AI 程序员项目它能自己开终端、搜文件、改代码行、跑测试把 GitHub 上的 issue 直接变成一次修复尝试。它适合谁适合想在本机复现「AI 自动修 bug」流程的开发者尤其是已经装好 Docker 和 conda、却在最后一步python run.py卡住的人。我自己第一次跑的时候环境全绿镜像也建好了结果一执行命令就报模型鉴权失败终端里连一次文件查看都没发生。这个项目的执行链路其实很清晰run.py启动后SWE-agent 会拉起一个容器通过 ACI智能体-计算机接口向模型发命令模型返回「查看某文件第 100 行」「搜索某个字符串」「编辑某行」这类动作容器执行后再把结果回传。整条循环要跑起来前提是模型通道可用。而模型通道的入口就写在仓库根目录那个keys.cfg里。原文的痛点也在这装好 Docker、conda env create -f environment.yml、./setup.sh建完镜像之后必须在根目录手写keys.cfg把OPENAI_API_KEY、ANTHROPIC_API_KEY、GITHUB_TOKEN三项填齐否则python run.py --model_name gpt4这条驱动 issue 修复循环的命令根本起不来。这篇就把「模型 Key 从哪来、Base URL 填什么」这一步讲透让run.py真正跑起来。2. 把模型出口收敛到 TaoToken只动 keys.cfg 一处SWE-agent 本身不绑定某一家模型服务它读的是keys.cfg里的配置。所以我们要做的是给模型侧准备一个可用的 Key 和一个 Base URL。这里用 TaoToken 来做这件事打开https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end注册进控制台创建一个 Key回到keys.cfg里补上模型侧的 Base URL 字段填https://taotoken.net/api。注意两个细节结尾不带/v1也不要带 UTM 参数。这一点很多人会填错填成https://taotoken.net/api/v1之后请求路径会拼错模型侧直接返回 404 或鉴权失败而 SWE-agent 的报错信息又不会明确告诉你「是 Base URL 多了个 v1」只会表现为循环起不来。TaoToken 在这里只做供 Key 和 Base URL 的事。原文里 ACI 的那些能力——linter 拦截语法错误的编辑、每轮只显示 100 行的文件查看器、全目录字符串搜索、空输出时返回「命令已成功运行但未产生任何输出」——仍然由 SWE-agent 自己实现跟模型出口无关。换句话说换模型通道不会影响 ACI 的行为你只是把「模型从哪来」这件事换了个入口。这样做的收益是模型出口收敛到一把 Key之后换模型、换机器都只动keys.cfg一处不用去改run.py或 config 文件。3. 可复制的 keys.cfg 与运行命令先确认你已经走到原文安装流程的最后一步Docker 已启动conda activate swe-agent已激活./setup.sh已建好镜像。然后在仓库根目录创建keys.cfg。# keys.cfg OPENAI_API_KEY: sk-你的TaoTokenKey ANTHROPIC_API_KEY: sk-你的TaoTokenKey GITHUB_TOKEN: ghp_你的GitHubToken # 模型侧 Base URL结尾不带 /v1不带 UTM OPENAI_API_BASE: https://taotoken.net/api这里GITHUB_TOKEN保持不动它负责让 SWE-agent 能读 issue、能提 pull request跟模型通道是两回事。模型侧的两项 Key 可以填同一把 TaoToken KeyBase URL 统一指向https://taotoken.net/api。如果你用的是 Anthropic 系模型对应字段名按 SWE-agent 当前版本的要求填核心是 Base URL 那一行别写错。填完之后先跑单实例命令验证python run.py --model_name gpt4 \ --instance_filter marshmallow-code__marshmallow-1359这条命令只针对 SWE-bench 里的单个问题跑起来快适合验证通道。观察终端里查看、编辑、搜索命令是否正常往返以及有没有生成针对该 issue 的 pull request。单实例通了之后再按原文换成整条 pipelinepython run.py --model_name gpt4 \ --data_path https://github.com/pvlib/pvlib-python/issues/1603 \ --config_file config/default_from_url.yaml这一步会走完整的 issue 修复循环耗时更长但验证的是同一套模型通道。4. 验证请求终端里该看到什么跑单实例命令时终端会先打印容器启动信息然后进入模型与容器的往返循环。正常情况下你会看到类似这样的动作序列模型先发出查看文件的命令容器返回文件内容片段接着发出搜索命令容器返回匹配到的文件列表然后发出编辑命令linter 检查通过后编辑生效最后跑测试输出结果。判断通道是否真的通了看两个信号。第一终端里有没有出现模型返回的命令文本如果一直是空的或者直接报鉴权错误说明 Base URL 或 Key 有问题。第二跑完之后有没有生成 pull request这是 SWE-agent 修复成功的标志。如果单实例跑通你会看到针对marshmallow-code__marshmallow-1359的修复尝试终端里能看到它改了哪几行、跑了哪些测试。这时候再跑整条 pipeline把--data_path指向https://github.com/pvlib/pvlib-python/issues/1603观察它是否能完整走完从读 issue 到提 PR 的流程。实测下来通道配好之后SWE-agent 的 ACI 行为跟原文描述一致文件查看器每轮只显示 100 行搜索命令只列出有匹配的文件空输出会返回提示消息。这些都不需要你额外配置。5. 本篇常见错排查报鉴权失败或 401先检查keys.cfg里的 Key 有没有多余空格或引号不匹配。TaoToken 的 Key 以sk-开头复制时别带上换行。再检查 Base URL 是不是写成了https://taotoken.net/api/v1结尾多/v1是最常见的坑。run.py 起不来提示找不到 keys.cfg确认你在仓库根目录执行命令keys.cfg要和run.py同级。文件名别写成key.cfg或keys.cfg.txt。容器起来了但模型没反应检查 Docker 是否在运行./setup.sh是否成功建好镜像。如果镜像没建好容器拉不起来模型命令自然没有回传对象。GITHUB_TOKEN 报权限不足这个 token 需要能读仓库 issue、能创建 pull request。如果只是只读权限修复循环能跑但提不了 PR。单实例通了整条 pipeline 卡住整条 pipeline 涉及的问题更多耗时更长先确认单实例稳定通过再跑。如果卡在某个 issue 上可以先用--instance_filter单独验证那个问题。换机器后又要重配这正是把模型出口收敛到 TaoToken 的好处。新机器上装好环境、建好镜像把keys.cfg复制过去Base URL 和 Key 都不用改直接跑run.py即可。6. 模型出口收敛后换模型换机器只动一处把 SWE-agent 接到 TaoToken 的模型通道上核心动作就三步在https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end创建一把 Key在keys.cfg里补上 Base URLhttps://taotoken.net/api然后跑python run.py --model_name gpt4 --instance_filter marshmallow-code__marshmallow-1359验证单实例。通了之后再按原文换成--data_path指向https://github.com/pvlib/pvlib-python/issues/1603跑整条 pipeline。之后你要换模型、换机器都只动keys.cfg这一处。模型对话可以在https://taotoken.net/models里试长期跑编码和 Agent 任务可以看https://taotoken.net/coding-planKey 的管理在https://taotoken.net/api-keys接入细节在https://taotoken.net/doc。SWE-agent 的 ACI 能力不变变的只是模型从哪来。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →