mini-coding-agent 是一个小型独立的编码智能体项目,核心文件是 mini_coding_agent.py,并提供 CLI 命令 mini-coding-agent。它的目标不是追求健壮性,而是通过可读性高的代码解释编码智能体的核心组件,因此整体设计刻意保持精简。
主要能力围绕六个实用构建块组织:
- 实时仓库上下文:智能体预先收集稳定的工作区事实,例如仓库布局、指令和 git 状态。
- 提示词形态与缓存复用:将稳定的提示词前缀与变化中的请求、转录和记忆分开,使重复的模型调用可以高效复用静态部分。
- 结构化工具、校验与权限:模型通过具名工具工作,输入经过检查,工作区路径经过验证,并通过审批门控,而不是自由形式地任意操作。
- 上下文缩减与输出管理:长输出被截断,重复读取被去重,较早的转录条目被压缩,以将提示词大小控制在合理范围。
- 转录、记忆与恢复:运行时保留完整的持久转录和较小的工作记忆,以便会话可以在保留重要状态的情况下恢复。
- 委派与有界子智能体:范围明确的子任务可以委派给辅助智能体,这些辅助智能体继承足够上下文以提供帮助,但操作在限制之内。
使用方式:需要先安装 Ollama,并本地拉取一个 Ollama 模型。推荐使用 uv 进行环境管理和 CLI 入口,但项目除标准库外无 Python 运行时依赖,也可以直接用 python mini_coding_agent.py 运行。默认模型为 qwen3.5:4b,如果内存充足可以尝试 qwen3.5:9b 或其他更大的 Qwen 3.5 变体。智能体只是向 Ollama 的 /api/generate 端点发送提示词。
启动后默认使用模型 qwen3.5:4b。风险工具(如 shell 命令和文件写入)默认受审批门控,可通过 --approval 选项控制:ask(默认,风险操作前提示)、auto(自动允许风险操作,包括任意命令执行和文件写入,仅应在可信提示词和可信仓库下使用)、never(拒绝风险操作)。
会话保存在目标工作区根目录下,可通过 --resume latest 恢复最新会话,或 --resume <id> 恢复指定会话。交互式 REPL 中支持斜杠命令:/help 显示可用命令列表,/memory 打印提炼后的会话记忆(含当前任务、跟踪文件、笔记),/session 打印当前保存的会话 JSON 文件路径,/reset 清除当前会话历史与提炼记忆但保留在 REPL 中,/exit 退出交互会话,/quit 退出并作为 /exit 的别名。
重要 CLI 标志包括:--cwd 设置工作区目录(默认 .),--model 选择 Ollama 模型名(默认 qwen3.5:4b),--host 指定 Ollama 服务器 URL(默认 http://127.0.0.1:11434),--ollama-timeout 控制客户端等待 Ollama 响应时间(默认 300 秒),--resume 恢复已保存会话,--approval 控制风险工具处理方式,--max-steps 限制单个用户请求允许的模型和工具回合数(默认 6),--max-new-tokens 限制每步模型输出长度(默认 512),--temperature 控制采样随机性(默认 0.2),--top-p 控制核采样(默认 0.9)。
智能体期望模型输出 <tool>...</tool> 或 <final>...</final>。不同 Ollama 模型遵循这些指令的可靠性不同;如果模型不能很好地遵循格式,应使用指令遵循能力更强的模型。项目有意保持小巧,并针对可读性优化,而不是健壮性。详细教程为 Components of a Coding Agent。