关于 Mitii
Mitii 是面向 VS Code 的本地优先 AI 编码 Agent,适用于需要理解代码仓库并受控执行的开发工作。它结合 Ask、Plan、Agent 和 Review 工作流、本地上下文、检查点及可配置模型提供方。
主要功能
- 01代码仓库索引与混合上下文
- 02Ask、Plan、Agent 和 Review 模式
- 03审批控制与写入前检查点
- 04可选 FIM 行内建议
- 05支持 CLI、SDK、技能和 MCP 服务
适用场景
- 01规划并实施范围明确的仓库改动
- 02通过结构化发现审查工作区差异
- 03使用本地模型处理隐私敏感的编码任务
MCP 相关
Mitii 可通过 VS Code 集成使用 MCP 服务。其代码库还包含 MCP 客户端包和 MCP Web 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Mitii AI Agent
一款以本地优先为理念的 VS Code AI 编码 Agent,具备仓库感知上下文、受控执行和灵活的模型提供方。
AI coding agent · VS Code · local-first · MCP · Ollama · TypeScript
Mitii 会在修改仓库之前先理解它。它将本地索引、Ask/Plan/Agent 工作流、可选的 FIM 自动补全、需审批的工具、检查点、记忆和会话日志整合到同一套 VS Code 体验中。你可以使用兼容 OpenAI API 的本地模型来保护隐私,也可以在需要更强能力时使用任何兼容 OpenAI API 的云端端点。
Mitii 提供的功能
- 仓库感知上下文 - SQLite FTS5、符号、向量、仓库映射、诊断信息、Git 状态以及显式附加的文件。
- 清晰的运行模式 - Ask 用于只读分析,Plan 用于复杂工作,Agent 用于应用更改,Review 用于检查工作树差异并生成结构化结果。
- 结构化代码审查 - 确定性文件选择、路径规则、按行定位的审查结果(
emit_review_finding)、保存在.mitii/review/下的持久化ReviewRecord、SARIF 导出,以及向 CI PR 发布评论。 - 基于证据的规划 - Plan 模式可以跟进范围内的预检诊断;证据不足时先进行探索;针对范围明确的功能工作,根据需求起草计划;或者在请求不够清晰时提出澄清问题。
- 受控执行 - 可配置的审批、危险命令拦截、工作区信任检查,以及写入前检查点。
- FIM 自动补全 - 可选的 VS Code 行内建议,使用通用的、兼容 OpenAI API 的
prompt+suffix端点。 - 模型灵活性 -
echo(本地模拟实现)、原生 Anthropic (Claude) 和 Gemini 适配器,以及 兼容 OpenAI API 的端点(Ollama、LM Studio、OpenRouter、OpenAI、Azure OpenAI、DeepSeek,以及任何/v1API)。 - 可扩展工作流 - 内置工具、MCP 服务(VS Code)、项目规则和可复用技能。
- 网页检索 - 可选的多提供方
web_search(通过@mitii/search-kit使用 SearXNG / Brave / Tavily)以及感知内容类型的fetch_url(Stack Overflow 答案、GitHub 议题、Wikipedia、arXiv、HTML 可读性提取)。 - 本地证据 - 会话日志,以及由 VS Code 宿主导出的基础审计包(设置已脱敏)。组织 SSO/RBAC、SIEM Webhook 和托管式企业策略包尚未实现。
工作原理
flowchart LR
User[Developer] --> UI[VS Code webview]
UI --> Controller[Runtime controller]
Controller --> Context[Hybrid context engine]
Context --> Index[(SQLite FTS5 + symbols)]
Context --> Vectors[(LanceDB or SQLite vectors)]
Controller --> Pipeline[Classify -> route -> depth -> skills]
Pipeline --> Loop[Ask / Plan / Agent loop]
Loop --> Policy[Tool policy + approvals]
Policy --> Tools[Files, shell, Git, MCP]
Loop --> State[(Plans, memory, logs, checkpoints)]
Loop --> Provider[Local or cloud model]
扩展和 CLI 通过 @mitii/sdk -> @mitii/v8 与 Agent 通信。宿主会注入来自 @mitii/host 的端口(包括用于网页检索的 @mitii/search-kit)。请参阅 packages/v8/ARCHITECTURE.md 和 packages/search-kit/ARCHITECTURE.md。
快速开始
要求
- VS Code 1.124 或更高版本
- Node.js 20 或更高版本
- 用于源码开发的 pnpm 10.13 或更高版本
从源代码安装
git clone https://github.com/Mitii-dev/Mitii.git
cd Mitii
pnpm run setup
在 VS Code 中按 F5,打开 Extension Development Host。打开一个项目,选择 Mitii 图标,等待索引完成,然后在 Settings 中选择提供商。
在 macOS 上为 Cursor 开发:
pnpm run setup:cursor
连接本地模型
运行兼容 OpenAI 的端点(例如 Ollama),然后进行配置:
{
"mitii.provider.type": "openai-compatible",
"mitii.provider.baseUrl": "http://localhost:11434/v1",
"mitii.provider.model": "qwen3-coder:30b",
"mitii.safety.autonomyPreset": "guided",
"mitii.safety.approvalMode": "review_all"
}
托管提供商的 API 密钥存储在 VS Code SecretStorage 中,而非工作区设置中。
启用 FIM 自动补全
自动补全默认处于禁用状态,并且与 Ask/Plan/Agent 模型路径分开。将 baseUrl 和 model 留空以继承提供商设置,或将其指向响应更快的专用 FIM 端点。
{
"mitii.autocomplete.enabled": true,
"mitii.autocomplete.baseUrl": "http://localhost:11434/v1",
"mitii.autocomplete.model": "your-fim-model",
"mitii.autocomplete.endpointPath": "completions"
}
示例工作流
向 Mitii 提问:
Plan a safe migration of the user cache to Redis. Identify affected files,
tests, rollback steps, and configuration changes. Do not edit files yet.
检查生成的计划,切换到 Agent 模式,然后发送:
Implement the approved plan and run the relevant tests.
Mitii 会检索相关上下文,选择所需功能,对受保护的操作请求批准,为受影响的文件创建检查点,应用限定范围的编辑,并运行已配置或已发现的验证命令。
对于具有匹配预检诊断信息的修复请求,Mitii 可以跳过冗余的发现步骤,直接从关联到故障文件的具体 Change 步骤开始。可选的轻量级模型增强功能可以改进计划措辞,但门控、批准、授权和验证要求仍由确定性策略负责。
以证据为依据的执行
Agent 运行现在除了计划和任务状态外,还会附带结构化证据产物。目标是让每项重大操作都有据可查,同时不让实时任务列表成为事实依据。
- 发现报告记录目标、检查过的文件/搜索/命令、有界的发现容量,以及停止发现的原因。
- 问题清单将诊断/构建/验证发现的问题作为问题进行跟踪,而不只是统计文件数量。
- 计划证据记录与具体目标、已审查上下文或验证相关联的计划步骤数量。
- 执行记录通过安全摘要和路径记录工具操作、编辑、验证命令和停止决策。
- 验证差异记录验证可用时的前后错误数量、剩余问题、检查项,以及停止原因。
计划仍是执行约定。任务列表是派生出的进度视图,适用于 UI,但其优先级低于计划证据和验证。编辑后,一旦所请求的验证通过,Agent 就应停止并总结,而不是因为模型生成了过渡性叙述而继续执行。
CLI 和 SDK
CLI
pnpm run build:cli
node apps/cli/bin/mitii.js --help
node apps/cli/bin/mitii.js setup --provider ollama --yes
node apps/cli/bin/mitii.js session
node apps/cli/bin/mitii.js ask "Summarize the authentication flow" --echo
node apps/cli/bin/mitii.js index --cwd /path/to/project
node apps/cli/bin/mitii.js status --json
新用户:运行 mitii setup 写入非机密的提供商配置,然后在环境中设置 API 密钥并运行 mitii session(点阵 MITII 横幅 + REPL)。有关 setup、ask、session、index、status、export-session,以及 schedule、events 和 serve 等自动化命令,请参阅 apps/cli/README.md。
SDK
@mitii/v8、@mitii/sdk、@mitii/host 和 @mitii/cli 会在 v* 发布标签下发布到 npm(参见 docs/RELEASE.md)。本地开发时,请从此单仓库工作区使用它们。
import { createMitiiClient, EchoLlmPort } from '@mitii/sdk';
const client = createMitiiClient({
understandingLlm: /* host LlmPort */,
runLlm: new EchoLlmPort(),
workspaceRoot: process.cwd(),
defaultMode: 'ask',
});
const run = client.start({
prompt: 'Summarize the authentication flow',
mode: 'ask',
});
for await (const event of run.events) {
if (event.type === 'model_delta' && event.preview) {
process.stdout.write(event.preview);
}
}
await run.result;
当前接口是 createMitiiClient / start / resume,而不是旧版 query() 辅助函数或 DaemonClient。更多详情:packages/sdk/README.md。
本地安全控制
Mitii 默认在本地保留索引、计划、记忆、日志和检查点。只有发送给已配置模型提供商的上下文会跨越该提供商边界。
当前已有功能:
- 批准预设和工作区信任强制机制
- 用于 API 密钥的 SecretStorage(VS Code)
- 会话日志和基础审计包导出(已脱敏的设置 + 运行事件)
- 用于隐私敏感型工作的兼容 OpenAI 的本地端点(Ollama / LM Studio)
尚未提供的产品功能:mitii.enterprise.localProvidersOnly、签名 SIEM/webhook 投递、SSO/OIDC、RBAC,或专用的 docs/enterprise/ 套件。
仓库布局
mitii-ai-agent/
|-- packages/
| |-- v8/ # @mitii/v8 - host-neutral agent runtime
| |-- sdk/ # @mitii/sdk - public API + bundled skills/
| |-- host/ # @mitii/host - indexing, ports, writing recipes
| |-- automation/ # @mitii/automation - schedules and claim runner
| |-- mcp/ # @mitii/mcp client + @mitii/mcp-web server
| `-- search-kit/ # @mitii/search-kit - web search/fetch helpers
|-- apps/
| |-- vscode/ # VS Code extension (F5 target)
| |-- cli/ # headless CLI (`mitii`)
| |-- daemon/ # long-lived automation daemon (`mitii-daemon`)
| `-- acp/ # ACP-lite stdio bridge (`mitii-acp`)
|-- tests/ # solid benchmark (+ package-local specs elsewhere)
|-- docs/ # developer and release guides (+ automation/)
`-- scripts/ # build, release, and audit automation
参见 docs/REPO_LAYOUT.md。规范架构:packages/v8/ARCHITECTURE.md。无人值守 CI Agent:docs/automation/README.md。Skills 格式:docs/SKILLS_FORMAT.md。
开发
pnpm run build:all # build all packages + Electron SQLite for F5 / indexes
pnpm run build # packages only
pnpm run typecheck
pnpm test
pnpm run package # target-specific VSIX (apps/vscode)
pnpm run package:preflight # release checks, tests, and package
原生模块面向不同的运行时。rebuild:native 会为 F5 暂存 Electron 绑定,并在 node_modules 中恢复 Node ABI,以确保测试正常运行:
pnpm run rebuild:native # Electron -> dist/native, then restore Node ABI
pnpm run rebuild:node # Node-only (tests/CLI)
Vitest 脚本会通过 scripts/ensure-node-native.mjs 自动修复 ABI 不匹配问题。
编码规范和拉取请求指南请参阅 CONTRIBUTING.md。
文档
贡献与支持
欢迎贡献。请确保更改范围明确,并在提交拉取请求前运行 pnpm run typecheck 和 pnpm test。
许可证
Mitii AI Agent 根据 AGPL-3.0-or-later 授权。若需在 AGPL 条款之外进行商业授权,请联系维护者。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。