Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniCode

MiniCode 是一个极简 AI 编码智能体,支持 OpenAI 兼容的 LLM 接口。

快速开始

uv sync
uv run minicode

命令行修复模式

MiniCode 可以作为外部评测框架调用的薄 agent,对指定仓库执行一次非交互修复:

minicode run --repo-dir <buggy_repo> --instruction <TASK.md> --max-rounds 5 --timeout 600

该模式会在 --repo-dir 内运行 agent,读取 --instruction 的任务说明,并将 agent 输出写到 stdout、工具调用摘要写到 stderr。run 模式默认不加载 MCP;如确实需要 MCP 工具,可显式加 --mcp。如果设置了 MINICODE_TRACE_PATHMINI_SMITH_TRACE_PATH,或传入 --trace <path>,MiniCode 会把内部 message/tool-call/tool-result 事件写入 JSONL。测试执行、外层 trajectory、patch 和 summary 建议由外层 harness 统一收集。

模型配置

MiniCode 通过 OpenAI 兼容接口调用模型。本地模型和云端厂商模型使用同一套 OPENAI_* 配置,建议写在 .env 中:

OPENAI_MODEL=gpt-4o
OPENAI_BASE_URL=
OPENAI_API_KEY=sk-...
OPENAI_MAX_TOKENS=4096
OPENAI_TEMPERATURE=0
MINICODE_MAX_CONTEXT=128000
MINICODE_BACKEND=openai
MINICODE_AUTO_SAVE=true
MINICODE_SESSION_DIR=

本地 OpenAI 兼容服务(Ollama、vLLM、LM Studio、llama.cpp server 等)只需要把地址和模型名换掉:

OPENAI_MODEL=<local-model-name>
OPENAI_BASE_URL=http://localhost:11434/v1
OPENAI_API_KEY=
OPENAI_MAX_TOKENS=2048
OPENAI_TEMPERATURE=0
MINICODE_MAX_CONTEXT=4096

云端兼容厂商同样使用这三个变量,例如 DeepSeek:

OPENAI_MODEL=deepseek-chat
OPENAI_BASE_URL=https://api.deepseek.com
OPENAI_API_KEY=sk-...

OPENAI_* 表示发给 OpenAI 兼容 API 的请求配置;MINICODE_* 只表示 MiniCode 自身运行配置。命令行参数 --model--base-url--api-key 只用于临时覆盖 .env。本地 localhost 服务通常不需要真实 API key,留空即可;如果你的本地服务启用了鉴权,再设置 OPENAI_API_KEY

会话管理

Session 默认自动创建、自动记录、自动保存,不需要先执行任何 /task 命令。正常使用流程就是启动 MiniCode、直接交互,退出后第二天恢复最近会话:

uv run minicode
uv run minicode -r latest

交互模式仍提供少量显式管理命令:

/session       显示当前会话、Checkpoint 摘要和保存路径
/save [ID]     立即保存;传入 ID 时另存为指定会话
/resume ID     在当前 REPL 中恢复会话,支持 latest
/delete-session ID 删除指定会话
/sessions      列出最近保存的会话
/reset         清空当前对话历史

ID 表示实际会话 ID,例如 /resume session_20260614_212625_c2077cc7。REPL 也兼容 /resume <session_...>/resume<session_...> 这类输入。

会话默认保存到 ~/.minicode/sessions,可用 MINICODE_AUTO_SAVE=false 关闭,或用 MINICODE_SESSION_DIR 指定目录。/save 是可选的即时检查点,不是启用会话功能的前置步骤。

Session Schema v4 将可恢复会话组织为四个核心部分:

  • messages:送入模型的用户、Assistant、工具消息,是当前会话上下文。
  • transcript:按顺序记录用户消息、工具调用与结果、压缩、子任务等运行事件。
  • checkpoint:当前目标、约束、计划、已完成工作、问题、下一步、验证结果及运行信息。
  • workspace_state:工作目录、仓库、分支、HEAD、修改/暂存/未跟踪文件和工作区指纹。

Checkpoint 不是直接把第一条用户消息当作目标。每轮 Assistant 完成后,MiniCode 会额外调用一次当前模型,根据旧 Checkpoint、最近对话和工具结果生成结构化摘要;问候和闲聊不会成为目标,用户明确切换任务时会更新目标。总结提示和结果不会写入 messages,只会在 Transcript 中记录 checkpoint_updated。如果模型调用或 JSON 解析失败,则使用不提升问候语的本地规则兜底,因此不会阻断正常对话和保存。该总结调用会产生额外的模型 token 和一次请求延迟。

其中 runtimetoken_usage 收纳在 Checkpoint 中;工具事件、压缩和子任务收纳在 Transcript 中,不再以并列的顶层集合重复保存。旧版 Schema v1-v3 会在加载时自动迁移到 v4 结构。

Session 文件使用原子写入,进程中断时会保留上一份完整数据。Git 仓库存在未提交修改时,会在同一会话目录保存一个 .patch 参考副本;恢复不会自动应用 patch 或覆盖当前文件,而是校验目录、仓库、分支、HEAD 和工作区状态并显示差异警告。

每次保存都会更新 latest 指针,因此 uv run minicode -r latest 会恢复最近一次保存的会话。

MCP Web Search

MiniCode 可以作为 MCP client 接入 Exa,并暴露稳定的 web_searchweb_fetchcode_search 工具。MCP 默认关闭;启用前可在 REPL 中运行 /mcp init 创建配置,或手动复制配置模板并配置 .minicode/mcp.json

Copy-Item .minicode/mcp.example.json .minicode/mcp.json
MINICODE_MCP_ENABLED=true
MINICODE_MCP_CONFIG=.minicode/mcp.json
MINICODE_MCP_EXPOSE_RAW_TOOLS=false
EXA_API_KEY=...
{
  "servers": {
    "exa": {
      "enabled": true,
      "transport": "streamable_http",
      "url": "https://mcp.exa.ai/mcp?exaApiKey=${EXA_API_KEY}&tools=web_search_exa,web_fetch_exa",
      "timeout_seconds": 30
    }
  },
  "web_search": {
    "server": "exa",
    "tool": "web_search_exa",
    "max_results": 5
  },
  "web_fetch": {
    "server": "exa",
    "tool": "web_fetch_exa"
  },
  "code_search": {
    "server": "exa",
    "tool": "web_search_exa",
    "max_results": 5
  }
}

启动后使用 /mcp 查看 MCP server、transport、工具列表和最近错误;修改配置或环境变量后可使用 /mcp refresh 重新连接并刷新工具。默认只向模型暴露稳定工具;如需调试底层 MCP 原始工具,可设置 MINICODE_MCP_EXPOSE_RAW_TOOLS=true,这会额外暴露 mcp_<server>_<tool>

About

极简 AI 编码智能体,支持 OpenAI 兼容的 LLM 接口

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages