diff --git a/.beads/interactions.jsonl b/.beads/interactions.jsonl index 868eca3..0c91efc 100644 --- a/.beads/interactions.jsonl +++ b/.beads/interactions.jsonl @@ -27,3 +27,4 @@ {"id":"int-27353fbf","kind":"field_change","created_at":"2026-06-27T13:28:58.859954398Z","actor":"dawn","issue_id":"klbr-fdr","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Duplicate/stale: lexical ranking policy was already retired in closed klbr-wmz.14; current code uses FTS-native candidate generation and packet fusion. Optional trigram/BGE sparse work can be filed separately if needed."}} {"id":"int-e9f123e3","kind":"field_change","created_at":"2026-06-27T13:28:59.01170437Z","actor":"dawn","issue_id":"klbr-g5i","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Duplicate of existing blocked klbr-1yn, which already tracks running the official LongMemEval QA evaluator once the upstream evaluator command/environment is available."}} {"id":"int-c183c25d","kind":"field_change","created_at":"2026-06-27T14:56:52.022821587Z","actor":"dawn","issue_id":"klbr-9yo","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Implemented tool-required router calibration metrics and threshold selection; filed klbr-b4z for regenerating saved router artifacts."}} +{"id":"int-12aecbfc","kind":"field_change","created_at":"2026-06-27T15:08:17.198468383Z","actor":"dawn","issue_id":"klbr-b4z","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Regenerated router linear artifact out-router-linear-iter-15 with tool-required metrics, updated benchmark helper default to the fresh model, and filed klbr-mpy for residual tool→memory quality work."}} diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index 44ff78a..ca7712d 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -29,6 +29,7 @@ {"_type":"issue","id":"klbr-wmz.8","title":"Validate the LoCoMo adapter and comparison protocol","description":"docs/memory-benches.md recommends LoCoMo as the secondary public suite for memweaver-style comparison, and docs/memory-implementation-status.md says a flexible locomo adapter exists. Current source parses locomo-ish shapes inside klbr-bench/src/longmemeval.rs, but there is no verified dataset fixture, loader test, scoring protocol, or documented run result proving the adapter matches the intended benchmark semantics.","design":"Keep this as a comparison harness task, not a claim about beating another system. The output should make dataset version, reader model, token budget, and scoring method explicit.","acceptance_criteria":"A small LoCoMo-shaped fixture or documented local dataset path exercises the adapter; loader tests cover supported input shapes and session ordering; the benchmark manifest/report clearly labels LoCoMo runs and avoids claiming comparability without matched reader/budget/scoring; docs include the exact command and current verified result or blocker.","status":"closed","priority":2,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-26T17:54:09Z","created_by":"dawn","updated_at":"2026-06-26T23:44:57Z","started_at":"2026-06-26T23:42:41Z","closed_at":"2026-06-26T23:44:57Z","close_reason":"Added LoCoMo smoke fixture, loader tests for session/haystack/conversation shapes, protocol notes in report/manifest, docs with exact command/result, and verified locomo retrieval-only smoke.","labels":["architecture","benchmarks","locomo","memory"],"dependencies":[{"issue_id":"klbr-wmz.8","depends_on_id":"klbr-wmz","type":"parent-child","created_at":"2026-06-26T20:54:09Z","created_by":"dawn","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"klbr-wmz.5","title":"Upgrade episodic notes from transcript cards to source-grounded event cards","description":"klbr-core/src/pipeline.rs render_episode_card creates an episode note from timestamp, source refs, and truncated role lines. docs/memory-arch.md asks for source-grounded scene memory that preserves who, when, where, what changed, what was said, available attachments, and supporting raw refs. The current implementation is addressable, but still too transcript-shaped for temporal/update reasoning.","design":"Do not synthesize unsupported vivid details. The event card should summarize only what source turns or attachments support, with raw refs retained as the escape hatch.","acceptance_criteria":"Episode artifacts have a stable structured representation for time anchors, participants/entities, changes/decisions, salient quotes or snippets, attachments when present, and source refs; the markdown rendering remains human-editable; retrieval/context packets can expose the structured gist without losing provenance; tests cover an episode with multiple turns and verify source refs, session id resolution, and useful promptable chunks.","status":"closed","priority":2,"issue_type":"feature","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-26T17:53:44Z","created_by":"dawn","updated_at":"2026-06-26T23:36:56Z","started_at":"2026-06-26T23:33:59Z","closed_at":"2026-06-26T23:36:56Z","close_reason":"Episode notes now render as structured episode_event_card artifacts with event metadata, source-grounded timelines, stated facts/decisions, attachment markers, source refs, and promptable retrieval coverage; added core regression.","labels":["architecture","episodic","memory","provenance"],"dependencies":[{"issue_id":"klbr-wmz.5","depends_on_id":"klbr-wmz","type":"parent-child","created_at":"2026-06-26T20:53:44Z","created_by":"dawn","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"klbr-wmz.4","title":"Materialize profile and procedural lanes as first-class notes","description":"The schema and MemoryGarden know about profile and procedural lanes, but the production pipeline observe_session path currently writes raw turns plus episodic notes/memories. Stable preferences, standing instructions, and workflows still depend mostly on tags or model-authored remember calls instead of a first-class markdown-note flow with source refs and update policy.","design":"Build on MemoryGarden and upsert_markdown_note rather than adding a new store. Treat legacy memory tags as routing hints, not the durable source of truth for profile/procedural knowledge.","acceptance_criteria":"There is an explicit writer/reflection path for profile_note and procedural_note artifacts; new notes include source refs, frontmatter, stable paths under profile/ or procedural/, and canonical refs/chunks; updates use supersession or versioning instead of silent overwrite; user-confirmation or policy gates are documented for stable profile changes; tests cover creating and updating one profile note and one procedural note from source turns.","status":"closed","priority":2,"issue_type":"feature","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-26T17:53:36Z","created_by":"dawn","updated_at":"2026-06-26T23:42:13Z","started_at":"2026-06-26T23:37:20Z","closed_at":"2026-06-26T23:42:13Z","close_reason":"Added write_memory_note reflection tool for source-grounded profile/procedural markdown notes, ref supersession updates, source/policy frontmatter, stable lane paths, and tests for profile/procedural create/update paths.","labels":["architecture","markdown","memory","profile"],"dependencies":[{"issue_id":"klbr-wmz.4","depends_on_id":"klbr-wmz","type":"parent-child","created_at":"2026-06-26T20:53:36Z","created_by":"dawn","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} -{"_type":"issue","id":"klbr-b4z","title":"Regenerate router calibration artifacts","description":"After klbr-9yo, rerun the router bench with the calibrated tool-required metrics and commit fresh benchmarks/models/router model/report outputs so future sweeps track tool→memory and tool-required recall from generated artifacts.","status":"open","priority":3,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-27T14:56:42Z","created_by":"dawn","updated_at":"2026-06-27T14:56:42Z","dependencies":[{"issue_id":"klbr-b4z","depends_on_id":"klbr-9yo","type":"blocks","created_at":"2026-06-27T17:56:51Z","created_by":"dawn","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0} +{"_type":"issue","id":"klbr-mpy","title":"Improve tool-required router separability","description":"Fresh router artifact benchmarks/models/router/linear/out-router-linear-iter-15 reports test tool-required false-memory rate 0.6913 and tool-required recall 0.3087 after adding the metric/calibration surface. Improve training data, features, or model shape so tool-required queries stop looking like memory queries without regressing memory false-abstain.","status":"open","priority":3,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-27T15:08:07Z","created_by":"dawn","updated_at":"2026-06-27T15:08:07Z","dependencies":[{"issue_id":"klbr-mpy","depends_on_id":"klbr-b4z","type":"blocks","created_at":"2026-06-27T18:08:16Z","created_by":"dawn","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0} +{"_type":"issue","id":"klbr-b4z","title":"Regenerate router calibration artifacts","description":"After klbr-9yo, rerun the router bench with the calibrated tool-required metrics and commit fresh benchmarks/models/router model/report outputs so future sweeps track tool→memory and tool-required recall from generated artifacts.","status":"closed","priority":3,"issue_type":"task","assignee":"dawn","owner":"90008@klbr.net","created_at":"2026-06-27T14:56:42Z","created_by":"dawn","updated_at":"2026-06-27T15:08:17Z","started_at":"2026-06-27T15:01:12Z","closed_at":"2026-06-27T15:08:17Z","close_reason":"Regenerated router linear artifact out-router-linear-iter-15 with tool-required metrics, updated benchmark helper default to the fresh model, and filed klbr-mpy for residual tool→memory quality work.","dependencies":[{"issue_id":"klbr-b4z","depends_on_id":"klbr-9yo","type":"blocks","created_at":"2026-06-27T17:56:51Z","created_by":"dawn","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0} {"_type":"issue","id":"klbr-bqj","title":"add continuous-loop memory benchmark coverage","description":"benchmark suite mostly tests static query retrieval. add a loop-style harness that simulates multi-session observe/compact/reflect cycles and then evaluates whether reflection notes, markdown sync, and passive recall stay aligned over a longer horizon.","status":"open","priority":3,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-27T13:15:48Z","created_by":"dawn","updated_at":"2026-06-27T13:15:48Z","dependency_count":0,"dependent_count":1,"comment_count":0} {"_type":"issue","id":"klbr-6an","title":"unify memory edge tables behind canonical refs","description":"memory.rs still has memory_edges and ref-level edges as separate provenance graphs. design and migrate toward one transactional canonical-ref links graph so packet planning, provenance, supersession, and markdown-note evidence traverse the same substrate.","status":"open","priority":3,"issue_type":"task","owner":"90008@klbr.net","created_at":"2026-06-27T13:15:44Z","created_by":"dawn","updated_at":"2026-06-27T13:15:44Z","dependency_count":0,"dependent_count":1,"comment_count":0} diff --git a/benchmarks/models/router/linear/out-router-linear-iter-15/router_model.json b/benchmarks/models/router/linear/out-router-linear-iter-15/router_model.json new file mode 100644 index 0000000..6fa13c5 --- /dev/null +++ b/benchmarks/models/router/linear/out-router-linear-iter-15/router_model.json @@ -0,0 +1,2074 @@ +{ + "kind": "linear_softmax_v1", + "version": 1, + "embed_model": "bge-m3-FP16.gguf", + "embed_dim": 1024, + "trained_on": "train", + "dataset_id": "router-multi(internal-eval-starter-v2+router-train-pack-v1+router-dev-pack-v1+router-abstain-v2+router-abstain-v3+router-memory-lane-v3+router-read-file-repo-v3+router-read-file-repo-v4+router-shell-state-v3+router-holdout-tools-recall-v1+router-holdout-abstain-toolish-v1+router-holdout-memory-toolish-v1+router-shell-state-v1+router-shell-state-v1b+router-shell-state-v2+router-read-file-repo-v1+router-read-file-repo-v1b+router-write-file-v1+router-memory-lane-v1+router-memory-lane-v1b+router-abstain-v1+router-memory-adversarial-v1)", + "labels": [ + "memory", + "abstain" + ], + "weights": [ + [ + 0.0909187, + -0.10178791, + 0.11678524, + 0.05916823, + 0.070548564, + 0.055725943, + 0.038828287, + 0.13350812, + 0.06834853, + 0.053196143, + -0.0385138, + 0.07048024, + 0.016072715, + -0.023768598, + -0.027139591, + 0.048342563, + 0.12934941, + -0.05374762, + 0.11772681, + 0.15524524, + -0.092097424, + -0.0031241039, + 0.037270628, + 0.06646499, + -0.13187897, + 0.011146338, + 0.0047771796, + 0.085530005, + -0.12908898, + -0.0928597, + -0.047699794, + 0.27952304, + 0.030982267, + 0.036123082, + -0.0049592783, + -0.025655432, + -0.034489375, + 0.004012741, + 0.10140389, + -0.25641724, + -0.044225235, + 0.10645814, + -0.010120653, + 0.02796328, + 0.117799245, + -0.07337869, + 0.10935339, + -0.033037018, + -0.029130008, + 0.09551594, + -0.04300705, + -0.03437312, + -0.090900406, + 0.078975394, + 0.055480488, + -0.13741483, + 0.09314146, + -0.01475522, + 0.1041528, + 0.012438029, + 0.03960217, + -0.1029107, + 0.0713567, + -0.051731355, + 0.09445201, + -0.15577719, + -0.02391808, + 0.0067842794, + -0.046360753, + -0.13958193, + -0.026215952, + -0.2007777, + 0.063762814, + 0.011291224, + 0.022197852, + -0.01546266, + 0.026640097, + -0.010218101, + 0.13750845, + -0.04044518, + 0.035794824, + 0.062463112, + 0.17495327, + 0.04420096, + -0.049676433, + -0.13711317, + 0.056510847, + -0.021217274, + 0.10655209, + -0.24909946, + 0.071961224, + 0.1314598, + -0.106257886, + -0.029360218, + -0.032705307, + 0.07170856, + 0.073151775, + -0.007486854, + -0.101780094, + 0.046930544, + 0.035663072, + 0.014383753, + -0.07339751, + -0.08912065, + 0.100061595, + -0.09376313, + -0.017745597, + 0.011771549, + -0.07223824, + 0.015942672, + 0.013549201, + -0.08492904, + 0.049977064, + 0.0030273998, + -0.14002652, + 0.024056265, + 0.04748304, + 0.11573629, + 0.19070493, + 0.10864362, + -0.015834443, + 0.007529914, + 0.060697675, + 0.0888037, + 0.040031034, + -0.042574655, + -0.06335538, + -0.27767628, + -0.15719801, + -0.10027293, + -0.06005399, + -0.095936164, + 0.040199954, + 0.021806598, + 0.05969676, + -0.010764068, + -0.0074787457, + 0.0017246295, + -0.14612263, + 0.13989076, + 0.05256759, + -0.13347758, + -0.011251092, + 0.038681954, + -0.13007946, + 0.27539828, + -0.045249272, + 0.05831534, + -0.046448134, + -0.02713023, + -0.014157591, + -0.13915585, + -0.077046916, + 0.045503356, + 0.11997959, + -0.11390483, + 0.09459816, + 0.15865034, + -0.029030869, + -0.006999421, + -0.09143082, + 0.19256212, + -0.11315463, + -0.01221871, + 0.04000163, + 0.03570344, + 0.016955221, + 0.16437307, + -0.09222379, + 0.020818336, + -0.040878497, + 0.022809286, + 0.08395719, + 0.015888765, + 0.0116329165, + -0.08944471, + 0.13184665, + -0.062960155, + 0.0504186, + 0.007710603, + -0.03072083, + -0.06868697, + 0.15584622, + -0.01815849, + 0.064208604, + -0.10350769, + 0.057464138, + -0.2722616, + -0.019180324, + 0.016849259, + 0.044826373, + -0.09458674, + 0.022836355, + 0.008754259, + -0.011425031, + 0.13440506, + -0.074882835, + 0.07931913, + 0.14062048, + -0.03560135, + 0.14323571, + 0.09257049, + -0.09006065, + 0.008161624, + -0.17046283, + 0.1371611, + -0.076164976, + -0.17762338, + 0.062453173, + 0.2814841, + -0.019066462, + 0.094567865, + 0.10161007, + 0.00808024, + 0.08481967, + -0.06828979, + -0.037755657, + 0.0687689, + 0.006235402, + 0.100143686, + 0.012343185, + -0.12530406, + -0.14283738, + -0.32921645, + 0.09596835, + 0.21708255, + -0.0063855127, + -0.12804818, + -0.10758542, + -0.046675142, + 0.030714657, + 0.09501781, + -0.03233305, + -0.034008082, + -0.18698777, + -0.12576406, + 0.08127337, + -0.12850589, + 0.0040291753, + -0.041365903, + 0.035329875, + -0.09262305, + 0.018961063, + 0.09265923, + 0.019368619, + -0.09696165, + -0.1703949, + -0.13549255, + 0.06260995, + -0.02586587, + 0.0813209, + 0.11605256, + 0.049140953, + -0.14482489, + 0.121894896, + -0.029212832, + 0.04796723, + 0.04732705, + 0.05929951, + -0.036168512, + 0.07790013, + -0.089916855, + -0.05808762, + -0.06261247, + 0.025491863, + 0.016963989, + -0.15251179, + -0.09780863, + 0.044852488, + 0.15522851, + 0.004163399, + 0.060386475, + 0.052862376, + 0.075335175, + 0.096873686, + -0.043037854, + -0.08131523, + -0.050964788, + 0.018023998, + -0.015964346, + 0.030023769, + -0.11333087, + 0.062238727, + 0.0087387655, + -0.03900802, + -0.07718013, + 0.055245925, + -0.09055882, + -0.018206658, + 0.10128244, + 0.11391827, + 0.014042869, + -0.013369883, + 0.08306669, + -0.10710397, + -0.23349969, + -0.119926244, + 0.13514437, + -0.08946301, + 0.0052589774, + -0.18481515, + -0.09958813, + 0.035068393, + -0.11119286, + -0.059356723, + 0.07889465, + 0.08490952, + -0.1109816, + 0.030580774, + 0.056059625, + 0.062322304, + 0.0018498958, + -0.036662873, + -0.01024365, + 0.030097203, + 0.028883696, + 0.08366871, + 0.118037455, + 0.02474948, + -0.2562628, + -0.031159466, + 0.07297978, + -0.060752954, + -0.086939186, + 0.07456483, + 0.0727932, + -0.07192665, + 0.16692351, + 0.1113542, + -0.042771876, + 0.09893118, + 0.002331599, + -0.12041482, + 0.20090795, + 0.083464235, + -0.08245038, + -0.01440022, + -0.03549796, + -0.20425177, + -0.0512299, + -0.032467492, + 0.024495548, + -0.031912405, + -0.011308912, + -0.10386546, + 0.00260585, + 0.011933582, + -0.0020977953, + 0.05871067, + -0.016828889, + 0.058007333, + 0.09139152, + -0.006920547, + 0.085679986, + -0.04961015, + -0.23878542, + -0.0771982, + 0.18772614, + 0.19800672, + -0.050248574, + 0.117505535, + -0.012533416, + 0.062146544, + -0.17442483, + 0.024063043, + 0.027210535, + -0.1120231, + -0.026570767, + 0.014570307, + 0.058837563, + 0.17475893, + -0.27570313, + 0.09190608, + 0.03375931, + -0.025897522, + 0.03163071, + 0.26014018, + 0.04906938, + -0.12640563, + 0.07089076, + -0.25859892, + 0.031826537, + 0.03999971, + 0.026293384, + 0.059014767, + 0.0024002811, + -0.070438445, + 0.016921084, + -0.01577732, + -0.028592844, + -0.17768851, + 0.09612699, + 0.1774312, + -0.06794901, + 0.009430504, + -0.04489909, + -0.12650795, + 0.147283, + 0.0038914857, + 0.013293183, + 0.1679682, + -0.1632235, + 0.059381045, + 0.06847858, + -0.036620826, + -0.051043946, + -0.09699919, + -0.0020425543, + 0.019366229, + 0.0733083, + 0.035790343, + 0.0227435, + 0.0052870885, + 0.048689444, + 0.047039106, + -0.16933644, + 0.0026446306, + -0.046715964, + 0.111923575, + 0.06061537, + -0.07394871, + 0.08074568, + 0.0060020373, + 0.1842132, + 0.27424693, + -0.075155534, + 0.13272786, + 0.02185443, + -0.08577906, + 0.021838648, + -0.1637421, + 0.027415913, + -0.09351988, + -0.10044491, + 0.004764631, + 0.029550739, + 0.0018653506, + 0.17249644, + -0.008504574, + 0.08730007, + -0.10313084, + 0.035127502, + -0.23126693, + 0.23637879, + -0.03239225, + -0.18939355, + 0.12732793, + 0.009465992, + -0.0003209131, + -0.18080606, + -0.08046365, + 0.012449741, + -0.118323445, + 0.104933105, + 0.21097045, + 0.060342215, + -0.07835461, + 0.02240911, + 0.20818727, + 0.045269955, + -0.085078776, + -0.069585264, + 0.14184217, + 0.12192964, + -0.011012893, + -0.06999858, + -0.02708106, + 0.027025241, + 0.06562223, + 0.09168855, + -0.037480846, + 0.026390834, + -0.056737408, + 0.08500966, + 0.08676688, + 0.065942384, + -0.16103101, + 0.043179717, + 0.020403195, + -0.11863198, + -0.041670058, + 0.065624006, + -0.03196418, + -0.0043724068, + 0.008897633, + -0.18209058, + -0.15713122, + 0.047153823, + 0.08730384, + 0.13942477, + -0.028682373, + 0.028083358, + -0.057008397, + -0.046886034, + -0.046192247, + 0.06715759, + 0.044568393, + 0.002113484, + -0.13828546, + 0.15636078, + 0.06954997, + -0.14953147, + -0.112560436, + 0.019261394, + -0.16593508, + 0.13439812, + -0.043217584, + -0.20450737, + 0.044981003, + -0.009157525, + 0.04975826, + 0.11736464, + 0.09473598, + -0.26620403, + -0.007065188, + -0.106640525, + 0.09735151, + 0.031973537, + 0.011108966, + -0.030196192, + -0.0153452195, + 0.11463631, + -0.21934934, + -0.06123633, + -0.052847028, + -0.03319332, + 0.05807538, + -0.11826212, + 0.0527611, + -0.006141906, + -0.0770732, + -0.11037585, + -0.105413966, + -0.036367007, + 0.19955967, + -0.057379395, + 0.10194378, + -0.013492098, + -0.3781815, + -0.0025361583, + 0.026621494, + -0.010930109, + 0.013397153, + -0.025689544, + -0.052768644, + -0.093645394, + 0.03010893, + 0.12366996, + -0.13778171, + -0.17512321, + -0.024462402, + 0.12694672, + 0.07129117, + 0.07700503, + 0.059647348, + 0.07097167, + -0.02528138, + 0.054619722, + 0.11518964, + 0.088611774, + 0.14925942, + 0.078001074, + -0.044878468, + -0.067617044, + 0.0942157, + -0.029932145, + -0.1649983, + 0.099805035, + 0.16583516, + -0.13795446, + -0.1263526, + -0.01923009, + -0.100225374, + 0.03533568, + 0.0404571, + 0.048099708, + 0.10554729, + 0.005023324, + -0.06945862, + 0.056317195, + 0.06053066, + -0.029253667, + -0.11922597, + -0.16693494, + -0.034542665, + 0.042180587, + -0.00618467, + 0.21037851, + -0.03096064, + 0.16982804, + 0.14634919, + 0.19202565, + -0.008642678, + -0.012609946, + -0.20218313, + -0.18344676, + 0.009707233, + 0.03880171, + -0.19555259, + -0.0035742945, + 0.093816675, + -0.03327149, + -0.033702333, + 0.062421475, + 0.10471949, + 0.13329011, + 0.035363387, + 0.091764204, + -0.24594139, + 0.04124924, + -0.11141196, + -0.021625469, + -0.15837601, + -0.06019995, + -0.031484544, + 0.040021174, + 0.01650623, + 0.11193421, + -0.10561927, + 0.04596731, + 0.036409006, + 0.04902609, + 0.0467768, + -0.03385237, + 0.01149601, + -0.04075288, + -0.086375795, + -0.037321445, + -0.017607475, + -0.071824186, + -0.14443898, + -0.3359552, + 0.043195643, + -0.092355154, + -0.07717329, + 0.117886715, + 0.19942063, + 0.118601896, + -0.05155628, + -0.02441101, + 0.10421796, + -0.008014208, + 0.26350906, + -0.07039495, + -0.029995237, + 0.03396719, + 0.06255244, + 0.015134183, + -0.0026772607, + -0.0038688714, + -0.022462266, + -0.061070275, + 0.06623726, + -0.009832414, + -0.0032685688, + 0.06205474, + -0.013509927, + 0.0072961375, + -0.04311228, + -0.23439503, + -0.07214877, + -0.045175053, + -0.092938885, + -0.23029418, + -0.12370092, + -0.035253774, + 0.028771548, + -0.03771489, + -0.11057414, + -0.12100764, + 0.05827887, + -0.040878106, + 0.33400786, + 0.029531842, + 0.03355193, + 0.027735762, + 0.21585152, + 0.060360543, + 0.11951367, + -0.063856, + -0.03125572, + 0.16415974, + -0.018139273, + 0.07573278, + 0.023114916, + 0.004682118, + -0.03016507, + 0.16820696, + 0.01668169, + -0.009222808, + -0.07329377, + -0.03207888, + -0.11533002, + 0.017110866, + -0.089399196, + -0.010132421, + -0.10615803, + 0.03353094, + -0.045490343, + -0.19455181, + -0.09528548, + -0.0072150077, + -0.14551137, + -0.07574543, + -0.07105609, + 0.10890402, + 0.06929344, + 0.010575259, + -0.066625185, + 0.042084593, + 0.046797868, + 0.09010806, + 0.031406708, + 0.10253122, + 0.11853467, + -0.0070101772, + -0.08128251, + 0.12124126, + -0.06370236, + -0.05522786, + 0.2804675, + 0.0147011485, + -0.10216334, + 0.033266407, + -0.21405481, + 0.11068325, + 0.13874714, + -0.11626716, + -0.01424192, + -0.13125478, + -0.0026530842, + -0.11729388, + -0.014237908, + 0.04701423, + -0.017909212, + 0.044821057, + -0.010106488, + -0.005959039, + 0.042763535, + 0.07690725, + -0.055813257, + -0.15889576, + -0.06334118, + 0.3404751, + -0.026150825, + 0.062182184, + 0.014162228, + -0.025227025, + 0.1349675, + -0.025621857, + -0.1545953, + -0.006323669, + -0.0047049993, + -0.16874228, + 0.110527135, + -0.029964997, + -0.19455348, + 0.065799035, + -0.04781946, + 0.034305893, + 0.15128328, + 0.06876025, + -0.024659593, + 0.172743, + 0.124386065, + 0.031809356, + -0.0066621266, + 0.09854871, + 0.35968181, + -0.12246443, + -0.12588087, + 0.044067364, + -0.088743724, + -0.006179159, + -0.016170332, + 0.09629168, + 0.10287478, + -0.05048483, + -0.15435089, + -0.023985432, + 0.1762534, + 0.034906767, + 0.007885429, + 0.051634364, + -0.015163402, + -0.026850164, + 0.18908618, + 0.05733349, + 0.008059986, + 0.101305835, + 0.02769927, + 0.20904636, + -0.16414832, + 0.051534127, + -0.19636646, + -0.0031428759, + -0.14756316, + -0.21607679, + 0.042433016, + -0.16239521, + 0.009235724, + -0.024397142, + 0.18176028, + -0.05934566, + 0.07906501, + -0.06342852, + -0.122705214, + 0.086101316, + 0.024250219, + 0.100434914, + -0.08447745, + 0.14350761, + 0.0065760002, + -0.15320979, + -0.1550891, + -0.020352894, + -0.027650552, + -0.02985656, + 0.08008903, + -0.10814273, + 0.021938505, + 0.028200425, + 0.078790516, + -0.07990491, + -0.21740301, + -0.012074666, + 0.012521158, + 0.13365597, + -0.038121063, + 0.059651006, + -0.05100821, + 0.0504861, + 0.06439014, + -0.13510308, + 0.060516976, + -0.092174366, + 0.058194377, + -0.09388816, + 0.13937302, + 0.0197103, + 0.078052714, + -0.088731535, + 0.111742556, + 0.08743099, + -0.13886444, + 0.008587345, + 0.087134205, + -0.06717643, + -0.13828802, + -0.090106554, + -0.023472186, + 0.04368845, + 0.021393524, + -0.13013981, + 0.15462554, + -0.057321034, + -0.10127157, + -0.028595693, + 0.093094125, + -0.042103864, + 0.22155926, + -0.0130425505, + 0.07462886, + -0.056797173, + 0.039937433, + -0.018057175, + -0.05877615, + 0.0733413, + 0.08236741, + 0.069186494, + -0.011915797, + 0.15068631, + -0.101410225, + -0.11714112, + 0.20504177, + 0.058380783, + 0.015036767, + 0.17739035, + -0.048152056, + -0.08256131, + -0.12287246, + 0.18831412, + -0.055647146, + 0.118204355, + 0.11487204, + -0.1261344, + -0.12811424, + 0.05310729, + -0.10494798, + 0.038551517, + -0.033783097, + -0.12150896, + 0.04779768, + -0.14517125, + 0.16845013, + 0.15802872, + -0.030408494, + -0.050764624, + 0.045974307, + 0.02037497, + -0.010381571, + 0.022415577, + -0.13675034, + 0.055272937, + -0.117484584, + -0.09043007, + 0.07730109, + -0.15255336, + 0.02765536, + -0.019286819, + 0.007561362, + 0.036112603, + -0.021919219, + 0.018293597, + -0.09924775, + -0.03393517, + -0.031558562, + -0.10081357, + 0.016195873, + -0.038190186, + 0.13615939, + -0.032655925, + 0.077086784, + 0.06676277, + -0.15092671, + 0.26104182, + 0.00073005824, + 0.13841376, + 0.019728431, + 0.084298, + 0.06365132, + 0.053714555, + -0.023481913, + -0.073658735, + 0.094291925, + -0.046430625, + 0.13661909, + 0.0048703407, + -0.09880886, + 0.20059393, + 0.06522984, + -0.0033890887, + 0.008679226, + -0.03582931, + -0.070584595, + 0.0062678573, + 0.027285222, + 0.121596545, + 0.18270735, + -0.051998466, + -0.0024515297, + 0.057480533, + 0.03778221, + 0.01285929, + -0.063858345, + -0.12761942, + 0.025317665, + -0.08674136, + -0.17180698, + -0.18613546, + -0.0059342072, + 0.022553451, + -0.1678678, + 0.115535185, + 0.040501345, + -0.043164544, + -0.0039145667, + 0.19659255, + 0.13500725, + -0.00032373134, + -0.021232175, + -0.041546453, + -0.057601646, + -0.10057167, + -0.06948283, + -0.027852042, + -0.00024421138, + 0.054853093, + -0.12560737, + 0.20087229, + 0.17841148, + 0.044842776, + -0.16634, + 0.05749792, + 0.07120963, + -0.10685926, + -0.103528924, + -0.16392906, + 0.016186714, + 0.12114929, + -0.016533075, + 0.079132736, + 0.015467807, + -0.09476922, + 0.05216517, + -0.16601095, + 0.09375119, + 0.05882024, + 0.13059746, + -0.16618133, + -0.1350551, + -0.05530104, + 0.028868213, + -0.023587227, + -0.12164127, + 0.07728809, + -0.07231829, + -0.036748417, + -0.18092078, + -0.21404143, + -0.043164216, + 0.03013793, + 0.09951888, + -0.019226337, + -0.03692522, + -0.010236446, + 0.23704085, + 0.024363797, + 0.087785296, + 0.03604801, + 0.0636236, + 0.0029409393, + 0.10468185, + -0.0034361675 + ], + [ + -0.090918705, + 0.10178792, + -0.11678526, + -0.05916824, + -0.070548564, + -0.055725947, + -0.03882828, + -0.1335081, + -0.06834853, + -0.05319615, + 0.038513795, + -0.07048023, + -0.016072715, + 0.023768596, + 0.027139593, + -0.048342563, + -0.12934943, + 0.053747617, + -0.11772681, + -0.15524524, + 0.092097424, + 0.003124105, + -0.037270628, + -0.06646498, + 0.13187897, + -0.011146336, + -0.004777177, + -0.08553, + 0.129089, + 0.09285971, + 0.04769979, + -0.27952307, + -0.030982269, + -0.036123086, + 0.004959277, + 0.025655426, + 0.034489382, + -0.004012741, + -0.1014039, + 0.25641724, + 0.04422523, + -0.10645815, + 0.010120655, + -0.027963284, + -0.11779925, + 0.07337869, + -0.10935339, + 0.033037018, + 0.029130006, + -0.095515944, + 0.043007042, + 0.034373123, + 0.09090041, + -0.078975394, + -0.055480488, + 0.13741483, + -0.09314148, + 0.014755225, + -0.1041528, + -0.012438028, + -0.03960217, + 0.1029107, + -0.0713567, + 0.05173136, + -0.094452016, + 0.1557772, + 0.02391808, + -0.0067842794, + 0.046360753, + 0.13958195, + 0.026215952, + 0.20077768, + -0.063762814, + -0.0112912245, + -0.02219785, + 0.01546266, + -0.02664009, + 0.0102181, + -0.13750845, + 0.040445186, + -0.03579482, + -0.06246311, + -0.17495327, + -0.044200953, + 0.049676426, + 0.13711315, + -0.05651084, + 0.021217277, + -0.106552064, + 0.24909946, + -0.07196123, + -0.13145979, + 0.106257886, + 0.029360222, + 0.032705303, + -0.07170857, + -0.07315177, + 0.007486855, + 0.101780094, + -0.046930548, + -0.035663072, + -0.014383758, + 0.07339751, + 0.08912065, + -0.100061595, + 0.09376314, + 0.017745595, + -0.011771546, + 0.07223824, + -0.01594267, + -0.013549202, + 0.08492905, + -0.04997707, + -0.0030274016, + 0.14002652, + -0.024056267, + -0.04748304, + -0.11573629, + -0.19070493, + -0.108643614, + 0.015834438, + -0.007529915, + -0.06069767, + -0.088803716, + -0.040031042, + 0.042574655, + 0.06335537, + 0.2776763, + 0.157198, + 0.10027294, + 0.060053993, + 0.09593617, + -0.040199958, + -0.0218066, + -0.059696767, + 0.010764066, + 0.0074787457, + -0.0017246301, + 0.14612265, + -0.13989076, + -0.052567583, + 0.13347758, + 0.011251086, + -0.038681958, + 0.13007946, + -0.27539828, + 0.04524926, + -0.058315337, + 0.046448134, + 0.027130226, + 0.014157587, + 0.13915583, + 0.077046916, + -0.045503356, + -0.1199796, + 0.11390482, + -0.09459817, + -0.15865034, + 0.029030873, + 0.0069994237, + 0.09143081, + -0.19256212, + 0.113154635, + 0.012218711, + -0.040001627, + -0.035703443, + -0.016955223, + -0.16437308, + 0.09222379, + -0.020818336, + 0.0408785, + -0.022809282, + -0.08395719, + -0.015888765, + -0.011632918, + 0.0894447, + -0.13184664, + 0.062960155, + -0.050418597, + -0.0077106007, + 0.030720836, + 0.06868697, + -0.15584622, + 0.018158488, + -0.06420861, + 0.10350769, + -0.057464138, + 0.2722616, + 0.019180322, + -0.016849259, + -0.044826362, + 0.09458675, + -0.022836352, + -0.008754258, + 0.011425034, + -0.13440505, + 0.074882835, + -0.07931913, + -0.14062047, + 0.03560134, + -0.14323568, + -0.09257049, + 0.09006065, + -0.008161625, + 0.17046285, + -0.13716109, + 0.076164976, + 0.17762338, + -0.062453173, + -0.2814841, + 0.019066457, + -0.09456787, + -0.101610065, + -0.00808024, + -0.08481967, + 0.06828978, + 0.037755653, + -0.0687689, + -0.0062354016, + -0.10014368, + -0.012343183, + 0.12530406, + 0.14283738, + 0.32921645, + -0.09596834, + -0.21708255, + 0.006385513, + 0.12804818, + 0.10758543, + 0.046675146, + -0.030714657, + -0.09501783, + 0.032333042, + 0.03400808, + 0.18698777, + 0.12576406, + -0.08127338, + 0.12850587, + -0.0040291757, + 0.041365903, + -0.035329875, + 0.09262304, + -0.018961059, + -0.09265921, + -0.019368613, + 0.09696165, + 0.1703949, + 0.13549256, + -0.062609956, + 0.025865871, + -0.0813209, + -0.11605256, + -0.04914095, + 0.14482489, + -0.12189488, + 0.029212827, + -0.047967225, + -0.04732705, + -0.05929952, + 0.036168516, + -0.077900134, + 0.089916855, + 0.058087625, + 0.06261247, + -0.025491865, + -0.01696399, + 0.15251179, + 0.09780864, + -0.044852484, + -0.15522853, + -0.004163396, + -0.060386486, + -0.052862376, + -0.075335175, + -0.09687368, + 0.04303785, + 0.08131523, + 0.05096478, + -0.018024003, + 0.015964342, + -0.030023776, + 0.11333087, + -0.062238727, + -0.0087387655, + 0.03900802, + 0.07718012, + -0.055245925, + 0.09055883, + 0.018206658, + -0.10128244, + -0.113918275, + -0.014042869, + 0.013369879, + -0.083066694, + 0.10710397, + 0.2334997, + 0.11992624, + -0.13514432, + 0.08946301, + -0.005258978, + 0.18481515, + 0.09958813, + -0.03506839, + 0.11119286, + 0.059356723, + -0.07889465, + -0.084909506, + 0.1109816, + -0.030580772, + -0.056059625, + -0.062322292, + -0.001849897, + 0.036662873, + 0.010243648, + -0.030097201, + -0.028883694, + -0.08366871, + -0.118037455, + -0.024749476, + 0.2562628, + 0.031159468, + -0.07297978, + 0.060752958, + 0.086939186, + -0.074564815, + -0.0727932, + 0.071926646, + -0.1669235, + -0.111354195, + 0.04277188, + -0.09893118, + -0.0023316005, + 0.12041482, + -0.20090793, + -0.08346423, + 0.08245039, + 0.014400216, + 0.035497963, + 0.20425177, + 0.051229905, + 0.032467492, + -0.024495544, + 0.0319124, + 0.011308912, + 0.10386546, + -0.0026058508, + -0.011933583, + 0.0020977962, + -0.058710657, + 0.016828887, + -0.058007337, + -0.09139152, + 0.0069205477, + -0.08567999, + 0.049610157, + 0.23878542, + 0.0771982, + -0.18772614, + -0.1980067, + 0.05024857, + -0.11750554, + 0.01253342, + -0.06214654, + 0.17442481, + -0.02406304, + -0.02721053, + 0.11202311, + 0.026570763, + -0.014570306, + -0.058837567, + -0.17475894, + 0.2757031, + -0.09190606, + -0.03375931, + 0.025897523, + -0.03163071, + -0.26014018, + -0.04906938, + 0.12640563, + -0.07089077, + 0.25859892, + -0.031826533, + -0.03999971, + -0.026293382, + -0.059014764, + -0.0024002783, + 0.070438445, + -0.016921086, + 0.01577732, + 0.028592845, + 0.17768852, + -0.09612699, + -0.1774312, + 0.06794902, + -0.0094305035, + 0.0448991, + 0.12650795, + -0.147283, + -0.0038914855, + -0.013293184, + -0.1679682, + 0.16322352, + -0.05938105, + -0.06847858, + 0.036620837, + 0.051043935, + 0.09699918, + 0.0020425557, + -0.01936623, + -0.0733083, + -0.035790347, + -0.022743497, + -0.0052870857, + -0.048689455, + -0.047039106, + 0.16933645, + -0.0026446308, + 0.046715964, + -0.111923575, + -0.06061537, + 0.07394871, + -0.0807457, + -0.006002038, + -0.18421322, + -0.2742469, + 0.07515553, + -0.13272786, + -0.021854423, + 0.08577906, + -0.02183865, + 0.1637421, + -0.027415918, + 0.093519874, + 0.10044491, + -0.004764628, + -0.029550739, + -0.0018653506, + -0.17249642, + 0.008504572, + -0.08730007, + 0.10313084, + -0.035127506, + 0.23126698, + -0.2363788, + 0.03239225, + 0.18939355, + -0.12732795, + -0.0094659915, + 0.00032092226, + 0.18080604, + 0.08046364, + -0.0124497395, + 0.118323445, + -0.1049331, + -0.21097045, + -0.060342208, + 0.07835461, + -0.022409111, + -0.20818728, + -0.04526996, + 0.08507878, + 0.069585264, + -0.14184217, + -0.121929646, + 0.011012894, + 0.06999857, + 0.027081057, + -0.02702524, + -0.06562223, + -0.09168855, + 0.03748085, + -0.026390832, + 0.056737408, + -0.08500967, + -0.086766884, + -0.06594239, + 0.16103102, + -0.043179717, + -0.020403197, + 0.118631996, + 0.041670054, + -0.065624006, + 0.03196418, + 0.004372405, + -0.008897635, + 0.18209055, + 0.15713122, + -0.047153823, + -0.08730385, + -0.13942477, + 0.028682373, + -0.02808336, + 0.057008397, + 0.04688603, + 0.046192247, + -0.0671576, + -0.044568397, + -0.0021134838, + 0.13828546, + -0.15636078, + -0.06954997, + 0.14953147, + 0.112560436, + -0.019261394, + 0.16593508, + -0.13439813, + 0.043217577, + 0.20450738, + -0.044981, + 0.009157527, + -0.049758263, + -0.11736464, + -0.09473599, + 0.266204, + 0.0070651877, + 0.10664051, + -0.09735151, + -0.031973537, + -0.011108966, + 0.030196195, + 0.015345223, + -0.11463632, + 0.21934934, + 0.06123632, + 0.05284703, + 0.033193324, + -0.05807538, + 0.11826212, + -0.052761097, + 0.006141908, + 0.0770732, + 0.110375844, + 0.105413966, + 0.036367007, + -0.19955969, + 0.057379384, + -0.10194378, + 0.013492098, + 0.37818155, + 0.0025361555, + -0.026621489, + 0.010930118, + -0.013397153, + 0.025689546, + 0.05276865, + 0.0936454, + -0.03010893, + -0.123669945, + 0.13778171, + 0.17512321, + 0.024462402, + -0.12694673, + -0.07129118, + -0.077005014, + -0.059647337, + -0.07097167, + 0.025281385, + -0.054619726, + -0.115189634, + -0.08861177, + -0.14925943, + -0.07800107, + 0.044878464, + 0.067617044, + -0.0942157, + 0.029932136, + 0.16499831, + -0.099805035, + -0.16583516, + 0.13795446, + 0.1263526, + 0.019230088, + 0.100225374, + -0.035335675, + -0.040457096, + -0.04809971, + -0.105547294, + -0.005023326, + 0.069458604, + -0.056317203, + -0.06053065, + 0.029253665, + 0.11922596, + 0.16693497, + 0.034542665, + -0.04218059, + 0.0061846687, + -0.21037851, + 0.030960638, + -0.16982804, + -0.14634919, + -0.19202565, + 0.008642676, + 0.012609947, + 0.20218313, + 0.18344678, + -0.009707233, + -0.03880171, + 0.1955526, + 0.003574293, + -0.09381668, + 0.03327149, + 0.033702336, + -0.06242147, + -0.10471946, + -0.13329011, + -0.035363384, + -0.091764204, + 0.24594142, + -0.041249245, + 0.11141196, + 0.021625465, + 0.15837602, + 0.06019995, + 0.031484544, + -0.04002117, + -0.016506229, + -0.111934215, + 0.105619274, + -0.045967307, + -0.036409, + -0.04902609, + -0.046776805, + 0.03385237, + -0.01149601, + 0.04075288, + 0.086375795, + 0.037321445, + 0.017607475, + 0.071824186, + 0.14443898, + 0.33595517, + -0.043195643, + 0.09235515, + 0.07717328, + -0.117886715, + -0.19942063, + -0.11860189, + 0.05155627, + 0.024411008, + -0.10421797, + 0.008014208, + -0.2635091, + 0.07039495, + 0.029995235, + -0.033967186, + -0.062552445, + -0.015134183, + 0.0026772628, + 0.0038688711, + 0.022462267, + 0.061070275, + -0.06623726, + 0.009832416, + 0.003268568, + -0.062054727, + 0.013509927, + -0.0072961412, + 0.043112278, + 0.23439501, + 0.07214878, + 0.045175053, + 0.0929389, + 0.23029421, + 0.12370091, + 0.035253778, + -0.028771546, + 0.03771489, + 0.11057414, + 0.12100764, + -0.05827887, + 0.040878106, + -0.33400786, + -0.029531848, + -0.033551935, + -0.027735764, + -0.2158515, + -0.060360547, + -0.11951368, + 0.063856, + 0.031255722, + -0.16415976, + 0.018139273, + -0.075732775, + -0.023114912, + -0.004682119, + 0.030165067, + -0.16820696, + -0.016681688, + 0.009222809, + 0.07329377, + 0.032078873, + 0.11533001, + -0.017110873, + 0.089399196, + 0.010132426, + 0.10615803, + -0.033530936, + 0.045490336, + 0.19455181, + 0.09528548, + 0.007215007, + 0.14551137, + 0.07574545, + 0.07105608, + -0.10890402, + -0.069293454, + -0.01057526, + 0.06662519, + -0.04208459, + -0.046797857, + -0.09010806, + -0.03140671, + -0.10253122, + -0.11853466, + 0.007010177, + 0.08128252, + -0.12124125, + 0.06370236, + 0.055227865, + -0.28046748, + -0.014701144, + 0.10216332, + -0.0332664, + 0.2140548, + -0.110683255, + -0.13874713, + 0.116267174, + 0.014241925, + 0.13125478, + 0.002653086, + 0.11729388, + 0.014237907, + -0.047014236, + 0.017909214, + -0.04482106, + 0.010106489, + 0.0059590437, + -0.04276354, + -0.07690724, + 0.05581326, + 0.15889578, + 0.063341185, + -0.3404751, + 0.026150826, + -0.062182184, + -0.0141622275, + 0.025227023, + -0.13496749, + 0.02562185, + 0.15459532, + 0.006323666, + 0.0047049974, + 0.16874228, + -0.11052715, + 0.029964995, + 0.19455346, + -0.06579904, + 0.04781946, + -0.034305893, + -0.1512833, + -0.06876026, + 0.024659596, + -0.172743, + -0.124386065, + -0.031809352, + 0.006662127, + -0.09854872, + -0.35968181, + 0.12246443, + 0.12588087, + -0.044067368, + 0.08874373, + 0.0061791586, + 0.016170332, + -0.09629168, + -0.10287476, + 0.05048483, + 0.1543509, + 0.023985434, + -0.17625344, + -0.034906764, + -0.007885429, + -0.051634364, + 0.015163402, + 0.026850162, + -0.18908617, + -0.057333484, + -0.008059984, + -0.101305835, + -0.027699258, + -0.20904638, + 0.16414833, + -0.051534135, + 0.19636646, + 0.0031428759, + 0.14756314, + 0.21607679, + -0.04243302, + 0.1623952, + -0.009235722, + 0.024397142, + -0.18176028, + 0.059345663, + -0.07906498, + 0.06342852, + 0.12270523, + -0.08610132, + -0.024250219, + -0.100434914, + 0.08447745, + -0.14350761, + -0.006575999, + 0.15320978, + 0.1550891, + 0.020352894, + 0.027650552, + 0.029856551, + -0.08008903, + 0.108142726, + -0.021938507, + -0.028200423, + -0.07879052, + 0.079904914, + 0.217403, + 0.012074669, + -0.012521159, + -0.13365597, + 0.038121056, + -0.059651006, + 0.051008206, + -0.0504861, + -0.06439014, + 0.13510308, + -0.06051698, + 0.09217437, + -0.058194384, + 0.09388817, + -0.13937302, + -0.0197103, + -0.078052714, + 0.088731535, + -0.11174255, + -0.08743099, + 0.13886444, + -0.008587343, + -0.08713419, + 0.06717642, + 0.13828804, + 0.090106554, + 0.023472188, + -0.043688454, + -0.021393526, + 0.13013981, + -0.1546255, + 0.057321034, + 0.10127156, + 0.02859569, + -0.09309413, + 0.04210387, + -0.22155924, + 0.013042551, + -0.07462887, + 0.056797177, + -0.039937425, + 0.018057175, + 0.05877615, + -0.07334131, + -0.082367405, + -0.069186494, + 0.0119157955, + -0.15068631, + 0.10141023, + 0.11714112, + -0.20504175, + -0.05838078, + -0.015036771, + -0.17739035, + 0.04815205, + 0.082561314, + 0.122872464, + -0.18831415, + 0.055647142, + -0.11820435, + -0.11487204, + 0.1261344, + 0.12811424, + -0.05310729, + 0.10494799, + -0.038551517, + 0.033783097, + 0.121508956, + -0.04779768, + 0.14517125, + -0.16845016, + -0.1580287, + 0.030408496, + 0.050764624, + -0.045974307, + -0.020374969, + 0.010381569, + -0.022415573, + 0.13675034, + -0.05527294, + 0.117484584, + 0.09043007, + -0.077301085, + 0.15255338, + -0.027655361, + 0.019286815, + -0.0075613605, + -0.036112595, + 0.021919217, + -0.0182936, + 0.09924776, + 0.033935167, + 0.031558562, + 0.100813575, + -0.016195877, + 0.038190186, + -0.13615939, + 0.032655925, + -0.077086784, + -0.06676277, + 0.15092671, + -0.26104182, + -0.00073005847, + -0.13841376, + -0.019728435, + -0.084298, + -0.06365133, + -0.05371456, + 0.023481913, + 0.073658735, + -0.094291925, + 0.046430625, + -0.13661909, + -0.00487034, + 0.09880886, + -0.2005939, + -0.06522985, + 0.00338909, + -0.008679226, + 0.035829317, + 0.070584595, + -0.006267858, + -0.027285222, + -0.121596545, + -0.18270732, + 0.051998466, + 0.0024515307, + -0.05748052, + -0.03778221, + -0.012859291, + 0.063858345, + 0.12761942, + -0.025317667, + 0.086741365, + 0.17180698, + 0.18613546, + 0.0059342054, + -0.022553453, + 0.1678678, + -0.11553518, + -0.04050134, + 0.043164548, + 0.003914565, + -0.19659255, + -0.13500723, + 0.00032373256, + 0.021232177, + 0.041546453, + 0.057601646, + 0.10057167, + 0.06948283, + 0.027852042, + 0.000244211, + -0.054853093, + 0.12560737, + -0.20087229, + -0.17841148, + -0.04484277, + 0.16633998, + -0.05749792, + -0.07120963, + 0.10685925, + 0.10352892, + 0.16392906, + -0.016186712, + -0.12114929, + 0.016533079, + -0.079132736, + -0.015467804, + 0.09476923, + -0.052165166, + 0.16601096, + -0.09375119, + -0.058820244, + -0.13059746, + 0.16618133, + 0.13505507, + 0.055301044, + -0.02886822, + 0.023587227, + 0.12164127, + -0.0772881, + 0.07231829, + 0.03674842, + 0.18092078, + 0.21404143, + 0.043164212, + -0.030137932, + -0.09951888, + 0.019226344, + 0.036925215, + 0.010236445, + -0.23704083, + -0.024363795, + -0.087785296, + -0.036048014, + -0.06362361, + -0.0029409386, + -0.10468186, + 0.0034361666 + ] + ], + "bias": [ + -0.56765383, + 0.56765395 + ], + "decision": { + "abstain_prob_threshold": 0.90000004, + "abstain_margin_threshold": 0.0 + } +} \ No newline at end of file diff --git a/benchmarks/models/router/linear/out-router-linear-iter-15/router_report.json b/benchmarks/models/router/linear/out-router-linear-iter-15/router_report.json new file mode 100644 index 0000000..f6a32db --- /dev/null +++ b/benchmarks/models/router/linear/out-router-linear-iter-15/router_report.json @@ -0,0 +1,2921 @@ +{ + "dataset_id": "router-multi(internal-eval-starter-v2+router-train-pack-v1+router-dev-pack-v1+router-abstain-v2+router-abstain-v3+router-memory-lane-v3+router-read-file-repo-v3+router-read-file-repo-v4+router-shell-state-v3+router-holdout-tools-recall-v1+router-holdout-abstain-toolish-v1+router-holdout-memory-toolish-v1+router-shell-state-v1+router-shell-state-v1b+router-shell-state-v2+router-read-file-repo-v1+router-read-file-repo-v1b+router-write-file-v1+router-memory-lane-v1+router-memory-lane-v1b+router-abstain-v1+router-memory-adversarial-v1)", + "embed_model": "bge-m3-FP16.gguf", + "trained_on": "train", + "evaluated_on": "test", + "decision": { + "abstain_prob_threshold": 0.90000004, + "abstain_margin_threshold": 0.0 + }, + "metrics": { + "total": 319, + "accuracy": 0.5862069, + "confusion": [ + [ + 100, + 0 + ], + [ + 132, + 87 + ] + ], + "memory_false_abstain_rate": 0.0, + "abstain_false_memory_rate": 0.60273975, + "tool_required_false_memory_rate": 0.6912752, + "tool_required_recall": 0.30872482, + "memory_count": 100, + "abstain_count": 219, + "tool_required_count": 149, + "misclassified": [ + { + "query_id": "test_q9", + "text": "what gpu am i using for the reranker?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.2033282, + "p_abstain": 0.79667175 + }, + { + "query_id": "test_q15", + "text": "which postgres extension are we enabling before passive recall?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17207056, + "p_abstain": 0.8279294 + }, + { + "query_id": "holdout_tools_recall_tools_002", + "text": "how much free disk space is there on the partition containing agent.db?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10456361, + "p_abstain": 0.89543635 + }, + { + "query_id": "holdout_tools_recall_tools_003", + "text": "what's the current hostname?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.101953685, + "p_abstain": 0.8980464 + }, + { + "query_id": "holdout_tools_recall_tools_004", + "text": "is port 8002 bound to 127.0.0.1 or 0.0.0.0 right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1582868, + "p_abstain": 0.8417132 + }, + { + "query_id": "holdout_tools_recall_tools_006", + "text": "are there any zombie processes named klbr right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.11492517, + "p_abstain": 0.8850748 + }, + { + "query_id": "holdout_tools_recall_tools_008", + "text": "check if the reranker http endpoint on localhost:8003 is responding", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.16735494, + "p_abstain": 0.8326451 + }, + { + "query_id": "holdout_tools_recall_tools_011", + "text": "which file defines the ServerMsg type?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12588543, + "p_abstain": 0.8741145 + }, + { + "query_id": "holdout_tools_recall_tools_013", + "text": "read klbr-core/src/agent.rs and summarize how routing affects memory injection", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17401817, + "p_abstain": 0.82598186 + }, + { + "query_id": "holdout_tools_recall_tools_014", + "text": "what does klbr-core/src/context.rs do when recalled memories are present?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.14702685, + "p_abstain": 0.85297316 + }, + { + "query_id": "holdout_tools_recall_tools_015", + "text": "what crate defines the LlmClient type?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.23538512, + "p_abstain": 0.7646149 + }, + { + "query_id": "holdout_tools_recall_tools_016", + "text": "write a file docs/router_holdout_tools_recall.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.14410025, + "p_abstain": 0.8558998 + }, + { + "query_id": "holdout_tools_recall_tools_017", + "text": "append a line \"router ok\" to docs/router_holdout_log.txt", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.11356302, + "p_abstain": 0.88643694 + }, + { + "query_id": "holdout_tools_recall_tools_018", + "text": "create a file benchmarks/router_holdout_tmp.txt and put the number 123 in it", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.13842863, + "p_abstain": 0.8615714 + }, + { + "query_id": "holdout_tools_recall_tools_019", + "text": "今ポート8002は開いてる?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10369836, + "p_abstain": 0.8963016 + }, + { + "query_id": "holdout_tools_recall_tools_020", + "text": "klbr-core/src/llm.rsのembed関数って何返すの?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16805679, + "p_abstain": 0.8319432 + }, + { + "query_id": "holdout_tools_recall_tools_023", + "text": "in klbr-core/src/config.rs, what is memory_support_score_gap set to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.15972814, + "p_abstain": 0.8402719 + }, + { + "query_id": "holdout_tools_recall_tools_024", + "text": "how many open file descriptors does the klbr-daemon process have right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105587445, + "p_abstain": 0.8944126 + }, + { + "query_id": "holdout_tools_recall_tools_025", + "text": "what's the size of the current target/ directory?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1315417, + "p_abstain": 0.8684583 + }, + { + "query_id": "holdout_tools_recall_tools_026", + "text": "what ip address is localhost:8002 actually bound to right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1407521, + "p_abstain": 0.8592479 + }, + { + "query_id": "holdout_tools_recall_tools_027", + "text": "which file defines the ClientMsg type in the ipc protocol?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11255213, + "p_abstain": 0.88744783 + }, + { + "query_id": "holdout_tools_recall_tools_028", + "text": "in klbr-core/src/router.rs, what routing decisions exist?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.20984548, + "p_abstain": 0.7901545 + }, + { + "query_id": "holdout_tools_recall_tools_032", + "text": "open klbr-core/src/config.rs and tell me what llm_url is set to", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11325379, + "p_abstain": 0.8867462 + }, + { + "query_id": "holdout_tools_recall_tools_033", + "text": "open klbr-core/src/config.rs and tell me what rerank_url is set to", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16435155, + "p_abstain": 0.8356485 + }, + { + "query_id": "holdout_tools_recall_tools_034", + "text": "in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13177624, + "p_abstain": 0.8682238 + }, + { + "query_id": "holdout_tools_recall_tools_035", + "text": "in klbr-tui/src/main.rs, what happens when ServerMsg::Error arrives?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11597728, + "p_abstain": 0.8840227 + }, + { + "query_id": "holdout_tools_recall_tools_038", + "text": "is the disk partition containing /home close to full right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.11078995, + "p_abstain": 0.88921 + }, + { + "query_id": "holdout_tools_recall_tools_039", + "text": "what is the network interface with the highest tx bytes right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.14258735, + "p_abstain": 0.85741264 + }, + { + "query_id": "holdout_tools_recall_tools_040", + "text": "is port 1234 open right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10612941, + "p_abstain": 0.8938706 + }, + { + "query_id": "holdout_tools_recall_tools_041", + "text": "what environment variable is RUST_LOG set to right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.13568686, + "p_abstain": 0.86431307 + }, + { + "query_id": "holdout_tools_recall_tools_043", + "text": "what gpu am i using for the reranker right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.180166, + "p_abstain": 0.819834 + }, + { + "query_id": "holdout_tools_recall_tools_044", + "text": "what is the current system load average?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.106692225, + "p_abstain": 0.89330775 + }, + { + "query_id": "holdout_tools_recall_tools_045", + "text": "in klbr-core/src/config.rs, what is router_model_path set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.24168047, + "p_abstain": 0.75831956 + }, + { + "query_id": "holdout_tools_recall_abstain_053", + "text": "fix it", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.11018476, + "p_abstain": 0.8898153 + }, + { + "query_id": "holdout_tools_recall_abstain_054", + "text": "今週のHacker Newsのトップ記事って何?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.122447826, + "p_abstain": 0.87755215 + }, + { + "query_id": "holdout_tools_recall_tools_056", + "text": "what's the uptime since klbr daemon last started?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1281884, + "p_abstain": 0.8718116 + }, + { + "query_id": "holdout_tools_recall_tools_058", + "text": "what is the default value of compaction_keep in Config::default()?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.19324629, + "p_abstain": 0.8067537 + }, + { + "query_id": "holdout_tools_recall_tools_059", + "text": "in klbr-core/src/config.rs, what is memory_top_k set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17644644, + "p_abstain": 0.82355356 + }, + { + "query_id": "holdout_tools_recall_tools_060", + "text": "in klbr-core/src/llm.rs, which method produces embeddings?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.23829702, + "p_abstain": 0.76170295 + }, + { + "query_id": "holdout_abstain_toolish_abstain_005", + "text": "who won the nba game last night? check", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10403203, + "p_abstain": 0.895968 + }, + { + "query_id": "holdout_abstain_toolish_abstain_007", + "text": "search the internet for 'bge-m3 gguf' and summarize the first result", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.14765014, + "p_abstain": 0.85234994 + }, + { + "query_id": "holdout_abstain_toolish_abstain_008", + "text": "今週のHacker Newsのトップ記事って何? 調べて", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.11178698, + "p_abstain": 0.88821304 + }, + { + "query_id": "holdout_abstain_toolish_abstain_017", + "text": "ssh into the remote server and cat /etc/shadow", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.12404098, + "p_abstain": 0.87595904 + }, + { + "query_id": "holdout_abstain_toolish_abstain_021", + "text": "will klbr be popular in 2028?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.18373026, + "p_abstain": 0.8162697 + }, + { + "query_id": "holdout_abstain_toolish_abstain_022", + "text": "predict what embedding model will be best in 2030", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.23580031, + "p_abstain": 0.76419973 + }, + { + "query_id": "holdout_abstain_toolish_abstain_023", + "text": "will we need a reranker in 2 years?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.31362545, + "p_abstain": 0.68637455 + }, + { + "query_id": "holdout_abstain_toolish_abstain_027", + "text": "do the thing from yesterday", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10365143, + "p_abstain": 0.89634854 + }, + { + "query_id": "holdout_abstain_toolish_abstain_028", + "text": "what's the best programming language? prove it with data", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.15280688, + "p_abstain": 0.8471931 + }, + { + "query_id": "holdout_abstain_toolish_abstain_029", + "text": "vim or emacs? choose for me", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.16565238, + "p_abstain": 0.83434767 + }, + { + "query_id": "holdout_abstain_toolish_abstain_030", + "text": "is gemma 4 better than llama 3.1? check online and decide", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.20931254, + "p_abstain": 0.79068744 + }, + { + "query_id": "holdout_abstain_toolish_abstain_032", + "text": "open a browser and check whether llama-server supports embeddings by default", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.19038048, + "p_abstain": 0.80961955 + }, + { + "query_id": "holdout_abstain_toolish_abstain_033", + "text": "fetch the gemma-4-26b model card and summarize it", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.17735076, + "p_abstain": 0.82264924 + }, + { + "query_id": "holdout_abstain_toolish_abstain_039", + "text": "check the latest Rust RFCs and tell me the most controversial one", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.12441018, + "p_abstain": 0.87558985 + }, + { + "query_id": "holdout_abstain_toolish_tools_042", + "text": "which file defines the ClientMsg type in klbr-ipc?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12457222, + "p_abstain": 0.8754278 + }, + { + "query_id": "holdout_abstain_toolish_tools_044", + "text": "write a file docs/router_holdout_abstain_toolish.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.19135803, + "p_abstain": 0.8086419 + }, + { + "query_id": "holdout_abstain_toolish_tools_045", + "text": "klbr-core/src/config.rsのmemory_top_kはいくつ?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.126839, + "p_abstain": 0.873161 + }, + { + "query_id": "holdout_abstain_toolish_tools_046", + "text": "今メモリ使用量はどれくらい?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105395846, + "p_abstain": 0.89460415 + }, + { + "query_id": "holdout_abstain_toolish_tools_048", + "text": "how big is agent.db right now on disk?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10135, + "p_abstain": 0.89864993 + }, + { + "query_id": "holdout_abstain_toolish_tools_049", + "text": "in klbr-core/src/config.rs, what is llm_url set to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.20903136, + "p_abstain": 0.7909686 + }, + { + "query_id": "holdout_memory_toolish_tools_043", + "text": "which file defines the ClientMsg type in klbr-ipc?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12457222, + "p_abstain": 0.8754278 + }, + { + "query_id": "holdout_memory_toolish_tools_044", + "text": "in klbr-core/src/config.rs, what is memory_top_k set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17644644, + "p_abstain": 0.82355356 + }, + { + "query_id": "holdout_memory_toolish_tools_045", + "text": "write a file docs/router_holdout_memory_toolish.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.15731505, + "p_abstain": 0.842685 + }, + { + "query_id": "holdout_memory_toolish_tools_046", + "text": "今メモリ使用量はどれくらい?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105395846, + "p_abstain": 0.89460415 + }, + { + "query_id": "holdout_memory_toolish_tools_047", + "text": "klbr-core/src/config.rsのembed_dimはいくつ?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13011032, + "p_abstain": 0.8698897 + }, + { + "query_id": "holdout_memory_toolish_tools_049", + "text": "how big is agent.db right now on disk?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10135, + "p_abstain": 0.89864993 + }, + { + "query_id": "holdout_memory_toolish_tools_050", + "text": "in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13177624, + "p_abstain": 0.8682238 + }, + { + "query_id": "holdout_memory_toolish_abstain_054", + "text": "will klbr be popular in 2028?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.18373026, + "p_abstain": 0.8162697 + }, + { + "query_id": "holdout_memory_toolish_abstain_056", + "text": "今週のHacker Newsのトップ記事って何?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.122447826, + "p_abstain": 0.87755215 + }, + { + "query_id": "holdout_memory_toolish_abstain_060", + "text": "who won the nba game last night? check", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10403203, + "p_abstain": 0.895968 + }, + { + "query_id": "shell_test_003", + "text": "is llama-server currently loaded with gemma or something else?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.17101003, + "p_abstain": 0.82899004 + }, + { + "query_id": "shell_test_005", + "text": "how many open file descriptors does klbr-daemon have right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1102257, + "p_abstain": 0.8897743 + }, + { + "query_id": "shell_test_007", + "text": "what environment variable is RUST_LOG set to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.16652043, + "p_abstain": 0.8334795 + }, + { + "query_id": "shell_test_009", + "text": "rerankerのプロセスは現在いくつ走ってますか", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.15000203, + "p_abstain": 0.849998 + }, + { + "query_id": "shell_test_010", + "text": "what's the uptime since klbr daemon last started", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.120798536, + "p_abstain": 0.8792015 + }, + { + "query_id": "shell_test_011", + "text": "how big is agent.db right now on disk?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10135, + "p_abstain": 0.89864993 + }, + { + "query_id": "shell_test_012", + "text": "any nix builds running in background rn?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.124442354, + "p_abstain": 0.8755576 + }, + { + "query_id": "shell_test_013", + "text": "what's the current hostname?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.101953685, + "p_abstain": 0.8980464 + }, + { + "query_id": "shell_test_015", + "text": "what's the network interface with the highest tx bytes?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.18613501, + "p_abstain": 0.81386495 + }, + { + "query_id": "shell_test_016", + "text": "can you check if the reranker http endpoint is responding?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.18152556, + "p_abstain": 0.8184745 + }, + { + "query_id": "shell_test_019", + "text": "is the klbr tui currently connected to the daemon socket?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10980699, + "p_abstain": 0.890193 + }, + { + "query_id": "shell_test_020", + "text": "whats the total vram on ths gpu", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.104828686, + "p_abstain": 0.8951713 + }, + { + "query_id": "shell_test_022", + "text": "what ip address is localhost:8002 actually bound to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.15774079, + "p_abstain": 0.8422592 + }, + { + "query_id": "shell_test_027", + "text": "is port 1234 open right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10612941, + "p_abstain": 0.8938706 + }, + { + "query_id": "shell_test_028", + "text": "what's the size of the current target/ directory?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1315417, + "p_abstain": 0.8684583 + }, + { + "query_id": "shell_test_030", + "text": "journalctl -u klbr — what does it say?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.16173947, + "p_abstain": 0.83826053 + }, + { + "query_id": "shell_test_031", + "text": "is the disk partition containing agent.db almost full?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.11036905, + "p_abstain": 0.889631 + }, + { + "query_id": "rf_test_001", + "text": "what compaction_keep default is in config.rs right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.15488355, + "p_abstain": 0.84511644 + }, + { + "query_id": "rf_test_002", + "text": "which file defines the ClientMsg type?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12701128, + "p_abstain": 0.8729887 + }, + { + "query_id": "rf_test_003", + "text": "what does the tools mod.rs export?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.14767623, + "p_abstain": 0.8523238 + }, + { + "query_id": "rf_test_004", + "text": "what's the rerank_top_k default in the calibrated config file?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.2759505, + "p_abstain": 0.7240495 + }, + { + "query_id": "rf_test_005", + "text": "how many queries are in internal_eval_starter.json?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17424096, + "p_abstain": 0.82575905 + }, + { + "query_id": "rf_test_006", + "text": "config.rsのmemory_support_score_gapのデフォルト値はいくつ?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.14725517, + "p_abstain": 0.8527449 + }, + { + "query_id": "rf_test_007", + "text": "is there a router.rs module in klbr-core?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.14385904, + "p_abstain": 0.856141 + }, + { + "query_id": "rf_test_008", + "text": "what's the current benchmark README say about the retrieval command?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.15404582, + "p_abstain": 0.84595424 + }, + { + "query_id": "rf_test_010", + "text": "what's in the .gitignore for klbr?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16544971, + "p_abstain": 0.83455026 + }, + { + "query_id": "rf_test_011", + "text": "what feature flags does klbr-bench's Cargo.toml declare?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.14107083, + "p_abstain": 0.85892916 + }, + { + "query_id": "rf_test_012", + "text": "how many memories does internal_eval_passive_recall_v3.json have?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16827789, + "p_abstain": 0.83172214 + }, + { + "query_id": "rf_test_013", + "text": "what is the embed_dim value in the support calibrated config?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17114092, + "p_abstain": 0.82885903 + }, + { + "query_id": "rf_test_014", + "text": "does flake.nix pin any specific nixpkgs revision?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12817512, + "p_abstain": 0.87182486 + }, + { + "query_id": "rf_test_015", + "text": "what's the passive_support_score_gap set to in the test config?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.21011086, + "p_abstain": 0.7898891 + }, + { + "query_id": "rf_test_017", + "text": "what's written in docs/klbr_memory_design.md about L1?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.2108662, + "p_abstain": 0.7891338 + }, + { + "query_id": "rf_test_019", + "text": "what does the recall.rs tool do with the tag_and param?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13939793, + "p_abstain": 0.8606021 + }, + { + "query_id": "rf_test_021", + "text": "llm.rsのstreamメソッドのシグネチャは?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.15153, + "p_abstain": 0.84847 + }, + { + "query_id": "rf_test_022", + "text": "what's the current threshold in the router_model.json?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.18098755, + "p_abstain": 0.81901246 + }, + { + "query_id": "rf_test_024", + "text": "how many memories does the passive recall v3 dataset have?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16778347, + "p_abstain": 0.83221656 + }, + { + "query_id": "rf_test_026", + "text": "what warnings did the last cargo check produce?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file", + "shell" + ], + "p_memory": 0.15090106, + "p_abstain": 0.8490989 + }, + { + "query_id": "rf_test_027", + "text": "what's the embed_dim in the router_model.json we trained?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.29247677, + "p_abstain": 0.7075233 + }, + { + "query_id": "rf_test_029", + "text": "how is the SweepRange struct defined in klbr-bench main.rs?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.22472288, + "p_abstain": 0.7752771 + }, + { + "query_id": "wf_test_001", + "text": "set the compaction_keep to 15 in config.rs", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.11521975, + "p_abstain": 0.8847803 + }, + { + "query_id": "wf_test_002", + "text": "write the router precision result to a markdown file", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.18320942, + "p_abstain": 0.81679064 + }, + { + "query_id": "wf_test_003", + "text": "create a new slice file with 5 tool-needed examples", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.13537273, + "p_abstain": 0.8646273 + }, + { + "query_id": "wf_test_004", + "text": "change the embed_url to localhost:8005 in the config", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.15432762, + "p_abstain": 0.84567237 + }, + { + "query_id": "wf_test_005", + "text": "write a tiny benchmarking summary to out-router-iter-2/notes.txt", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.16127193, + "p_abstain": 0.83872813 + }, + { + "query_id": "wf_test_006", + "text": "add router_model_path to the default config and set it to a path", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.17621838, + "p_abstain": 0.82378167 + }, + { + "query_id": "wf_test_008", + "text": "patch the memory_top_k to 5 in config.rs", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.16184351, + "p_abstain": 0.8381565 + }, + { + "query_id": "wf_test_009", + "text": "update the dataset_id in internal_eval_starter.json to v3", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.13346773, + "p_abstain": 0.86653227 + }, + { + "query_id": "wf_test_010", + "text": "write the sweep results summary to a txt file in the output dir", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.11803409, + "p_abstain": 0.88196594 + }, + { + "query_id": "wf_test_011", + "text": "save a note about the router precision gate to docs/", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.119401686, + "p_abstain": 0.88059837 + }, + { + "query_id": "wf_test_012", + "text": "create a quick script to run all benchmarks in sequence", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file", + "shell" + ], + "p_memory": 0.11596763, + "p_abstain": 0.88403237 + }, + { + "query_id": "wf_test_013", + "text": "add a line to .gitignore to exclude agent.db", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.16403273, + "p_abstain": 0.83596724 + }, + { + "query_id": "wf_test_014", + "text": "新しいスライスJSONを作ってmemory_laneのクエリを10個追加して", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.13619125, + "p_abstain": 0.8638087 + }, + { + "query_id": "wf_test_015", + "text": "bump the rerank_top_k to 15 in the calibrated config and save it", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.1611398, + "p_abstain": 0.8388602 + }, + { + "query_id": "abs_test_003", + "text": "what will my project look like in 6 months?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.15345076, + "p_abstain": 0.8465493 + }, + { + "query_id": "abs_test_004", + "text": "what's the best programming language?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.15857735, + "p_abstain": 0.8414227 + }, + { + "query_id": "abs_test_006", + "text": "what's the github token for the ci runner?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10543426, + "p_abstain": 0.89456576 + }, + { + "query_id": "abs_test_007", + "text": "vim or emacs?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.20100525, + "p_abstain": 0.7989947 + }, + { + "query_id": "abs_test_009", + "text": "どのモデルが今一番スコアが高いですか — ベンチマークサイトで", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.14664401, + "p_abstain": 0.853356 + }, + { + "query_id": "abs_test_010", + "text": "when will the klbr project be finished?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.1696385, + "p_abstain": 0.8303615 + }, + { + "query_id": "abs_test_011", + "text": "is nomic-embed or bge-m3 better for this use case?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.27238378, + "p_abstain": 0.72761625 + }, + { + "query_id": "abs_test_012", + "text": "y", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.1297662, + "p_abstain": 0.8702338 + }, + { + "query_id": "abs_test_013", + "text": "is the llama.cpp repo trending on github today?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.14317971, + "p_abstain": 0.8568203 + }, + { + "query_id": "abs_test_014", + "text": "how should klbr evolve to support multi-user?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.2298695, + "p_abstain": 0.7701305 + } + ] + }, + "holdout_metrics": { + "total": 180, + "accuracy": 0.62777776, + "confusion": [ + [ + 55, + 0 + ], + [ + 67, + 58 + ] + ], + "memory_false_abstain_rate": 0.0, + "abstain_false_memory_rate": 0.536, + "tool_required_false_memory_rate": 0.6857143, + "tool_required_recall": 0.31428573, + "memory_count": 55, + "abstain_count": 125, + "tool_required_count": 70, + "misclassified": [ + { + "query_id": "holdout_tools_recall_tools_002", + "text": "how much free disk space is there on the partition containing agent.db?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10456361, + "p_abstain": 0.89543635 + }, + { + "query_id": "holdout_tools_recall_tools_003", + "text": "what's the current hostname?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.101953685, + "p_abstain": 0.8980464 + }, + { + "query_id": "holdout_tools_recall_tools_004", + "text": "is port 8002 bound to 127.0.0.1 or 0.0.0.0 right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1582868, + "p_abstain": 0.8417132 + }, + { + "query_id": "holdout_tools_recall_tools_006", + "text": "are there any zombie processes named klbr right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.11492517, + "p_abstain": 0.8850748 + }, + { + "query_id": "holdout_tools_recall_tools_008", + "text": "check if the reranker http endpoint on localhost:8003 is responding", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.16735494, + "p_abstain": 0.8326451 + }, + { + "query_id": "holdout_tools_recall_tools_011", + "text": "which file defines the ServerMsg type?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12588543, + "p_abstain": 0.8741145 + }, + { + "query_id": "holdout_tools_recall_tools_013", + "text": "read klbr-core/src/agent.rs and summarize how routing affects memory injection", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17401817, + "p_abstain": 0.82598186 + }, + { + "query_id": "holdout_tools_recall_tools_014", + "text": "what does klbr-core/src/context.rs do when recalled memories are present?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.14702685, + "p_abstain": 0.85297316 + }, + { + "query_id": "holdout_tools_recall_tools_015", + "text": "what crate defines the LlmClient type?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.23538512, + "p_abstain": 0.7646149 + }, + { + "query_id": "holdout_tools_recall_tools_016", + "text": "write a file docs/router_holdout_tools_recall.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.14410025, + "p_abstain": 0.8558998 + }, + { + "query_id": "holdout_tools_recall_tools_017", + "text": "append a line \"router ok\" to docs/router_holdout_log.txt", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.11356302, + "p_abstain": 0.88643694 + }, + { + "query_id": "holdout_tools_recall_tools_018", + "text": "create a file benchmarks/router_holdout_tmp.txt and put the number 123 in it", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.13842863, + "p_abstain": 0.8615714 + }, + { + "query_id": "holdout_tools_recall_tools_019", + "text": "今ポート8002は開いてる?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10369836, + "p_abstain": 0.8963016 + }, + { + "query_id": "holdout_tools_recall_tools_020", + "text": "klbr-core/src/llm.rsのembed関数って何返すの?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16805679, + "p_abstain": 0.8319432 + }, + { + "query_id": "holdout_tools_recall_tools_023", + "text": "in klbr-core/src/config.rs, what is memory_support_score_gap set to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.15972814, + "p_abstain": 0.8402719 + }, + { + "query_id": "holdout_tools_recall_tools_024", + "text": "how many open file descriptors does the klbr-daemon process have right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105587445, + "p_abstain": 0.8944126 + }, + { + "query_id": "holdout_tools_recall_tools_025", + "text": "what's the size of the current target/ directory?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1315417, + "p_abstain": 0.8684583 + }, + { + "query_id": "holdout_tools_recall_tools_026", + "text": "what ip address is localhost:8002 actually bound to right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1407521, + "p_abstain": 0.8592479 + }, + { + "query_id": "holdout_tools_recall_tools_027", + "text": "which file defines the ClientMsg type in the ipc protocol?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11255213, + "p_abstain": 0.88744783 + }, + { + "query_id": "holdout_tools_recall_tools_028", + "text": "in klbr-core/src/router.rs, what routing decisions exist?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.20984548, + "p_abstain": 0.7901545 + }, + { + "query_id": "holdout_tools_recall_tools_032", + "text": "open klbr-core/src/config.rs and tell me what llm_url is set to", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11325379, + "p_abstain": 0.8867462 + }, + { + "query_id": "holdout_tools_recall_tools_033", + "text": "open klbr-core/src/config.rs and tell me what rerank_url is set to", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16435155, + "p_abstain": 0.8356485 + }, + { + "query_id": "holdout_tools_recall_tools_034", + "text": "in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13177624, + "p_abstain": 0.8682238 + }, + { + "query_id": "holdout_tools_recall_tools_035", + "text": "in klbr-tui/src/main.rs, what happens when ServerMsg::Error arrives?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11597728, + "p_abstain": 0.8840227 + }, + { + "query_id": "holdout_tools_recall_tools_038", + "text": "is the disk partition containing /home close to full right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.11078995, + "p_abstain": 0.88921 + }, + { + "query_id": "holdout_tools_recall_tools_039", + "text": "what is the network interface with the highest tx bytes right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.14258735, + "p_abstain": 0.85741264 + }, + { + "query_id": "holdout_tools_recall_tools_040", + "text": "is port 1234 open right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10612941, + "p_abstain": 0.8938706 + }, + { + "query_id": "holdout_tools_recall_tools_041", + "text": "what environment variable is RUST_LOG set to right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.13568686, + "p_abstain": 0.86431307 + }, + { + "query_id": "holdout_tools_recall_tools_043", + "text": "what gpu am i using for the reranker right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.180166, + "p_abstain": 0.819834 + }, + { + "query_id": "holdout_tools_recall_tools_044", + "text": "what is the current system load average?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.106692225, + "p_abstain": 0.89330775 + }, + { + "query_id": "holdout_tools_recall_tools_045", + "text": "in klbr-core/src/config.rs, what is router_model_path set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.24168047, + "p_abstain": 0.75831956 + }, + { + "query_id": "holdout_tools_recall_abstain_053", + "text": "fix it", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.11018476, + "p_abstain": 0.8898153 + }, + { + "query_id": "holdout_tools_recall_abstain_054", + "text": "今週のHacker Newsのトップ記事って何?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.122447826, + "p_abstain": 0.87755215 + }, + { + "query_id": "holdout_tools_recall_tools_056", + "text": "what's the uptime since klbr daemon last started?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1281884, + "p_abstain": 0.8718116 + }, + { + "query_id": "holdout_tools_recall_tools_058", + "text": "what is the default value of compaction_keep in Config::default()?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.19324629, + "p_abstain": 0.8067537 + }, + { + "query_id": "holdout_tools_recall_tools_059", + "text": "in klbr-core/src/config.rs, what is memory_top_k set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17644644, + "p_abstain": 0.82355356 + }, + { + "query_id": "holdout_tools_recall_tools_060", + "text": "in klbr-core/src/llm.rs, which method produces embeddings?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.23829702, + "p_abstain": 0.76170295 + }, + { + "query_id": "holdout_abstain_toolish_abstain_005", + "text": "who won the nba game last night? check", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10403203, + "p_abstain": 0.895968 + }, + { + "query_id": "holdout_abstain_toolish_abstain_007", + "text": "search the internet for 'bge-m3 gguf' and summarize the first result", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.14765014, + "p_abstain": 0.85234994 + }, + { + "query_id": "holdout_abstain_toolish_abstain_008", + "text": "今週のHacker Newsのトップ記事って何? 調べて", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.11178698, + "p_abstain": 0.88821304 + }, + { + "query_id": "holdout_abstain_toolish_abstain_017", + "text": "ssh into the remote server and cat /etc/shadow", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.12404098, + "p_abstain": 0.87595904 + }, + { + "query_id": "holdout_abstain_toolish_abstain_021", + "text": "will klbr be popular in 2028?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.18373026, + "p_abstain": 0.8162697 + }, + { + "query_id": "holdout_abstain_toolish_abstain_022", + "text": "predict what embedding model will be best in 2030", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.23580031, + "p_abstain": 0.76419973 + }, + { + "query_id": "holdout_abstain_toolish_abstain_023", + "text": "will we need a reranker in 2 years?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.31362545, + "p_abstain": 0.68637455 + }, + { + "query_id": "holdout_abstain_toolish_abstain_027", + "text": "do the thing from yesterday", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10365143, + "p_abstain": 0.89634854 + }, + { + "query_id": "holdout_abstain_toolish_abstain_028", + "text": "what's the best programming language? prove it with data", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.15280688, + "p_abstain": 0.8471931 + }, + { + "query_id": "holdout_abstain_toolish_abstain_029", + "text": "vim or emacs? choose for me", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.16565238, + "p_abstain": 0.83434767 + }, + { + "query_id": "holdout_abstain_toolish_abstain_030", + "text": "is gemma 4 better than llama 3.1? check online and decide", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.20931254, + "p_abstain": 0.79068744 + }, + { + "query_id": "holdout_abstain_toolish_abstain_032", + "text": "open a browser and check whether llama-server supports embeddings by default", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.19038048, + "p_abstain": 0.80961955 + }, + { + "query_id": "holdout_abstain_toolish_abstain_033", + "text": "fetch the gemma-4-26b model card and summarize it", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.17735076, + "p_abstain": 0.82264924 + }, + { + "query_id": "holdout_abstain_toolish_abstain_039", + "text": "check the latest Rust RFCs and tell me the most controversial one", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.12441018, + "p_abstain": 0.87558985 + }, + { + "query_id": "holdout_abstain_toolish_tools_042", + "text": "which file defines the ClientMsg type in klbr-ipc?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12457222, + "p_abstain": 0.8754278 + }, + { + "query_id": "holdout_abstain_toolish_tools_044", + "text": "write a file docs/router_holdout_abstain_toolish.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.19135803, + "p_abstain": 0.8086419 + }, + { + "query_id": "holdout_abstain_toolish_tools_045", + "text": "klbr-core/src/config.rsのmemory_top_kはいくつ?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.126839, + "p_abstain": 0.873161 + }, + { + "query_id": "holdout_abstain_toolish_tools_046", + "text": "今メモリ使用量はどれくらい?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105395846, + "p_abstain": 0.89460415 + }, + { + "query_id": "holdout_abstain_toolish_tools_048", + "text": "how big is agent.db right now on disk?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10135, + "p_abstain": 0.89864993 + }, + { + "query_id": "holdout_abstain_toolish_tools_049", + "text": "in klbr-core/src/config.rs, what is llm_url set to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.20903136, + "p_abstain": 0.7909686 + }, + { + "query_id": "holdout_memory_toolish_tools_043", + "text": "which file defines the ClientMsg type in klbr-ipc?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12457222, + "p_abstain": 0.8754278 + }, + { + "query_id": "holdout_memory_toolish_tools_044", + "text": "in klbr-core/src/config.rs, what is memory_top_k set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17644644, + "p_abstain": 0.82355356 + }, + { + "query_id": "holdout_memory_toolish_tools_045", + "text": "write a file docs/router_holdout_memory_toolish.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.15731505, + "p_abstain": 0.842685 + }, + { + "query_id": "holdout_memory_toolish_tools_046", + "text": "今メモリ使用量はどれくらい?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105395846, + "p_abstain": 0.89460415 + }, + { + "query_id": "holdout_memory_toolish_tools_047", + "text": "klbr-core/src/config.rsのembed_dimはいくつ?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13011032, + "p_abstain": 0.8698897 + }, + { + "query_id": "holdout_memory_toolish_tools_049", + "text": "how big is agent.db right now on disk?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10135, + "p_abstain": 0.89864993 + }, + { + "query_id": "holdout_memory_toolish_tools_050", + "text": "in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13177624, + "p_abstain": 0.8682238 + }, + { + "query_id": "holdout_memory_toolish_abstain_054", + "text": "will klbr be popular in 2028?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.18373026, + "p_abstain": 0.8162697 + }, + { + "query_id": "holdout_memory_toolish_abstain_056", + "text": "今週のHacker Newsのトップ記事って何?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.122447826, + "p_abstain": 0.87755215 + }, + { + "query_id": "holdout_memory_toolish_abstain_060", + "text": "who won the nba game last night? check", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10403203, + "p_abstain": 0.895968 + } + ] + }, + "holdout_metrics_by_bucket": { + "abstain_toolish": { + "total": 60, + "accuracy": 0.6666667, + "confusion": [ + [ + 10, + 0 + ], + [ + 20, + 30 + ] + ], + "memory_false_abstain_rate": 0.0, + "abstain_false_memory_rate": 0.4, + "tool_required_false_memory_rate": 0.6, + "tool_required_recall": 0.4, + "memory_count": 10, + "abstain_count": 50, + "tool_required_count": 10, + "misclassified": [ + { + "query_id": "holdout_abstain_toolish_abstain_005", + "text": "who won the nba game last night? check", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10403203, + "p_abstain": 0.895968 + }, + { + "query_id": "holdout_abstain_toolish_abstain_007", + "text": "search the internet for 'bge-m3 gguf' and summarize the first result", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.14765014, + "p_abstain": 0.85234994 + }, + { + "query_id": "holdout_abstain_toolish_abstain_008", + "text": "今週のHacker Newsのトップ記事って何? 調べて", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.11178698, + "p_abstain": 0.88821304 + }, + { + "query_id": "holdout_abstain_toolish_abstain_017", + "text": "ssh into the remote server and cat /etc/shadow", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.12404098, + "p_abstain": 0.87595904 + }, + { + "query_id": "holdout_abstain_toolish_abstain_021", + "text": "will klbr be popular in 2028?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.18373026, + "p_abstain": 0.8162697 + }, + { + "query_id": "holdout_abstain_toolish_abstain_022", + "text": "predict what embedding model will be best in 2030", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.23580031, + "p_abstain": 0.76419973 + }, + { + "query_id": "holdout_abstain_toolish_abstain_023", + "text": "will we need a reranker in 2 years?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.31362545, + "p_abstain": 0.68637455 + }, + { + "query_id": "holdout_abstain_toolish_abstain_027", + "text": "do the thing from yesterday", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10365143, + "p_abstain": 0.89634854 + }, + { + "query_id": "holdout_abstain_toolish_abstain_028", + "text": "what's the best programming language? prove it with data", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.15280688, + "p_abstain": 0.8471931 + }, + { + "query_id": "holdout_abstain_toolish_abstain_029", + "text": "vim or emacs? choose for me", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.16565238, + "p_abstain": 0.83434767 + }, + { + "query_id": "holdout_abstain_toolish_abstain_030", + "text": "is gemma 4 better than llama 3.1? check online and decide", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.20931254, + "p_abstain": 0.79068744 + }, + { + "query_id": "holdout_abstain_toolish_abstain_032", + "text": "open a browser and check whether llama-server supports embeddings by default", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.19038048, + "p_abstain": 0.80961955 + }, + { + "query_id": "holdout_abstain_toolish_abstain_033", + "text": "fetch the gemma-4-26b model card and summarize it", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.17735076, + "p_abstain": 0.82264924 + }, + { + "query_id": "holdout_abstain_toolish_abstain_039", + "text": "check the latest Rust RFCs and tell me the most controversial one", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.12441018, + "p_abstain": 0.87558985 + }, + { + "query_id": "holdout_abstain_toolish_tools_042", + "text": "which file defines the ClientMsg type in klbr-ipc?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12457222, + "p_abstain": 0.8754278 + }, + { + "query_id": "holdout_abstain_toolish_tools_044", + "text": "write a file docs/router_holdout_abstain_toolish.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.19135803, + "p_abstain": 0.8086419 + }, + { + "query_id": "holdout_abstain_toolish_tools_045", + "text": "klbr-core/src/config.rsのmemory_top_kはいくつ?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.126839, + "p_abstain": 0.873161 + }, + { + "query_id": "holdout_abstain_toolish_tools_046", + "text": "今メモリ使用量はどれくらい?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105395846, + "p_abstain": 0.89460415 + }, + { + "query_id": "holdout_abstain_toolish_tools_048", + "text": "how big is agent.db right now on disk?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10135, + "p_abstain": 0.89864993 + }, + { + "query_id": "holdout_abstain_toolish_tools_049", + "text": "in klbr-core/src/config.rs, what is llm_url set to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.20903136, + "p_abstain": 0.7909686 + } + ] + }, + "memory_toolish": { + "total": 60, + "accuracy": 0.8333333, + "confusion": [ + [ + 40, + 0 + ], + [ + 10, + 10 + ] + ], + "memory_false_abstain_rate": 0.0, + "abstain_false_memory_rate": 0.5, + "tool_required_false_memory_rate": 0.7, + "tool_required_recall": 0.3, + "memory_count": 40, + "abstain_count": 20, + "tool_required_count": 10, + "misclassified": [ + { + "query_id": "holdout_memory_toolish_tools_043", + "text": "which file defines the ClientMsg type in klbr-ipc?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12457222, + "p_abstain": 0.8754278 + }, + { + "query_id": "holdout_memory_toolish_tools_044", + "text": "in klbr-core/src/config.rs, what is memory_top_k set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17644644, + "p_abstain": 0.82355356 + }, + { + "query_id": "holdout_memory_toolish_tools_045", + "text": "write a file docs/router_holdout_memory_toolish.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.15731505, + "p_abstain": 0.842685 + }, + { + "query_id": "holdout_memory_toolish_tools_046", + "text": "今メモリ使用量はどれくらい?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105395846, + "p_abstain": 0.89460415 + }, + { + "query_id": "holdout_memory_toolish_tools_047", + "text": "klbr-core/src/config.rsのembed_dimはいくつ?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13011032, + "p_abstain": 0.8698897 + }, + { + "query_id": "holdout_memory_toolish_tools_049", + "text": "how big is agent.db right now on disk?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10135, + "p_abstain": 0.89864993 + }, + { + "query_id": "holdout_memory_toolish_tools_050", + "text": "in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13177624, + "p_abstain": 0.8682238 + }, + { + "query_id": "holdout_memory_toolish_abstain_054", + "text": "will klbr be popular in 2028?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.18373026, + "p_abstain": 0.8162697 + }, + { + "query_id": "holdout_memory_toolish_abstain_056", + "text": "今週のHacker Newsのトップ記事って何?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.122447826, + "p_abstain": 0.87755215 + }, + { + "query_id": "holdout_memory_toolish_abstain_060", + "text": "who won the nba game last night? check", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.10403203, + "p_abstain": 0.895968 + } + ] + }, + "tools_recall": { + "total": 60, + "accuracy": 0.38333333, + "confusion": [ + [ + 5, + 0 + ], + [ + 37, + 18 + ] + ], + "memory_false_abstain_rate": 0.0, + "abstain_false_memory_rate": 0.6727273, + "tool_required_false_memory_rate": 0.7, + "tool_required_recall": 0.3, + "memory_count": 5, + "abstain_count": 55, + "tool_required_count": 50, + "misclassified": [ + { + "query_id": "holdout_tools_recall_tools_002", + "text": "how much free disk space is there on the partition containing agent.db?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10456361, + "p_abstain": 0.89543635 + }, + { + "query_id": "holdout_tools_recall_tools_003", + "text": "what's the current hostname?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.101953685, + "p_abstain": 0.8980464 + }, + { + "query_id": "holdout_tools_recall_tools_004", + "text": "is port 8002 bound to 127.0.0.1 or 0.0.0.0 right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1582868, + "p_abstain": 0.8417132 + }, + { + "query_id": "holdout_tools_recall_tools_006", + "text": "are there any zombie processes named klbr right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.11492517, + "p_abstain": 0.8850748 + }, + { + "query_id": "holdout_tools_recall_tools_008", + "text": "check if the reranker http endpoint on localhost:8003 is responding", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.16735494, + "p_abstain": 0.8326451 + }, + { + "query_id": "holdout_tools_recall_tools_011", + "text": "which file defines the ServerMsg type?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.12588543, + "p_abstain": 0.8741145 + }, + { + "query_id": "holdout_tools_recall_tools_013", + "text": "read klbr-core/src/agent.rs and summarize how routing affects memory injection", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17401817, + "p_abstain": 0.82598186 + }, + { + "query_id": "holdout_tools_recall_tools_014", + "text": "what does klbr-core/src/context.rs do when recalled memories are present?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.14702685, + "p_abstain": 0.85297316 + }, + { + "query_id": "holdout_tools_recall_tools_015", + "text": "what crate defines the LlmClient type?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.23538512, + "p_abstain": 0.7646149 + }, + { + "query_id": "holdout_tools_recall_tools_016", + "text": "write a file docs/router_holdout_tools_recall.txt with the content \"ok\"", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.14410025, + "p_abstain": 0.8558998 + }, + { + "query_id": "holdout_tools_recall_tools_017", + "text": "append a line \"router ok\" to docs/router_holdout_log.txt", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.11356302, + "p_abstain": 0.88643694 + }, + { + "query_id": "holdout_tools_recall_tools_018", + "text": "create a file benchmarks/router_holdout_tmp.txt and put the number 123 in it", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "write_file" + ], + "p_memory": 0.13842863, + "p_abstain": 0.8615714 + }, + { + "query_id": "holdout_tools_recall_tools_019", + "text": "今ポート8002は開いてる?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10369836, + "p_abstain": 0.8963016 + }, + { + "query_id": "holdout_tools_recall_tools_020", + "text": "klbr-core/src/llm.rsのembed関数って何返すの?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16805679, + "p_abstain": 0.8319432 + }, + { + "query_id": "holdout_tools_recall_tools_023", + "text": "in klbr-core/src/config.rs, what is memory_support_score_gap set to?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.15972814, + "p_abstain": 0.8402719 + }, + { + "query_id": "holdout_tools_recall_tools_024", + "text": "how many open file descriptors does the klbr-daemon process have right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.105587445, + "p_abstain": 0.8944126 + }, + { + "query_id": "holdout_tools_recall_tools_025", + "text": "what's the size of the current target/ directory?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1315417, + "p_abstain": 0.8684583 + }, + { + "query_id": "holdout_tools_recall_tools_026", + "text": "what ip address is localhost:8002 actually bound to right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1407521, + "p_abstain": 0.8592479 + }, + { + "query_id": "holdout_tools_recall_tools_027", + "text": "which file defines the ClientMsg type in the ipc protocol?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11255213, + "p_abstain": 0.88744783 + }, + { + "query_id": "holdout_tools_recall_tools_028", + "text": "in klbr-core/src/router.rs, what routing decisions exist?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.20984548, + "p_abstain": 0.7901545 + }, + { + "query_id": "holdout_tools_recall_tools_032", + "text": "open klbr-core/src/config.rs and tell me what llm_url is set to", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11325379, + "p_abstain": 0.8867462 + }, + { + "query_id": "holdout_tools_recall_tools_033", + "text": "open klbr-core/src/config.rs and tell me what rerank_url is set to", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.16435155, + "p_abstain": 0.8356485 + }, + { + "query_id": "holdout_tools_recall_tools_034", + "text": "in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.13177624, + "p_abstain": 0.8682238 + }, + { + "query_id": "holdout_tools_recall_tools_035", + "text": "in klbr-tui/src/main.rs, what happens when ServerMsg::Error arrives?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.11597728, + "p_abstain": 0.8840227 + }, + { + "query_id": "holdout_tools_recall_tools_038", + "text": "is the disk partition containing /home close to full right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.11078995, + "p_abstain": 0.88921 + }, + { + "query_id": "holdout_tools_recall_tools_039", + "text": "what is the network interface with the highest tx bytes right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.14258735, + "p_abstain": 0.85741264 + }, + { + "query_id": "holdout_tools_recall_tools_040", + "text": "is port 1234 open right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.10612941, + "p_abstain": 0.8938706 + }, + { + "query_id": "holdout_tools_recall_tools_041", + "text": "what environment variable is RUST_LOG set to right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.13568686, + "p_abstain": 0.86431307 + }, + { + "query_id": "holdout_tools_recall_tools_043", + "text": "what gpu am i using for the reranker right now?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.180166, + "p_abstain": 0.819834 + }, + { + "query_id": "holdout_tools_recall_tools_044", + "text": "what is the current system load average?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.106692225, + "p_abstain": 0.89330775 + }, + { + "query_id": "holdout_tools_recall_tools_045", + "text": "in klbr-core/src/config.rs, what is router_model_path set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.24168047, + "p_abstain": 0.75831956 + }, + { + "query_id": "holdout_tools_recall_abstain_053", + "text": "fix it", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.11018476, + "p_abstain": 0.8898153 + }, + { + "query_id": "holdout_tools_recall_abstain_054", + "text": "今週のHacker Newsのトップ記事って何?", + "gold": "abstain", + "pred": "memory", + "required_tools": [], + "p_memory": 0.122447826, + "p_abstain": 0.87755215 + }, + { + "query_id": "holdout_tools_recall_tools_056", + "text": "what's the uptime since klbr daemon last started?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "shell" + ], + "p_memory": 0.1281884, + "p_abstain": 0.8718116 + }, + { + "query_id": "holdout_tools_recall_tools_058", + "text": "what is the default value of compaction_keep in Config::default()?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.19324629, + "p_abstain": 0.8067537 + }, + { + "query_id": "holdout_tools_recall_tools_059", + "text": "in klbr-core/src/config.rs, what is memory_top_k set to by default?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.17644644, + "p_abstain": 0.82355356 + }, + { + "query_id": "holdout_tools_recall_tools_060", + "text": "in klbr-core/src/llm.rs, which method produces embeddings?", + "gold": "abstain", + "pred": "memory", + "required_tools": [ + "read_file" + ], + "p_memory": 0.23829702, + "p_abstain": 0.76170295 + } + ] + } + } +} \ No newline at end of file diff --git a/benchmarks/models/router/linear/out-router-linear-iter-15/router_report.md b/benchmarks/models/router/linear/out-router-linear-iter-15/router_report.md new file mode 100644 index 0000000..3cf6ff1 --- /dev/null +++ b/benchmarks/models/router/linear/out-router-linear-iter-15/router_report.md @@ -0,0 +1,184 @@ +# Linear Router Report + +dataset: `router-multi(internal-eval-starter-v2+router-train-pack-v1+router-dev-pack-v1+router-abstain-v2+router-abstain-v3+router-memory-lane-v3+router-read-file-repo-v3+router-read-file-repo-v4+router-shell-state-v3+router-holdout-tools-recall-v1+router-holdout-abstain-toolish-v1+router-holdout-memory-toolish-v1+router-shell-state-v1+router-shell-state-v1b+router-shell-state-v2+router-read-file-repo-v1+router-read-file-repo-v1b+router-write-file-v1+router-memory-lane-v1+router-memory-lane-v1b+router-abstain-v1+router-memory-adversarial-v1)` +embed_model: `bge-m3-FP16.gguf` +trained_on: `Train` +evaluated_on: `Test` + +## Decision Params + +- abstain_prob_threshold: `0.900` +- abstain_margin_threshold: `0.000` + +## Metrics + +- labeled queries evaluated: `319` +- memory: `100` abstain: `219` +- accuracy: `0.5862` +- memory false-abstain rate (memory→abstain): `0.0000` +- abstain false-memory rate (abstain→memory): `0.6027` +- tool-required queries: `149` +- tool-required false-memory rate (tool→memory): `0.6913` +- tool-required recall (tool→abstain): `0.3087` + +## Confusion Matrix (gold x pred) + +| gold \ pred | memory | abstain | +|---|---:|---:| +| memory | 100 | 0 | +| abstain | 132 | 87 | + +## Misclassified Queries + +| id | text | gold | pred | tools | p_memory | p_abstain | +|---|---|---|---|---|---:|---:| +| `test_q9` | what gpu am i using for the reranker? | `Abstain` | `Memory` | `shell` | 0.20 | 0.80 | +| `test_q15` | which postgres extension are we enabling before passive recall? | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `holdout_tools_recall_tools_002` | how much free disk space is there on the partition containing agent.db? | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `holdout_tools_recall_tools_003` | what's the current hostname? | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `holdout_tools_recall_tools_004` | is port 8002 bound to 127.0.0.1 or 0.0.0.0 right now? | `Abstain` | `Memory` | `shell` | 0.16 | 0.84 | +| `holdout_tools_recall_tools_006` | are there any zombie processes named klbr right now? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_008` | check if the reranker http endpoint on localhost:8003 is responding | `Abstain` | `Memory` | `shell` | 0.17 | 0.83 | +| `holdout_tools_recall_tools_011` | which file defines the ServerMsg type? | `Abstain` | `Memory` | `read_file` | 0.13 | 0.87 | +| `holdout_tools_recall_tools_013` | read klbr-core/src/agent.rs and summarize how routing affects memory injection | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `holdout_tools_recall_tools_014` | what does klbr-core/src/context.rs do when recalled memories are present? | `Abstain` | `Memory` | `read_file` | 0.15 | 0.85 | +| `holdout_tools_recall_tools_015` | what crate defines the LlmClient type? | `Abstain` | `Memory` | `read_file` | 0.24 | 0.76 | +| `holdout_tools_recall_tools_016` | write a file docs/router_holdout_tools_recall.txt with the content "ok" | `Abstain` | `Memory` | `write_file` | 0.14 | 0.86 | +| `holdout_tools_recall_tools_017` | append a line "router ok" to docs/router_holdout_log.txt | `Abstain` | `Memory` | `write_file` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_018` | create a file benchmarks/router_holdout_tmp.txt and put the number 123 in it | `Abstain` | `Memory` | `write_file` | 0.14 | 0.86 | +| `holdout_tools_recall_tools_019` | 今ポート8002は開いてる? | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `holdout_tools_recall_tools_020` | klbr-core/src/llm.rsのembed関数って何返すの? | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `holdout_tools_recall_tools_023` | in klbr-core/src/config.rs, what is memory_support_score_gap set to? | `Abstain` | `Memory` | `read_file` | 0.16 | 0.84 | +| `holdout_tools_recall_tools_024` | how many open file descriptors does the klbr-daemon process have right now? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_025` | what's the size of the current target/ directory? | `Abstain` | `Memory` | `shell` | 0.13 | 0.87 | +| `holdout_tools_recall_tools_026` | what ip address is localhost:8002 actually bound to right now? | `Abstain` | `Memory` | `shell` | 0.14 | 0.86 | +| `holdout_tools_recall_tools_027` | which file defines the ClientMsg type in the ipc protocol? | `Abstain` | `Memory` | `read_file` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_028` | in klbr-core/src/router.rs, what routing decisions exist? | `Abstain` | `Memory` | `read_file` | 0.21 | 0.79 | +| `holdout_tools_recall_tools_032` | open klbr-core/src/config.rs and tell me what llm_url is set to | `Abstain` | `Memory` | `read_file` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_033` | open klbr-core/src/config.rs and tell me what rerank_url is set to | `Abstain` | `Memory` | `read_file` | 0.16 | 0.84 | +| `holdout_tools_recall_tools_034` | in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui? | `Abstain` | `Memory` | `read_file` | 0.13 | 0.87 | +| `holdout_tools_recall_tools_035` | in klbr-tui/src/main.rs, what happens when ServerMsg::Error arrives? | `Abstain` | `Memory` | `read_file` | 0.12 | 0.88 | +| `holdout_tools_recall_tools_038` | is the disk partition containing /home close to full right now? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_039` | what is the network interface with the highest tx bytes right now? | `Abstain` | `Memory` | `shell` | 0.14 | 0.86 | +| `holdout_tools_recall_tools_040` | is port 1234 open right now? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_041` | what environment variable is RUST_LOG set to right now? | `Abstain` | `Memory` | `shell` | 0.14 | 0.86 | +| `holdout_tools_recall_tools_043` | what gpu am i using for the reranker right now? | `Abstain` | `Memory` | `shell` | 0.18 | 0.82 | +| `holdout_tools_recall_tools_044` | what is the current system load average? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `holdout_tools_recall_tools_045` | in klbr-core/src/config.rs, what is router_model_path set to by default? | `Abstain` | `Memory` | `read_file` | 0.24 | 0.76 | +| `holdout_tools_recall_abstain_053` | fix it | `Abstain` | `Memory` | `` | 0.11 | 0.89 | +| `holdout_tools_recall_abstain_054` | 今週のHacker Newsのトップ記事って何? | `Abstain` | `Memory` | `` | 0.12 | 0.88 | +| `holdout_tools_recall_tools_056` | what's the uptime since klbr daemon last started? | `Abstain` | `Memory` | `shell` | 0.13 | 0.87 | +| `holdout_tools_recall_tools_058` | what is the default value of compaction_keep in Config::default()? | `Abstain` | `Memory` | `read_file` | 0.19 | 0.81 | +| `holdout_tools_recall_tools_059` | in klbr-core/src/config.rs, what is memory_top_k set to by default? | `Abstain` | `Memory` | `read_file` | 0.18 | 0.82 | +| `holdout_tools_recall_tools_060` | in klbr-core/src/llm.rs, which method produces embeddings? | `Abstain` | `Memory` | `read_file` | 0.24 | 0.76 | +| `holdout_abstain_toolish_abstain_005` | who won the nba game last night? check | `Abstain` | `Memory` | `` | 0.10 | 0.90 | +| `holdout_abstain_toolish_abstain_007` | search the internet for 'bge-m3 gguf' and summarize the first result | `Abstain` | `Memory` | `` | 0.15 | 0.85 | +| `holdout_abstain_toolish_abstain_008` | 今週のHacker Newsのトップ記事って何? 調べて | `Abstain` | `Memory` | `` | 0.11 | 0.89 | +| `holdout_abstain_toolish_abstain_017` | ssh into the remote server and cat /etc/shadow | `Abstain` | `Memory` | `` | 0.12 | 0.88 | +| `holdout_abstain_toolish_abstain_021` | will klbr be popular in 2028? | `Abstain` | `Memory` | `` | 0.18 | 0.82 | +| `holdout_abstain_toolish_abstain_022` | predict what embedding model will be best in 2030 | `Abstain` | `Memory` | `` | 0.24 | 0.76 | +| `holdout_abstain_toolish_abstain_023` | will we need a reranker in 2 years? | `Abstain` | `Memory` | `` | 0.31 | 0.69 | +| `holdout_abstain_toolish_abstain_027` | do the thing from yesterday | `Abstain` | `Memory` | `` | 0.10 | 0.90 | +| `holdout_abstain_toolish_abstain_028` | what's the best programming language? prove it with data | `Abstain` | `Memory` | `` | 0.15 | 0.85 | +| `holdout_abstain_toolish_abstain_029` | vim or emacs? choose for me | `Abstain` | `Memory` | `` | 0.17 | 0.83 | +| `holdout_abstain_toolish_abstain_030` | is gemma 4 better than llama 3.1? check online and decide | `Abstain` | `Memory` | `` | 0.21 | 0.79 | +| `holdout_abstain_toolish_abstain_032` | open a browser and check whether llama-server supports embeddings by default | `Abstain` | `Memory` | `` | 0.19 | 0.81 | +| `holdout_abstain_toolish_abstain_033` | fetch the gemma-4-26b model card and summarize it | `Abstain` | `Memory` | `` | 0.18 | 0.82 | +| `holdout_abstain_toolish_abstain_039` | check the latest Rust RFCs and tell me the most controversial one | `Abstain` | `Memory` | `` | 0.12 | 0.88 | +| `holdout_abstain_toolish_tools_042` | which file defines the ClientMsg type in klbr-ipc? | `Abstain` | `Memory` | `read_file` | 0.12 | 0.88 | +| `holdout_abstain_toolish_tools_044` | write a file docs/router_holdout_abstain_toolish.txt with the content "ok" | `Abstain` | `Memory` | `write_file` | 0.19 | 0.81 | +| `holdout_abstain_toolish_tools_045` | klbr-core/src/config.rsのmemory_top_kはいくつ? | `Abstain` | `Memory` | `read_file` | 0.13 | 0.87 | +| `holdout_abstain_toolish_tools_046` | 今メモリ使用量はどれくらい? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `holdout_abstain_toolish_tools_048` | how big is agent.db right now on disk? | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `holdout_abstain_toolish_tools_049` | in klbr-core/src/config.rs, what is llm_url set to? | `Abstain` | `Memory` | `read_file` | 0.21 | 0.79 | +| `holdout_memory_toolish_tools_043` | which file defines the ClientMsg type in klbr-ipc? | `Abstain` | `Memory` | `read_file` | 0.12 | 0.88 | +| `holdout_memory_toolish_tools_044` | in klbr-core/src/config.rs, what is memory_top_k set to by default? | `Abstain` | `Memory` | `read_file` | 0.18 | 0.82 | +| `holdout_memory_toolish_tools_045` | write a file docs/router_holdout_memory_toolish.txt with the content "ok" | `Abstain` | `Memory` | `write_file` | 0.16 | 0.84 | +| `holdout_memory_toolish_tools_046` | 今メモリ使用量はどれくらい? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `holdout_memory_toolish_tools_047` | klbr-core/src/config.rsのembed_dimはいくつ? | `Abstain` | `Memory` | `read_file` | 0.13 | 0.87 | +| `holdout_memory_toolish_tools_049` | how big is agent.db right now on disk? | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `holdout_memory_toolish_tools_050` | in klbr-daemon/src/daemon.rs, does it forward agent errors to the tui? | `Abstain` | `Memory` | `read_file` | 0.13 | 0.87 | +| `holdout_memory_toolish_abstain_054` | will klbr be popular in 2028? | `Abstain` | `Memory` | `` | 0.18 | 0.82 | +| `holdout_memory_toolish_abstain_056` | 今週のHacker Newsのトップ記事って何? | `Abstain` | `Memory` | `` | 0.12 | 0.88 | +| `holdout_memory_toolish_abstain_060` | who won the nba game last night? check | `Abstain` | `Memory` | `` | 0.10 | 0.90 | +| `shell_test_003` | is llama-server currently loaded with gemma or something else? | `Abstain` | `Memory` | `shell` | 0.17 | 0.83 | +| `shell_test_005` | how many open file descriptors does klbr-daemon have right now? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `shell_test_007` | what environment variable is RUST_LOG set to? | `Abstain` | `Memory` | `shell` | 0.17 | 0.83 | +| `shell_test_009` | rerankerのプロセスは現在いくつ走ってますか | `Abstain` | `Memory` | `shell` | 0.15 | 0.85 | +| `shell_test_010` | what's the uptime since klbr daemon last started | `Abstain` | `Memory` | `shell` | 0.12 | 0.88 | +| `shell_test_011` | how big is agent.db right now on disk? | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `shell_test_012` | any nix builds running in background rn? | `Abstain` | `Memory` | `shell` | 0.12 | 0.88 | +| `shell_test_013` | what's the current hostname? | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `shell_test_015` | what's the network interface with the highest tx bytes? | `Abstain` | `Memory` | `shell` | 0.19 | 0.81 | +| `shell_test_016` | can you check if the reranker http endpoint is responding? | `Abstain` | `Memory` | `shell` | 0.18 | 0.82 | +| `shell_test_019` | is the klbr tui currently connected to the daemon socket? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `shell_test_020` | whats the total vram on ths gpu | `Abstain` | `Memory` | `shell` | 0.10 | 0.90 | +| `shell_test_022` | what ip address is localhost:8002 actually bound to? | `Abstain` | `Memory` | `shell` | 0.16 | 0.84 | +| `shell_test_027` | is port 1234 open right now? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `shell_test_028` | what's the size of the current target/ directory? | `Abstain` | `Memory` | `shell` | 0.13 | 0.87 | +| `shell_test_030` | journalctl -u klbr — what does it say? | `Abstain` | `Memory` | `shell` | 0.16 | 0.84 | +| `shell_test_031` | is the disk partition containing agent.db almost full? | `Abstain` | `Memory` | `shell` | 0.11 | 0.89 | +| `rf_test_001` | what compaction_keep default is in config.rs right now? | `Abstain` | `Memory` | `read_file` | 0.15 | 0.85 | +| `rf_test_002` | which file defines the ClientMsg type? | `Abstain` | `Memory` | `read_file` | 0.13 | 0.87 | +| `rf_test_003` | what does the tools mod.rs export? | `Abstain` | `Memory` | `read_file` | 0.15 | 0.85 | +| `rf_test_004` | what's the rerank_top_k default in the calibrated config file? | `Abstain` | `Memory` | `read_file` | 0.28 | 0.72 | +| `rf_test_005` | how many queries are in internal_eval_starter.json? | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `rf_test_006` | config.rsのmemory_support_score_gapのデフォルト値はいくつ? | `Abstain` | `Memory` | `read_file` | 0.15 | 0.85 | +| `rf_test_007` | is there a router.rs module in klbr-core? | `Abstain` | `Memory` | `read_file` | 0.14 | 0.86 | +| `rf_test_008` | what's the current benchmark README say about the retrieval command? | `Abstain` | `Memory` | `read_file` | 0.15 | 0.85 | +| `rf_test_010` | what's in the .gitignore for klbr? | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `rf_test_011` | what feature flags does klbr-bench's Cargo.toml declare? | `Abstain` | `Memory` | `read_file` | 0.14 | 0.86 | +| `rf_test_012` | how many memories does internal_eval_passive_recall_v3.json have? | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `rf_test_013` | what is the embed_dim value in the support calibrated config? | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `rf_test_014` | does flake.nix pin any specific nixpkgs revision? | `Abstain` | `Memory` | `read_file` | 0.13 | 0.87 | +| `rf_test_015` | what's the passive_support_score_gap set to in the test config? | `Abstain` | `Memory` | `read_file` | 0.21 | 0.79 | +| `rf_test_017` | what's written in docs/klbr_memory_design.md about L1? | `Abstain` | `Memory` | `read_file` | 0.21 | 0.79 | +| `rf_test_019` | what does the recall.rs tool do with the tag_and param? | `Abstain` | `Memory` | `read_file` | 0.14 | 0.86 | +| `rf_test_021` | llm.rsのstreamメソッドのシグネチャは? | `Abstain` | `Memory` | `read_file` | 0.15 | 0.85 | +| `rf_test_022` | what's the current threshold in the router_model.json? | `Abstain` | `Memory` | `read_file` | 0.18 | 0.82 | +| `rf_test_024` | how many memories does the passive recall v3 dataset have? | `Abstain` | `Memory` | `read_file` | 0.17 | 0.83 | +| `rf_test_026` | what warnings did the last cargo check produce? | `Abstain` | `Memory` | `read_file,shell` | 0.15 | 0.85 | +| `rf_test_027` | what's the embed_dim in the router_model.json we trained? | `Abstain` | `Memory` | `read_file` | 0.29 | 0.71 | +| `rf_test_029` | how is the SweepRange struct defined in klbr-bench main.rs? | `Abstain` | `Memory` | `read_file` | 0.22 | 0.78 | +| `wf_test_001` | set the compaction_keep to 15 in config.rs | `Abstain` | `Memory` | `write_file` | 0.12 | 0.88 | +| `wf_test_002` | write the router precision result to a markdown file | `Abstain` | `Memory` | `write_file` | 0.18 | 0.82 | +| `wf_test_003` | create a new slice file with 5 tool-needed examples | `Abstain` | `Memory` | `write_file` | 0.14 | 0.86 | +| `wf_test_004` | change the embed_url to localhost:8005 in the config | `Abstain` | `Memory` | `write_file` | 0.15 | 0.85 | +| `wf_test_005` | write a tiny benchmarking summary to out-router-iter-2/notes.txt | `Abstain` | `Memory` | `write_file` | 0.16 | 0.84 | +| `wf_test_006` | add router_model_path to the default config and set it to a path | `Abstain` | `Memory` | `write_file` | 0.18 | 0.82 | +| `wf_test_008` | patch the memory_top_k to 5 in config.rs | `Abstain` | `Memory` | `write_file` | 0.16 | 0.84 | +| `wf_test_009` | update the dataset_id in internal_eval_starter.json to v3 | `Abstain` | `Memory` | `write_file` | 0.13 | 0.87 | +| `wf_test_010` | write the sweep results summary to a txt file in the output dir | `Abstain` | `Memory` | `write_file` | 0.12 | 0.88 | +| `wf_test_011` | save a note about the router precision gate to docs/ | `Abstain` | `Memory` | `write_file` | 0.12 | 0.88 | +| `wf_test_012` | create a quick script to run all benchmarks in sequence | `Abstain` | `Memory` | `write_file,shell` | 0.12 | 0.88 | +| `wf_test_013` | add a line to .gitignore to exclude agent.db | `Abstain` | `Memory` | `write_file` | 0.16 | 0.84 | +| `wf_test_014` | 新しいスライスJSONを作ってmemory_laneのクエリを10個追加して | `Abstain` | `Memory` | `write_file` | 0.14 | 0.86 | +| `wf_test_015` | bump the rerank_top_k to 15 in the calibrated config and save it | `Abstain` | `Memory` | `write_file` | 0.16 | 0.84 | +| `abs_test_003` | what will my project look like in 6 months? | `Abstain` | `Memory` | `` | 0.15 | 0.85 | +| `abs_test_004` | what's the best programming language? | `Abstain` | `Memory` | `` | 0.16 | 0.84 | +| `abs_test_006` | what's the github token for the ci runner? | `Abstain` | `Memory` | `` | 0.11 | 0.89 | +| `abs_test_007` | vim or emacs? | `Abstain` | `Memory` | `` | 0.20 | 0.80 | +| `abs_test_009` | どのモデルが今一番スコアが高いですか — ベンチマークサイトで | `Abstain` | `Memory` | `` | 0.15 | 0.85 | +| `abs_test_010` | when will the klbr project be finished? | `Abstain` | `Memory` | `` | 0.17 | 0.83 | +| `abs_test_011` | is nomic-embed or bge-m3 better for this use case? | `Abstain` | `Memory` | `` | 0.27 | 0.73 | +| `abs_test_012` | y | `Abstain` | `Memory` | `` | 0.13 | 0.87 | +| `abs_test_013` | is the llama.cpp repo trending on github today? | `Abstain` | `Memory` | `` | 0.14 | 0.86 | +| `abs_test_014` | how should klbr evolve to support multi-user? | `Abstain` | `Memory` | `` | 0.23 | 0.77 | + +## Holdout Metrics (query_id starts with `holdout_`) + +- labeled queries evaluated: `180` +- memory false-abstain rate (memory→abstain): `0.0000` +- abstain false-memory rate (abstain→memory): `0.5360` +- tool-required queries: `70` +- tool-required false-memory rate (tool→memory): `0.6857` +- tool-required recall (tool→abstain): `0.3143` +- accuracy: `0.6278` + +## Holdout Metrics By Bucket + +| bucket | total | tools | tool→memory | tool recall | memory→abstain | abstain→memory | accuracy | +|---|---:|---:|---:|---:|---:|---:|---:| +| `abstain_toolish` | 60 | 10 | 0.6000 | 0.4000 | 0.0000 | 0.4000 | 0.6667 | +| `memory_toolish` | 60 | 10 | 0.7000 | 0.3000 | 0.0000 | 0.5000 | 0.8333 | +| `tools_recall` | 60 | 50 | 0.7000 | 0.3000 | 0.0000 | 0.6727 | 0.3833 | diff --git a/benchmarks/run_all.py b/benchmarks/run_all.py index bf4b8ac..cdcb56e 100755 --- a/benchmarks/run_all.py +++ b/benchmarks/run_all.py @@ -120,7 +120,7 @@ def main(): / "models" / "router" / "linear" - / "out-router-linear-iter-9" + / "out-router-linear-iter-15" / "router_model.json" ), ) diff --git a/docs/benchmark-issues-report.md b/docs/benchmark-issues-report.md index 15b3156..b865196 100644 --- a/docs/benchmark-issues-report.md +++ b/docs/benchmark-issues-report.md @@ -45,6 +45,7 @@ the current numbers show a clear mismatch between coarse retrieval success and a - **symptom**: tools lane test split reports `0.00%` tools precision/recall despite router accuracy of `87.50%`. - **cause**: the centroid/linear classifier in [router.rs](file:///home/mayer/proj/klbr/klbr-core/src/router.rs) misclassified gold tools queries (`test_q9`, `test_q15`) as `Memory` queries because of slight feature shifts on the test set. while the end-to-end agent still fell back to triggering tools correctly via prompt instructions, the router's explicit classification failed. - **status/fix**: the bench router calibration now tracks `required_tools` as a dedicated tool-required slice. centroid and linear threshold sweeps prefer candidates that preserve memory recall while keeping tool-required false-memory (`tool→memory`) under the calibration cap, and router reports expose tool-required count/recall plus the required tool names on misclassified rows. +- **latest artifact**: [out-router-linear-iter-15](file:///home/mayer/proj/klbr/benchmarks/models/router/linear/out-router-linear-iter-15/router_report.md) was regenerated with these metrics. current test-split `tool→memory` is `0.6913` and tool-required recall is `0.3087`, so the artifact now surfaces the residual model/data problem instead of hiding it. ### E. upstream evaluator blocking (`klbr-1yn`) - **symptom**: real upstream LongMemEval QA accuracy is blocked. @@ -72,5 +73,5 @@ the current numbers show a clear mismatch between coarse retrieval success and a 1. **unify the graphs**: merge `memory_edges` and `edges` into one transactional links graph in [memory.rs](file:///home/mayer/proj/klbr/klbr-core/src/memory.rs). 2. **strict entity mapping**: add entity extraction to the [evidence.rs](file:///home/mayer/proj/klbr/klbr-core/src/evidence.rs) planning phase to block cross-entity hallucinations (e.g. film vs camera). -3. **regenerate router artifacts**: rerun the router bench after calibration changes and publish fresh model/report outputs so `tool→memory` and tool-required recall are tracked on future sweeps. +3. **improve router separability**: use the fresh tool-required metrics to improve router training data/features if runtime memory-vs-tool routing remains too permissive. 4. **unblock `klbr-1yn`**: import the official LongMemEval Python evaluation script to establish baseline QA accuracy parity. diff --git a/klbr-core/src/models.rs b/klbr-core/src/models.rs index e9354f3..af9fb74 100644 --- a/klbr-core/src/models.rs +++ b/klbr-core/src/models.rs @@ -1,8 +1,8 @@ use anyhow::Result; use futures::StreamExt; use reqwest::{Client, RequestBuilder}; -use serde::{de::Error as _, Deserialize, Deserializer, Serialize}; -use serde_json::{json, Map, Value}; +use serde::{Deserialize, Deserializer, Serialize, de::Error as _}; +use serde_json::{Map, Value, json}; use std::collections::{BTreeMap, HashMap}; use tokio::sync::mpsc; @@ -386,7 +386,13 @@ impl LlmClient { self.llm_client.clone() } else if config.url == self.config.reranker.url { self.reranker_client.clone() - } else if let Some((_, c)) = self.config.embedders.iter().zip(&self.embedder_clients).find(|(ec, _)| ec.url == config.url) { + } else if let Some((_, c)) = self + .config + .embedders + .iter() + .zip(&self.embedder_clients) + .find(|(ec, _)| ec.url == config.url) + { c.clone() } else { build_client(config).unwrap_or_else(|_| Client::new()) @@ -803,10 +809,7 @@ impl LlmClient { } }; tracing::info!("non-stream response status: {}", v.status()); - let text = Self::error_for_status_with_body(v) - .await? - .text() - .await?; + let text = Self::error_for_status_with_body(v).await?.text().await?; if text.trim().starts_with("data:") { let mut content = String::new(); @@ -849,7 +852,15 @@ impl LlmClient { } } } - Ok((content, Usage { prompt_tokens, completion_tokens, total_tokens, ..Default::default() })) + Ok(( + content, + Usage { + prompt_tokens, + completion_tokens, + total_tokens, + ..Default::default() + }, + )) } else { let v: Value = serde_json::from_str(&text)?; let content = v["choices"][0]["message"]["content"] @@ -949,7 +960,12 @@ impl LlmClient { result } - async fn embed_with_config(&self, client: &Client, config: &ModelConfig, cleaned_text: &str) -> Result> { + async fn embed_with_config( + &self, + client: &Client, + config: &ModelConfig, + cleaned_text: &str, + ) -> Result> { let embed_model = self.resolve_model(config, true).await?; let mut body = json!({ "model": embed_model, "input": cleaned_text }); @@ -983,12 +999,7 @@ impl LlmClient { .await? .json::() .await?; - let embedding: Vec = v["data"][0]["embedding"] - .as_array() - .ok_or_else(|| anyhow::anyhow!("no embedding in response"))? - .iter() - .map(|x| Ok(x.as_f64().unwrap_or(0.0) as f32)) - .collect::>>()?; + let embedding = Self::parse_single_embedding_response(&v)?; if embedding.len() != self.config.embed_dim { return Err(anyhow::anyhow!( @@ -1002,6 +1013,72 @@ impl LlmClient { Ok(embedding) } + fn parse_embedding_item(item: &Value) -> Result> { + let raw_embedding = item + .get("embedding") + .ok_or_else(|| anyhow::anyhow!("no embedding in response"))?; + let values = raw_embedding + .as_array() + .ok_or_else(|| anyhow::anyhow!("embedding was not an array"))?; + let values = if values.len() == 1 && values[0].is_array() { + values[0] + .as_array() + .ok_or_else(|| anyhow::anyhow!("embedding was not an array"))? + } else { + values + }; + + values + .iter() + .map(|x| { + x.as_f64() + .map(|value| value as f32) + .ok_or_else(|| anyhow::anyhow!("embedding value was not a number")) + }) + .collect() + } + + fn embedding_items(v: &Value) -> Result<&Vec> { + if let Some(data) = v.get("data").and_then(Value::as_array) { + return Ok(data); + } + v.as_array() + .ok_or_else(|| anyhow::anyhow!("no embedding data in response")) + } + + fn parse_embedding_batch_response(v: &Value, expected_count: usize) -> Result>> { + let items = Self::embedding_items(v)?; + if items.len() != expected_count { + return Err(anyhow::anyhow!( + "batch embedding response count mismatch: got {}, expected {}", + items.len(), + expected_count + )); + } + + let mut parsed = items + .iter() + .enumerate() + .map(|(pos, item)| { + let index = item + .get("index") + .and_then(Value::as_u64) + .map(|index| index as usize) + .unwrap_or(pos); + Ok((index, Self::parse_embedding_item(item)?)) + }) + .collect::>>()?; + parsed.sort_by_key(|(index, _)| *index); + Ok(parsed.into_iter().map(|(_, embedding)| embedding).collect()) + } + + fn parse_single_embedding_response(v: &Value) -> Result> { + Self::parse_embedding_batch_response(v, 1)? + .into_iter() + .next() + .ok_or_else(|| anyhow::anyhow!("no embedding in response")) + } + pub async fn embed(&self, text: &str) -> Result> { let cleaned_text = Self::strip_media_urls(text); let num_embedders = self.config.embedders.len(); @@ -1009,7 +1086,10 @@ impl LlmClient { return Err(anyhow::anyhow!("no embedders configured")); } - let start_idx = self.embedder_index.fetch_add(1, std::sync::atomic::Ordering::Relaxed) % num_embedders; + let start_idx = self + .embedder_index + .fetch_add(1, std::sync::atomic::Ordering::Relaxed) + % num_embedders; let mut last_err = None; for i in 0..num_embedders { @@ -1034,18 +1114,12 @@ impl LlmClient { Err(last_err.unwrap_or_else(|| anyhow::anyhow!("no embedders configured or available"))) } - async fn embed_chunk_with_config(&self, client: &Client, config: &ModelConfig, chunk_texts: &[String]) -> Result>> { - #[derive(Debug, Deserialize)] - struct EmbeddingResponse { - data: Vec, - } - - #[derive(Debug, Deserialize)] - struct EmbeddingItem { - index: usize, - embedding: Vec, - } - + async fn embed_chunk_with_config( + &self, + client: &Client, + config: &ModelConfig, + chunk_texts: &[String], + ) -> Result>> { let embed_model = self.resolve_model(config, true).await?; let endpoint = Self::endpoint(&config.url, "/embeddings"); @@ -1068,28 +1142,20 @@ impl LlmClient { .await?; let response = Self::error_for_status_with_body(response).await?; - let mut parsed: EmbeddingResponse = response.json().await?; - parsed.data.sort_by_key(|x| x.index); - - if parsed.data.len() != chunk_texts.len() { - return Err(anyhow::anyhow!( - "batch embedding response count mismatch: got {}, expected {}", - parsed.data.len(), - chunk_texts.len() - )); - } + let parsed = response.json::().await?; + let embeddings = Self::parse_embedding_batch_response(&parsed, chunk_texts.len())?; let mut results = Vec::with_capacity(chunk_texts.len()); - for item in parsed.data { - if item.embedding.len() != self.config.embed_dim { + for embedding in embeddings { + if embedding.len() != self.config.embed_dim { return Err(anyhow::anyhow!( "embedding dimension mismatch: got {}, expected {} (model: {})", - item.embedding.len(), + embedding.len(), self.config.embed_dim, embed_model )); } - results.push(item.embedding); + results.push(embedding); } Ok(results) @@ -1105,7 +1171,10 @@ impl LlmClient { return Err(anyhow::anyhow!("no embedders configured")); } - let start_idx = self.embedder_index.fetch_add(1, std::sync::atomic::Ordering::Relaxed) % num_embedders; + let start_idx = self + .embedder_index + .fetch_add(1, std::sync::atomic::Ordering::Relaxed) + % num_embedders; let mut last_err = None; for i in 0..num_embedders { @@ -1113,7 +1182,10 @@ impl LlmClient { let config = &self.config.embedders[idx]; let client = &self.embedder_clients[idx]; - match self.embed_chunk_with_config(client, config, &chunk_texts).await { + match self + .embed_chunk_with_config(client, config, &chunk_texts) + .await + { Ok(embeddings) => { let results = chunk_indices.iter().copied().zip(embeddings).collect(); return Ok(results); @@ -1152,10 +1224,13 @@ impl LlmClient { for (idx, text) in cleaned_texts.into_iter().enumerate() { let estimated_tokens = (text.len() / 4).max(1); - if current_chunk_texts.len() >= MAX_TEXTS_PER_CHUNK - || current_chunk_tokens + estimated_tokens > MAX_TOKENS_PER_CHUNK + if current_chunk_texts.len() >= MAX_TEXTS_PER_CHUNK + || current_chunk_tokens + estimated_tokens > MAX_TOKENS_PER_CHUNK { - chunks.push((std::mem::take(&mut current_chunk_texts), std::mem::take(&mut current_chunk_indices))); + chunks.push(( + std::mem::take(&mut current_chunk_texts), + std::mem::take(&mut current_chunk_indices), + )); current_chunk_tokens = 0; } current_chunk_tokens += estimated_tokens; @@ -1183,8 +1258,6 @@ impl LlmClient { Ok(final_results) } - - pub async fn rerank( &self, query: &str, @@ -1597,6 +1670,31 @@ mod tests { assert_eq!(embedding, vec![0.1, 0.2, 0.3]); } + #[tokio::test] + async fn embedder_accepts_llama_legacy_embedding_shape() { + let base_url = spawn_http_response( + "200 OK", + "application/json", + r#"[{"index": 0, "embedding": [[0.1, 0.2, 0.3]]}]"#, + ) + .await; + let config = ModelsConfig { + llm: ModelConfig::default(), + embedder: ModelConfig { + url: base_url, + model: "legacy-embed".into(), + ..Default::default() + }, + reranker: ModelConfig::default(), + embedders: Vec::new(), + embed_dim: 3, + }; + + let client = LlmClient::new(config); + let embedding = client.embed("hello").await.unwrap(); + assert_eq!(embedding, vec![0.1, 0.2, 0.3]); + } + #[tokio::test] async fn embedder_batch_failover_works() { // Spawn a failing server @@ -1635,7 +1733,40 @@ mod tests { }; let client = LlmClient::new(config); - let embeddings = client.embed_batch(&["hello".into(), "world".into()]).await.unwrap(); + let embeddings = client + .embed_batch(&["hello".into(), "world".into()]) + .await + .unwrap(); + assert_eq!(embeddings.len(), 2); + assert_eq!(embeddings[0], vec![0.1, 0.2, 0.3]); + assert_eq!(embeddings[1], vec![0.4, 0.5, 0.6]); + } + + #[tokio::test] + async fn embedder_batch_accepts_llama_legacy_embedding_shape() { + let base_url = spawn_http_response( + "200 OK", + "application/json", + r#"[{"index": 1, "embedding": [[0.4, 0.5, 0.6]]}, {"index": 0, "embedding": [[0.1, 0.2, 0.3]]}]"#, + ) + .await; + let config = ModelsConfig { + llm: ModelConfig::default(), + embedder: ModelConfig { + url: base_url, + model: "legacy-embed".into(), + ..Default::default() + }, + reranker: ModelConfig::default(), + embedders: Vec::new(), + embed_dim: 3, + }; + + let client = LlmClient::new(config); + let embeddings = client + .embed_batch(&["hello".into(), "world".into()]) + .await + .unwrap(); assert_eq!(embeddings.len(), 2); assert_eq!(embeddings[0], vec![0.1, 0.2, 0.3]); assert_eq!(embeddings[1], vec![0.4, 0.5, 0.6]);