需设置mimocode_mimo_only=true以禁用默认prompt继承,再构建角色→约束→示例三层结构,并可通过mimocode_task_prompt动态覆盖;最后用/debug prompt验证生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让 MiMo Code 在长程编程任务中少犯错、不跑偏,而不是靠反复重试硬扛错误累积——这要求你从 Prompt 层面主动干预其决策路径,而非只依赖 Max Mode 或 Goal 验证这类后置纠错机制。
关闭默认 Prompt 继承,获得完全控制权
默认情况下,MiMo Code 会自动继承 Claude Code 的 Prompt 模板,包括其角色设定、约束格式和工具调用偏好。这种继承在简单任务中省事,但在复杂项目里容易导致指令覆盖失效或上下文污染。【MIMOCODE_MIMO_ONLY=true 是启用自定义 Prompt 的强制前提】
执行命令:echo "MIMOCODE_MIMO_ONLY=true" >> ~/.mimo/.env
重启 MiMo Code 后,它将不再加载任何外部 Prompt,所有提示逻辑必须由你显式注入。这一步不可跳过——若未设此变量,后续所有 Prompt 修改都不会生效。
构建三层 Prompt 结构:角色→约束→示例
MiMo Code 对 Prompt 的解析遵循严格顺序:先识别角色身份,再执行约束条款,最后参考示例格式。任意一层缺失都会引发行为漂移。
第一步:定义角色锚点
在 ~/.mimo/prompt.mjs 中写入:export const role = "你是一名专注 TypeScript 工程化的资深前端架构师,只输出可直接执行的代码,拒绝解释性文字"
第二步:嵌入硬性约束
添加以下三行(缺一不可):export const constraints = [`禁止生成 console.log`, `所有函数必须有 JSDoc 注释`, `API 调用必须使用 axios 实例而非 fetch`]
注意:约束必须是字符串数组,每条独立成项;写成单字符串或对象会导致解析失败。
第三步:提供最小可行示例
插入一段真实、简短、无歧义的输入输出对:export const example = { input: "把用户列表渲染为带分页的 React 组件", output: "interface User { id: number; name: string; }... export default function UserList() { ... }" }
这个示例不是模板,而是模型理解“你要什么风格”的唯一标尺——它比任何自然语言描述都管用。
动态注入任务级 Prompt 片段
当某次会话需临时覆盖全局 Prompt(例如紧急修复一个 Node.js 后端 bug),不要修改文件,用环境变量注入:
方法一:单次覆盖
运行前执行:MIMOCODE_TASK_PROMPT="你正在调试 Express 中间件,所有修复必须兼容现有 passport-jwt 验证流程" mimo code
方法二:条件触发
在 ~/.mimo/hooks/pre-run.mjs 中写入:if (process.env.PWD.includes('legacy-api')) { process.env.MIMOCODE_TASK_PROMPT = '禁用 TypeScript 类型推导,仅按 JS 原生语法修复' }
这个钩子会在每次启动前自动加载,无需手动触发。
【MIMOCODE_TASK_PROMPT 的优先级高于 prompt.mjs 中的 role/constraints/example】,但仅作用于当前会话,退出即失效。
验证 Prompt 是否生效
启动 MiMo Code 后,输入 /debug prompt 查看当前加载的 Prompt 内容。若看到 role、constraints、example 字段为空,说明 MIMOCODE_MIMO_ONLY 未生效或文件路径错误。
若看到字段已填充但模型仍输出 console.log,检查 constraints 数组是否拼写错误——比如写成 "console.log" 而非 "console.log"(少一个点)会导致整条约束被忽略。
执行 /debug prompt → 观察输出 → 对照 prompt.mjs 内容 → 确认无空格/引号/大小写错误 → 退出并重试










