Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .jules/bolt.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 2026-04-25 - LLM API Connection Pooling
**Learning:** Making repeated API calls to external LLM providers (e.g. OpenRouter, OpenAI) without HTTP Keep-Alive results in 100-200ms of unnecessary TCP/TLS handshake overhead per request. In an agentic loop, this accumulates significantly.
**Action:** When initializing HTTP clients (like Axios) for repeated internal/external services, configure them with an `https.Agent` setting `keepAlive: true` to pool connections.

## 2026-06-03 - Agentic Loop API Redundancy
**Learning:** Agentic loops repeatedly calling the same context via external search or APIs create significant performance bottlenecks due to redundant network queries and delayed processing.
**Action:** Implement in-memory caching (e.g., using a Map) for repetitive read-only tools like `SearchTool.deep`. Cache hits should be evaluated inside the core execution wrappers to maintain standard formatting, retry logic, and standardized logging without duplicating code.
14 changes: 13 additions & 1 deletion src/tools/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,21 +60,33 @@ export class FileTool {
}

export class SearchTool {
// ⚑ Bolt: Cache deep search queries to prevent redundant API calls
private cache = new Map<string, any>();

constructor(private core: CoreEngine) {}

async deep(query: string): Promise<ExecutionResult<any>> {
this.core.log(`Initiating deep search for: ${query}`);
// This is where real API calls to Google/X/Reddit would go
return this.core.execute(async () => {
// ⚑ Bolt: Check cache inside execution wrapper to maintain execution result formatting and retry logic
if (this.cache.has(query)) {
return this.cache.get(query);
}

// Simulated results for the SDK base
return {
const result = {
query,
timestamp: new Date().toISOString(),
findings: [
"Best practices for " + query,
"Trending solutions in 2026"
]
};

// ⚑ Bolt: Store result in cache
this.cache.set(query, result);
return result;
});
}
}