自动搜索mcp
一个MCP服务器,将Andrej Karpathy的自动搜索模式带到每个AI编码会话中,具有可组合的技术目录、实验支架和SQLite+FTS5支持的跟踪。
什么是Autoresearch?
Autoresearch是一种简单但强大的模式,由 Andrej Karpathy的自我研究项目,在本版本发布时,一个拥有64945颗星的存储库:给AI代理一个真正的实验设置,让它修改代码、提示或配置,运行固定时间的实验,检查目标指标是否有所改善,保留或放弃更改,然后重复。
在Karpathy的框架下,这可能意味着每小时大约12次实验,晚上大约100次。这个重要的想法比任何一个实现都要广泛:如果你有一个可衡量的指标,你就可以朝着更好的结果前进。
autoresearch-mcp 将软件包作为MCP服务器进行模式化,这样任何兼容的AI客户端都可以发现技术、构建实验、跟踪迭代,并在项目中积累元学习。
这个项目的灵感来自Karpathy的工作,但它与他的项目无关,也没有复制任何代码。
快速开始
要求:
- Bun在本地安装
- 任何兼容MCP的客户端,如Claude Code或OpenCode
全局安装:
npm install -g autoresearch-mcp
# OR
bunx autoresearch-mcp作为技能安装(推荐)
autoresearch-mcp 附带了一个技能文件,教你的AI代理自动搜索方法:何时使用哪种技术,如何编写食谱,以及如何运行棘轮循环。该技能是轻量级的(上下文中约为100-400个令牌),而MCP服务器提供重型机器(目录搜索、实验跟踪、脚手架)。
技能+MCP=大脑+双手
开源代码
# Auto-install via npm postinstall script (run after npm install)
# Or manual symlink:
ln -s $(npm root -g)/autoresearch-mcp/skills/autoresearch ~/.opencode/skills/autoresearch技能是自动发现的 ~/.opencode/skills/当你的代理遇到优化问题时,技能懒惰就会加载。
克劳德代码
ln -s $(npm root -g)/autoresearch-mcp/skills/autoresearch ~/.claude/skills/autoresearchpi.dev
pi --skill $(npm root -g)/autoresearch-mcp/skills/autoresearch/SKILL.md安装为MCP服务器(机械)
MCP服务器提供工具和状态。与技能一起安装,以获得全部能力。
克劳德代码
将此添加到您的MCP设置中:
{
"mcpServers": {
"autoresearch": {
"command": "bunx",
"args": ["autoresearch-mcp"]
}
}
}开源代码
将此添加到 ~/.config/opencode/opencode.json:
{
"mcp": {
"autoresearch": {
"type": "local",
"command": ["bunx", "autoresearch-mcp"]
}
}
}连接后,向您的代理询问以下问题:
- “我应该使用什么自动搜索技术进行快速优化?”
- “为这个项目搭建一个代码性能实验。”
- “记录此迭代结果并跟踪总成本。”
运作原理
其核心是一个棘轮环:
Edit artifact -> Run evaluator -> Score improved? -> Yes: Keep -> Repeat
-> No: Revert -> Repeat服务器为您的代理提供了以结构化方式运行该循环所需的部分:
- 选择一种技术或食谱。
- 用程序和评估工具搭建实验支架。
- 根据可测量的指标运行迭代。
- 保持改进,抛弃倒退。
- 跟踪成本、时间和结果。
- 在未来的项目中重复使用有效的方法。
技术目录
autoresearch-mcp 船上有一个30个项目的目录,分为四个可组合的层。
1.搜索策略
这些定义了如何提出候选人变更。
hill-climbingevolutionarybayesian-optimizationbeam-searchmulti-armed-banditsimulated-annealingablation-eliminationself-refine
2.评估人员
这些定义了候选人的评分方式。
benchmark-harnessbinary-evaluatorrubric-scorerllm-as-judgepairwise-comparisoncost-latency-evaluatorhuman-approval-gateregression-detector
3.执行模式
这些定义了循环的运行和控制方式。
single-ratchettwo-loopbounded-episodebranch-and-mergechampion-challengercheckpoint-and-resume
4.食谱
食谱将策略、评估者和执行模式组合成一个现成的起点。
prompt-optimizationcode-performanceconfig-tuningcontent-revisiontest-amplificationml-trainingliterature-synthesisgeneral-ratchet
MCP工具
服务器公开了11个MCP工具。
| 工具 | 说明 |
|---|---|
search_techniques | 按查询搜索目录,或在查询为空时列出所有技术。 |
get_technique | 按ID返回技术的完整详细信息 |
suggest_technique | 描述一个问题并获得推荐的方法。 |
register_experiment | 创建跟踪实验记录。 |
update_experiment | 使用自动时间戳更新实验状态。 |
log_result | 记录迭代结果,包括分数、时间、代币和美元跟踪。 |
get_experiment | 检索实验细节和可选的迭代历史。 |
list_experiments | 列出按状态或项目筛选的实验。 |
scaffold_experiment | 生成 program.md, eval.sh,以及 results.tsv 从食谱。 |
get_template | 返回配方模板文件。 |
log_technique_outcome | 记录什么对跨项目元学习有效。 |
用法示例
会话工作流程
You: "I want to optimize my chatbot's system prompt. I have 50 test questions."
Agent calls: suggest_technique(problem: "optimize chatbot prompt with eval set")
-> Recommends: prompt-optimization recipe
(hill-climbing + llm-as-judge + single-ratchet)
Agent calls: scaffold_experiment(recipe_id: "prompt-optimization", ...)
-> Creates: autoresearch/program.md, eval.sh, results.tsv
You: "Run the ratchet loop"
Agent: reads program.md, edits prompt, runs eval.sh, logs results...
After 10 iterations: Score improved from 62 to 94 (+52%)脚本化MCP流程
如果你更喜欢显式的工具编排,生命周期看起来像这样:
1. suggest_technique(problem="reduce API latency without hurting quality")
2. scaffold_experiment(recipe_id="code-performance", project_path="/repo", metric_name="requests/sec")
3. update_experiment(experiment_id="...", status="running")
4. log_result(iteration=1, score=1180, improved=true, change_description="inlined hot path")
5. log_result(iteration=2, score=1165, improved=false, change_description="added extra serialization")
6. get_experiment(experiment_id="...", include_results=true)
7. log_technique_outcome(technique_id="code-performance", domain="backend", outcome="success")搭建脚手架后,您的代理将获得一个工作起点:
autoresearch/program.md对于循环指令autoresearch/eval.sh用于评估工具autoresearch/results.tsv用于迭代历史
示例域名
任何有可衡量目标的东西都可以使用这种模式。
| 域 | 目标 | 评估器示例 |
|---|---|---|
| 提示工程 | 系统提示 | 评估集精度 |
| 代码性能 | 源代码 | 基准分数 |
| 配置调优 | 配置文件 | 性能指标 |
| 内容质量 | 文章和文档 | 质量评分 |
| 测试覆盖率 | 测试套件 | 覆盖率百分比 |
| ML训练 | 训练代码 | 验证丢失 |
菜谱
食谱是最快的入门方式,因为它们编码了三个较低层次的实用组合:
recipe = search strategy + evaluator + execution pattern例如:
prompt-optimization结合了适合提示突变的搜索策略、可以对提示输出进行评分的评估器和保留改进的棘轮模式。code-performance将代码更改与基准驱动的评估配对。general-ratchet当你的域名不寻常但仍然可以测量时,它会给你一个灵活的默认值。
你可以按原样使用食谱,用 get_technique,或搜索目录以构建自己的组合。
配置
克劳德代码
{
"mcpServers": {
"autoresearch": {
"command": "bunx",
"args": ["autoresearch-mcp"]
}
}
}开源代码
{
"mcp": {
"autoresearch": {
"type": "local",
"command": ["bunx", "autoresearch-mcp"]
}
}
}其他MCP客户端
任何支持启动本地stdio MCP服务器的客户端都可以使用 autoresearch-mcp 具有相同的模式:
- 命令:
bunx - args:
autoresearch-mcp
如果您的客户端需要一个可执行命令,请将其指向相同的基于Bun的调用。
路线图
- 阶段0.5:目录发现+FTS5搜索
- 第一阶段:实验跟踪+脚手架
- 第二阶段:技能+测试+公开发布 (当前)
- 阶段3:具有代理驱动的执行和审批感知循环的自主跑步者
- 第四阶段:Docker沙盒,用于更安全的代码执行和隔离实验
- 阶段5:夜行者风格的有界剧集,用于更长的自主优化运行
方向很简单:从值得信赖的构建块开始,然后扩展到越来越自主的实验执行。
受启发于
这个项目的灵感主要来自Andrej Karpathy的自我研究工作:
autoresearch-mcp 为MCP本机工作流调整底层模式,以便编码代理可以在提示、代码、配置、内容、测试和研究任务中使用它。
它的灵感来自Karpathy的想法,与他的项目无关,也没有复制任何代码。
贡献
欢迎捐款。请看 贡献.md.
