关于 Mitii AI Agent
Mitii AI Agent 是面向 VS Code 的代码 Agent,也提供 CLI 和 SDK。它结合 Ask、Plan、Agent、Review 工作流、本地上下文索引与需审批的执行机制。
主要功能
- 01仓库感知上下文索引
- 02Ask、Plan、Agent 和 Review 模式
- 03审批控制与检查点
- 04可选 FIM 自动补全
- 05CLI 和 SDK 接入
适用场景
- 01只读分析代码库
- 02规划并实施限定范围的代码变更
- 03审查工作区差异并导出发现
MCP 相关
Mitii 可在 VS Code 中通过 MCP 服务扩展工作流。其代码库还包含 MCP 客户端包和 MCP Web 服务端。
详细介绍
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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。