Skip to content
cccskills
FreePublished on GitHub

session-rag-eval

Evaluate how Chatbox answers questions about large attachments using synthetic and real documents. Check whether the model retrieves file content when needed, skips retrieval for unrelated requests, and investigate failures through the actual application flow.

OriginalShow the original description

Run and debug Chatbox session attachment RAG model evaluation with synthetic and real long-file fixtures.

See how to install

Good for

  • Verify retrieval for questions about large attachments
  • Test file-related questions without explicit search requests
  • Check that unrelated requests skip file retrieval
  • Investigate indexing and local API failures

Files included (4)

  • SKILL.md3.0 KB
  • README.md2.7 KB
  • run-chatbox-flow-eval.mjs12.1 KB
  • run-session-rag-eval.mjs9.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Session Attachment RAG Eval

Use this skill when validating file question-answering behavior for large chat attachments.

Goal

Verify both sides of model behavior:

  • The model calls query_session_attachment when the answer depends on an uploaded large file.
  • The model avoids retrieval for clearly unrelated user requests.

Prefer the Chatbox conversation-flow harness for product validation because it exercises the real renderer, config, license, local API, file upload, indexing, tool registration, and persisted messages.

Fixtures

Default fixture repo:

../../chatbox-session-rag-eval-fixtures

Fixture types:

  • synthetic long documents with hidden needle facts;
  • Wikipedia-derived real long documents with source attribution;
  • direct positive cases;
  • implicit positive cases where the user does not explicitly ask to search the file;
  • unrelated negative cases.

Regenerate fixtures in the fixture repo:

node scripts/generate-fixtures.mjs
node scripts/fetch-real-fixtures.mjs

Chatbox Flow

Start the local API before running the harness. Then build with USE_LOCAL_API=true; the renderer API origin is compiled into the bundle.

USE_LOCAL_API=true node ./node_modules/electron-vite/bin/electron-vite.js build --mode development
pnpm eval:session-rag:chatbox -- --case long-citrine-threshold --keep-user-data

The harness copies the real config.json into an isolated temporary userDataDir, injects a temporary default chat model if missing, and stores the session RAG sqlite DB at a separate temporary path.

Known Failure Modes

  • "This attachment is too large..." means session_attachment_embedding capability is false or unavailable for the active local API/license path.
  • If requests go to production, rebuild with USE_LOCAL_API=true.
  • If Electron hangs at startup, check stale CDP/Electron processes. The harness now allocates a free CDP port.
  • If the assistant says the file is still indexing after DB says ready, inspect the persisted user message. The message file must have sessionAttachmentIndexStatus: "ready" before context building.
  • Do not trust a log line that says the message was submitted unless the textarea cleared and the session contains the user message.

Useful Cases

pnpm eval:session-rag:chatbox -- --case long-citrine-threshold
pnpm eval:session-rag:chatbox -- --case implicit-citrine-current-policy
pnpm eval:session-rag:chatbox -- --case real-wiki-apollo-implicit-landing-site
pnpm eval:session-rag:chatbox -- --case multi-turn-real-wiki-apollo-followup
pnpm eval:session-rag:chatbox -- --case unrelated-simple-math
pnpm eval:session-rag:chatbox -- --case real-wiki-unrelated-capital

For fast model-behavior iteration without Electron:

pnpm eval:session-rag -- --dry-run
pnpm eval:session-rag -- --case implicit-citrine-current-policy

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

cherry-pick-pro

FreeSummary

Transfer selected Chatbox Pro commits into the open source edition using cherry-picking, which copies individual changes. The skill handles excluded files, package names, dependency conflicts, lockfile regeneration, and version tags for manual releases.

  • Sync recent Pro changes into the open source edition
  • Transfer a specified range of Pro commits
  • Resolve conflicts caused by edition differences
chatboxai/chatbox42.1KUpdated Sep 24, 2026

i18n-translate

FreeSummary

Update Chatbox Pro interface translations by reviewing code changes and the surrounding screen context. The skill identifies affected translation keys, follows a shared glossary, and edits language JSON files while preserving placeholders and formatting tags.

  • Translate interface text added in uncommitted changes
  • Update translations for a specific commit range
  • Refresh translations after English text changes
chatboxai/chatbox42.1KUpdated Sep 24, 2026

See all skills by chatboxai

Report a problem with this skill