【免费下载链接】repoprompt-ce
Community edition of RepoPrompt: a native macOS context engineering app for AI coding agents, with an MCP CLI.
RepoPrompt CE 是一款开源的 macOS 原生上下文工程应用,专为 AI 编程代理(AI Coding Agents)设计,内置 MCP CLI。它的Model Router(模型路由器)和Auto Effort(自动推理强度)机制,能让 AI 根据你的任务自动挑选最合适的模型和推理强度——告别"永远用最贵的模型"或"凭感觉选"的尴尬。🎯
为什么需要 Model Router?🤔
写代码时,不同任务对模型的要求差异巨大:
- 改一个错别字?轻量模型足够,快又省。
- 跨模块调试、深度代码审查?需要能力更强的"旗舰"模型。
手动选择不仅费时,还容易"大材小用"或"小马拉大车"。RepoPrompt CE 的AI 模型路由(Model Router)就是为了解决这个问题:在你提交任务前,先问一个"决策服务"一个问题——这个任务该用哪个模型?
Model Router 如何工作:8 个精选模型家族自动决策
Model Router 并非随意挑选,而是从维护者精选的8 个模型家族中决策,每个家族最多取 1 个当前可执行的基座模型:
| Provider | 模型家族 |
|---|---|
| Codex | Luna、Terra、Sol、Astra |
| Claude | Haiku、Sonnet、Opus、Fable |
决策流程可以概括为两步:
- 选模型(model_route):Router 构造一个"有限选项选择题",把任务摘要和候选模型描述发给决策服务,选出 1 个基座模型。
- 选强度(effort_route):针对选中的模型,再问一次该用多高的推理强度(effort)。
两个关键设计细节:
- 候选列表只减不增:内置的路由配置文件(bundled routing profiles)只能给候选"加注解",无法凭空加入新模型;执行 Provider 的目录才是"可执行模型"的最终权威。
- 至少 2 个候选才决策:如果可用模型不足 2 个,Router 直接在本地回退,不打扰决策服务。
相关源码见 AgentTaskRoutingCandidateBuilder.swift 中的 8 个家族定义与评判标准(rubric)。
Auto Effort:只调"推理强度",不碰模型选择 🎚️
Auto Effort 是一个独立开关、默认关闭的机制,它不改变你已选定的模型,只回答一个问题:这个回合该用 low、medium、high 还是 xhigh 的推理强度?
它的内置指令很值得玩味(来自 AutoEffortDecisionPolicy.swift):
基础模型已固定。选择在可靠度上有明确余量的最低推理强度。短提示不等于简单任务;面对歧义、深度审查、调试、高风险或长链条推理时,应提高强度。
换句话说,Auto Effort 的策略是"够用就好、留有余量":简单改动用低强度省钱省时间,复杂任务自动加码。而且——
- 它不会改写你已保存的模型或强度偏好,每次结果都是临时的;
- 若模型没有至少 2 个可用强度档位,则保持手动行为。
决策服务怎么选:Jev 与 OpenAI Decisions
Router 和 Auto Effort 背后由独立的"文本有限选项决策层"驱动,目前支持两类决策服务(可分别配置,也可用同一个):
- Jev:独立的
JevRouterAPIKey安全存储账户,固定jev-1.13.0评估器,5 秒超时,不重试。 - OpenAI Decisions:独立的
OpenAIDecisionsRouterAPIKey账户,固定gpt-6-luna评估器,5 秒完整响应时限,64 KiB 响应上限,拒绝重定向。
一个安全亮点:两套凭证完全隔离——互相之间、以及与你的执行 Provider 密钥之间,绝不读取、复制或回退。决策服务给出的只是"建议"(advisory),最终提交前,RepoPrompt CE 还会在本地重新校验目标模型是否仍然合法可用。
隐私边界:只发"最小必要信息" 🔒
很多用户担心"让 AI 挑模型"会不会泄露代码库?RepoPrompt CE 的答案是严格的隐私信封(privacy envelope):
- 任务文本上限4,000 字符 / 16 KiB,超长任务只取开头+结尾摘要;
- 不附加:文件附件、工作区上下文、仓库路径、diff、历史对话、工具结果、系统提示词、会话 ID、Provider 凭证等;
- 完整任务最终只发给执行 Provider(正常提交路径),而非决策服务。
Auto Effort 的信封更窄:只有选中的模型 ID、Provider 公布的强度选项、当前用户回合的一小段(尽力脱敏)摘录,以及内置工作流的类别名。
在哪里开启:Settings 里的 Agent Decisions 🛠️
打开设置中的Agent Decisions选项卡,你可以看到:
- Model Router区段:全局开关 + 精确选择决策服务;
- Auto Effort区段:独立开关 + 独立的服务选择(默认 Jev);
- Decision Services区段:各服务的配置卡片(由注册表驱动生成);
- 附带的本地用量均衡(quota-aware usage balancing)与付费Fast选项。
值得注意的生效范围:Router 只影响新建的 Agent Mode 会话和 RepoPrompt CE 管理的子代理启动;已建立的会话、续跑、steering 以及你明确固定(pinned)的模型组合不会被重路由。相关 UI 见 RouterSettingsView.swift。
失败时的安全兜底:绝不盲目切换 🛡️
这是该机制最值得称道的部分——"不切换"(no failover)原则:
- 决策服务缺失、不可用、超时或拒答?保持当前选择,不自动换后端;
- 模型阶段失败 → 保留当前选择或角色默认值;强度阶段失败 → 保留已选模型 + Provider 默认强度;
- 显式取消或状态过期 → 阻止提交,而不是应用一个"迟到的建议"。
这意味着:决策服务只是"参谋",永远不会替你做出意外操作。
核心文件与源码导读
想深入这套机制?从这些文件入手:
- 官方架构文档:docs/architecture/model-routing.md
- Router 决策策略(含字节预算计算):ModelRouterDecisionPolicy.swift
- Auto Effort 策略与内置指令:AutoEffortDecisionPolicy.swift
- 8 个模型家族与候选构建:AgentTaskRoutingCandidateBuilder.swift
- Router 运行时与需求快照:AgentTaskRouterRuntime.swift、AgentTaskRouterDemandSource.swift
- 设置快照模型:RoutingSettingsSnapshot.swift
- 合同与策略测试:DecisionServiceContractTests.swift、AutoEffortPolicyTests.swift
总结
RepoPrompt CE 的 Model Router 与 Auto Effort 用一套精巧的"有限选项决策"架构回答了 AI 编程中的两个经典问题:用哪个模型?用多大力气?精选候选、两步决策、严格隐私信封、凭证隔离、失败即回退——这套智能决策机制在"省成本"和"保可靠"之间找到了平衡点。如果你的 AI 编码会话正面临模型选择的烦恼,不妨打开 Agent Decisions 设置,让它替你把关。⚡
【免费下载链接】repoprompt-ce
Community edition of RepoPrompt: a native macOS context engineering app for AI coding agents, with an MCP CLI.
相关推荐
Gemini CLI 模型选择机制详解:`/model` 命令、`--model` 参数与 Auto 智能路由原理
Gemini CLI 模型选择机制详解: /model 命令、 model 参数与 Auto 智能路由原理 本文围绕 gemini cli 的模型选择体系展开:
人工智能AI 应用AI Agent代码智能体工具调用MCP Clients交互助手CLI揭秘tiktoken注册表机制:如何让AI模型"看懂"你的文本?
揭秘tiktoken注册表机制:如何让AI模型"看懂"你的文本? tiktoken是OpenAI推出的一款快速BPE分词器,专为AI模型处理文本而设计。它的注册
人工智能NLP大模型docker compose push 命令完全指南:服务镜像推送机制、参数解析与源码实现
docker compose push 命令完全指南:服务镜像推送机制、参数解析与源码实现 docker compose push 是 Docker Compo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考