Repository navigation
Releases
v1.8.3 — Tool Use + Semantic Context (Phase 3)
Typed Tools + BM25 Semantic Context
Phase 3 of the multi-agent architecture. Both features are opt-in — existing Phase 1/2 behaviour is unchanged by default.
Agentic Tool Use (vertexAgent.toolUseEnabled)
When enabled, Orchestrator sub-agents enter a multi-turn loop where they call typed tools instead of generating code blocks:
| Tool | Description |
|---|---|
read_file |
Read workspace file; path traversal blocked |
write_file |
Write file + create dirs; DELETE keyword removes file |
list_files |
Glob pattern match (VS Code API + pure-Node fallback) |
grep |
Regex search across source files |
git_diff |
Unstaged or staged diff |
run_tests |
Whitelisted test runners only (npm/pytest/jest/cargo/…) |
run_bash |
Strict allowlist (ls, cat, head, grep, git status/log/diff, node tests/…) |
Each role gets a curated subset:
- Coder: read, write, list, grep
- Security Auditor: read, list, grep, git_diff
- Test Writer: read, write, list, run_tests
- Refactor Expert: read, write, list, grep, git_diff
Provider support: OpenAI (native), Claude (native), Gemini (functionDeclarations), Ollama (JSON-schema-in-system-prompt fallback).
Semantic Context Ranking (vertexAgent.semanticContextEnabled)
When enabled, replaces random file sampling with BM25 ranking — the workspace files most relevant to the current query are selected instead of arbitrary ones.
- Pure JavaScript — no SQLite, no native modules, no external API calls
- Tokeniser handles camelCase/PascalCase (
getUserById→get,user,id) - Stop-word filtering, IDF weighting
- Background indexing on activation + incremental updates on file save
New settings
| Setting | Default | Description |
|---|---|---|
vertexAgent.toolUseEnabled |
false |
Enable agentic tool-use loop for Orchestrator sub-agents |
vertexAgent.semanticContextEnabled |
false |
Enable BM25 semantic file ranking |
Tests
tool-registry.test.js— 85 assertions: tool completeness, schema, role subsets, allowlists, path traversal, DELETE detectionsemantic-index.test.js— 36 assertions: tokeniser, BM25 scoring, topK, edge cases, IDF weighting
344 total unit test assertions across 10 test files — all passing.
v1.8.1 — Orchestrator + Specialized Agents (Phase 2)
Orchestrator — Master/Sub-Agent Pipeline
Phase 2 of the multi-agent architecture. For highly complex tasks (classifier score ≥ 4), VertexAgent now runs a full Planner → parallel Coders → Security Auditor → Test Writer → Judge pipeline. The single-call path is preserved unchanged for simple and trivial tasks.
What's new
Orchestrator (src/agent/orchestrator.ts)
- Planner LLM decomposes the task into a structured JSON plan with roles, target files, and per-step prompts. Falls back to a single coder step on any parse error — the flow is never blocked.
- Up to
maxSubAgents(default: 3) Coder sub-agents run in parallel viaPromise.all, each receiving only its relevant file context. - Edit conflicts resolved by last-write-wins per filepath.
Implicit Security Audit
- When the prompt contains keywords like
auth,password,jwt,encrypt,sql,xss, asecurity_auditorstep is automatically appended even if the Planner didn't include it.
Test Writer
- When
autoWriteTestsis enabled (default:true), atest_writerstep is added for tasks that create new modules or classes.
Mixed-Provider Routing (src/ai/providerRouter.ts)
vertexAgent.plannerProvider: route Planner calls to Claude/Gemini while coding with your main (cheaper) model.vertexAgent.judgeApiKey: separate API key for the judge provider.
Sub-Agent Progress
- Real-time status in chat:
🗺 Planning task…→⚡ Coding N file(s) in parallel…→🔒 Security audit…→🧪 Writing tests…→🔍 Reviewing edits…
Role-Specific Prompts (src/ai/prompts.ts)
- Each sub-agent role receives a focused, token-efficient English system prompt.
New settings
| Setting | Default | Description |
|---|---|---|
vertexAgent.orchestratorEnabled |
true |
Enable Orchestrator for score ≥ 4 tasks |
vertexAgent.plannerProvider |
"same" |
Provider for Planner sub-agent |
vertexAgent.maxSubAgents |
3 |
Max parallel Coder sub-agents (1–6) |
vertexAgent.autoWriteTests |
true |
Auto-add Test Writer step for new modules |
Tests
orchestrator-planning.test.js— 45 assertions: plan parsing, fallback scenarios, role sanitization, maxSubAgents capping, code block extraction, path traversal blocking, edit deduplication, security keyword detectionorchestrator-routing.test.js— 28 assertions: all provider combinations, judgeApiKey fallback, access token propagation
223 total unit test assertions across 8 test files — all passing.
Bug fix
- Removed duplicate
multiAgentForOllamavariable declaration inaiClient.tsthat caused a compile error.
v1.7.96 — Phase 1: LLM-as-Judge + Task Classifier + Token Optimization
What's New in v1.7.96
Phase 1: Multi-Agent Architecture
LLM-as-Judge Quality Gate
A second LLM call independently reviews proposed code edits before writing them to disk. The judge checks for:
- Syntax errors and missing imports
- Hardcoded secrets or
eval()usage - Incomplete task fulfilment
+markers or line numbers leaking into file content
If the judge rejects edits with sufficient confidence (≥ 0.7 by default), the agent retries once with the judge's issues as explicit constraints.
Task Complexity Classifier
Zero-token regex classifier routes every request to the right pipeline tier:
trivial— deterministic path, no LLM (mkdir/delete)simple— lean 400-token prompt, no judgecomplex— full 1400-token prompt + judge gate
Token Optimization
- Simple tasks now use ~400 tokens system prompt instead of ~1400 (saves ~1000 tokens/request)
- Claude:
cache_control: ephemeralon system prompt for complex tasks (~90% savings on repeat calls) - Gemini: fixed
systemInstructionfield separation
Mixed-Provider Judge
Route judge calls to a stronger model (Claude Sonnet, Gemini) even when the main coder is a local Ollama model. Configure vertexAgent.judgeProvider.
Claude Streaming
Claude provider now streams token-by-token via Anthropic SSE format.
English System Prompts
All system prompts rewritten in English for better cross-model compatibility (user-facing explanations remain in German).
New Settings
| Setting | Default | Description |
|---|---|---|
vertexAgent.judgeEnabled |
true |
Enable/disable judge quality gate |
vertexAgent.judgeProvider |
"same" |
Provider for judge calls (same, claude, gemini, openai, ollama) |
vertexAgent.judgeApiKey |
— | API key for judge provider (when different from main) |
vertexAgent.judgeMinConfidence |
0.7 |
Minimum confidence to trigger retry |
vertexAgent.multiAgentForOllama |
false |
Allow judge when main provider is Ollama |
Tests
tests/unit/task-classifier.test.js— 52 assertionstests/unit/judge-gating.test.js— 37 assertionstests/unit/bugfix-regression.test.js— 61 assertions (unchanged, all pass)
Total: 150 unit test assertions
v1.7.94 — Diff Engine Fixes & Deduplication
Highlights
- Diff-Engine vollständig überarbeitet:
+-Marker werden korrekt aus neuen Dateien entfernt, kein führendes Leerzeichen mehr - Doppelte Code-Blöcke (LLM gibt denselben Diff-Block zweimal aus) werden jetzt unterdrückt — im Chat UND beim Schreiben
- 61 Regressionstests sichern alle bisherigen Fixes ab
- README, README_DE und CHANGELOG vollständig aktualisiert mit Roadmap, Security-Backlog und Vergleichstabelle
Fixed
- Duplicate code block execution — same diff applied twice
+prefix written literally into new files- Leading whitespace from
"+ text".slice(1)→ fixed toslice(2) - LLM not generating diff format → concrete per-filename diff template in prompt
- Line numbers (1:, 2:) in diff lines not stripped correctly
Added
deduplicateChatCodeBlocks()— removes identical LLM output blocks before display and file writingFileEditEngineedit deduplication byfilePath + contentkey- Regression test suite:
tests/unit/bugfix-regression.test.js(61 assertions) - Auto version bump on
npm run compile
Docs
- README rewritten with feature comparison table, security model, full roadmap with open/closed TODOs
- README_DE fully synced (German)
- CHANGELOG updated for v1.7.80–v1.7.94
v1.7.83 - Nested Fence Parser, MD Language Fix, DELETE Intent Hardening
Fixes
- Nested Code Fence Parser — Markdown files with code examples no longer get split into broken blocks
- MD Language Detection —
.mdfiles now render as MARKDOWN, not PYTHON - DELETE vs Line-Edit (Round 2) — System prompt hardened with explicit diff examples for line removal
- False-Positive Deletion — Version numbers and content-edit patterns no longer trigger file deletion
- Stateful Fence Parser — Both UI and edit extraction use nest-level tracking
Previous (v1.7.80)
- HTML artifact leakage fix (placeholder tokenizer)
- Token merging / keyword spacing fix (display:block)
- Destructive diff logic fix (applyDiffPatch)
- Auto file context injection (resolveFileContext)
Full changelog: https://github.com/Zafer83/vertex-agent/blob/main/CHANGELOG.md
v1.7.81
VertexAgent v1.7.81
- Fixed API key security:
vertexAgent.apiKeyandvertexAgent.accessTokennow usesecret: truefor OS keychain storage instead of plaintext insettings.json. - Fixed version drift: removed
bump-version.jsfromcompilescript so version bumps only happen duringvscode:prepublish. - Added CLAUDE.md project documentation with directory structure, build commands, provider overview, conventions, and common tasks.
Included asset: vertex-agent-1.7.81.vsix
VertexAgent v1.6.0
Changelog
- Added real-time streaming support with formatted live rendering.
- Added syntax highlighting in chat code blocks.
- Improved file write pipeline (plan -> folders -> files -> write per file).
- Improved status UX (localized randomized messages and stable bottom placement).
- Hardened edit extraction and file-write reliability.
- Synced README_DE with the current English README scope.
Build
- Included asset: vertex-agent-1.6.0.vsix
VertexAgent v1.5.13
Changelog
- Restored marketplace logo by re-adding root icon in package.json (icon: media/icon.png).
Build
- Included asset: vertex-agent-1.5.13.vsix
VertexAgent v1.5.12
Changelog
- Chat panel now opens in right split view beside code (ViewColumn.Beside).
- Removed unstable auto-docking fallback commands for consistent placement.
Build
- Included asset: vertex-agent-1.5.12.vsix