BCE maps repositories into a deterministic code graph and retrieves the symbols, relationships and evidence an agent actually needs — not just the files that happen to match a query.
BCE, depolarınızı deterministik bir kod grafına dönüştürür ve bir ajanın gerçekten ihtiyaç duyduğu sembolleri, ilişkileri ve kanıtı getirir — sorguya rastgele benzeyen dosyaları değil.
task_text = "Fix the login timeout that fires on POST /meeting/webhook"
The same subgraph in three dimensions: depth is each symbol’s distance in the code graph from refresh_session.
anchorfocus symbolcandidate
THE PROBLEM
AI can read code. The hard part is knowing which code matters.
An agent working on an unfamiliar repository has to decide what to read before it can decide what to change. The usual answer is embedding search over chunked files — cheap to build, and wrong in a specific way: it returns text that reads like the question rather than code that participates in the behaviour.
Tanımadığı bir depoda çalışan bir ajan, neyi değiştireceğine karar vermeden önce neyi okuyacağına karar vermek zorundadır. Alışılmış cevap, parçalanmış dosyalar üzerinde embedding aramasıdır — kurması ucuz, ama çok belirli bir biçimde yanlış: davranışa katılan kodu değil, soruya benzeyen metni döner.
SAME TASK, BOTH SIDES
· "Why does the login timeout fire on the meeting webhook?"
Conventional retrieval
Five files that mention timeouts.
timeout.py
login.md
webhook.md
session.txt
config.md
Textually similar ≠ structurally relevant. Not one of these is the function that sets the value, and none of the three callers that break when you change it appears at all.
Metinsel benzerlik ≠ yapısal ilgi. Bunların hiçbiri değeri ayarlayan fonksiyon değil; değiştirdiğinizde bozulacak üç çağıranın hiçbiri de listede yok.
BGTS Context Engine
handle_meeting_webhookapi/webhooks.py:31
CALLS
refresh_sessionauth/session.py:84
REFERENCES · read
SESSION_TTLauth/config.py:41
REFERENCES · define
AuthConfigauth/config.py:12
Ranked symbols, real relationships, a confidence level attached.SESSION_TTL is written in exactly one place. That is a graph walk, and it has an exact answer.
Sıralı semboller, gerçek ilişkiler, ekli bir güven seviyesi.SESSION_TTL'e tam olarak tek bir yerde değer atanır. Bu bir graf gezinmesidir ve kesin bir cevabı vardır.
Embedding search can tell an agent which files look similar to a task. BCE tells it which symbols participate in the behaviour.
Embedding araması bir ajana hangi dosyaların göreve benzediğini söyleyebilir. BCE ise hangi sembollerin davranışa katıldığını söyler.
THE INDEX
BCE doesn't search your repository. It understands its structure.
Indexing produces a typed graph in PostgreSQL: symbols and the edges between them, plus two node kinds most code indexes throw away — the HTTP routes that reach your handlers, and the WHY: comments that explain them.
İndeksleme, PostgreSQL içinde tipli bir graf üretir: semboller ve aralarındaki kenarlar; ayrıca çoğu kod indeksinin attığı iki düğüm türü — handler'larınıza ulaşan HTTP route'ları ve onları açıklayan WHY: yorumları.
repository graphhover or focus a node
Node labels
Repo · FileWhere a symbol lives, and which repository owns it.Bir sembolün yaşadığı yer ve onu barındıran depo.
ModuleThe import-level grouping a file belongs to.Bir dosyanın ait olduğu import düzeyindeki gruplama.
RouteAn HTTP method and path pattern, extracted from the framework. A route can anchor a retrieval on its own.Framework'ten çıkarılan bir HTTP metodu ve yol deseni. Bir route tek başına getirmeye çapa olabilir.
DesignNoteA WHY:, NOTE:, HACK:, TODO: or FIXME: comment, bound to the symbol it explains.WHY:, NOTE:, HACK:, TODO: veya FIXME: yorumu; açıkladığı sembole bağlanır.
Edge types
CALLSSymbol to symbol, and it may cross repositories.Sembolden sembole; depoları da aşabilir.
REFERENCESCarries ref_kind: define, write, read or pass. This is the single most important signal in scoring.ref_kind taşır: define, write, read veya pass. Skorlamadaki en önemli sinyal budur.
INHERITS · IMPLEMENTSType hierarchy, walked in both directions.Tip hiyerarşisi; iki yönde de gezilir.
IMPORTSFile and module level dependencies.Dosya ve modül düzeyinde bağımlılıklar.
ROUTES_TOA route to its handler symbol.Bir route'tan handler sembolüne.
EXPLAINS · DEFINED_IN · BELONGS_TORationale to symbol, symbol to file, file to repository.Gerekçeden sembole, sembolden dosyaya, dosyadan depoya.
Every edge carries its provenance
How an edge got into the graph is recorded, weighted differently in scoring, and reported back on every response — so you can audit what the ranking trusted.Bir kenarın grafa nasıl girdiği kaydedilir, skorlamada farklı ağırlıklandırılır ve her yanıtta raporlanır — böylece sıralamanın neye güvendiğini denetleyebilirsiniz.
scip1.0A real compiler index.Gerçek bir derleyici indeksi.
treesitter0.8Extracted from syntax.Sözdiziminden çıkarıldı.
heuristic0.4A pattern match — routes, cross-language bridges.Bir örüntü eşleşmesi — route'lar, diller arası köprüler.
THE PIPELINE
Watch a task become context.
Seven stages run between the task text and the pack the agent receives. This is a real run, recorded by the engine's own trace endpoint while it indexed its own repository — the counters, the scores and the confidence level below are what it actually returned.
Görev metni ile ajanın aldığı paket arasında yedi aşama çalışır. Bu gerçek bir koşu: motorun kendi trace uç noktası, kendi deposunu indekslerken kaydetti — aşağıdaki sayaçlar, skorlar ve güven seviyesi gerçekten döndürdüğü değerler.
RECORDED RUN · BCE INDEXING ITS OWN REPOSITORYKAYDEDİLMİŞ KOŞU · BCE KENDİ DEPOSUNU İNDEKSLİYORHow does get_context_for_task turn find_anchors into a ranked context pack through expand_from_anchors score_candidate and assemble
01 / 07
Stage counters, symbol names, file paths, scores and the confidence level come from a recorded run of the shipped /ui trace. The graph draws the call structure the run walked; the run itself scored 458 candidates, more than a canvas can hold.Aşama sayaçları, sembol adları, dosya yolları, skorlar ve güven seviyesi, ürünle gelen /ui trace'inin kaydedilmiş bir koşusundan gelir. Graf, koşunun gezdiği çağrı yapısını çizer; koşunun kendisi 458 aday skorladı — bir tuvalin alabileceğinden fazlası.
THE GUARANTEE
Same task. Same commit. Same context.
Run the same task three times and the pack comes back in the same order, with the same scores, every time. When an agent makes a bad change you can replay exactly what it was told, find the stage that surfaced the wrong symbol, and fix that stage.
Aynı görevi üç kez çalıştırın; paket her seferinde aynı sırayla, aynı skorlarla döner. Bir ajan hatalı bir değişiklik yaptığında ona tam olarak ne söylendiğini yeniden oynatabilir, yanlış sembolü yüzeye çıkaran aşamayı bulabilir ve o aşamayı düzeltebilirsiniz.
bce context --task "…" --commit 9f2c41e
SHA-256 OF THE ORDERING — COMPUTED IN YOUR BROWSER, ONCE PER RUN…
What makes it hold
No model in the retrieval pathGetirme yolunda model yok
No clock, no randomnessSaat yok, rastgelelik yok
Sorted traversal, fixed hop limitsSıralı gezinme, sabit hop sınırları
Stable tiebreak: score desc, then symbol_id ascKararlı eşitlik bozma: skor azalan, sonra symbol_id artan
Determinism is not a claim in the documentation, it is a test in the pipeline. bce bench runs every case repeatedly and fails unless the ordering comes back byte-identical.
Determinizm dokümantasyondaki bir iddia değil, hattaki bir testtir. bce bench her vakayı tekrar tekrar koşar ve sıralama bayt-birebir aynı dönmezse başarısız olur.
“Determinism is the product.”
A change that makes the same task return different results is not merged without an explicit opt-in flag. — CONTRIBUTING.md
“Determinizm ürünün kendisidir.”
Aynı görevin farklı sonuç döndürmesine yol açan bir değişiklik, açık bir opt-in bayrağı olmadan birleştirilmez. — CONTRIBUTING.md
THE SHIPPED UI
The interface that explains itself.
The web interface ships inside the wheel at /ui. Its second tab is not a dashboard — it replays a real get_context_for_task call stage by stage against the graph, through POST /v1/ui/context-trace. When retrieval returns something surprising, watching where it went wrong is faster than reading the scores.
Web arayüzü wheel içinde /ui adresinde gelir. İkinci sekmesi bir dashboard değildir — gerçek bir get_context_for_task çağrısını POST /v1/ui/context-trace üzerinden, graf üzerinde aşama aşama yeniden oynatır. Getirme şaşırtıcı bir şey döndürdüğünde, nerede saptığını izlemek skorları okumaktan hızlıdır.
BCE Graph Explorerstage-by-stage replayaşama aşama tekrar
What the explorer shows
4.9k edgesThe whole indexed graph, drawn in WebGL.İndekslenmiş grafın tamamı, WebGL ile çizilmiş.
136 files · 1.5k symbolsBCE's own repository, indexed by BCE.BCE'nin kendi deposu, BCE tarafından indekslenmiş.
135 modules · 41 routesRoutes are first-class nodes, not comments in a file.Route'lar bir dosyadaki yorumlar değil, birinci sınıf düğümlerdir.
3 design notesWHY: comments, bound to the symbols they explain.WHY: yorumları, açıkladıkları sembollere bağlı.
PY 84% · TS 15%Language mix, computed from the index itself.İndeksin kendisinden hesaplanan dil dağılımı.
Node colour is the node label, size is degree. Click a node for its signature and body; double-click to expand its neighbours. Everything in the panel comes from /v1/ui/* — the same graph the agent queries.Düğüm rengi etiketi, boyutu derecesini gösterir. Bir düğüme tıklayınca imzası ve gövdesi, çift tıklayınca komşuları açılır. Paneldeki her şey /v1/ui/* üzerinden gelir — ajanın sorguladığı grafın aynısı.
The full walkthrough
51 seconds, no audio. The run in the video is the one the pipeline section above steps through.51 saniye, sessiz. Videodaki koşu, yukarıdaki hat bölümünde adım adım gezdiğiniz koşunun ta kendisi.
COVERAGE & CONFIDENCE
Don't just retrieve. Know how much you can trust the retrieval.
Every Layer-3 response carries a trust report alongside the results. It is not a score for the answer — it is a set of deterministic measurements of how well corroborated that answer is, and it exists so an agent can decide whether to act or to ask.
Her Layer-3 yanıtı, sonuçların yanında bir güven raporu taşır. Bu, cevaba verilen bir not değildir — o cevabın ne kadar doğrulandığının deterministik ölçümleridir ve bir ajanın harekete geçmek ile soru sormak arasında karar verebilmesi için vardır.
Two more signals sit beside the confidence level. touches_god_node warns that a hub symbol with degree ≥ 20 — a logger, a settings object — reached the context; it touches everything and explains nothing. commit_mismatch says the index is behind your working tree, which makes every line number in the pack suspect.Güven seviyesinin yanında iki sinyal daha durur. touches_god_node, derecesi ≥ 20 olan bir hub sembolünün — bir logger, bir ayar nesnesi — bağlama girdiğini bildirir; her şeye dokunur, hiçbir şeyi açıklamaz. commit_mismatch ise indeksin çalışma ağacınızın gerisinde kaldığını, dolayısıyla paketteki her satır numarasının şüpheli olduğunu söyler.
HIGH
Act on it
Three independent sources agreed, the candidates form one connected region, and the top candidate is clearly ahead. Proceed with the change.
Üç bağımsız kaynak hemfikir, adaylar tek bir bağlı bölge oluşturuyor ve ilk aday açık ara önde. Değişikliğe devam edin.
MEDIUM
Widen before you edit
Something is missing — fewer sources, a thinner margin, or scattered candidates. Pull the callers explicitly, or raise the budget, before touching code.
Eksik bir şey var — daha az kaynak, daha dar bir fark ya da dağınık adaylar. Koda dokunmadan önce çağıranları açıkça çekin veya bütçeyi yükseltin.
LOW
Ask, don't edit
The engine found something but could not corroborate it. This is the moment for an agent to ask a follow-up question instead of editing — the single most valuable thing a retrieval layer can tell you.
Motor bir şey buldu ama doğrulayamadı. Bu, bir ajanın düzenlemeye başlamak yerine soru sorması gereken andır — bir getirme katmanının size söyleyebileceği en değerli şey.
ASSEMBLY
More context is not better context.
The symbol you are changing arrives in full. Its neighbours arrive as signatures. The outer ring arrives as name @ file:line. Detail is decided by graph distance, not by how much room is left — which is why raising the budget does not buy you more of anything.
Değiştirdiğiniz sembol tam gövdesiyle gelir. Komşuları imza olarak gelir. Dış halka name @ dosya:satır biçiminde gelir. Detayı, kalan yer değil graf mesafesi belirler — bütçeyi yükseltmenin size fazladan bir şey kazandırmamasının nedeni budur.
fullgraph_distance 0–1The full body of the symbol.Sembolün tam gövdesi.
signaturegraph_distance 2Signature and docstring only.Yalnızca imza ve docstring.
referencegraph_distance 3+The name and where to find it.Ad ve nerede bulunacağı.
When it does not fit
An item that would overflow is retried at reference detail first. Only if that still overflows is it skipped — and it is skipped, never reordered, so the pack stays reproducible for a given budget. Token cost is estimated at roughly four characters per token: no model, no network.
Bütçeyi aşacak bir öğe önce reference detayında yeniden denenir. Ancak o da aşarsa atlanır — ve atlanır, asla yeniden sıralanmaz; böylece paket verilen bütçe için yeniden üretilebilir kalır. Token maliyeti yaklaşık dört karakter = bir token olarak tahmin edilir: model yok, ağ yok.
assemblepick a budget
Context pack items at the selected token budget
symbol
dist
detail
tokens
score
ARCHITECTURE
One engine, three layers, one database.
MCP and REST are two surfaces over the same functions, so nothing drifts between them. Underneath, a graph traversal, a vector search and a SQL filter all run against one PostgreSQL — which means one query can join them, and one pg_dump backs up the whole index.
MCP ve REST, aynı fonksiyonların iki yüzeyidir; aralarında kayma olmaz. Altta bir graf gezinmesi, bir vektör araması ve bir SQL filtresi tek bir PostgreSQL üzerinde çalışır — yani tek bir sorgu bunları birleştirebilir ve tek bir pg_dump indeksin tamamını yedekler.
AI AGENTClaude Code · Cursor · VS Code · Claude Desktop
MCP (stdio) · REST (:8000)14 tools · OpenAPI at /docs · web UI at /ui
Context Enginedeterministic, embedding-free after anchor finding
These are the project's own design principles, and they are the reason the engine looks unusual next to a vector store. Every constraint on this page traces back to one of them.Bunlar projenin kendi tasarım ilkeleri; motorun bir vektör veritabanının yanında alışılmadık görünmesinin sebebi de bunlar. Bu sayfadaki her kısıt bunlardan birine dayanıyor.
P1 · The deterministic lineDeterministik çizgiThe system splits in two. The providing side — the engine — has no model and is reproducible. The consuming side — the agent — is probabilistic and makes the decisions. The line is never blurred.Sistem ikiye bölünür. Sağlayan taraf — motor — model içermez ve yeniden üretilebilirdir. Tüketen taraf — ajan — olasılıksaldır ve kararı verir. Bu çizgi asla bulanıklaşmaz.
P2 · Semantic seed, graph truthSemantik tohum, graf gerçekEmbedding search does not produce an answer; it finds a door. The context itself comes from deterministic traversal, so an embedding's whim is damped by expansion rather than amplified by it.Embedding araması cevap üretmez, bir kapı bulur. Bağlamın kendisi deterministik gezinmeden gelir; embedding'in kaprisi genişletmeyle büyütülmez, sönümlenir.
P3 · Narrowing with transparent uncertaintyDaraltma ve şeffaf belirsizlikThe job is not "pick the right file". It is reducing a thousand candidates to about eight without losing recall — and measuring what uncertainty remains instead of hiding it.İş "doğru dosyayı seçmek" değildir. Bin adayı recall'ı kaybetmeden yaklaşık sekize indirmek — ve kalan belirsizliği gizlemek yerine ölçmektir.
P4 · Recall over precision, deliberatelyBilinçli olarak recall > precisionA missed file leads to wrong code. An extra file is only noise. So the engine collects generously, then trims to budget by deterministic ranking — the cost of missing is higher than the cost of over-collecting.Kaçırılan dosya yanlış koda götürür; fazla dosya yalnızca gürültüdür. Motor cömert toplar, sonra deterministik sıralamayla bütçeye budar — kaçırma maliyeti, fazla toplama maliyetinden yüksektir.
P5 · One databaseTek veritabanıGraph, embeddings, metadata and permissions in one PostgreSQL, so a single query joins a traversal, a vector search and an access filter — and one backup captures all of it.Graf, embedding, meta veri ve izinler tek bir PostgreSQL'de; böylece tek bir sorgu bir gezinmeyi, bir vektör aramasını ve bir erişim filtresini birleştirir — ve tek bir yedek hepsini kapsar.
The engine is not a system that finds the right code every time. No such system exists. Its value is narrowing without losing recall — and measuring what it is unsure of instead of concealing it.
Motor, doğru kodu her seferinde bulan bir sistem değildir. Öyle bir sistem yok. Değeri, recall'ı kaybetmeden daraltmak — ve emin olmadığı şeyi gizlemek yerine ölçüp bildirmek.
WHAT IT DOES NOT DO YET
The engine has no authentication of its own and expects to sit behind something that does. Only the Layer-3 endpoints apply the per-user repository scope; Layers 1 and 2 do not. Until that closes — it is the first item on the roadmap — the API belongs behind a proxy. That is stated here for the same reason it is stated in the repository: a retrieval layer that hides its limits is not one you can audit.
Motorun kendine ait bir kimlik doğrulaması yoktur ve önünde bunu yapan bir katman bekler. Kullanıcı bazlı depo kapsamını yalnızca Layer-3 uç noktaları uygular; Layer 1 ve 2 uygulamaz. Bu kapanana kadar — yol haritasının ilk maddesidir — API bir proxy arkasında durmalıdır. Bunun burada yazmasının nedeni, depoda yazmasıyla aynıdır: sınırlarını gizleyen bir getirme katmanı denetlenebilir değildir.
INDEXING
From a commit to a graph, and back again.
The first index parses everything. After that, git diff decides what to re-parse — and because symbol identity does not depend on a file path, a refactor that moves a thousand lines does not invalidate a thousand rows.
İlk indeks her şeyi ayrıştırır. Sonrasında neyin yeniden ayrıştırılacağına git diff karar verir — ve sembol kimliği bir dosya yoluna bağlı olmadığı için, bin satır taşıyan bir refactor bin satırı geçersiz kılmaz.
Repository
→
Parse
→
Symbols
→
Relationships
→
Graph
→
Incremental updates
git diff decides the work
Re-indexing takes a baseline commit and a target, and only touches what changed between them. Remote repositories index the same way.
Yeniden indeksleme bir temel commit ile bir hedef alır ve yalnızca aralarında değişeni işler. Uzak depolar da aynı şekilde indekslenir.
bce reindex --repo . --name my-service --since 9f2c41e --to HEAD
Symbol ids outlive the file path
Identity follows SCIP-moniker logic — language, package, namespace, name, signature — hashed into an id that is repo- and commit-independent. Move the file, reformat it, and history and embeddings stay valid.
Kimlik SCIP-moniker mantığını izler — dil, paket, ad alanı, ad, imza — ve depodan ve commit'ten bağımsız bir kimliğe hash'lenir. Dosyayı taşıyın, yeniden biçimlendirin; geçmiş ve embedding'ler geçerli kalır.
python::auth::session::refresh_session#88c2
Routes and rationale, not just code
Route extraction is framework-aware for FastAPI, Flask, Express, NestJS, Spring, ASP.NET and Gin. Comment markers become DesignNote nodes bound to the symbol they explain.
Route çıkarımı FastAPI, Flask, Express, NestJS, Spring, ASP.NET ve Gin için framework-farkındadır. Yorum işaretleri, açıkladıkları sembole bağlı DesignNote düğümlerine dönüşür.
# WHY: TTL is short because the meeting # webhook replays on retry.
Six languages
Python.py · .pyi — built inyerleşik
JavaScript.js · .jsx — built inyerleşik
TypeScript.ts · .tsx — built inyerleşik
Java.java — langs extra
C#.cs — langs extra
Go.go — langs extra
Optional providers register only if their grammar imports, so the supported set is a deterministic function of the environment. Adding a language touches two files — it is the contribution path with the least friction.İsteğe bağlı sağlayıcılar yalnızca grameri import edilebiliyorsa kaydolur; desteklenen küme ortamın deterministik bir fonksiyonudur. Yeni bir dil eklemek iki dosyaya dokunur — sürtünmesi en az katkı yolu budur.
Running at repository scale
bce indexIndex a local working tree.Yerel bir çalışma ağacını indeksle.
bce index-remoteIndex a Bitbucket repository by URL and branch.Bir Bitbucket deposunu URL ve dal ile indeksle.
bce reindexApply a diff between two commits.İki commit arasındaki farkı uygula.
POST /v1/jobs/*Queue indexing as a background job; poll status, cancel.İndekslemeyi arka plan işi olarak kuyruğa al; durumu sorgula, iptal et.
bce migrateCreate the extensions, graph, tables, vector and full-text indexes.Uzantıları, grafı, tabloları, vektör ve tam metin indekslerini oluştur.
CROSS-LANGUAGE
The call your parser cannot see.
In a React Native app, a TypeScript call and its native implementation are the same behaviour in two languages. No single-language AST spans that gap, so the call graph simply stops at the bridge — and an agent asked to change the native side never learns which screens depend on it.
Bir React Native uygulamasında, bir TypeScript çağrısı ile onun native gerçeklemesi iki dildeki aynı davranıştır. Tek dilli hiçbir AST bu boşluğu kapatmaz; çağrı grafı köprüde durur — ve native tarafı değiştirmesi istenen bir ajan, hangi ekranların ona bağlı olduğunu asla öğrenemez.
TypeScript · src/screens/Login.tsx
await NativeModules.Auth.refresh(token)
heuristicsynthesized_by: rn-bridge
Objective-C · ios/AuthModule.m
RCT_EXPORT_METHOD(refresh:(NSString *)token)
These edges are inferred from naming conventions, not resolved by a compiler. That is exactly why they are tagged heuristic and carry the lowest provenance weight in scoring — and why provenance is reported per edge on every response, so you can see which part of an answer rests on an inference.Bu kenarlar bir derleyici tarafından çözülmez, adlandırma kurallarından çıkarılır. heuristic olarak etiketlenmelerinin ve skorlamada en düşük kaynak ağırlığını taşımalarının nedeni tam olarak budur — ve kaynağın her yanıtta kenar bazında raporlanmasının da: bir cevabın hangi kısmının çıkarıma dayandığını görebilirsiniz.
React Native bridgeRCT_EXPORT_METHOD / RCT_REMAP_METHOD in Objective-C, called from JS as NativeModules.Foo.bar().Objective-C'deki RCT_EXPORT_METHOD / RCT_REMAP_METHOD, JS'ten NativeModules.Foo.bar() ile çağrılır.rn-bridge
Swift ↔ Objective-C@objc(fooBar:) and @objc func expose a Swift symbol under an Objective-C selector.@objc(fooBar:) ve @objc func, bir Swift sembolünü Objective-C seçicisi altında açar.swift-objc-bridge
Expo ModulesFunction("foo") and AsyncFunction("foo") inside a Swift or Kotlin module definition.Bir Swift veya Kotlin modül tanımı içindeki Function("foo") ve AsyncFunction("foo").expo-module-extract
RN event channelssendEvent(withName:) on the native side paired with addListener("onX") in JS.Native taraftaki sendEvent(withName:), JS'teki addListener("onX") ile eşleşir.rn-event-channel
MCP & REST
Put repository context where your agent works.
The MCP surface speaks stdio, so every client configures it the same way: run bce serve-mcp, put the database connection in the environment. Then ask your agent something that needs the repository rather than the file you have open.
MCP yüzeyi stdio konuşur; bu yüzden her istemci aynı şekilde yapılandırılır: bce serve-mcp çalıştırın, veritabanı bağlantısını ortama koyun. Sonra ajanınıza açık olan dosyayı değil, deponun tamamını gerektiren bir şey sorun.
Claude CodeCursorVS CodeClaude Desktop
MCP · STDIO
bce serve-mcp · 14 tools
SINGLE IMPLEMENTATION
PostgreSQL · Apache AGE + pgvector
ONE LIMITATION WORTH KNOWING
The MCP surface is stdio only today, which means the server runs next to the agent rather than serving a team from one index. Streamable HTTP transport is the second item on the roadmap. Until then, the REST surface is how a shared deployment is reached.
MCP yüzeyi bugün yalnızca stdio'dur; yani sunucu, tek bir indeksten tüm ekibe hizmet etmek yerine ajanın yanında çalışır. Streamable HTTP taşıması yol haritasının ikinci maddesidir. O zamana kadar paylaşımlı bir kuruluma REST yüzeyinden erişilir.
The tool surface
An agent usually starts at get_context_for_task and drills from there — exact callers, type hierarchy, route handlers — without guessing at file names. All fourteen tools are listed here with the names and descriptions the server actually declares.Bir ajan genellikle get_context_for_task ile başlar ve oradan derinleşir — kesin çağıranlar, tip hiyerarşisi, route handler'ları — dosya adlarını tahmin etmeden. On dört aracın tamamı, sunucunun gerçekten bildirdiği ad ve açıklamalarla burada listelenir.
MCP surface14 tools
WHERE IT FITS
Between the thing that is exact and the thing that is broad.
A language server is exact but scoped to what you have open. Embedding search is broad but unaccountable. BCE sits between them: repository-wide and cross-language like the former, exact and reproducible like the latter.
Bir language server kesindir ama açık olanla sınırlıdır. Embedding araması geniştir ama hesap veremez. BCE ikisinin arasında durur: ilki gibi depo çapında ve diller arası, ikincisi gibi kesin ve yeniden üretilebilir.
Comparison of embedding RAG, a language server, and BGTS Context Engine
Property
Embedding RAG
Language server
BGTS Context Engine
Retrieval basisGetirme temeli
text similaritymetin benzerliği
compiler indexderleyici indeksi
code graph + anchorskod grafı + çapalar
Cross-file, cross-repoDosyalar / depolar arası
weakzayıf
per projectproje bazlı
yesevet
Cross-language edgesDiller arası kenarlar
noyok
noyok
yes, heuristicevet, sezgisel
Same query, same answerAynı sorgu, aynı cevap
nohayır
yesevet
yesevet
Ranked for a taskBir göreve göre sıralı
by similaritybenzerliğe göre
not rankedsıralı değil
yes, with coverageevet, kapsama ile
Token budget awareToken bütçesi farkında
chunk countparça sayısı
nohayır
yes, detail by distanceevet, mesafeye göre detay
Explains its own answerKendi cevabını açıklar
nohayır
nohayır
anchors + provenance + confidence
EVIDENCE
Three runs, published whole.
Two independent embedding models and nineteen agent tasks agree: the engine roughly doubles what retrieval finds at twenty symbols, and cuts an agent's search cost by a fifth to a third. The losses are on this page too — at five symbols the engine is behind, and two in five targets are never reachable from the task text at all. Those are not footnotes. They are the reason the rest is worth reading.
İki bağımsız embedding modeli ve on dokuz ajan görevi aynı şeyi söylüyor: motor, yirmi sembolde getirmenin bulduğunu kabaca ikiye katlıyor ve bir ajanın arama maliyetini beşte bir ile üçte bir arasında düşürüyor. Kayıplar da bu sayfada — beş sembolde motor geride ve her beş hedeften ikisi görev metninden hiç erişilebilir değil. Bunlar dipnot değil. Geri kalanını okumaya değer kılan şey tam olarak bunlar.
40pull requests replayed
2embedding models
19agent tasks, two arms each
3coding agents
every loss shown
Layer 1 — does it find the right code?
Forty merged pull requests are replayed. For each one a separate database indexes the repository as it stood immediately before that PR, so the engine never sees the future. The task text is the PR's own title and description. The right answer is the set of symbols and files the diff actually touched — tests and files the PR itself created are excluded, because they do not exist in the snapshot. Both systems return twenty symbols from the same embedding rows; the only difference is what the engine puts on top.
Kırk birleşmiş pull request yeniden oynatılıyor. Her biri için ayrı bir veritabanı, depoyu o PR'dan hemen önceki hâliyle indeksliyor; yani motor geleceği görmüyor. Görev metni, PR'ın kendi başlığı ve açıklaması. Doğru cevap, diff'in gerçekten dokunduğu semboller ve dosyalar — testler ve PR'ın kendi yarattığı dosyalar hariç, çünkü snapshot'ta yoklar. İki sistem de aynı embedding satırlarından yirmi sembol döndürüyor; tek fark motorun üstüne koyduğu şey.
40indexed
2excluded by decision
8touch no symbol — scored at file level
30scored
16 tune · 14 holdout
median 4 code files per PR
The K ladder
MODEL
SPLIT
K
tune is the sixteen pull requests the engine's constants were fitted on. holdout is the fourteen they were not — that is the number worth reporting, and it is the default here. K is a focus, not a filter: all three list lengths stay on screen.
tune, motorun sabitlerinin üzerinde ayarlandığı on altı pull request. holdout, ayarlanmadığı on dört tanesi — raporlanmaya değer sayı budur ve burada varsayılan odur. K bir filtre değil, odak: üç liste uzunluğu da ekranda kalır.
Show the numbers — this table always matches the chart above
LATENCY, MODEL ALONE—median, end to end
LATENCY, WITH THE ENGINE—
RETENTION—of the model's own correct hits, kept
Where the truths were lost
Every symbol the forty diffs actually touched, traced from the channel that put it into the candidate pool to where it ended up. This breakdown was published at K=20 only; inventing a K=5 version of it would be fabrication.
Kırk diff'in gerçekten dokunduğu her sembol, onu aday havuzuna sokan kanaldan nereye vardığına kadar izleniyor. Bu döküm yalnızca K=20 için yayımlandı; K=5 sürümünü uydurmak veri üretmek olurdu.
Show the numbers
WHAT K=5 COSTS — PRESS IT ON THE CHART ABOVE
At five symbols the engine does not help, and on the holdout it actively hurts: 8.3% against the model's 17.9%, three pull requests lost and none won. The cause is structural. The final list interleaves the model's own ranking with the engine's scores — slot one is always the model's top hit, then the two alternate. A target the model ranked fourth therefore lands seventh, which is fine at ten and too late at five.
Beş sembolde motor yardımcı olmuyor, holdout'ta ise açıkça zarar veriyor: modelin %17,9'una karşı %8,3, üç pull request kayıp, sıfır kazanç. Sebep yapısal. Nihai liste, modelin kendi sıralamasıyla motorun puanlarını dönüşümlü yerleştiriyor — birinci slot her zaman modelin en iyisi, sonra ikisi sırayla. Modelin dördüncü sıraya koyduğu bir hedef bu yüzden yediye iniyor; onda sorun değil, beşte çok geç.
The practical rule: if you are showing a developer a list of five, use the model's own ranking. The engine earns its place from ten upward, and most clearly at twenty — which is where a context pack for an agent sits anyway.
Pratik kural: bir geliştiriciye beşlik bir liste gösteriyorsanız modelin kendi sıralamasını kullanın. Motor yerini ondan yukarısında kazanıyor, en açık biçimde de yirmide — ki bir ajan için bağlam paketi zaten oradadır.
How the jina profile was chosen — the guard sweep
Finding the code is not the product. The product is what the agent does with it — and retrieval that is twice as good only pays if the agent stops searching.
Kodu bulmak ürün değil. Ürün, ajanın onunla ne yaptığı — iki kat iyi getirme, ancak ajan aramayı bırakırsa işe yarar.
Layer 2 — does it change what the agent does?
Two separate studies, two coding agents, two models. In both the same tasks were run twice — once with repository context supplied, once without — and both arms produced real diffs against a real codebase.
İki ayrı çalışma, iki kodlama ajanı, iki model. İkisinde de aynı görevler iki kez koşuldu — bir kez depo bağlamı verilerek, bir kez verilmeden — ve iki kol da gerçek bir kod tabanı üzerinde gerçek diff'ler üretti.
14tasks, 28 runs
cursor-grok-4.6-xhigh-fast
one machine, one account, arms alternated
K=20 · jina-code-embeddings-1.5b
context computed once, 1.6 s, ~1.3k tokens
What the agent stopped doing14 matched pairs
Each row is a ratio against the plain arm, so 1.00 means nothing changed. The bar is the per-run aggregate; the open diamond is the per-task median. Where the two disagree — wall clock most of all — the aggregate is being carried by the heavy tasks, and that disagreement is itself the finding.
Her satır sade kola göre bir oran; yani 1,00 hiçbir şeyin değişmediği anlamına gelir. Çubuk koşu başına toplam oran; içi boş baklava ise görev bazlı medyan. İkisinin ayrıştığı yerde — en çok da sürede — toplamı ağır görevler taşıyor ve bu ayrışmanın kendisi bulgudur.
Show all sixteen measured rows
The gain scales with the task
Fourteen tasks. Horizontal: how long the task took without the engine. Vertical: tokens with the engine as a share of tokens without it, so below the line is cheaper. Marker size is the task's own weight. No trend line is drawn — fourteen tasks at one run each do not support one.
On dört görev. Yatay: görevin motorsuz ne kadar sürdüğü. Dikey: motorla harcanan tokenin motorsuza oranı; yani çizginin altı daha ucuz. İşaret boyutu görevin kendi ağırlığı. Eğilim çizgisi çizilmedi — görev başına tek koşuyla on dört nokta bunu kaldırmaz.
Above roughly 150 seconds the engine cuts 40% or more. Below 60 seconds it is neutral or a few seconds behind: a fixed 1.6 seconds and about 1,300 tokens per turn does not amortise on small work.Kabaca 150 saniyenin üstünde motor %40 ve fazlasını kesiyor. 60 saniyenin altında nötr ya da birkaç saniye geride: sabit 1,6 saniye ve tur başına yaklaşık 1.300 token küçük işlerde amorti olmuyor.Show all fourteen tasks
THE RUN THAT WAS NOT STARTED
A fifteenth task was prepared. On its engine arm, preflight measured a seventeen-second round trip to the embedding server and refused to start the run. The plain arm finished, but with no pair it could not be compared, so it was dropped. A stopping rule that actually fires is worth more than a fifteenth data point.
On beşinci bir görev hazırlanmıştı. Motor kolunda preflight, embedding sunucusuna on yedi saniyelik bir gidiş-dönüş ölçtü ve koşuyu başlatmadı. Sade kol tamamlandı ama eşi olmadığı için karşılaştırılamadı ve elendi. Gerçekten ateşlenen bir durma kuralı, on beşinci bir veri noktasından değerlidir.
The same five refactoring tasks, the same coding agent, the same model and the same prompts — once with the context engine switched on and once without. Each run produced a pull request, so the outputs are directly comparable. Every number below comes from the job logs and the diffs of those pull requests.
Aynı beş refactor görevi, aynı kodlama ajanı, aynı model ve aynı prompt'lar — bir kez context engine açıkken, bir kez kapalıyken. Her koşu bir pull request üretti; yani çıktılar doğrudan karşılaştırılabilir. Aşağıdaki her sayı, o koşuların job log'larından ve PR diff'lerinden geliyor.
TOTAL COST−32.5%$56.54 / $83.75
LLM CALLS−33.2%500 / 748
WALL CLOCK−23.8%126m 24s / 165m 48s
TOKENS−26.8%60.8M / 83.0M
LINES CHANGED−3.0%18,579 / 19,149
TEST FILES14 / 15practically equal
first number = with the engine · second = without · claude-opus-5 · 4 September 2026ilk sayı = motorla · ikinci = motorsuz · claude-opus-5 · 4 Eylül 2026
The same work, for a third less. The gain is not less output — it is reaching the same output with less trial and error.
Aynı iş, üçte bir daha ucuza. Kazanç daha az çıktı üretmekten değil, aynı çıktıya daha az deneme-yanılma ile ulaşmaktan geliyor.
Per task, hardest last
Cost, time and LLM calls per task, with and without the engine
task
cost
time
LLM
hard-1
+183%
+134%
+94%
hard-2
−28%
−31%
−19%
hard-3
−30%
−7%
−25%
xhard-1
−34%
−19%
−50%
xhard-2
−47%
−49%
−59%
The pattern is the point: the gain grows with the size of the task. xhard-2 broke up a 6,015-line god page and came in at half the cost. Both arms produced the same architecture — 14 domain modules under services/api/ in xhard-1, the same page reduced to about 570 lines in xhard-2.Asıl mesele örüntü: kazanç görev büyüdükçe büyüyor. xhard-2, 6.015 satırlık bir tanrı-sayfasını parçaladı ve maliyetin yarısına indi. İki taraf da aynı mimari kararları verdi — xhard-1'de services/api/ altında 14 alan modülü, xhard-2'de aynı sayfa yaklaşık 570 satıra indi.
Where the saving comes from
−33% LLM callsFewer round trips to the model.Modelle daha az gidiş-geliş.
+85% tools per call1.31 tool calls per LLM call, against 0.71. More work per turn.LLM çağrısı başına 1.31 araç çağrısı, 0.71'e karşı. Her turda daha çok iş.
−26% output tokensLess "where might this be" reasoning.Daha az "acaba nerede" muhakemesi.
−26% cache readsThe context stops bloating. This is the largest cost line.Bağlam şişmeyi bırakıyor. Maliyetin en büyük kalemi bu.
4 vs 8 sub-agentsHalf as many exploratory sub-agents — the most expensive way to search.Yarı yarıya daha az keşif alt-ajanı — en pahalı arama biçimi.
Without the engine, the agent answers "where is the relevant code?" at runtime: it opens sub-agents, reads large files end to end, inflates its context, and then re-reads that inflated context at every step. With the engine the same question is already answered at request time, so it goes straight to the target and verifies with cheap grep and read_file calls.Motorsuz koşuda ajan "ilgili kod nerede" sorusunu çalışma anında çözüyor: alt ajan açıyor, büyük dosyaları baştan sona okuyor, bağlamı şişiriyor ve her adımda o şişmiş bağlamı yeniden okuyor. Motorla aynı soru istek anında zaten cevaplandığı için ajan doğrudan hedefe gidip ucuz grep ve read_file ile doğruluyor.
THE TASK WHERE IT LOST — AND WHY IT IS IN THIS TABLE
On hard-1 the engine made things 183% more expensive. The reason is in the task, not the engine: the prompt already listed the full path and line number of all six files to change, so there was nothing left to discover. The context the engine added was accurate and useless, and useless context is not free.
Motor hard-1'de işi %183 pahalılaştırdı. Sebep motorda değil görevde: prompt zaten değiştirilecek altı dosyanın tam yolunu ve satır numarasını veriyordu, yani keşfedilecek bir şey yoktu. Motorun eklediği bağlam doğruydu ve gereksizdi; gereksiz bağlam bedava değildir.
The practical rule: if the task description already names the files, turn the engine off for that request — contextEngine.enabled is per request. Turn it on for "find the behaviour and fix it" work. Excluding hard-1, the remaining four tasks came in 39% cheaper with 41% fewer LLM calls.
Pratik kural: görev tanımı dosya adlarını zaten veriyorsa o istek için motoru kapatın — contextEngine.enabled istek bazlıdır. "Şu davranışı bul ve düzelt" tipi işlerde açın. hard-1 dışarıda bırakıldığında kalan dört görev %39 daha ucuza ve %41 daha az LLM çağrısıyla tamamlandı.
WHAT THIS DOES NOT SHOW
The samples are small and the agent runs are n=1. One run per task, no repeats, in both agent studies. A single task's difference can be noise — hard-1 and T13 are proof. What is reliable is the total and the consistent direction on the large tasks.
Örneklemler küçük ve ajan koşuları n=1. İki ajan çalışmasında da görev başına tek koşu, tekrar yok. Tek bir görevdeki fark gürültü olabilir — hard-1 ve T13 bunun kanıtı. Güvenilir olan, toplam ve büyük görevlerdeki tutarlı yön.
A fourteen-pull-request holdout moves with a single PR. In the jina run, #839 alone is worth about seven percentage points. Read the win–tie–loss columns in the tables before the averages.
On dört pull request'lik bir holdout tek bir PR ile oynar. jina koşusunda yalnız #839 yaklaşık yedi puan değerinde. Ortalamalardan önce tablolardaki kazanç–berabere–kayıp sütunlarına bakın.
Two in five targets are never reachable. Forty percent of the symbols a diff touched are not in the model's list, not named in the task text, and not a neighbour of anything that is. No list length fixes that; it is a property of how the task was written.
Her beş hedeften ikisine hiç ulaşılamıyor. Bir diff'in dokunduğu sembollerin %40'ı ne modelin listesinde, ne görev metninde adı geçiyor, ne de bunlardan birinin komşusu. Bunu liste uzunluğu çözmez; görevin nasıl yazıldığına bağlı bir özellik.
The graph walk finds targets it cannot rank. Every symbol reached only by walking the code graph failed to make the final twenty, in all three retrieval runs. They are in the pool at a median rank near seventy. This is the single largest open defect, and it is ours.
Graf yürüyüşü, sıralayamadığı hedefler buluyor. Yalnızca kod grafı yürünerek ulaşılan her sembol, üç getirme koşusunun üçünde de son yirmiye giremedi. Havuzda medyan yetmişe yakın bir sırada duruyorlar. Bu, en büyük açık kusur ve bize ait.
Ranking quality is ambiguous. Mean reciprocal rank improves overall but is still negative on the voyage holdout. The engine finds more, and sometimes places it a few rows lower.
Sıralama kalitesi belirsiz. Ortalama karşılıklı sıra (MRR) toplamda iyileşiyor ama voyage holdout'unda hâlâ eksi. Motor daha çok buluyor, bazen birkaç sıra aşağıya koyuyor.
A bare title gains nothing. Replayed with only the PR title and no description, the engine and the model score identically. Without an identifier or a distinctive word in the text, there is nothing for the anchor channels to work with.
Çıplak başlık hiçbir şey kazandırmıyor. Yalnız PR başlığıyla, açıklama olmadan koşulduğunda motor ve model aynı skoru alıyor. Metinde bir tanımlayıcı ya da ayırt edici kelime yoksa çıpa kanallarının çalışacağı malzeme yok.
Locale and configuration files are invisible to the graph. It indexes code. Translation tasks therefore go the wrong way — T03 and T13 are both worse with the engine on.
Locale ve konfigürasyon dosyaları graf için görünmez. Graf kodu indeksler. Bu yüzden çeviri görevleri ters yöne gidiyor — T03 ve T13, motor açıkken daha kötü.
The engine does not fix scope. Expected-file precision is 0.73 in both arms of the Cursor run, and on T07 both touched twenty-one files where six were expected. That needs a rule in the prompt, not better retrieval.
Motor kapsamı düzeltmiyor. Cursor koşusunun iki kolunda da beklenen dosya hassasiyeti 0,73 ve T07'de altı dosya beklenirken ikisi de yirmi bir dosyaya dokundu. Bunun için daha iyi getirme değil, prompt'ta bir kural gerekiyor.
The confidence label is weakly predictive. The engine's two best tasks were labelled low; its worst was labelled high. Confidence measures how much the anchors agree, not whether they are sufficient for the task. The trust report earlier on this page should be read with that caveat.
Güven etiketi zayıf öngörücü. Motorun en iyi iki görevi low etiketliydi; en kötüsü high. Güven, çıpaların ne kadar hemfikir olduğunu ölçer; görev için yeterli olup olmadıklarını değil. Bu sayfanın başındaki güven raporu bu kayıtla okunmalı.
Retrieval costs time. End to end the engine roughly doubles query latency — 0.73 to 1.71 seconds on the hosted model, 1.32 to 2.42 on the self-hosted one, of which about 0.85 seconds is the engine itself.
Getirme zamana mal oluyor. Uçtan uca motor sorgu gecikmesini kabaca ikiye katlıyor — barındırılan modelde 0,73'ten 1,71 saniyeye, kendi sunucumuzdakinde 1,32'den 2,42'ye; bunun yaklaşık 0,85 saniyesi motorun kendisi.
No pull request in the Claude run was compiled or tested. In all ten runs the agent had no shell, so tsc, lint, test and build were skipped in favour of static review. "Quality is equal" there rests on diff volume and file structure, not on running code. The Cursor run did compile — which is how T09's failure was caught.
Claude koşusunda hiçbir PR derlenmedi veya test edilmedi. On koşunun onunda da ajanın kabuğu yoktu; tsc, lint, test ve build yerine statik inceleme yapıldı. Oradaki "kalite eşit" ifadesi çalışan koda değil, diff hacmine ve dosya yapısına dayanıyor. Cursor koşusu derledi — T09'un hatası bu sayede yakalandı.
One earlier comparison was withdrawn. It showed the engine 7% worse on tokens. The cause was two machines routing to different model backends with different prompt-cache behaviour — 3.9k against 7.1k uncached input per turn — not the engine. On a single machine the difference vanished. It is recorded here because a benchmark that publishes only the run that worked is not a benchmark.
Daha önceki bir karşılaştırma geri çekildi. Motoru tokende %7 geride gösteriyordu. Sebep, iki makinenin farklı model arka uçlarına yönlenmesi ve farklı prompt-cache davranışıydı — tur başına 3,9k'ya karşı 7,1k cache'siz girdi — motor değil. Tek makinede fark ortadan kalktı. Burada kayıtlı, çünkü yalnızca işe yarayan koşuyu yayımlayan bir ölçüm, ölçüm değildir.
These are BGTS's own runs, published with their weaknesses attached because that is the only kind of retrieval number worth reading. The engine ships bce bench and bce bench-prs so you can run the equivalent on your own repositories, your own pull requests and your own tasks.Bunlar BGTS'nin kendi koşuları ve zayıflıklarıyla birlikte yayımlanıyor; çünkü okumaya değer tek getirme sayısı bu türdendir. Motor bce bench ve bce bench-prs ile birlikte gelir — aynısını kendi depolarınızda, kendi pull request'lerinizde ve kendi görevlerinizde koşabilirsiniz.
OPEN SOURCE
Open source by design.
The engine is published so people can run it. Everything on this page — the weights, the thresholds, the hop limits, the fourteen tools — is in the repository, and the benchmark harness ships so you can measure it on your own repositories instead of taking a number on trust.
Motor, insanların çalıştırabilmesi için yayımlanır. Bu sayfadaki her şey — ağırlıklar, eşikler, hop sınırları, on dört araç — depoda mevcuttur; ölçüm aracı da birlikte gelir, böylece bir sayıya güvenmek yerine kendi depolarınızda ölçebilirsiniz.
og:imageThe card the repository hands to GitHub, PyPI and every link unfurl. The palette on this page is sampled from it — accent #06609c, band #04142b, instrument cyan #22c9fb, anchor gold #fec835.Deponun GitHub'a, PyPI'ye ve her bağlantı önizlemesine verdiği kart. Bu sayfadaki palet bu görselden örneklendi — aksan #06609c, bant #04142b, enstrüman camgöbeği #22c9fb, çapa altını #fec835.
bce index --repo /path/to/your/repo --name my-service
4 · ASKSOR
bce context --task "fix the login timeout in the meeting webhook"
5 · SERVE ITSERVİS ET
bce serve # REST at :8000/docs, web UI at :8000/ui/
bce serve-mcp # MCP over stdio, for agents
Measuring it, honestly
Retrieval-quality claims are worthless without the task set they were measured on, so the harness ships instead of a leaderboard. You give it your own tasks and the symbols you believe answer them; it reports recall, precision, precision@1, MRR and latency — plus the two pass/fail checks that matter more than the scores.
Getirme kalitesi iddiaları, hangi görev kümesinde ölçüldüğü bilinmeden değersizdir; bu yüzden bir skor tablosu değil, ölçüm aracının kendisi gelir. Kendi görevlerinizi ve onları yanıtladığına inandığınız sembolleri verirsiniz; recall, precision, precision@1, MRR ve gecikme raporlanır — ayrıca skorlardan daha önemli iki geç/kal kontrolü.
Roadmap
Ordered by how often it comes up, not by difficulty.Zorluğa göre değil, ne sıklıkta gündeme geldiğine göre sıralı.
Scope enforcement on every layerHer katmanda kapsam denetimiLayer 3 applies the per-user repository filter; Layers 1 and 2 do not.Kullanıcı bazlı depo filtresini Layer 3 uygular, Layer 1 ve 2 uygulamaz.
Streamable HTTP transport for MCPMCP için streamable HTTP taşımasıRemote transport makes one index serve a team.Uzak taşıma, tek bir indeksin tüm ekibe hizmet etmesini sağlar.
More languagesDaha fazla dilRust, Kotlin and PHP are the most requested.En çok istenenler Rust, Kotlin ve PHP.
Wider SCIP ingestionDaha geniş SCIP alımıCompiler-grade edges beat syntax-derived ones and are scored as such.Derleyici seviyesindeki kenarlar sözdiziminden türetilenleri yener ve öyle skorlanır.
A published benchmark corpusYayımlanmış bir ölçüm kümesiAn open task set over public repositories, so results are comparable between projects.Açık depolar üzerinde açık bir görev kümesi; sonuçlar projeler arasında karşılaştırılabilir olur.
Contributing
New languages are the contribution the pipeline is most ready for — a provider module and a one-line registration. Anything touching scoring or ordering needs a test that pins the output.
Hattın en hazır olduğu katkı yeni dillerdir — bir sağlayıcı modülü ve tek satırlık bir kayıt. Skorlamaya veya sıralamaya dokunan her şey, çıktıyı sabitleyen bir test gerektirir.
Topics
The repository's own topics — the vocabulary this project is filed under.Deponun kendi konu etiketleri — bu projenin altında yer aldığı sözlük.
Bring repository context closer to your engineering workflow.
The engine is published so anyone can run it. Organisations that want the same thing inside their own perimeter — help with indexing, deployment, scoring tuned to their repositories, or the agent stack around it — can engage BGTS.
Motor, herkesin çalıştırabilmesi için yayımlanır. Aynı şeyi kendi çevrelerinde isteyen kurumlar — indeksleme, kurulum, depolarına göre ayarlanmış skorlama veya etrafındaki ajan yığını konusunda yardım — BGTS ile iletişime geçebilir.
What an engagement usually covers
Indexing and deployment inside your own perimeter, on your own PostgreSQL.Kendi çevrenizde, kendi PostgreSQL'iniz üzerinde indeksleme ve kurulum.
Scoring weights tuned to how your repositories are actually written.Depolarınızın gerçekte nasıl yazıldığına göre ayarlanmış skorlama ağırlıkları.
The agent stack around it — which tools your agents call, and when.Etrafındaki ajan yığını — ajanlarınızın hangi araçları, ne zaman çağıracağı.
A benchmark case file built from your own tasks, so a scoring change can be judged.Kendi görevlerinizden oluşturulmuş bir ölçüm dosyası; böylece skorlama değişikliği değerlendirilebilir.