feat(agent-manager): enable tool by default in VS Code

This commit is contained in:
marius-kilocode
2026-05-27 12:16:42 +02:00
parent cb933859ff
commit 3ffacc847b
31 changed files with 44 additions and 117 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"kilo-code": minor
---
Make the Agent Manager tool available by default in VS Code.
@@ -138,9 +138,9 @@ Imported work stays associated with its branch or worktree and can be continued
## Starting Sessions From Chat
Kilo can start Agent Manager sessions from chat with the experimental `agent_manager` tool. Enable it in **Settings > Experimental > Agent Manager Tool**, or set `experimental.agent_manager_tool` to `true` in `kilo.jsonc`.
Kilo can start Agent Manager sessions from chat with the `agent_manager` tool. It is available by default only in the VS Code extension because Agent Manager is an extension feature.
The tool is available only in the VS Code extension because Agent Manager is an extension feature. It supports two modes:
The tool supports two modes:
| Mode | Behavior |
|---|---|
@@ -24,7 +24,7 @@ Tools are organized into logical groups based on their functionality:
| **Web Group** | Fetch and search web content | `webfetch`, `websearch`, `codesearch` | Research, documentation lookup |
| **Browser Group** | Web browser automation | `kilo-playwright_*` (via built-in Playwright MCP) | Browser testing and interaction |
| **MCP Group** | External tool integration | MCP server tools (namespaced as `{server}_{tool}`) | Specialized functionality via MCP |
| **Workflow Group** | Sub-agents and task management | `question`, `task`, `todowrite`, `todoread`, `plan`, `skill`, `agent_manager` (experimental) | Context switching and task organization |
| **Workflow Group** | Sub-agents and task management | `question`, `task`, `todowrite`, `todoread`, `plan`, `skill`, `agent_manager` | Context switching and task organization |
### Always Available Tools
@@ -94,7 +94,7 @@ These tools help manage the conversation and task flow:
- `todoread` - Reads the current session TODO list
- `plan` - Enters structured planning mode
- `skill` - Invokes a reusable skill (Markdown instruction module)
- `agent_manager` - Starts Agent Manager local or worktree sessions when the experimental Agent Manager Tool setting is enabled in VS Code
- `agent_manager` - Starts Agent Manager local or worktree sessions in VS Code
{% /tab %}
{% tab label="VSCode (Legacy)" %}
@@ -66,7 +66,7 @@ Use the shield button in the prompt controls to toggle runtime auto-approve for
Expand **Manage Auto-Approve Rules** to add commands or patterns to your allowed or denied lists. These rules are then appended to the bottom of the approval rules in settings and the config file.
For the experimental `agent_manager` tool, runtime approvals use the requested mode as the pattern: `worktree` or `local`.
For the `agent_manager` tool, runtime approvals use the requested mode as the pattern: `worktree` or `local`.
## MCP Tool Permissions
@@ -200,7 +200,6 @@ Available experimental settings include:
- **Paste summary** - summarize large clipboard pastes before including them
- **Speech to Text Model** - optionally select the transcription model
- **Batch tool** - allow the agent to batch multiple tool calls in one step
- **Agent Manager Tool** - allow agents to start Agent Manager local and worktree sessions from chat
- **OpenTelemetry** - enable Kilo telemetry and optional OTLP export when configured
Voice input appears automatically when the Kilo provider is enabled and you are signed in. Choosing **Speech to Text Model** stores `experimental.speech_to_text_model` in your global Kilo CLI config (`~/.config/kilo/kilo.jsonc`):
@@ -220,7 +219,6 @@ Advanced options not exposed in the UI can be configured via the `experimental`
"experimental": {
"codebase_search": true,
"batch_tool": false,
"agent_manager_tool": false,
"openTelemetry": true,
"disable_paste_summary": false,
"mcp_timeout": 30000
@@ -190,19 +190,6 @@ const ExperimentalTab: Component = () => {
</Switch>
</SettingsRow>
<SettingsRow
title={language.t("settings.experimental.agentManagerTool.title")}
description={language.t("settings.experimental.agentManagerTool.description")}
>
<Switch
checked={experimental().agent_manager_tool ?? false}
onChange={(checked) => updateExperimental("agent_manager_tool", checked)}
hideLabel
>
{language.t("settings.experimental.agentManagerTool.title")}
</Switch>
</SettingsRow>
<SettingsRow
title={language.t("settings.experimental.speechToTextModel.title")}
description={
-3
View File
@@ -1230,9 +1230,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "بحث في قاعدة الكود",
"settings.experimental.codebaseSearch.description": "تمكين البحث بالذكاء الاصطناعي باللغة الطبيعية عبر قاعدة الكود",
"settings.experimental.agentManagerTool.title": "أداة Agent Manager",
"settings.experimental.agentManagerTool.description":
"السماح للوكلاء ببدء جلسات Agent Manager المحلية وجلسات worktree من استدعاء أداة",
"settings.experimental.speechToText.title": "تحويل الصوت إلى نص",
"settings.experimental.speechToText.description":
"تمكين الإدخال الصوتي في حقول المطالبة باستخدام حساب Kilo الخاص بك من خلال Kilo Gateway.",
-3
View File
@@ -1259,9 +1259,6 @@ export const dict = {
"settings.experimental.codebaseSearch.title": "Pesquisa de código",
"settings.experimental.codebaseSearch.description":
"Ativar pesquisa por linguagem natural com IA em toda a base de código",
"settings.experimental.agentManagerTool.title": "Ferramenta Agent Manager",
"settings.experimental.agentManagerTool.description":
"Permitir que agentes iniciem sessões locais e sessões worktree do Agent Manager a partir de uma chamada de ferramenta",
"settings.experimental.speechToText.title": "Fala para texto",
"settings.experimental.speechToText.description":
"Ative a entrada de voz nos campos de prompt usando sua conta do Kilo por meio do Kilo Gateway.",
-3
View File
@@ -1259,9 +1259,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "Pretraga koda",
"settings.experimental.codebaseSearch.description": "Omogući AI pretragu prirodnim jezikom kroz bazu koda",
"settings.experimental.agentManagerTool.title": "Agent Manager alat",
"settings.experimental.agentManagerTool.description":
"Dozvoli agentima da pokreću lokalne Agent Manager sesije i worktree sesije iz poziva alata",
"settings.experimental.speechToText.title": "Govor u tekst",
"settings.experimental.speechToText.description":
"Omogućite glasovni unos u poljima za promptove koristeći vaš Kilo račun preko Kilo Gateway.",
-3
View File
@@ -1252,9 +1252,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "Kodesøgning",
"settings.experimental.codebaseSearch.description": "Aktiver AI-drevet naturlig sprogsøgning på tværs af kodebasen",
"settings.experimental.agentManagerTool.title": "Agent Manager-værktøj",
"settings.experimental.agentManagerTool.description":
"Tillad agenter at starte lokale Agent Manager-sessioner og worktree-sessioner fra et værktøjskald",
"settings.experimental.speechToText.title": "Tale til tekst",
"settings.experimental.speechToText.description":
"Aktivér stemmeinput i prompt-felter ved hjælp af din Kilo-konto gennem Kilo Gateway.",
-3
View File
@@ -1274,9 +1274,6 @@ export const dict = {
"settings.experimental.codebaseSearch.title": "Codebase-Suche",
"settings.experimental.codebaseSearch.description":
"KI-gestützte Suche in natürlicher Sprache über die gesamte Codebasis aktivieren",
"settings.experimental.agentManagerTool.title": "Agent Manager-Werkzeug",
"settings.experimental.agentManagerTool.description":
"Agenten erlauben, lokale Agent Manager-Sitzungen und Worktree-Sitzungen per Werkzeugaufruf zu starten",
"settings.experimental.speechToText.title": "Sprache zu Text",
"settings.experimental.speechToText.description":
"Aktivieren Sie die Spracheingabe in Prompt-Feldern mit Ihrem Kilo-Konto über Kilo Gateway.",
@@ -1239,9 +1239,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "Codebase Search",
"settings.experimental.codebaseSearch.description": "Enable AI-powered natural language search across your codebase",
"settings.experimental.agentManagerTool.title": "Agent Manager Tool",
"settings.experimental.agentManagerTool.description":
"Allow agents to start Agent Manager local sessions and worktree sessions from a tool call",
"settings.experimental.speechToText.title": "Speech to Text",
"settings.experimental.speechToText.description":
"Enable voice input in prompt fields using your Kilo account through Kilo Gateway.",
-3
View File
@@ -1266,9 +1266,6 @@ export const dict = {
"settings.experimental.codebaseSearch.title": "Búsqueda de código",
"settings.experimental.codebaseSearch.description":
"Habilitar búsqueda por lenguaje natural con IA en toda la base de código",
"settings.experimental.agentManagerTool.title": "Herramienta Agent Manager",
"settings.experimental.agentManagerTool.description":
"Permitir que los agentes inicien sesiones locales y sesiones de worktree de Agent Manager desde una llamada de herramienta",
"settings.experimental.speechToText.title": "Voz a texto",
"settings.experimental.speechToText.description":
"Habilita la entrada de voz en los campos de prompt usando tu cuenta de Kilo a través de Kilo Gateway.",
-3
View File
@@ -1278,9 +1278,6 @@ export const dict = {
"settings.experimental.codebaseSearch.title": "Recherche de code",
"settings.experimental.codebaseSearch.description":
"Activer la recherche en langage naturel par IA dans toute la base de code",
"settings.experimental.agentManagerTool.title": "Outil Agent Manager",
"settings.experimental.agentManagerTool.description":
"Autoriser les agents à démarrer des sessions locales Agent Manager et des sessions worktree depuis un appel d'outil",
"settings.experimental.speechToText.title": "Transcription vocale",
"settings.experimental.speechToText.description":
"Activez la saisie vocale dans les champs de prompt en utilisant votre compte Kilo via Kilo Gateway.",
-3
View File
@@ -1247,9 +1247,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "コードベース検索",
"settings.experimental.codebaseSearch.description": "コードベース全体でAIによる自然言語検索を有効にする",
"settings.experimental.agentManagerTool.title": "Agent Manager ツール",
"settings.experimental.agentManagerTool.description":
"エージェントがツール呼び出しから Agent Manager のローカルセッションとワークツリーセッションを開始できるようにする",
"settings.experimental.speechToText.title": "音声認識",
"settings.experimental.speechToText.description":
"Kilo Gateway経由でKiloアカウントを使用して、プロンプトフィールドでの音声入力を有効にします。",
-3
View File
@@ -1241,9 +1241,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "코드베이스 검색",
"settings.experimental.codebaseSearch.description": "코드베이스 전체에서 AI 기반 자연어 검색 활성화",
"settings.experimental.agentManagerTool.title": "Agent Manager 도구",
"settings.experimental.agentManagerTool.description":
"에이전트가 도구 호출로 Agent Manager 로컬 세션 및 워크트리 세션을 시작하도록 허용",
"settings.experimental.speechToText.title": "음성 텍스트 변환",
"settings.experimental.speechToText.description":
"Kilo Gateway를 통해 Kilo 계정을 사용하여 프롬프트 필드에서 음성 입력을 활성화합니다.",
-3
View File
@@ -1255,9 +1255,6 @@ export const dict = {
"settings.experimental.codebaseSearch.title": "Codebase Zoeken",
"settings.experimental.codebaseSearch.description":
"Schakel AI-aangedreven zoeken in natuurlijke taal door je codebase in",
"settings.experimental.agentManagerTool.title": "Agent Manager-tool",
"settings.experimental.agentManagerTool.description":
"Sta agents toe om lokale Agent Manager-sessies en worktree-sessies te starten vanuit een tool call",
"settings.experimental.speechToText.title": "Spraak naar tekst",
"settings.experimental.speechToText.description":
"Schakel spraakinvoer in promptvelden in met uw Kilo-account via Kilo Gateway.",
-3
View File
@@ -1218,9 +1218,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "Kodesøk",
"settings.experimental.codebaseSearch.description": "Aktiver AI-drevet naturlig språksøk på tvers av kodebasen",
"settings.experimental.agentManagerTool.title": "Agent Manager-verktøy",
"settings.experimental.agentManagerTool.description":
"Tillat agenter å starte lokale Agent Manager-økter og worktree-økter fra et verktøykall",
"settings.experimental.speechToText.title": "Tale til tekst",
"settings.experimental.speechToText.description":
"Aktiver taleinndata i prompt-felt ved å bruke din Kilo-konto gjennom Kilo Gateway.",
-3
View File
@@ -1217,9 +1217,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "Wyszukiwanie kodu",
"settings.experimental.codebaseSearch.description": "Włącz wyszukiwanie w języku naturalnym z AI w całej bazie kodu",
"settings.experimental.agentManagerTool.title": "Narzędzie Agent Manager",
"settings.experimental.agentManagerTool.description":
"Zezwól agentom na uruchamianie lokalnych sesji Agent Manager i sesji worktree z wywołania narzędzia",
"settings.experimental.speechToText.title": "Mowa na tekst",
"settings.experimental.speechToText.description":
"Włącz wprowadzanie głosowe w polach promptów przy użyciu konta Kilo za pośrednictwem Kilo Gateway.",
-3
View File
@@ -1255,9 +1255,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "Поиск по коду",
"settings.experimental.codebaseSearch.description": "Включить поиск на естественном языке с ИИ по всей кодовой базе",
"settings.experimental.agentManagerTool.title": "Инструмент Agent Manager",
"settings.experimental.agentManagerTool.description":
"Разрешить агентам запускать локальные сеансы Agent Manager и сеансы worktree через вызов инструмента",
"settings.experimental.speechToText.title": "Речь в текст",
"settings.experimental.speechToText.description":
"Включите голосовой ввод в полях запросов, используя вашу учетную запись Kilo через Kilo Gateway.",
-3
View File
@@ -1238,9 +1238,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "ค้นหาโค้ดเบส",
"settings.experimental.codebaseSearch.description": "เปิดใช้งานการค้นหาด้วยภาษาธรรมชาติโดย AI ทั่วทั้งโค้ดเบส",
"settings.experimental.agentManagerTool.title": "เครื่องมือ Agent Manager",
"settings.experimental.agentManagerTool.description":
"อนุญาตให้เอเจนต์เริ่มเซสชัน Agent Manager ในเครื่องและเซสชัน worktree จากการเรียกเครื่องมือ",
"settings.experimental.speechToText.title": "แปลงเสียงเป็นข้อความ",
"settings.experimental.speechToText.description":
"เปิดใช้งานการป้อนข้อมูลด้วยเสียงในช่องพรอมต์โดยใช้บัญชี Kilo ของคุณผ่าน Kilo Gateway",
-3
View File
@@ -1248,9 +1248,6 @@ export const dict = {
"settings.experimental.codebaseSearch.title": "Kod Tabanı Araması",
"settings.experimental.codebaseSearch.description":
"Kod tabanınız genelinde yapay zeka destekli doğal dil aramasını etkinleştir",
"settings.experimental.agentManagerTool.title": "Agent Manager Aracı",
"settings.experimental.agentManagerTool.description":
"Ajanların bir araç çağrısından Agent Manager yerel oturumları ve worktree oturumları başlatmasına izin ver",
"settings.experimental.speechToText.title": "Sesten metne",
"settings.experimental.speechToText.description":
"Kilo Gateway üzerinden Kilo hesabınızı kullanarak komut alanlarında sesli girişi etkinleştirin.",
-3
View File
@@ -1248,9 +1248,6 @@ export const dict = {
"settings.experimental.codebaseSearch.title": "Пошук по кодовій базі",
"settings.experimental.codebaseSearch.description":
"Увімкнути пошук природною мовою на основі ШІ по всій кодовій базі",
"settings.experimental.agentManagerTool.title": "Інструмент Agent Manager",
"settings.experimental.agentManagerTool.description":
"Дозволити агентам запускати локальні сесії Agent Manager і сесії worktree через виклик інструмента",
"settings.experimental.speechToText.title": "Мовлення в текст",
"settings.experimental.speechToText.description":
"Увімкніть голосове введення в полях запитів, використовуючи ваш обліковий запис Kilo через Kilo Gateway.",
-2
View File
@@ -1220,8 +1220,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "代码库搜索",
"settings.experimental.codebaseSearch.description": "启用 AI 驱动的自然语言代码库搜索",
"settings.experimental.agentManagerTool.title": "Agent Manager 工具",
"settings.experimental.agentManagerTool.description": "允许智能体通过工具调用启动 Agent Manager 本地会话和工作树会话",
"settings.experimental.speechToText.title": "语音转文本",
"settings.experimental.speechToText.description": "通过 Kilo Gateway 使用您的 Kilo 帐户在提示词字段中启用语音输入。",
"settings.experimental.speechToText.disabledDescription":
-3
View File
@@ -1188,9 +1188,6 @@ export const dict = {
"Enable semantic codebase indexing and the semantic_search tool. Requires indexing configuration.",
"settings.experimental.codebaseSearch.title": "程式碼庫搜尋",
"settings.experimental.codebaseSearch.description": "啟用 AI 驅動的自然語言程式碼庫搜尋",
"settings.experimental.agentManagerTool.title": "Agent Manager 工具",
"settings.experimental.agentManagerTool.description":
"允許 Agent 透過工具呼叫啟動 Agent Manager 本機工作階段和工作樹工作階段",
"settings.experimental.speechToText.title": "語音轉文字",
"settings.experimental.speechToText.description": "透過 Kilo Gateway 使用您的 Kilo 帳戶在提示詞欄位中啟用語音輸入。",
"settings.experimental.speechToText.disabledDescription":
@@ -42,7 +42,6 @@ export interface ExperimentalConfig {
batch_tool?: boolean
semantic_indexing?: boolean
codebase_search?: boolean
agent_manager_tool?: boolean
speech_to_text_model?: string
primary_tools?: string[]
continue_loop_on_deny?: boolean
-3
View File
@@ -354,9 +354,6 @@ export const Info = Schema.Struct({
semantic_indexing: Schema.optional(Schema.Boolean).annotate({
description: "Enable semantic codebase indexing and the semantic_search tool",
}),
agent_manager_tool: Schema.optional(Schema.Boolean).annotate({
description: "Enable the VS Code Agent Manager orchestration tool",
}),
speech_to_text_model: Schema.optional(Schema.String).annotate({
description: "Speech-to-text transcription model ID to use for voice input",
}),
@@ -83,7 +83,7 @@ export namespace KiloToolRegistry {
/** Kilo-specific tools to append to the builtin list */
export function extra(
tools: { codebase: Tool.Def; semantic?: Tool.Def; recall: Tool.Def; manager: Tool.Def; process: Tool.Def },
cfg: { experimental?: { codebase_search?: boolean; agent_manager_tool?: boolean } },
cfg: { experimental?: { codebase_search?: boolean } },
): Tool.Def[] {
return [
...(cfg.experimental?.codebase_search === true ? [tools.codebase] : []),
@@ -91,7 +91,7 @@ export namespace KiloToolRegistry {
tools.recall,
...(Flag.KILO_CLIENT === "cli" || Flag.KILO_CLIENT === "vscode" ? [tools.process] : []),
// The extension is the only client that can consume the Agent Manager start event.
...(Flag.KILO_CLIENT === "vscode" && cfg.experimental?.agent_manager_tool === true ? [tools.manager] : []),
...(Flag.KILO_CLIENT === "vscode" ? [tools.manager] : []),
]
}
@@ -199,21 +199,18 @@ describe("kilocode tool registry indexing", () => {
"recall",
"background_process",
])
expect(
KiloToolRegistry.extra(tools, { experimental: { codebase_search: true, agent_manager_tool: true } }).map(
(tool) => tool.id,
),
).toEqual(["codebase_search", "semantic_search", "recall", "background_process"])
expect(KiloToolRegistry.extra(tools, { experimental: { codebase_search: true } }).map((tool) => tool.id)).toEqual(
["codebase_search", "semantic_search", "recall", "background_process"],
)
process.env["KILO_CLIENT"] = "vscode"
expect(
KiloToolRegistry.extra(tools, { experimental: { codebase_search: true, agent_manager_tool: true } }).map(
(tool) => tool.id,
),
).toEqual(["codebase_search", "semantic_search", "recall", "background_process", "agent_manager"])
expect(KiloToolRegistry.extra(tools, { experimental: { codebase_search: true } }).map((tool) => tool.id)).toEqual(
["codebase_search", "semantic_search", "recall", "background_process", "agent_manager"],
)
expect(KiloToolRegistry.extra({ ...tools, semantic: undefined }, {}).map((tool) => tool.id)).toEqual([
"recall",
"background_process",
"agent_manager",
])
process.env["KILO_CLIENT"] = "desktop"
-1
View File
@@ -1428,7 +1428,6 @@ export type Config = {
batch_tool?: boolean
codebase_search?: boolean
semantic_indexing?: boolean
agent_manager_tool?: boolean
speech_to_text_model?: string
openTelemetry?: boolean
primary_tools?: Array<string>
+25 -24
View File
@@ -15639,7 +15639,7 @@
}
},
"additionalProperties": false,
"description": "Server configuration for kilo serve and web commands"
"description": "Server configuration for the kilo serve command"
},
"IndexingConfig": {
"type": "object",
@@ -16226,15 +16226,13 @@
"properties": {
"type": {
"type": "string",
"enum": ["local"],
"description": "Type of MCP server connection"
"enum": ["local"]
},
"command": {
"type": "array",
"items": {
"type": "string"
},
"description": "Command and arguments to run the MCP server"
}
},
"environment": {
"type": "object",
@@ -16242,6 +16240,12 @@
"type": "string"
}
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"enabled": {
"type": "boolean"
},
@@ -16771,9 +16775,6 @@
"semantic_indexing": {
"type": "boolean"
},
"agent_manager_tool": {
"type": "boolean"
},
"speech_to_text_model": {
"type": "string"
},
@@ -18401,22 +18402,6 @@
"required": ["id", "type", "name", "branch", "directory", "extra", "projectID"],
"additionalProperties": false
},
"BackgroundProcessLogs": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"output": {
"type": "string"
}
},
"required": ["id", "sessionID", "output"],
"additionalProperties": false
},
"WorkspaceWarpError": {
"type": "object",
"properties": {
@@ -18438,6 +18423,22 @@
"required": ["name", "data"],
"additionalProperties": false
},
"BackgroundProcessLogs": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"output": {
"type": "string"
}
},
"required": ["id", "sessionID", "output"],
"additionalProperties": false
},
"effect_HttpApiError_Unauthorized": {
"type": "object",
"properties": {