Commit Graph
14 Commits
Author SHA1 Message Date
agent 00f3738edb feat(usage): emit resource-scoped experience usage records (#3921)
* feat(usage): expand experience tracking and log schema

* fix(usage): preserve experience count event names

* refactor(agent-evolution): use generic OpenViking tools

* fix(usage): capture generic OpenViking tool events

* feat(skills): guide cross-agent experience retrieval

* fix(usage): address generic tool migration review
2026-08-11 22:20:18 +08:00
agent ccc271ff27 feat: add extensible usage reporting (#3222)
* feat: add extensible usage reporting

* fix: harden usage reporter lifecycle

* fix: scope experience usage events correctly

* refactor: generalize usage event schema

* docs: design Codex experience memory tools

* docs: plan Codex experience memory tools

* feat: add Codex experience memory tools

* docs: remove temporary Codex implementation plans

* fix: capture Codex MCP tool parts

* fix: harden experience usage reporting

* fix: reload credentials for local MCP tools

* fix: preserve MCP tool-level errors

* fix: bound synchronous sink shutdown

* fix: enforce sink shutdown timeout

* fix: enforce experience tool contracts

* fix(usage-reporter): keep tool schemas and replay ids stable

* fix(usage-reporter): reject unidentifiable tool events
2026-07-16 15:33:27 +08:00
87329714dd feat(grep): integrate VikingDB bm25 keyword search for grep engine (#2144)
* feat(grep): integrate VikingDB bm25 keyword search for grep engine

* fix(grep): address CI review feedback: max-size eviction to _count_cache, use Literal, Split regex alternation into individual keywords for bm25 (max 10)

* fix(schema): use dynamic __version__ for schema_version and handle dev suffixes in version comparison

* fix(schema): upsert data to vikingdb lack of content

* chore: add benchmark for retrieval

* fix(grep): vikingdb return 200 and no results means no matching content, not necessary to fallback to local fs

* fix(benchmark): sub uri args; add report

* refactor: code format by ruff

* optimize: move grep config (engine and switch_to_remote_threshold) to ov.conf

* optimize: auto adapt remote_return_limit by agg API; rm unnecessary params in keywords search

* fix: adjust benchmark scripts

* fix(grep): store full content for BM25; use PathScope depth; reduce redundant API calls

* refactor: new benchmark

* fix: step1 add resource by real code data

* feat(benchmark): split grep benchmark into effectiveness/performance suites with async reindex

* optimize (benchmark): adjust keywords and ground truth for testing

* fix: truncate 64KB for content field

* optimize: effectiveness add resource plainly

* optimize: change param use of SearchByKeywords from "keywords" to "query"

* optimize(benchmark): refactor effectiveness scripts

* optimize: ensure raw data for content field

* optimize: fulltext analyzer's stop-words only use symbols

* fix: adapt to new ov cli for benchmark

* optimize: reuse file content to avoid re-read AGFS file

* optimize: tune grep vikingdb defaults and refresh bm25 benchmark scripts

* optimize: benchmark client timeout

* update README

* fix: rm unused param

* fix: default values in docs

* optimize: increase truncate byte size to 1MB for content field for VikingDB

* fix(logger): harden queued stream logging (#2786)

* fix(logger): replace StreamHandler with QueueHandler+QueueListener to prevent thread deadlock

When log.output='stdout' (default) and the server is managed by systemd,
concurrent log writes can deadlock because logging.StreamHandler holds a
thread lock across stream.flush() which blocks on systemd-piped file I/O.

During session.commit() phase 2, multiple async coroutines (memory
extraction, summarization) concurrently call logger.info()/warning()
with large payloads. The first thread's flush() blocks on the pipe,
while all subsequent threads block on handler.acquire() forever.
This permanently silences the server log and prevents _write_done_file()
from executing, leaving phase 2 hanging without .done.

Fix: use QueueHandler + QueueListener from stdlib logging.handlers
(Python 3.2+). QueueHandler.emit() does queue.put(record) with no lock
or I/O, returning immediately. QueueListener has a dedicated single
thread as the sole consumer touching the real StreamHandler, making
lock contention impossible.

Changes in _create_log_handler(): stdout/stderr branches now create
a shared QueueListener with unbounded queue, returning QueueHandler
instances to callers. _build_standard_handler() delegates formatter
and filter setup to the real handler in the listener thread.

Closes: #2752

* fix(logger): harden queued stream logging

---------

Co-authored-by: njuboy11 <njuboy11@users.noreply.github.com>

---------

Co-authored-by: Qin Haojie <qinhaojie.exe@bytedance.com>
Co-authored-by: njuboy11 <njuboy11@users.noreply.github.com>
2026-06-24 18:46:02 +08:00
Qin Haojie fff86058ac feat(core): 支持用户和 peer 级内容目标 (#2564)
* feat(core): support user-scoped content targets

* fix(core): handle scoped skill updates

* fix(core): keep skills user scoped

* chore: drop incidental formatting changes

* fix(storage): revert shared parent existence helper

* docs: update user content target docs

* fix(resource): canonicalize watch cancellation targets
2026-06-12 17:52:44 +08:00
Zayn Jarvis c780c8336e Add ov-add-paper skill example (#2548)
* Add ov-add-paper skill example

* Harden ov-add-paper ingestion

* Keep ov-add-paper hardening in skill

* docs: simplify ov-add-paper ingest flow
2026-06-10 22:17:46 +08:00
MaojiaSheng 6fe739b766 fix(skills): update skills example (#2495)
* fix(skills): update skills example

* fix: remove unexpected dir
2026-06-08 12:02:56 +08:00
Qin Haojie ff258768c2 feat(memory): 引入 User/Peer 记忆隔离模型 (#2236)
* feat(memory): introduce user and peer memory isolation

Unify agent-scoped memory behavior into user-owned memory spaces, add peer_id compatibility for session and retrieval paths, and wire memory_policy through session commit flows.

* feat(memory): align session identity around peer IDs

* feat(search): pass peer id through retrieval

* refactor(memory): remove agent identity from integrations

* fix(memory): isolate peer identity from self extraction

* fix(tau2): provision benchmark user configs

* fix(auth): allow admin keys to access data APIs

* fix(openclaw): enable peer memory policy for peer roles

* fix(openclaw): resolve sender for peer recall

* refactor(session): simplify memory extraction routing

* refactor(ov-cli): reduce formatting-only diff

* refactor(message): remove unused message helpers

* refactor(retrieval): simplify peer target resolution

* refactor(namespace): remove deprecated agent namespace policy

* fix(agent): propagate peer id through integrations

* fix(auth): align integration clients with api-key mode
2026-06-05 10:55:48 +08:00
MaojiaSheng 4405059c13 fix(cli): Select a configuration to use: (#2441)
1. user (http://localhost:1933)
  2. jiahui_test5
  3. serverless (https://api.vikingdb.cn-beijing.volces.com/openviking)
  4. devbox (http://10.37.194.3:1933)
  5. bak (https://api.vikingdb.cn-beijing.volces.com/openviking)
  6. minio (http://localhost:1933)

Enter    '<number>' to use a configuration (e.g. '2')
Or enter 'del<number>' to delete a configuration (e.g. 'del2')
Press Enter without input to cancel
[?2004h
> 
[?2004l

Cancelled. reports invalid skip
2026-06-04 20:15:37 +08:00
agent f62b640ee3 feat: add ov_dream OpenClaw skill for OpenViking sync (#2136)
* feat: add ov dream skill

* feat: ov dream

* feat: ov dream

* fix: bug

* fix

* fix

* docs: add ov dream openclaw install prompt

* docs: rename ov dream install guide

* docs: rename ov lite install guide

* docs: clarify ov lite install source

* docs: make ov lite install guide stable
2026-05-20 12:05:56 +08:00
Nono f006e392e8 feat(git): added azure devops support (#1625) (#1642)
* feat(git): added azure devops support (#1625)

* fix(git): reject Azure DevOps UI URLs in parser

* fix(git): restore www domains in network guard fallback
2026-04-23 21:34:17 +08:00
r266-tech 0b6f2d5edf docs(skill): sync ov add-memory output example after #1613 (#1627)
PR #1613 changed 'ov add-memory' to print 'OK' instead of
memories_extracted count because commit runs async.
The SKILL.md example still showed the old count output.
2026-04-22 11:46:26 +08:00
Qin Haojie 3c2f095c4f fix(volcengine): update default doubao embedding model (#1438)
Align docs, examples, the setup wizard, and telemetry tests with the
current Doubao multimodal embedding model so generated configs keep
referencing the supported default consistently.
2026-04-14 15:51:06 +08:00
MaojiaShengandopenviking d35152e4ab docs: OpenViking Skills for search, add, operate (#510)
* fix: add log for embedder error

* fix: skills for add, search and operate server

* fix: skills for add, search and operate server

* fix: skills for add, search and operate server

* fix: skills for add, search and operate server

---------

Co-authored-by: openviking <openviking@example.com>
2026-03-10 17:42:34 +08:00
Zayn Jarvis be14baf3d4 feat: add memory, resource and search skills (#214)
* feat: add memory, resource and search skills

* feat: add toc to skill.md

* chore: test cases
2026-02-21 09:08:39 +08:00