mcpField
M
Mitii AI Agent

Mitii AI Agent

github.com/Mitii-dev编码 Agent33 周前更新

关于 Mitii AI Agent

Mitii AI Agent 是面向 VS Code 的代码 Agent,也提供 CLI 和 SDK。它结合 Ask、Plan、Agent、Review 工作流、本地上下文索引与需审批的执行机制。

主要功能

  1. 01仓库感知上下文索引
  2. 02Ask、Plan、Agent 和 Review 模式
  3. 03审批控制与检查点
  4. 04可选 FIM 自动补全
  5. 05CLI 和 SDK 接入

适用场景

  1. 01只读分析代码库
  2. 02规划并实施限定范围的代码变更
  3. 03审查工作区差异并导出发现

MCP 相关

Mitii 可在 VS Code 中通过 MCP 服务扩展工作流。其代码库还包含 MCP 客户端包和 MCP Web 服务端。

详细介绍

Mitii AI Agent

>Mitii.dev_

一款以本地优先为理念的 VS Code AI 编码 Agent,具备仓库感知上下文、受控执行和灵活的模型提供方。

License: AGPL v3 VS Code 1.124+ Node 20+ Version 2.10.0 Documentation

AI coding agent · VS Code · local-first · MCP · Ollama · TypeScript

Mitii 会在修改仓库之前先理解它。它将本地索引、Ask/Plan/Agent 工作流、可选的 FIM 自动补全、需审批的工具、检查点、记忆和会话日志整合到同一套 VS Code 体验中。你可以使用兼容 OpenAI API 的本地模型来保护隐私,也可以在需要更强能力时使用任何兼容 OpenAI API 的云端端点。

VS Code 中的 Mitii 聊天界面

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,以及任何 /v1 API)。
  • 可扩展工作流 - 内置工具、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 条款之外进行商业授权,请联系维护者。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。