mirror of
https://github.com/volcengine/OpenViking.git
synced 2026-10-01 09:48:03 +08:00
python-sdk@0.1.7
33
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
94de606c2b | fix(bot): make max_tokens optional and configurable (#3654) | ||
|
|
c91b0d36f2 |
feat: implement Skill-driven knowledge compilation for ov compile (#3567)
* feat(compile): implement skill-driven ov compile Require a Skill and run compile tasks through VikingBot AgentLoop with structured wiki bundle rendering and durable task state. Add OpenViking batch-write and bot proxy APIs, Python SDK and Rust CLI support, shared link and memory helpers, tests, and a One-Page demo. * fix(compile): refine defaults, links, and failure handling * fix(compile): normalize skill tools and degrade gracefully * feat(compile): support skill-defined artifact outputs * feat(compile): improve artifact reliability and wiki navigation * feat(compile): support generating and updating skill packages * fix(compile): validate OKF frontmatter and catalog page types * feat(compile): rank target catalog and validate updates lazily * feat(compile): tag generated wiki files for search * fix(compile): preserve generated skill artifacts in submissions * fix(compile): enforce fixed toolset and workspace artifact submissions * fix(skills): preserve nested metadata in skill frontmatter * fix(compile): normalize wiki paths and citation line breaks * docs(examples): remove outdated compile demos * docs(api): document compile and batch-write endpoints * fix(content): allow arbitrary resource files in batch writes * fix(compile): harden task lifecycle, auth, and execution * fix(compile): disable direct exec by default * fix(compile): allow file-only tasks when exec is disabled * fix(compile): prevent task lock leaks |
||
|
|
d2670274a4 |
feat(bot): Opt doc add workspace desc, change the type of messages appended to ov (#3236)
* 1. 默认开启OpenViking session处理; 2. 调整bot传给ov 的message类型 * 增加Agent workspace介绍 * fix pr |
||
|
|
41e002fa0b |
docs(bot): align documentation and tool guidance with current implementation (#3215)
* 优化bot的doc * 删除无用的security,增加ov的 guides * ov下增加bot的综述文章 |
||
|
|
47da6ce129 | refactor(bot): simplify vikingbot installation - merge all bot-* extras into [bot] (#3037) | ||
|
|
60957e1ce3 |
feat(bot):Improve VikingBot subagent delivery and configuration (#2988)
* subagent 消息 + skill * 禁用subagent配置 * fix pr |
||
|
|
d306eaee46 |
docs(bot): document agents.thinking config option (#2954)
PR #2944 added `bot.agents.thinking` (default `true`) which mutates provider reasoning params for VolcEngine (`thinking={"type":"enabled"}`), DashScope (`extra_body.enable_thinking`), and OpenAI reasoning models (`reasoning_effort`), but the canonical Vikingbot config tables and samples in bot/README.md and bot/README_CN.md were not updated. Document the new default-on option and its per-provider behavior in both the EN and ZH config reference and sample config so operators can discover the off-switch (latency/cost/compatibility tuning). |
||
|
|
9253619a98 | add timeout config (#2917) | ||
|
|
ca29e5e4b7 |
add bot temperature (#2808)
Co-authored-by: Qin Haojie <qinhaojie.exe@bytedance.com> |
||
|
|
027e21bb7e |
feat(bot): Simplify the bot auth check, support ov's trusted auth_mode. (#2769)
* 增加bot的配置校验。优化bot的逻辑 * 去除 mode的逻辑依赖 * 调整dev的提示文案 * fix: 1. trusted localhost允许 without root key; 2. 调整文档废弃root_api_key; * 现在 proxy 生成 openviking_connection 时会带上当前 OpenViking server 的 server_url,VikingBot 收到 request-scoped connection 后会优先使用这个 URL,不会再 fallback 到静态 bot.ov_server.server_url 去请求另一台 server。 * fix ipv6 * fix trusted模式chat指令使用root_api_key |
||
|
|
4e8c3f9d68 |
Feat(bot): Change memory auto-call limit and type (#2609)
* api_key * 兼容最新的peer逻辑 * 调整 peer 逻辑 * 工具检索self + peer memory,以及对应的resource、SKILLS * 调整评测,兼容peer逻辑 * 调整loop中的profile获取 * 1. 恢复agent workspace; 2. 评测使用ov_server.url; 3. 调整文档 * 1. 修复 root_api_key兼容; 2. 调整 Peer 别名 * 调整评测逻辑 * PR review * test * fix md * fix md * Eval 逻辑优化;vlm 增加token统计; * 优化bot检索逻辑 * 优化bot检索逻辑 |
||
|
|
a702d38a8b |
feat(bot): Change bot api_key to user mode, support ov's peers, eval support peers (#2527)
* api_key * 兼容最新的peer逻辑 * 调整 peer 逻辑 * 工具检索self + peer memory,以及对应的resource、SKILLS * 调整评测,兼容peer逻辑 * 调整loop中的profile获取 * 1. 恢复agent workspace; 2. 评测使用ov_server.url; 3. 调整文档 * 1. 修复 root_api_key兼容; 2. 调整 Peer 别名 * 调整评测逻辑 * PR review * test * fix md * fix md |
||
|
|
a6fc0424bc |
fix(session): apply memory type policy whitelist (#2530)
* fix(session): apply memory type policy whitelist Restore top-level memory_types filtering for session memory extraction and validate it against enabled registry schemas. Ensure initialization and peer-aware smoke coverage honor the whitelist. * fix(session): scope session skills to execution memory policy * refactor(session): remove per-commit memory policy |
||
|
|
49e515667e |
feat(bot): add MiniMax-M3 model support to minimax provider (#2368)
Add MiniMax-M3 as the new flagship/default recommended model alongside the existing MiniMax-M2.7 and MiniMax-M2.7-highspeed options. - Update provider registry comment to list M3 as default with M2.7 as alternative. - Update bot README recommended models block to suggest M3. - Add unit tests for M3 keyword match, prefix resolution, and system message merging. Co-authored-by: octo-patch <octo-patch@github.com> |
||
|
|
09b40aecf8 | docs(bot): document gateway.token (required for non-localhost host) (#2405) | ||
|
|
c12d155bde |
docs(vikingbot): document ov_server experience-recall config keys from #2380 (#2385)
* docs(vikingbot): document ov_server experience-recall config keys from #2380 * docs(vikingbot): document ov_server experience-recall config keys from #2380 (zh) |
||
|
|
0b8f3f0894 |
fix(bot,ovcli): route explicit providers through VLM adapter and refresh config serialization/docs (#2379)
* fix: embedding images directly * fix: skip default values in CLI config serialization, relax ovcli.conf validation - Rust: add skip_serializing_if to Config/UploadConfig fields to avoid writing null/default values into ovcli.conf - Python: change OVCLIConfig/OVCLIUploadConfig model_config from extra: "forbid" to extra: "ignore" for forward compatibility - Simplify handle_extra_headers_aliases now that extra fields are ignored - Add VLMProviderAdapter and integrate VLMFactory into _make_provider * fix(bot): remove unused OpenAI provider and refresh config docs Drop the unused OpenAI-compatible provider and its stale exports/tests now that explicit provider configs go through the VLM adapter path. Refresh the bot configuration docs with redacted remote OpenViking examples and clarify gateway/chat usage alongside Feishu configuration. * revert: drop unrelated embedding changes from PR Restore the embedder and queuefs files to match the upstream volcengine/OpenViking main branch so this PR only carries the bot provider cleanup and documentation updates. * revert: align remaining embedding helpers with upstream Restore the context, embedder base, embedding utils, and local index files to match volcengine/OpenViking main so the PR stays focused on bot-only changes. * docs: sync cn |
||
|
|
fb42a041a7 |
docs(bot): document ov_server.api_key_type and exp_write_tools (#1994 + #2007) (#2014)
* docs(bot): document ov_server.api_key_type field (#1994) * docs(bot): document ov_server.api_key_type and exp_write_tools (#1994 + #2007) * docs(bot): tighten api_key_type wording + flag exp_write_tools gate (codex feedback) * docs(bot): tighten api_key_type wording + flag exp_write_tools gate (codex feedback) |
||
|
|
21854b5c58 |
feat(observability): add response feedback tracking to openapi (#1660)
* feat(observability): add response feedback tracking to openapi Persist response, feedback, and outcome signals so OpenAPI clients can attach stable feedback to assistant replies. Sync the same business events to Langfuse to make Q&A effectiveness observable across restarts. * refactor: remove response tracking and feedback features This commit removes the response tracking, feedback submission, and Langfuse integration features. The changes include: - Removing ResponseCompletedEvent and related response_id fields - Removing feedback models and endpoints - Removing Langfuse client integration - Simplifying the OpenAPI channel by removing response persistence - Updating tests to reflect these removals * docs: align feedback observability design with current implementation * feat(bot): implement phase 1 feedback observability primitives * feat(bot): add explicit feedback submission flow * feat(bot): add phase 3 response outcome evaluation * style: clean up imports and fix code style issues - remove unnecessary blank lines - reorder imports to follow conventions - fix string formatting in logging - group related imports together - fix import ordering in multiple files * refactor: remove unused abstract attribute and update config type Remove unused abstract attribute from MemoryStore and update config parameter type in resolve_require_mention to MochatChannelConfig for better type clarity * feat(observability): rename abandoned to follow_up_without_feedback for clarity refactor(session): add session locking and metadata merging - Implement per-session file locks to prevent concurrent write conflicts - Add metadata merging logic to preserve existing data during updates - Introduce update_session method for atomic read-modify-write operations fix(agent): skip outcome evaluation for heartbeat messages |
||
|
|
5751e389ba |
docs(bot): document tools.mcp_servers config (PR #1392) (#1567)
PR #1392 added external MCP client support to vikingbot (ported from HKUDS/nanobot v0.1.5), exposing a new `bot.tools.mcp_servers` config. bot/README.md and bot/README_CN.md had no user-facing docs for the new config. Add an 'External MCP Servers' section to both READMEs with: - stdio + streamableHttp JSON examples - field-by-field reference table for MCPServerConfig (type / command / args / env / url / headers / tool_timeout / enabled_tools) - note on startup-time connection, shutdown cleanup, and the 'no command and no url' skip-with-warning behavior in connect_mcp_servers() |
||
|
|
1e60de2869 |
docs(channel): document ov_tools_enable config introduced in #1352 (#1571)
* docs(channel): document ov_tools_enable config (#1352) * docs(channel): 补充 ov_tools_enable 配置说明 (#1352) |
||
|
|
a96893e943 |
feat: add MiniMax-M2.7 and MiniMax-M2.7-highspeed provider support (#1284)
- Update provider registry to document MiniMax-M2.7 and MiniMax-M2.7-highspeed as the recommended models (replacing the outdated M2.1 example comment) - Add explicit note that MiniMax does not support system messages (they are merged into the first user message automatically) - Update README to advertise MiniMax-M2.7 and MiniMax-M2.7-highspeed as the recommended MiniMax models with configuration instructions - Add comprehensive unit tests (17 tests) covering: - Registry keyword matching for MiniMax-M2.7 and MiniMax-M2.7-highspeed - Model prefix resolution (minimax/MiniMax-M2.7) - System message merging for both LiteLLMProvider and OpenAICompatibleProvider - Edge cases: multiple system messages, no system messages, non-MiniMax models - MINIMAX_API_KEY environment variable and international API base URL Co-authored-by: octo-patch <octo-patch@github.com> |
||
|
|
55a0c0ea15 |
Refactor memory extract (#952)
* docs: add memory extractor templating and update mechanism optimization design document - Add bilingual (English/Chinese) design document for memory templating system - Include YAML-based MemoryTypeRegistry with 8 built-in types - Detail ReAct 3+1 phase flow with pre-fetch optimization - Describe 3-operation Schema: write/edit/delete - Document RoocodePatch SEARCH/REPLACE format - Explain dual-mode design: simple mode vs template mode - Cover pre-fetch optimization: ls directories + read .abstract.md/.overview.md + search once - Include merge operations: patch, sum, avg, immutable - Address #578: allow custom prompt template addition and specification Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add memory templating system with ReAct orchestrator - Add YAML-configurable memory schemas (cards, events, entities, etc.) - Implement MemoryReAct with tool use (read/find/ls) - Add schema-driven memory operations (write_uris/edit_uris/delete_uris) - Implement memory patch handler for incremental updates - Add comprehensive test suite * refactor: memory extractor templating system with ReAct orchestrator ## Summary Implement memory templating system (GitHub Issue #578) - a complete rewrite of the memory extractor subsystem to support YAML-configurable memory types instead of hardcoded categories. ## Key Changes ### Architecture - Replace hardcoded 8 memory types with YAML-configurable schema system - Add MemoryTypeRegistry to load memory type definitions from YAML files - Dynamic Pydantic model generation from schema for type safety - Field-level merge operations: PATCH, SUM, IMMUTABLE ### Memory Extraction Flow - Implement ReAct orchestrator for single-pass memory updates - MemoryUpdater for applying operations to storage - Memory tools (read, search, ls) for ReAct loop - Stable JSON parser with 5-layer fault tolerance ### File Naming & Storage - Semantic filenames from template ({topic}.md instead of random IDs) - Two memory modes: simple mode and template mode - MEMORY_FIELDS HTML comment for structured metadata ### Configuration - 9 YAML templates in openviking/prompts/templates/memory/ - memory_config.py for memory system configuration - Dual-threshold compact upload mechanism in design doc ### Deletions - Remove old memory_content.py, memory_data.py, memory_operations.py - Remove memory_types.py, memory_utils.py, memory_patch.py - Remove corresponding old test files ### Updated Components - VLM backends (litellm, openai, volcengine) for new interfaces - Session and service core integration - Test suite for new architecture Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: pass ctx/user/session_id in commit_async for memory extraction ## Summary Fix missing parameters in commit_async() when calling extract_long_term_memories(). The synchronous commit() method correctly passes these parameters, but the async version was missing them, causing memory extraction to be skipped. ## Changes - Pass user=self.user, session_id=self.session_id, ctx=self.ctx in commit_async() when calling extract_long_term_memories() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: convert FindResult to dict before returning from search tool ## Summary Fix JSON serialization error by converting FindResult object to dict using its to_dict() method before returning from MemorySearchTool. ## Changes - In MemorySearchTool.execute(), return search_result.to_dict() instead of search_result directly Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: swap None check before accessing final_operations in memory_react Also rename schema_models.py to schema_model_generator.py for clarity. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add edit_overview support and optimize memory registry initialization - Add edit_overview_operations to MemoryUpdater for updating .overview.md files - Optimize MemoryTypeRegistry initialization in SessionCompressorV2 (load once) - Various memory templating system improvements Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: remove unnecessary indent in JSON schema output Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add markdown link format hint to overview field description Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add pre-fetch search based on user messages in conversation Also fix duplicate line in system prompt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * rebase * feat: add vectorization for memory files and overview format - MemoryUpdater now vectorizes written/edited memory files after apply_operations - MemoryReAct generates overview following semantic.overview_generation.yaml format - Auto-extract and write .abstract.md from overview in memory_updater - Fix import: VikingURI is from openviking_cli.utils.uri Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update bot README to use openviking-server --with-bot and ov chat - Change vikingbot gateway to openviking-server --with-bot - Change vikingbot chat to ov chat - Update --no-markdown to --no-format - Remove --logs flag (not available) - Simplify CLI Reference table - Also update Chinese README_CN.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: rewrite xiaomei memory demo as standalone script Convert from pytest to standalone script with: - SyncHTTPClient instead of AsyncHTTPClient - Rich for pretty console output - Phase control (ingest/verify/all) - Better error handling and progress display Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: use markdown links in overview instead of numeric references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: remove duplicate code from copy-paste residue - Remove duplicate logger and create_session_compressor in session/__init__.py - Remove duplicate MemoryConfig import in open_viking_config.py Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
8231487e6a |
feat(bot):delete invalid tools, update search\grep tool's description (#929)
* add per-channel mode * add logs * thread group Message need mention * feishu message opt:check @ * feishu message opt:check @ * fix * memory error * only support ov read memory * tool * context * 调整Search,只使用 admin user 信息 * 补充说明 * 补充说明 * allow cmd from * fix pr * fix pr * 1. opt eval ; 2. opt tool prompt * delete invalid tools * commit tool * fix cr * fix cr |
||
|
|
b12a0b05aa |
feat(bot):add multi read tool, opt loop memory, fix agent memory search, update README (#895)
* add per-channel mode * add logs * thread group Message need mention * feishu message opt:check @ * feishu message opt:check @ * fix * memory error * only support ov read memory * tool * context * 调整Search,只使用 admin user 信息 * 补充说明 * 补充说明 * allow cmd from * fix pr * fix pr |
||
|
|
21dd20d714 |
Fix/bot readme (#774)
* 去掉console Removed OpenSandbox, Docker, and AIO Sandbox backend documentation from README. * refactor(bot): update READMEs to remove console UI and docker deployment - Remove console UI references, guide users to configure via ov.conf - Keep only direct and srt sandbox backends in docs - Remove docker deployment section temporarily |
||
|
|
c4cdb5fb1b |
Fix/bot Fix Memory Consolidation Issues and Integrate Vikingbot as OpenViking Optional Dependency (#492)
* fix * add log * add log * update * Opt memory * Opt memory * Opt memory * Opt memory * Fix memory consolidation issues: duplicate session write, hook error, and async - Fix _consolidate_memory hook error by creating temporary Session when given message list - Remove duplicate session save logic from _consolidate_memory (handled by caller) - Make normal memory consolidation async like /new command - Other fixes: streaming response in CLI and OpenAPI channel * Integrate vikingbot as openviking optional dependency - Add vikingbot dependencies to pyproject.toml optional-dependencies - Update install prompts from vikingbot[X] to openviking[bot-X] - Update README installation instructions - Configure setuptools to find vikingbot in bot/ directory - Add vikingbot package data and script entry * Remove bot/pyproject.toml vikingbot is now integrated as part of openviking, no need for separate pyproject.toml * Update vikingbot installation instructions in root READMEs - Update from 'uv pip install -e bot/' to 'uv pip install -e ".[bot]"' - Add quotes around openviking[bot] for shell safety * update * Use singleton pattern for VikingClient in hooks Cache VikingClient instances by workspace_id to avoid repeated client creation - Add _client_cache dictionary for caching - Add get_cached_client() helper function - Update both hooks to use cached client * Use global singleton for VikingClient instead of per-workspace cache - Change from per-workspace_id cache to true global singleton - Create client with None as agent_id (works for all workspaces) - Simplify client management * uv run ruff format --------- Co-authored-by: DuTao <dutao.1786@bytedance.com> |
||
|
|
05e9fcc3cc | fix: suport uv pip install openviking[bot] (#457) | ||
|
|
57b320611c |
FIX: fixes multiple issues in the OpenViking chat functionality and unifies session ID generation logic between Python and Rust CLI implementations. (#446)
* refactor(sandbox): remove docker/aiosandbox backends, simplify SRT config
- Remove docker and aiosandbox from available backends
- Remove settings_path from SrtBackendConfig (now auto-generated in workspace)
- Update SRT settings path to workspace/sandboxes/{session}-srt-settings.json
- Update README examples to use srt backend and remove settingsPath
* refactor(sandbox): remove docker/aiosandbox backends, simplify SRT config
- Remove docker and aiosandbox from available backends
- Remove settings_path from SrtBackendConfig (now auto-generated in workspace)
- Update SRT settings path to workspace/sandboxes/{session}-srt-settings.json
- Update README examples to use srt backend and remove settingsPath
* fix: remove unused handle_chat_direct function and fix unused logs variable
* Fix UTF-8 issues in chat command
* Add tab indentation to Think, Calling, and Result lines in CLI output
* Add first release workflow
* Update release workflow with correct working directory
* 修改 SessionKey 构建逻辑:统一使用 type="cli",channel_id 默认 "default",chat_id 作为 session_id 使用
* Implement machine unique ID as default session ID for ov chat
* Remove unsupported --logs parameter from chat command
* 统一 Python 和 Rust CLI 的默认 session ID 生成逻辑
* 修改日志
* 去掉log依赖
* docs: add VikingBot quick start section to READMEs
* fix: use vikingbot chat instead of ov chat in READMEs
* Revert "fix: use vikingbot chat instead of ov chat in READMEs"
This reverts commit
|
||
|
|
847e86ac36 |
feat(bot):Refactoring, New Evaluation Module, Feishu channel Opt & Feature Enhancements (#428)
* feat: add ov chat command and refactor channel architecture - Add ChatChannel for interactive chat with User:/Bot: labels and thinking display - Add SingleTurnChannel for one-off -m mode with minimal output - Add StdioChannel for JSON-based IPC with Rust TUI - Rename 'vikingbot agent' to 'vikingbot chat' - Add Python 'ov chat' command that proxies to vikingbot chat - Add Rust 'ov chat' command that proxies to vikingbot chat - Refactor ChannelManager to support both config and direct channel addition - Update event types for better thinking/tool_call/tool_result display - Default session key: cli__chat__default * feishu channel opt * feishu channel opt * fix: IM channels only process RESPONSE messages - Update feishu, dingtalk, discord, email, qq, slack, telegram, whatsapp - Add filter in send() to skip thinking/tool_call/tool_result messages - Only process is_normal_message (RESPONSE type) * feat(tracing): add abstract trace decorator for session-aware observability - Add vikingbot/utils/tracing.py with backend-agnostic @trace decorator - Use ContextVar for session_id propagation through nested calls - Implement lazy binding to Langfuse via propagate_attributes - Update AgentLoop._process_message() to use @trace decorator - Simplify langfuse initialization logging in commands.py - Add session_id parameter to litellm_provider.chat() - Clean up redundant code in utils/helpers.py The trace decorator abstracts observability concerns, allowing future switching between Langfuse, OpenTelemetry, or other backends without modifying business logic. 🤖 Generated with [Claude Code](https://claude.com/claude-code) * feat: add tracing base on langfuse * 1. feishu channel opt 2. support multi users * 1. feishu channel opt 2. support multi users * 1. feishu channel opt 2. support multi users * fix(langfuse): use module-level propagate_attributes from SDK v3 The propagate_attributes function is a module-level export in Langfuse Python SDK v3, not a method of the Langfuse client instance. - Import propagate_attributes from langfuse module - Remove misleading warning when propagate_kwargs is empty - Reduce log noise by changing info logs to debug Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: unify workspace_id naming and improve tracing integration Standardize terminology and clean up tracing/Langfuse integration: - Rename sandbox_key to workspace_id across agent, memory, and tools - Delete deprecated langfuse_decorator.py (superseded by tracing.py) - Fix Langfuse v3 SDK propagate_attributes usage (module-level function) - Improve session_id extraction with better signature inspection - Reduce log noise in Langfuse attribute propagation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * 1. feishu channel opt 2. support multi users * feat(tracing): add user_id extraction support for Langfuse Add extract_user_id parameter to @trace decorator to enable user tracking in Langfuse. This allows grouping traces by user in the UI. - Add extract_user_id parameter to @trace decorator - Extract user_id from InboundMessage.sender_id - Pass user_id to Langfuse propagate_attributes - Update loop.py to use new lambda style for session_id extraction Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix http server * fix http server * fix http server * fix(langfuse): change propagate_attributes log level to info * feat(tracing): add @observe decorator to create Langfuse traces * fix(tracing): apply @observe at decoration time, not runtime * fix http server * fix(tracing): add detailed diagnostics for Langfuse client status * fix(langfuse): add diagnostic logging for client initialization * fix(langfuse): add diagnostic logging for config check * 飞书chat * opt http client * docs(readme): add Langfuse observability configuration guide * opt http client * opt http client * opt http client * opt http client * opt http client * fix(langfuse): fix token reporting to use usage_details format - Change usage to usage_details for Langfuse v3 SDK compatibility - Add support for cache_read_input_tokens (OpenAI/Anthropic prompt caching) - Add logger import and debug logging for token reporting Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * opt http client * eval command * eval command * eval command * md * cleanup(tests): remove obsolete test suite and related docs Remove the entire legacy test suite including: - Unit tests (test_agent, test_bus, test_channels, test_config) - Integration tests (test_agent_e2e) - Test fixtures, utilities, and OpenSpec config - Test runner tools (tester/) These tests were outdated and no longer maintained. Future testing should use a modern testing framework. * docs(readme): update configuration paths and chat examples - Update default config path to ~/.openviking/ov.conf - Add interactive chat mode examples (--no-markdown, --logs flags) - Remove VKE deployment guide section - Update Docker volume mount paths * docs(agent): add comprehensive docstrings to core classes Add detailed Google-style docstrings to: - AgentLoop.__init__() - parameters and examples - AgentLoop._publish_thinking_event() - event publishing - ToolContext - all attributes documented - Tool base class - complete usage example Improves code maintainability and IDE support. * feat(server): add bot API proxy support and CLI integration Server changes: - Add --with-bot flag to enable Bot API proxy - Register bot_router at /bot/v1 prefix - Add bot_api_url configuration option - Initialize bot proxy in bootstrap process CLI changes: - Update ov chat endpoint to /bot/v1/chat - Fix UTF-8 input handling - Add endpoint configuration via env var * feat(core): improve agent tools, tracing and session management - Enhance tool registry with better error handling - Update OpenAPI channel configuration - Improve session manager with better state handling - Enhance Langfuse tracing integration with diagnostic logging * feat(cli): add agent tools and improve CLI commands - Enhance CLI commands with new agent tool integration - Move plugin analysis doc to docs directory - Add RFC for OpenViking CLI ov-chat command - Add server restart script Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * add topic feishu channel * add locomo run * opt prompt * opt prompt * opt prompt * opt prompt * opt prompt --------- Co-authored-by: chenjunwen <chenjunwen@bytedance.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: fujiajie.1030 <fujiajie.1030@bytedance.com> |
||
|
|
1b175344e8 |
Feature/vikingbot_opt: OpenAPI interface standardization;Feishu multi-user experience; observability enhancements; configuration system modernization. (#419)
* feat: add ov chat command and refactor channel architecture - Add ChatChannel for interactive chat with User:/Bot: labels and thinking display - Add SingleTurnChannel for one-off -m mode with minimal output - Add StdioChannel for JSON-based IPC with Rust TUI - Rename 'vikingbot agent' to 'vikingbot chat' - Add Python 'ov chat' command that proxies to vikingbot chat - Add Rust 'ov chat' command that proxies to vikingbot chat - Refactor ChannelManager to support both config and direct channel addition - Update event types for better thinking/tool_call/tool_result display - Default session key: cli__chat__default * feishu channel opt * feishu channel opt * fix: IM channels only process RESPONSE messages - Update feishu, dingtalk, discord, email, qq, slack, telegram, whatsapp - Add filter in send() to skip thinking/tool_call/tool_result messages - Only process is_normal_message (RESPONSE type) * feat(tracing): add abstract trace decorator for session-aware observability - Add vikingbot/utils/tracing.py with backend-agnostic @trace decorator - Use ContextVar for session_id propagation through nested calls - Implement lazy binding to Langfuse via propagate_attributes - Update AgentLoop._process_message() to use @trace decorator - Simplify langfuse initialization logging in commands.py - Add session_id parameter to litellm_provider.chat() - Clean up redundant code in utils/helpers.py The trace decorator abstracts observability concerns, allowing future switching between Langfuse, OpenTelemetry, or other backends without modifying business logic. 🤖 Generated with [Claude Code](https://claude.com/claude-code) * feat: add tracing base on langfuse * 1. feishu channel opt 2. support multi users * 1. feishu channel opt 2. support multi users * 1. feishu channel opt 2. support multi users * fix(langfuse): use module-level propagate_attributes from SDK v3 The propagate_attributes function is a module-level export in Langfuse Python SDK v3, not a method of the Langfuse client instance. - Import propagate_attributes from langfuse module - Remove misleading warning when propagate_kwargs is empty - Reduce log noise by changing info logs to debug Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: unify workspace_id naming and improve tracing integration Standardize terminology and clean up tracing/Langfuse integration: - Rename sandbox_key to workspace_id across agent, memory, and tools - Delete deprecated langfuse_decorator.py (superseded by tracing.py) - Fix Langfuse v3 SDK propagate_attributes usage (module-level function) - Improve session_id extraction with better signature inspection - Reduce log noise in Langfuse attribute propagation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * 1. feishu channel opt 2. support multi users * feat(tracing): add user_id extraction support for Langfuse Add extract_user_id parameter to @trace decorator to enable user tracking in Langfuse. This allows grouping traces by user in the UI. - Add extract_user_id parameter to @trace decorator - Extract user_id from InboundMessage.sender_id - Pass user_id to Langfuse propagate_attributes - Update loop.py to use new lambda style for session_id extraction Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix http server * fix http server * fix http server * fix(langfuse): change propagate_attributes log level to info * feat(tracing): add @observe decorator to create Langfuse traces * fix(tracing): apply @observe at decoration time, not runtime * fix http server * fix(tracing): add detailed diagnostics for Langfuse client status * fix(langfuse): add diagnostic logging for client initialization * fix(langfuse): add diagnostic logging for config check * 飞书chat * opt http client * docs(readme): add Langfuse observability configuration guide * opt http client * opt http client * opt http client * opt http client * opt http client * fix(langfuse): fix token reporting to use usage_details format - Change usage to usage_details for Langfuse v3 SDK compatibility - Add support for cache_read_input_tokens (OpenAI/Anthropic prompt caching) - Add logger import and debug logging for token reporting Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * opt http client * eval command * eval command * eval command * md * cleanup(tests): remove obsolete test suite and related docs Remove the entire legacy test suite including: - Unit tests (test_agent, test_bus, test_channels, test_config) - Integration tests (test_agent_e2e) - Test fixtures, utilities, and OpenSpec config - Test runner tools (tester/) These tests were outdated and no longer maintained. Future testing should use a modern testing framework. * docs(readme): update configuration paths and chat examples - Update default config path to ~/.openviking/ov.conf - Add interactive chat mode examples (--no-markdown, --logs flags) - Remove VKE deployment guide section - Update Docker volume mount paths * docs(agent): add comprehensive docstrings to core classes Add detailed Google-style docstrings to: - AgentLoop.__init__() - parameters and examples - AgentLoop._publish_thinking_event() - event publishing - ToolContext - all attributes documented - Tool base class - complete usage example Improves code maintainability and IDE support. * feat(server): add bot API proxy support and CLI integration Server changes: - Add --with-bot flag to enable Bot API proxy - Register bot_router at /bot/v1 prefix - Add bot_api_url configuration option - Initialize bot proxy in bootstrap process CLI changes: - Update ov chat endpoint to /bot/v1/chat - Fix UTF-8 input handling - Add endpoint configuration via env var * feat(core): improve agent tools, tracing and session management - Enhance tool registry with better error handling - Update OpenAPI channel configuration - Improve session manager with better state handling - Enhance Langfuse tracing integration with diagnostic logging * feat(cli): add agent tools and improve CLI commands - Enhance CLI commands with new agent tool integration - Move plugin analysis doc to docs directory - Add RFC for OpenViking CLI ov-chat command - Add server restart script Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: DuTao <dutao.1786@bytedance.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: fujiajie.1030 <fujiajie.1030@bytedance.com> |
||
|
|
91a5cb4ec7 | docs: add uv prerequisites to bot readme (#341) | ||
|
+6 |
006a06f5db |
feat/vikingbot: viking bot mvp based on openviking (#335)
* init vikingbot * fix sandbox bug * fix sandbox bug * fix sandbox bug * 默认关闭沙箱 * update * chore: add .gitignore for Node.js project Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat: Improve workspace management and sandbox behavior - Change default workspace to ~/.vikingbot/workspace/default - Lazy initialize workspace (create on first use, not on onboard) - Sandbox directories are parallel to default/ directory - Sandbox copies templates from source workspace directly - Pre-create sandbox directory when conversation starts - Add get_sandbox_parent_path and get_source_workspace_path helpers - Update SandboxManager to accept source_workspace_path - Update ContextBuilder for lazy initialization - Update onboard command to not create workspace upfront - Update gateway and tui commands for new sandbox behavior - Fix WebSearchTool import (from websearch module, not web) - Restrict to workspace default value changed to true * feat: Multiple feature enhancements ## New Features ### Workspace & Sandbox Improvements - Change default workspace to ~/.vikingbot/workspace/default - Add lazy initialization (create workspace on first use) - Make sandbox directory parallel to default in workspace/ - Copy templates and skills from source workspace instead of main workspace - Create sandbox directory early on conversation start - Change restrict_to_workspace default to true - Ensure ContextBuilder/MemoryStore/SkillsLoader read from sandbox when enabled ### WebSearch Tool - Add WebSearchTool using ddgs library - Add websearch/ tool directory with implementation - Add tests/test_websearch.py - Add ddgs dependency to pyproject.toml ### New Tools - Add ImageTool for image processing - Add MemoryTool for memory management ### Channels - Add multi-channel support design documentation (specs/04-channels.md) - Update all channel implementations for multi-channel support - Update channel manager - Update base channel class ### Docker & Build - Move Dockerfile to docker/ directory - Add docker/ directory with build files - Add package.json/package-lock.json for Node.js dependencies - Add srt-wrapper.mjs for SRT backend ### Scripts Organization - Create scripts/ directory - Add clean_vikingbot.py cleanup script - Add README_CLEANUP.md documentation - Remove core_agent_lines.sh (moved or deprecated) ### Skills - Add github-proxy skill - Update skills/README.md ### Agent Enhancements - Update AgentLoop max_iterations from 20 to 50 - Add vikingbot/agent/agents/ directory - Update subagent implementation - Update filesystem/shell/web tools - Update config loader - Update SRT sandbox backend - Update session manager ### Specs & Documentation - Update specs/02-agent.md (max_iterations) - Add multi-channel design to specs/04-channels.md * 完善沙箱工具测试及策略优化 - 新增沙箱工具单元测试(test_sandbox_tools.py) - 优化ExecTool安全策略:沙箱模式下跳过本地安全守卫 - 更新spec文档说明路径处理和删除文件策略 - 更新现有测试以匹配实际代码结构 * 修改沙箱默认策略:allowWrite默认为["/"] - 允许沙箱内文件的写入/删除操作 - 提高沙箱使用便利性 * 修复沙箱安全漏洞:限制allowWrite为沙箱工作目录 - 移除默认allowWrite: ["/"]的危险配置 - 在SRT后端动态添加沙箱工作目录到allowWrite - 确保只能操作沙箱内的文件,防止访问宿主机文件系统 * 更新spec文档:说明沙箱文件系统安全策略 - 说明SRT后端动态添加沙箱工作目录到allowWrite - 明确沙箱内可操作、沙箱外被阻止的行为 - 记录默认配置为空列表,无需手动配置 * 默认开放/tmp目录权限给沙箱用户 - 在SRT后端动态添加/tmp到allowWrite - 沙箱用户可以在/tmp目录下创建临时文件 * 添加VikingBot Gateway启动脚本 - 自动激活虚拟环境 - 自动kill旧进程 - nohup后台启动并输出日志到~/logs/output.log - 自动tail日志文件 * 自动继承NODE_PATH环境变量到SRT沙箱进程 - 在启动SRT进程时传递完整的环境变量 - 确保@anthropic-ai/sandbox-runtime能被正确找到 * feat: 添加Console Web UI和部署配置 - 新增Console Web UI模块,基于FastAPI - 添加配置管理、会话管理、工作区文件浏览API - 集成HTMX前端,提供简洁的Web界面 - 新增deploy目录,包含本地、ECS、VKE部署配置 - 重构docker目录结构,移动到deploy/local - 更新spec文档,添加13-console.md - 更新飞书通道,支持图片消息接收 - 添加fastapi和uvicorn依赖 * feat: improve deployment configuration and add TOS support - Add UV_HTTP_TIMEOUT to Dockerfile - Change service port from 18790 to 18791 - Add health check endpoints to liveness/readiness probes - Add TOS storage configuration and PV/PVC creation logic - Add command timeout handling in vke_deploy.py Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat: improve console server and auto-onboard logic - Refactor onboard command to extract _run_onboard_logic - Add auto-onboard in gateway command when config not found - Add /health and /healthz endpoints for Kubernetes probes - Change default host from 127.0.0.1 to 0.0.0.0 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * fix: correct path construction in workspace API and frontend - Fix relative path construction in list_files API - Fix file path construction in frontend index.html Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat: multiple improvements including media storage and session workspace ## 改动 1:媒体文件保存位置改为 workspace/media - 改动:所有频道(Feishu, Telegram, Discord)现在将媒体文件保存到 workspace/media 目录,而不是 ~/.vikingbot/media - 原因:媒体文件放在用户的 workspace 里面更合适,更容易管理和访问,也符合工作区的概念 ## 改动 2:Session workspace 初始化逻辑 - 改动:新增 session workspace 初始化逻辑,确保 ~/.vikingbot/workspace/{session_id} 目录在不存在时创建并复制模板,存在时跳过 - 原因:每个 session 应该有自己独立的 workspace,并且在创建时初始化模板文件(.md 和 skills 目录) ## 改动 3:其他改进 - Sandbox manager 改进 - SRT 后端改进 - Docker 配置更新 - Console UI 改进 - 新增 spec 文档 - 新增 .dockerignore Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat: 沙箱系统重构和优化 - 重构沙箱配置:去掉 enabled 开关,默认 backend 改为 direct,默认 mode 改为 shared - 新增沙箱后端:direct(直接执行)、opensandbox(Alibaba OpenSandbox)、aiosandbox(agent-sandbox SDK) - 优化 SRT 后端:文件操作通过 wrapper 进行,受沙箱规则保护;pwd 返回原始路径 - 优化 Direct 后端:重写文件操作方法,绝对路径直接使用 - 优化 AIO Sandbox 后端:修改路径处理,主目录可配置 - 移动 skills 目录:从 vikingbot/skills 移动到 workspace/skills,结构更清晰 - 更新 BUILTIN_SKILLS_DIR 路径:指向新的 workspace/skills 位置 - 更新 Console UI:去掉 Enable Sandbox 复选框,添加 Direct 选项 - 更新 Session Manager:去掉 enabled 检查,根据 mode 确保 workspace - 更新 Agent Loop:每次消息重新初始化 ContextBuilder 等组件,支持动态 workspace - 新增 spec 文档:16-sandbox-backends.md(沙箱后端配置指南)、17-vke-deployment.md(VKE 部署指南) - 删除旧 spec 文档:11-sandbox-integration.md、15-opensandbox-integration.md - 删除临时测试脚本:scripts/ 目录下的临时测试文件 - 更新测试文件:适配最新代码,MockBackend 添加缺少的方法 * feat: add html2text and beautifulsoup4 dependencies for HTML processing Adds html2text for HTML to Markdown conversion and beautifulsoup4 for HTML parsing, enabling richer content handling in Feishu channel. * feat: improve multi-channel matching logic in channel manager Supports matching channels by shorthand type name (e.g., 'feishu' matches 'feishu:cli_xxx') for better backward compatibility when multiple channels of the same type are configured. * feat: improve message tool default channel handling Adds better logic for handling the default channel, preferring the complete channel ID (including app_id) over shorthand when available, ensuring messages are sent to the correct channel when multiple channels of the same type are configured. * feat: add HTML to Markdown conversion and rich image support in Feishu channel Adds comprehensive HTML processing capabilities: - Image format validation using magic numbers to prevent uploading non-image content - HTML to Markdown conversion using readability-lxml and html2text - Markdown image extraction and upload to Feishu, with proper img element replacement - URL trailing punctuation stripping for more reliable downloads - Full support for rich content with images in Feishu interactive cards * feat: integrate OpenCode for enhanced AI capabilities Add OpenCode integration to enable more powerful AI features and code understanding. Why this change: - OpenCode provides advanced codebase analysis and session management capabilities - Enables better context understanding across sessions - Adds hooks system for extensibility What changed: - Added opencode-ai, beautifulsoup4, html2text dependencies - Implemented hooks system with Hook base class and HookManager - Added built-in OpenCode integration hooks - Added opencode_mount module for FUSE-based OpenCode data access - Added example files for hook integration - Added test files for OpenCode integration - Added OpenCode skill to workspace - Added hooks specification documentation Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * refactor: introduce SessionKey for multi-session isolation and better type safety Major refactor to replace channel:chat_id strings with SessionKey data structure. Why this change: - Original channel:chat_id string format was error-prone and not type-safe - Need proper isolation for multiple sessions from different channels - Enable per-session sandbox isolation - Better support for multiple instances of the same channel type What changed: - New SessionKey model with type, channel_id, chat_id fields (frozen for immutability) - Refactored InboundMessage and OutboundMessage to use SessionKey instead of separate channel/chat_id - Updated all channel implementations to use SessionKey - Refactored agent loop, context builder, and tools with SessionKey support - Added set_session_key() method to Tool base class for context-aware operations - Updated sandbox manager for per-session isolation - Refactored session manager to use SessionKey as key - Updated spec documentation (01, 02, 03, 04, 07) - Updated default model to openai/doubao-seed-2-0-pro-260215 - Changed default workspace to ~/.vikingbot/workspace/shared Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * chore: remove unused console screenshot files Remove vikingbot-console-dashboard.png and vikingbot-console-full.png which are no longer needed. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * fix: adjust default config values Adjust default configuration values: - Change default workspace back to ~/.vikingbot/workspace - Increase heartbeat interval from 5 minutes to 10 minutes - Enable OpenCode hooks by default Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat: add default_skills config with all built-in skills Add default_skills configuration to AgentDefaults with all 9 built-in skills: opencode, github-proxy, github, memory, cron, weather, tmux, skill-creator, summarize. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * opencode skill默认关闭 * 修改readme * 修复vikingbot agent和tui的爆粗9哦 * add openviking tools * add openviking tools * 优化hook * 优化hook * add openviking tools * add openviking tools * add openviking tools * add openviking tools * add openviking tools * support skill/tool memory * hooks提交一版 * hooks提交一版 * update * add openviking tools * add openviking tools * update readme * add openviking tools * add openviking tools * openviking memory * ov Server * ov Server * tools message * tools message * tools message * support skill memory * update part * refactor(deploy): 优化Docker部署配置 - 重构Dockerfile,优化构建流程和镜像大小 - 新增deploy/docker/Dockerfile,提供更灵活的构建配置 - 重构build-image.sh脚本,简化镜像构建流程 - 修改build-multiarch.sh,支持多架构构建 - 重构deploy.sh部署脚本,改进部署流程 - 新增docker-entrypoint.sh,优化容器启动流程 - 重构stop.sh脚本,改进容器停止逻辑 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * refactor(deploy): 重构VKE部署流程,移除Python脚本改用Shell - 移除README.md和VKE_DEPLOY_README.md文档 - 新增deploy.sh Shell脚本替代原Python部署脚本 - 移除test.sh测试脚本 - 简化vke_deploy.example.yaml配置文件 - 移除vke_deploy.py和vke_with_opensandbox_deploy.py Python脚本 - 整体简化VKE部署流程,使用Shell脚本替代Python实现 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * feat(agent): 增强Agent工具功能 - 修改context.py,优化上下文构建 - 修改tools/base.py,改进工具基类 - 修改tools/image.py,增强图像处理工具功能 - 修改tools/registry.py,优化工具注册机制 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * refactor(channels): 重构Channels模块,优化飞书渠道实现 - 重构base.py,改进基础Channel类实现 - 大幅重构feishu.py,优化飞书渠道的消息处理流程 - 重构utils.py,改进渠道工具函数 - 整体提升Channels模块的可维护性和性能 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * refactor: 优化Console和Hooks模块 - 修改console/console_gradio_simple.py,优化控制台界面 - 修改hooks/builtins/openviking_hooks.py,改进钩子实现 - 修改hooks/manager.py,优化钩子管理器 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> * tools message * tools message * 添加从镜像安装的方法 * tools message * 添加从镜像安装的方法 * 版本限制不超过3.13(openviking 3.14上没有) * 版本限制不超过3.13(openviking 3.14上没有) * 版本限制不超过3.13(openviking 3.14上没有) * 版本限制不超过3.13(openviking 3.14上没有) * 版本限制不超过3.13(openviking 3.14上没有) * vikingbot * 优化图片生成逻辑 * vikingbot * vikingbot * vikingbot * vikingbot * vikingbot * 飞书图片部分优化 * update tool * vikingbot * feat(skill): support zip upload for add_skill API (#312) * feat(skill): support zip upload for add_skill API - Add temp_path field to AddSkillRequest model - Add zip extraction support in SkillProcessor._parse_skill() - Add smart dual-mode upload in AsyncHTTPClient.add_skill() This enables remote HTTP clients to upload skill directories as zip files, following the same pattern as add_resource. * feat(cli): add zip upload support for add_skill in Rust CLI - Add smart dual-mode upload in add_skill() (same as add_resource) - Fix missing auth headers in upload_temp_file() - Reuse build_headers() to avoid code duplication * feat(agfs): agfs新增binding client (#304) * feat(agfs): agfs新增binding client fix: viking_fs适配binding client, 简化agfs相关参数 * feat(agfs): agfs binding-client支持windows * docs: 补充agfs binding-client用法 * fix(agfs): 默认带上agfs binding-client依赖库; setup.py支持编译该库 * fix(agfs): add agfs binding-client linux so * fix(agfs): code format * fix(parser): remove redundant mkdir in DirectoryParser (#318) * fix: use original directory name for temp URI lookup in TreeBuilder (#319) _finalize_from_temp() applies sanitize_segment() to the temp document directory name (e.g. __test__ -> _test_), then uses the sanitized name to construct temp_doc_uri. However, the actual temp directory retains its original (unsanitized) name, causing FileNotFoundError during _move_temp_to_dest(). Use the original directory name for temp_doc_uri (locating the temp directory), while continuing to use the sanitized name for candidate_uri (the final destination URI). * fix: handle is_healthy() AttributeError when not initialized (closes #298) (#322) ObserverService.is_healthy() threw AttributeError when called before initialize() because self._config and self._vikingdb were None. - Add None guards to vikingdb and vlm properties returning unhealthy ComponentStatus instead of crashing - Add early return False in is_healthy() when dependencies not ready - Add 4 tests covering the uninitialized state Co-authored-by: r266-tech <r266-tech@users.noreply.github.com> * feat(docs,ci): 完善云上部署文档与 Docker CI 流程 (#320) - release workflow 新增 Docker 镜像构建推送至 GHCR - 重写 examples/cloud/GUIDE.md 云上部署指南,补充架构概览、systemd/Docker/Helm 三种部署方式、多租户管理、FAQ 等章节 - ov.conf.example 占位符改为 <your-xxx> 格式,移除 rerank 配置 - 中英文部署文档(docs/zh|en/guides/03-deployment.md)对齐:Docker 改用 GHCR 预构建镜像,Kubernetes 改用 Helm chart,并引用 GUIDE.md Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(agfs): import AGFSBindingClient error不阻塞http client使用 (#324) * feat: Enhance add-resource functionality in cli and add unit tests (#323) * tests(parsers): add unit tests for office extensions within add_resource directory * feat: enhance add-resource functionality with new options - Updated CLI commands to support additional parameters: --ignore-dirs, --include, --exclude, and --no-directly-upload-media. - Modified resource processing to handle new parameters for directory scanning and file inclusion/exclusion. - Improved README documentation for CLI usage and examples. This update allows for more flexible resource management and better control over file uploads. * feat(cli): enhance add-resource command with new options - Added support for additional parameters: --no-strict, --ignore-dirs, --include, --exclude, and --no-directly-upload-media. - Updated the handling of resource addition to accommodate new options for improved directory scanning and file management. - Enhanced README documentation with examples for the new functionality. This update provides users with greater flexibility in managing resources. * chore(cli): remove unused cargo feature for edition 2024 in Cargo.toml * chore(pyproject): update tag_regex in setuptools_scm configuration for version parsing * feat: expose session(must_exist) and session_exists() on public API (#321) The internal Session.exists() and SessionService.get() (added in #235) provide session existence checks at the service layer, but these are not accessible through the public client API (BaseClient and its implementations). This commit exposes two opt-in mechanisms at the public API level: 1. session(must_exist=True) — raises NotFoundError if the session directory does not exist. Default must_exist=False preserves full backward compatibility. 2. session_exists(session_id) — async convenience method returning True/False without loading the full session. Both delegate to the existing Session.exists() internally. No changes to session.py or session_service.py — this is purely a public API surface addition. Files changed (7): - base.py: updated abstract interface - local.py: must_exist via Session.exists(), session_exists() delegate - http.py: must_exist via get_session() HTTP call, session_exists() - sync_http.py: pass-through - async_client.py: session(must_exist) + session_exists() - sync_client.py: pass-through - test_session_lifecycle.py: 6 new tests * feat: wrapper ov command (#325) Co-authored-by: openviking <openviking@example.com> * Feat/vectordb interface refactor (#327) * refactor: route vector access through semantic gateway * refactor vector storage to collection-bound drivers * refactor(storage): collapse gateway/interface into single-collection backend * refactor vectordb backend to single-collection adapter model * chore: align naming with vikingdb and rename session test * fix * docs: add guide for integrating third-party vectordb adapters * vikingbot * vikingbot * vikingbot * read * vikingbot * vikingbot * 更新readme * vikingbot * vikingbot * vikingbot * 格式化 + 生成图片工具增加开关 直接发给用户(默认开) * upodate --------- Co-authored-by: chenjunwen <chenjunwen@bytedance.com> Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> Co-authored-by: fujiajie.1030 <fujiajie.1030@bytedance.com> Co-authored-by: SeanZ <zhangxu.shon@bytedance.com> Co-authored-by: chuanbao666 <sunchuanbao@bytedance.com> Co-authored-by: Hon Jia Xuan <hjaxuan@gmail.com> Co-authored-by: ponsde <2126824294@qq.com> Co-authored-by: r266-tech <r2668940489@gmail.com> Co-authored-by: r266-tech <r266-tech@users.noreply.github.com> Co-authored-by: Qin Haojie <qinhaojie.exe@bytedance.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Eric Shaw <shaoeric@foxmail.com> Co-authored-by: MaojiaSheng <shengmaojia@bytedance.com> Co-authored-by: openviking <openviking@example.com> Co-authored-by: kkkwjx <zhoujiahui.01@bytedance.com> |