Skip to content

feat: add extensible usage reporting#3222

Draft
heaoxiang-ai wants to merge 1 commit into
volcengine:mainfrom
heaoxiang-ai:agent/usage-reporter
Draft

feat: add extensible usage reporting#3222
heaoxiang-ai wants to merge 1 commit into
volcengine:mainfrom
heaoxiang-ai:agent/usage-reporter

Conversation

@heaoxiang-ai

Copy link
Copy Markdown
Contributor

Description

Introduces an extensible usage reporting pipeline for OpenViking. The core defines reporter, extractor, sink, event, and context contracts; deployments can load an external sink class without importing Kafka or another vendor SDK into the open-source package.

The first extractor recognizes official experience-skill tool parts and emits memory recall/injection usage events.

Related Issue

N/A

Type of Change

  • New feature
  • Bug fix
  • Breaking change
  • Documentation update
  • Tests

Changes Made

  • Add UsageReporter, UsageExtractor, and UsageSink abstractions.
  • Add configurable custom-class loading for deployment-provided sinks.
  • Parse completed search_experience and read_experience tool parts.
  • Dispatch extracted events after session commit using the hydrated message view.
  • Add the official ov-experience-memory skill contract and architecture documentation.
  • Add unit and integration coverage for event extraction and reporter behavior.

Testing

  • tests/unit/usage_reporter: 5 passed.
  • Ruff check, Ruff format check, and git diff --check passed.
  • The session integration test could not initialize locally because the installed native wheel does not expose PersistStore; the test body was not reached.

Checklist

  • Code follows the project style.
  • Tests cover extractor and reporter behavior.
  • Kafka/vendor dependencies are not imported by the OpenViking core.
  • Changes are independent from trajectory snapshots and user settings.

Screenshots

N/A

Additional Notes

Commercial or private deployments can install a separate Python package and configure its sink class through the OpenViking server configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant