Release v2.3.0 (#3436)
🐛 Bugfix: Guard memory_user_config against None in store/search memory tools (#3359)
🐛 Bugfix: Guard memory_user_config against None in store/search memory tools
Add None checks before accessing memory_user_config attributes in StoreMemoryTool and SearchMemoryTool. When config is unavailable, apply conservative default (agent_share_option=’never’) to prevent unintended cross-agent memory sharing.
- fix(memory): restore hidden tabs and hide Tenant Shared in speed mode
- Fix nested array syntax bug that hid Tenant Shared and Agent Shared tabs
- Conditionally hide Tenant Shared tab when isSpeedMode=true (no tenant concept)
- All 5 tabs now properly visible in non-speed mode
- 4 tabs visible in speed mode (Tenant Shared hidden)
- test: add coverage for memory None guard, duplicate cleanup, and system tool filtering
- test_store_memory_tool: add None config, _run_coroutine tests
- test_search_memory_tool: add None config, _run_coroutine tests
- test_memory_config_service: add duplicate record cleanup tests
- test_tool_configuration_service: add SYSTEM_MANAGED_TOOL_NAMES filter test
✨Feat:Integrate openjiuwen’s intelligent agent evaluation function close#3188 (#3356)
✨Feat:add prompt optimization
🐛Bugfix: dockerbuild failed when running pipefail in python3_11
🔨Optimize: Optimize prompt optimization display page and interaction methods
✨Feat:add agent evaluator
🐛Bugfix: fix fronted and report download
🐛 Bugfix: Add xlrd dependency and improve openjiuwen SDK adapter to handle circular imports more effectively. Update import paths in frontend components for consistency.
♻️Refactor: frontend style refact
🔨Rename evaluator sql
♻️ Refactor: Optimize the frontend page for agent evaluation
♻️Refactor: update modal mask properties for consistency
♻️ Refactor: Simplify locale handling and clean up imports in OAuthCompletePage and UserManageComp
✨ Feature: Enhance agent evaluation with Chinese output directive and new database migrations
🔧 Update: Change button variant from “outline” to “outlined” in EvaluationConfigCard and EvaluationReportCard components; enhance datetime handling in test_client.py to ensure correct timezone representation.
🧪Test: Add unit tests for the jiuwen_sdk_adapter to verify module-level behavior and side effects.
🔧 Update: Refactor the mock invocation in test_jiuwen_sdk_adapter to use an async function for better compatibility with asynchronous tests.
🧪 Test: Add comprehensive unit tests for evaluation set functionality, including CRUD operations and Excel parsing, to ensure robust behavior and error handling.
🧪 Test: Add extensive unit tests for Jiuwen SDK adapter and evaluation services, covering lazy imports, log envelope parsing, and case validation to enhance error handling and ensure robust functionality.
🔧 Update: Consolidate judge_model_id addition into agent_evaluation_t migration, removing the separate migration file for improved installation simplicity and ensuring idempotency in existing environments.
🔧 Update: Introduce a consolidated migration file for agent evaluation, combining previous separate migrations into a single idempotent script for improved installation simplicity and clarity. This includes the addition of evaluation tables and the pass_status column, ensuring all necessary structures are created in one step.
fix:Fix share link copy fallback (#3340)
feat: add conversation share
add ut test
add conversation share db tests
Fix share link copy fallback
🐛 Bugfix: Update homepage redirect link (#3376)
Bugfix:add crypto.randomUUID() fallback in http
Bugfix: Update homepage redirect link
🐛 Bugfix: Tool debugging bug fixes. (#3371)
[Specification Details]
- Standardizing the styling of debugging pop-ups in frontend tools.
- Tool debugging configuration parameters are retrieved from the store rather than from the API each time.
🐛 Bugfix: W11 capacity suggestion for batch gear modals + model add/edit fixes (#3355)
fix(model): stop sending hidden form.provider as modelFactory on single-add
Single-add mode has no provider dropdown — form.provider stays at its hidden default ‘modelengine’, which was forwarded as modelFactory to the backend, overriding the Pydantic default ‘OpenAI-API-Compatible’.
Introduced in 4becd6992 which added modelFactory: form.provider to both save paths but missed the isBatchImport guard already present on the suggest-capacity path in the same commit.
STT/TTS paths are unaffected — they set modelFactory from form.sttProvider/ttsProvider downstream. Embedding is unaffected — backend _infer_model_factory overrides from base_url.
- refactor: move generate_backfill_sql.py to deploy/sql/migrations/
The script’s sole purpose is generating SQL migration files that live in deploy/sql/migrations/. Keeping the generator alongside its output is more natural than a standalone top-level scripts/ directory.
- Updated _project_root path (three levels up instead of one)
- Updated docstring usage path and generated SQL self-reference
- Removed empty scripts/ directory
- fix: preserve embedding legacy inference, extend VLM only
- Embedding/multi_embedding keeps old logic (only dashscope recognized)
- VLM uses extended inference so tokenpony URLs can trigger catalog healthcheck
- Prevents unintended behavior change for embedding models
fix(ui): reorganize agent config layout - maxSteps+provideSummary on row1, outputReserve+verification on row2
test(W11): add normalize_model_name, _fuzzy_catalog_match, and Pydantic constructor-audit tests
Spec ‘Tests and Release Evidence’ explicitly requires these three test groups. Previously they were only exercised indirectly through suggest_capacity integration paths.
normalize_model_name (14 parametrized cases + convergence test):
- Case folding, separator collapsing (dash/underscore/dot/slash/space)
- Whitespace trimming, empty string, mixed separators
- Catalog entry convergence: full-name variants (GPT-4o/gpt-4o) and final-segment variants (Kimi-K2.6 vs Pro/moonshotai/Kimi-K2.6)
_fuzzy_catalog_match (6 cases):
- Normalized name match, unique final-segment fallback
- Ambiguous final-segment rejection (two entries same final segment)
- Empty catalog, wrong provider, unrelated name
Pydantic constructor-audit (7 tests, skip when SDK deps unavailable):
- CapacitySuggestionFields: model_dump shape pin, all-optional defaults
- ModelCapacitySuggestionResponse: catalog_exact shape pin, none shape pin, invalid match_kind rejection
- CapacityCoverageBareModel: model_dump shape pin
- CapacityCoverageResponse: model_dump shape pin
Results: 37 passed, 7 skipped (Pydantic tests skip when consts.model import chain is unavailable due to missing SDK deps).
- feat(W11): add capacity suggestion to batch gear modals
Add manual check-button capacity suggestion to the two batch per-row gear modals, matching the single-model Add/Edit pattern:
ModelAddDialog.tsx (batch-add per-row gear):
- Add gear-scoped suggestion state (enabled, checking, suggestion, accepted, request ref for race-condition guard)
- Add handleGearSuggestCapacity with monotonic token stale guard
- Add applyGearCapacitySuggestion using capacityFormFromSuggestion
- Render Switch + Check button toolbar above ModelCapacityFields
- Pass suggestion/suggestionLoading/onUseSuggestion/acceptedSuggestion props to ModelCapacityFields
- handleSettingsSave writes accepted_suggestion_match_kind and accepted_capability_profile_version audit fields onto the row
- Clear suggestion state on gear modal open
ModelEditDialog.tsx (ProviderConfigEditDialog per-row gear):
- Add modelName/baseUrl props to interface
- Add suggestion state, handleSuggestCapacity, applyCapacitySuggestion
- Render Switch + Check button in supportsCapacityFields mode only (NOT in bulk-apply / hideCapacityFields mode)
- Pass suggestion props to ModelCapacityFields
- handleSave spreads accept-signal fields into onSave payload
- Add acceptedSuggestionMatchKind/acceptedCapabilityProfileVersion to onSave callback type
ModelDeleteDialog.tsx:
- Pass modelName and baseUrl from selectedSingleModel to per-model gear ProviderConfigEditDialog (NOT to provider-level invocation)
- Forward accepted_suggestion_match_kind and accepted_capability_profile_version in updateBatchModel payload
No auto-suggest — manual check button only, per spec.
- chore(i18n): remove dead agent.modelSelector.bareCapacity.subtitle key
Spec ‘Agent-Edit Model Selector Warning’ explicitly states V1 dropdown does not render a persistent subtitle. Code only uses .tooltip. Dead key.
- fix(W11): pass correct modelName/baseUrl to batch-edit gear suggestion
providerModel uses ‘id’ as model name (not model_name/name), and base_url is provider-level (not on individual model objects). The Check button was always disabled because both resolved to empty string.
Fix:
- modelName: add selectedSingleModel?.id as fallback
- baseUrl: use getProviderBaseUrlByType(deletingModelType) directly
- fix(W11): remove emptyHint Alert and i18n keys
The ‘provider list has no capacity info’ Alert is misleading in all contexts: batch-add unchecked models, batch-edit gear with check button, and single-edit with suggestion. Delete the component and both locale keys.
- fix(W11): reset suggestion state when switching models in batch-edit gear
ProviderConfigEditDialog’s useEffect already resets capacityForm on prop change but missed the suggestion state. Adding modelName/baseUrl to deps and resetting capacitySuggestion/acceptedCapacitySuggestion/ enabled/checking on every prop change prevents stale suggestion from the previous model leaking into the next gear dialog.
fix: preserve saved model capacity in batch edit
fix: persist batch gear model config edits
fix: pass provider hint for batch capacity suggestions
refactor: extract useCapacitySuggestion hook to deduplicate suggestion lifecycle
Consolidate the /suggest-capacity API call state machine (loading flag, race-condition token, suggestion result, accepted suggestion) that was duplicated across four call sites into a single reusable hook.
Call sites refactored:
- ModelEditDialog (top-level edit form)
- ProviderConfigEditDialog (per-row gear config edit)
- ModelAddDialog (top-level add form)
- ModelAddDialog (batch gear modal)
Net reduction: ~49 lines. No behavioral changes — the monotonic request token, error handling, and state cleanup logic are preserved identically.
- refactor: simplify capacity suggestion UI — remove noise tags and localize
Remove four low-value elements from the suggestion result panel:
- matchExplanation (unlocalized backend English)
- matchConfidence tag (high/medium/low)
- suggestedProvider tag (internal backend concept)
- noExplanation fallback text
Keep only what the operator needs:
- canonical model name (bold, first position)
- match kind (exact/fuzzy, without redundant ‘catalog’ prefix)
- ‘Use suggestion’ button
- fuzzy-match warning when canonical name not accepted
When no suggestion is found, show a localized description instead of the generic ‘no additional details’ fallback.
♻️ Refactor: Auto-create conversation when conversation_id is empty in agent/run (#3380)
Bugfix:add crypto.randomUUID() fallback in http
Bugfix: Update homepage redirect link
Refactor: Auto-create conversation when conversation_id is empty in agent/run
Bugfix: skip conversation auto-create in debug mode
修复单元测试
新增UT
新增UT测试
修改单元测试
Feat/opt agent context refactor v2 (#3383)
fix(context): use ContextManager uncompressed baseline for save% metric
Previously _last_uncompressed_est was set from input_messages which are already compressed by prepare_step, making est_raw_i always equal est_i and save% structurally ~0%. Now pull the truly-uncompressed token count from ContextManager.get_token_counts()[‘last_uncompressed’], recorded in compress_if_needed from the raw memory before compression.
Co-Authored-By: Claude noreply@anthropic.com
- chore: expose temp_scripts test harness for cross-machine sync
Add test scripts and fixtures used during context-manager refactor development. Only .py and .md files are tracked; .out run artifacts remain ignored via .git/info/exclude.
Co-Authored-By: Claude noreply@anthropic.com
- chore: add .gitignore in temp_scripts to suppress .out/.log artifacts
Co-Authored-By: Claude noreply@anthropic.com
- chore: allow common ops by default, keep rm/mv/git push as ask
Co-Authored-By: Claude noreply@anthropic.com
- refactor: extract SummaryTaskStep and ManagedRunContext into summary_step.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: extract pure budget/cache/fingerprint helpers into budget.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: extract LLMSummary class into llm_summary.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: extract StepRenderer and compress_history_offline into step_renderer.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: extract PreviousCompressor into previous_compression.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: extract CurrentCompressor into current_compression.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: extract compression stats functions into stats_export.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: extract ContextManager orchestrator into manager.py
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- fix: correct relative import depth for utils.token_estimation
The token_estimation module lives at core/utils/, not agents/utils/. From agent_context/ sub-package, three dots (…utils) are needed instead of two (..utils).
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: wire agent_context package with init.py re-exports and remove monolith
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: update test loader for agent_context package structure
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- refactor: update tests to use standalone functions from decomposed agent_context package
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- fix: align extra compression tests with v2 compressor behavior
The v2 PreviousCompressor and CurrentCompressor do not fall through from incremental to fresh when LLM returns None - they return PreviousCompressResult/CurrentCompressResult(summary_text=None) immediately. Updated tests P3, C4 to match this behavior. Updated P4 and C6_asymmetry to patch _summarize_pairs with PreviousCompressResult instead of raw tuples.
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- fix: correct relative import depth for context_runtime.contracts
The context_runtime package lives at core/context_runtime/, not agents/context_runtime/. From agent_context/ sub-package, three dots (…context_runtime) are needed instead of two (..context_runtime).
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- chore: untrack temp_scripts and settings.local before PR
Co-Authored-By: Claude noreply@anthropic.com
- chore: restore .claude/settings.local.json to match upstream
Co-Authored-By: Claude noreply@anthropic.com
- test: add coverage for stats_export, step_renderer, and budget modules
- New test_stats_export.py: 21 tests covering all pure functions (100%)
- New test_step_renderer.py: 24 tests covering truncation, rendering, compress_history_offline with mock LLM (49%→86%)
- Extended test_pure_functions.py: tests for _is_context_length_error, has_invoked_tools, message_role, trim_pairs_to_budget (92%→97%)
Overall agent_context package coverage: 71% → 81%
Co-Authored-By: Claude noreply@anthropic.com
- test: add llm_summary error-handling and output-format coverage (72%→100%)
Co-Authored-By: Claude noreply@anthropic.com
- test: cover _step_stream uncompressed estimation path in core_agent
Adds two tests:
- test_step_stream_uses_context_manager_for_uncompressed_est: verifies _last_uncompressed_est is pulled from ContextManager.get_token_counts()
- test_step_stream_falls_back_without_context_manager: verifies fallback to msg_token_count when context_manager is None
Co-Authored-By: Claude noreply@anthropic.com
- test: add fingerprint, change detection, and manager utility tests
Cover the largest untested blocks in manager.py:
- _normalize_for_fingerprint, _fingerprint
- _change_reasons, _stable_component_fingerprints
- _purpose_messages, _messages_from_memory
- _without_leading_stable_messages, _canonical_tools
- _estimate_tools_tokens, build_compressed_snapshot
- init keep_recent_steps cap, token estimation delegates
Manager.py coverage: 69% → 91%, overall: 82% → 92%
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
- chore: fix SonarCloud issues in test and llm_summary files
- test_pure_functions.py: use ValueError instead of generic Exception (S112)
- test_step_renderer.py: remove separator comments flagged as code (S125)
- llm_summary.py: use logger.exception() in except blocks (S8572)
- test_manager_fingerprint.py: replace unused variable with _ (S1481)
Co-Authored-By: Claude noreply@anthropic.com
- refactor: reduce duplication in step_renderer and fix Sonar warnings in compression and test files
- Extract _build_offline_user_prompt and _call_model_for_summary helpers from compress_history_offline
- Rename unused cache parameter to _cache with alias in current/previous compression (Sonar S1172)
- Replace unused idx variables with _ in test_cache_valid (Sonar S1481)
- Rename test methods to lowercase convention in test_compress_with_cache_extra (Sonar S100)
Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com
Co-authored-by: Claude noreply@anthropic.com Co-authored-by: liudongfei liudongfei4@huawei.com
Enhance image builds and monitoring with no-cache and cleanup (#3344)
Use CCS tag for mainland pushes
Add no-cache support to image builds
Revamp rollout checksums for env and image changes
Add root build wrapper for image and package builds
Sync monitoring defaults and env generation
Harden monitoring deploy and uninstall cleanup
Unify monitoring provider handling in deploy scripts
Clean up stale monitoring services during deployment
Restrict monitoring dashboard to superusers
Restrict monitoring dashboard to superusers
Relocate monitoring env files to deploy/env
Unify monitoring env handling for deploys
Show image tag examples in deployment source selector
同步修改文档
Refactor agent generation workflow
Add interactive deploy config mode
Enable default config mode in offline deploy wrapper
Stop persisting appVersion in deployment config
Add defaults mode to deploy wrappers
Co-authored-by: root root@DESKTOP-UARO3HF.localdomain Co-authored-by: hhhhsc
feat(ragflow): add RAGFlow search tool (#3378)
Release/v2.2.1 (#3269)
add_greeting_fields_to_agent-develop
feat(knowledge-base): add preserve_source_file and post-index source cleanup
Let knowledge bases opt out of keeping uploaded MinIO copies after indexing while retaining Elasticsearch chunks for retrieval. Default behavior remains preserve_source_file=true for backward compatibility.
- Add preserve_source_file column (init.sql + v2.2.0_0601 migration)
- Accept preserve_source_file on create/update and northbound/vector APIs
- Support document DELETE scope=source_only and source_available in listings
- Run cleanup_source Celery task when preserve_source_file is false
- UI: create-KB toggle, list tag, knowledge-base preview when copy is missing
- Update vector-database SDK docs and backend tests
- test(data_process): stub knowledge_db, redis_service, and redis in test_worker
Align setup_mocks_for_worker with test_tasks so importing backend.data_process.worker loads package init without real DB/redis deps.
test(data_process): shim cleanup_source for submit_process_forward_chain tests
remove duplicate import
fix: update unit tests for greeting_message and example_questions fields
add init.sql to sonar.properites
♻️ Improvement: API to MCP conversion service supports configuring headers. (#3194)
♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details]
- Front-end and back-end modifications
- ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details]
- Modify the frontend, after adding, set the HTTP headers to empty.
- Modify test cases.
- ♻️ Improvement: Enhance processing of ES index names in memory banks. (#3196)
[Specification Details]
- Replace all symbols in the index name that do not meet the rules with “_”.
- Modify test cases.
- feat: add active memory tools (StoreMemoryTool, SearchMemoryTool) (#3197)
- Implement StoreMemoryTool for explicit memory storage during agent reasoning
- Implement SearchMemoryTool for on-demand memory retrieval during conversations
- Integrate tools into agent creation flow (create_agent_info.py)
- Register tools in nexent_agent.py and tools/init.py
- Add MEMORY_OPERATION tool sign for proper categorization
- Fix memory_core.py cache key to include event loop ID (prevents cross-loop conflicts)
- Add comprehensive test coverage for both tools
- Add procedural memory verification documentation
Tools follow existing patterns: lazy imports, observer integration, error handling, and respect user memory preferences (agent_share_option, disabled_agent_ids).
Co-authored-by: Dallas98 40557804+Dallas98@users.noreply.github.com
🐛 Bugfix: skill names and descriptions never load to context (#3205)
🐛 Bugfix: skill names and descriptions never load to context
🐛 Bugfix: skill names and descriptions never load to context
🐛 Bugfix: skill names and descriptions never load to context
🐛 Bugfix: official skills not copied to target directory
🐛 Bugfix: official skills not copied to target directory
Feat: add selected count badges to tool/skill pool labels (#3206)
Co-authored-by: chase byzhangxin11@126.com
🐛 Bugfix: Fix attribution error when tool calling error (#3208)
✨ Feat: Add support for Word document generation, preview, and download (#3191)
Feat: Add support for Word document generation, preview, and download
Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
- Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
Restrict uploads to a known safe workspace/output directory
修改单元测试
修复单元测试
Bugfix: Store uploaded files in Minio for conversation messages to enable file visibility in history
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
✨Feat:Enhance prompt optimization by integrating openjiuwen and fix related bugs (#3190)
✨Feat:add prompt optimization
🐛Bugfix: dockerbuild failed when running pipefail in python3_11
🔨Optimize: Optimize prompt optimization display page and interaction methods
🐛Bugfix: fix dependencies replication
🎨:Optimize frontend prompts and loading interface
🔧 Refactor: Update imports and remove redundant ENABLE_JIUWEN_SDK import in prompt_service.py
🔧 Refactor: Correct import path for NexentCapabilityError and enhance test coverage for prompt optimization service
🔧 Refactor: Update import paths for exception handling and improve logging formatting in prompt_service.py
🔧 Refactor: Simplify lazy imports in jiuwen_sdk_adapter.py and update import paths in prompt_service.py
🔧 Refactor: Enhance Jiuwen SDK adapter handling and improve test stubs in prompt_service.py and related test files
🧪test:Pydantic model for PromptTemplateRequest in test_prompt_template_app.py
🔧 Refactor: Remove unnecessary dependency exclusions from pyproject.toml
🔧 Update: Upgrade huggingface_hub dependency version in pyproject.toml
🔧 Update: Exclude unnecessary transitive dependencies and adjust huggingface_hub version in pyproject.toml
🔧 Test: Add mock modules for unstructured inference and set up package paths in test files
🔧 Test: Enhance test setup by adding optional SDK mocks and cleaning up module imports in data processing tests
🔧 Test: Consolidate mock module setup for unstructured inference across multiple test files
🔧 Test: Remove unused optional SDK mocks from test configuration
🔧 Refactor: Clean up imports and enhance dynamic loading of fastmcp components in Docker client
📦update:sdk dependence update
Add CAS SSO integration and improve logout handling (#3072)
feat: add CAS SSO integration
Skip CAS logout when CAS_LOGOUT_URL is unset
取消转义
Improve CAS logout handling and confirm user logout
Disable account deletion for CAS users
Add CAS session init SQL and k8s config
clean code
Remove agent guardrails design doc from tracking
补充文档
Co-authored-by: hhhhsc
🐛Bugfix: Remove unnecessary dependency exclusions and upgrade huggingface_hub version in pyproject.toml (#3211)
refactor: move current time from system prompt to user message for prompt cache stability (#3203)
Remove {{time}} from all 4 prompt YAML templates (manager/managed × en/zh) and strip time_str from the context_utils pipeline (_format_app_context, build_skeleton_header_component, build_context_components, build_app_context_string). Also remove time from create_agent_info render kwargs and build_context_components call.
In CoreAgent.run, prepend [Current time: …] to self.task so the timestamp travels with the user message instead of being baked into the system prompt. This makes the rendered system prompt fully deterministic per (agent_id, tenant_id, version_no, language) — enabling prompt/KV cache hits across requests for the same agent config.
Sync test_context_utils.py: drop time_str= from 3 test cases.
Remove unused datetime imports from context_utils.py and create_agent_info.py.
- 🐛 Bugfix: Fixed the issue of being unable to add MCP services via containerization. (#3213)
[Specification Details]
- Modify the DEFAULT_NETWORK_NAME when starting the MCP service in the container to match the name in docker-compose.
- Modify the parameters passed to the add_mcp_service method; custom_headers defaults to None.
🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. (#3219)
🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details]
- The return parameter of the file_process method has changed and needs to be unpacked.
- 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details]
- Modify test case.
- 🐛 Bugfix: Fixed an issue where the MCP service could not be added correctly after updating the FastMCP version. (#3222)
[Specification Details]
- Add
kwargsto thecreate_httpx_clientfunction to accept all additional parameters.
🐛 Bugfix: Fix incomplete display of tenant resources page after window resize (#3215)
Move non-shadcn ui component to other folder
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix incomplete display of tenant resources page after window resize
Add agent marketplace repository and version pinning for sub-agents (#3239)
feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
- feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
- feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
- feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
feat(agent): add verification configuration for agents and update related components (#3174)
feat(agent): add verification configuration for agents and update related components
feat(model): update model type labels and add monitoring dashboard translations
🐛 Bugfix: Fix inability to select agent from agent space to edit (#3240)
Move non-shadcn ui component to other folder
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix inability to select agent from agent space to edit
Bugfix: Display correct version info when viewing agent details
Update data agent and ME CAS integration documentation (#3242)
补充dataagent对接文档
补充ME cas对接文档
补充ME cas对接文档
Co-authored-by: hhhhsc
✨ Add several northbound apis (#3223)
✨ Add several northbound apis
✨ Add several northbound apis
✨ Add several northbound apis
✨ Add several northbound apis
✨ Add several northbound apis
refactor: simplify deployment script by removing unused variables and functions (#3245)
feat(agent): add verification configuration for agents and update related components
feat(model): update model type labels and add monitoring dashboard translations
refactor(build_offline_package): simplify deployment script by removing unused variables and functions
🐛 Bugfix: Adjust agent detail UI layout to accommodate newly added “self-verification” field (#3246)
Move non-shadcn ui component to other folder
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix inability to select agent from agent space to edit
Bugfix: Display correct version info when viewing agent details
Bugfix: Adjust agent detail UI layout to accommodate newly added “self-verification” field
补充sql (#3248)
补充sql
扩大limit限制
🐛 Bugfix: Fixed an issue where the MCP service failed to start in a Kubernetes container. (#3254)
[Specification Details]
- Modify the pod naming logic to convert all non-compliant characters to -.
- Modify test cases.
🐛 Bugfix: knowledge_base_search_tool called with TypeError: argument of type ‘FieldInfo’ is not iterable (#3259)
🐛 Bugfix: Fixed an issue where the one-click rename function failed after importing an agent. (#3258)
[Specification Details]
- The frontend does not pass
agent_idwhen calling theregenerate_nameAPI.
Bugfix: Exclude attachments from assistant when saving conversation history (#3261)
Bump APP_VERSION from v2.2.0 to v2.2.1 (#3268)
The default setting for client-side self-validation is “False”.
Co-authored-by: chase byzhangxin11@126.com Co-authored-by: Chenlifeng 174292121+Lifeng-Chen@users.noreply.github.com Co-authored-by: Dallas98 40557804+Dallas98@users.noreply.github.com Co-authored-by: Jason Wang 56037774+JasonW404@users.noreply.github.com Co-authored-by: Xia Yichen iamjasonxia@126.com Co-authored-by: JeffWu 45140512+jeffwu-1999@users.noreply.github.com Co-authored-by: WMC001 46217886+WMC001@users.noreply.github.com Co-authored-by: xuyaqi xuyaqist@gmail.com Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com Co-authored-by: DongJiBao2001 120021235+DongJiBao2001@users.noreply.github.com Co-authored-by: hhhhsc701 56435672+hhhhsc701@users.noreply.github.com Co-authored-by: Dallas98 990259227@qq.com Co-authored-by: frr 64584192+wuyuanfr@users.noreply.github.com
- Revert “Release/v2.2.1 (#3269)” (#3272)
This reverts commit 9ff420ecce6b2ca21a67ce51053205860a76e41a.
- feat(ragflow): add RAGFlow search tool
- Add RAGFlowSearchTool SDK with list/str compatibility for dataset_ids and doc_id
- Add backend ragflow_service and ragflow_app endpoints
- Add frontend KB selector support for ragflow in ToolConfigModal and ToolTestPanel
- Fix KB selection clearing when switching between tools
- Fix missing inputs field in searchAgentInfo tool mapping
- Clean up incorrect configParams fallback in ToolTestPanel
- test(ragflow): add unit tests for RAGFlow search tool and service
Add 90 tests across 4 files covering ragflow_search_tool, ragflow_service, nexent_agent RAGFlowSearchTool branch, and tool_configuration_service ragflow_search validation.
Co-Authored-By: Claude noreply@anthropic.com
- test(ragflow): fix SonarCloud issues
- Add docstring to _MockTool.init
- Replace float == with pytest.approx()
- Remove type hint from mock_observer fixture
- Remove commented code
- Add type: ignore for _validate_ragflow_config edge cases
Co-Authored-By: Claude noreply@anthropic.com
Co-authored-by: panyehong 91180085+YehongPan@users.noreply.github.com Co-authored-by: chase byzhangxin11@126.com Co-authored-by: Chenlifeng 174292121+Lifeng-Chen@users.noreply.github.com Co-authored-by: Dallas98 40557804+Dallas98@users.noreply.github.com Co-authored-by: Jason Wang 56037774+JasonW404@users.noreply.github.com Co-authored-by: Xia Yichen iamjasonxia@126.com Co-authored-by: JeffWu 45140512+jeffwu-1999@users.noreply.github.com Co-authored-by: WMC001 46217886+WMC001@users.noreply.github.com Co-authored-by: xuyaqi xuyaqist@gmail.com Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com Co-authored-by: DongJiBao2001 120021235+DongJiBao2001@users.noreply.github.com Co-authored-by: hhhhsc701 56435672+hhhhsc701@users.noreply.github.com Co-authored-by: Dallas98 990259227@qq.com Co-authored-by: frr 64584192+wuyuanfr@users.noreply.github.com Co-authored-by: Claude noreply@anthropic.com
♻️ Skill now can read files directly with relative path (#3384)
🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results ♻️ Skill now can read files directly with relative path
🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results ♻️ Skill now can read files directly with relative path
🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results ♻️ Skill now can read files directly with relative path
🧪 Add unit test
Add image registry prefix support and optimize offline deployment (#3388)
Add image registry prefix support to offline deployment
Add image registry prefix support to offline deployment
优化构建包
Support source-suffixed offline packages and configurable init image
k8s部分参数落盘
clean code
Co-authored-by: hhhhsc
feat(agent-repository): remove categories and allow custom emoji icons (#3367)
Release/v2.2.1 (#3269)
add_greeting_fields_to_agent-develop
feat(knowledge-base): add preserve_source_file and post-index source cleanup
Let knowledge bases opt out of keeping uploaded MinIO copies after indexing while retaining Elasticsearch chunks for retrieval. Default behavior remains preserve_source_file=true for backward compatibility.
- Add preserve_source_file column (init.sql + v2.2.0_0601 migration)
- Accept preserve_source_file on create/update and northbound/vector APIs
- Support document DELETE scope=source_only and source_available in listings
- Run cleanup_source Celery task when preserve_source_file is false
- UI: create-KB toggle, list tag, knowledge-base preview when copy is missing
- Update vector-database SDK docs and backend tests
- test(data_process): stub knowledge_db, redis_service, and redis in test_worker
Align setup_mocks_for_worker with test_tasks so importing backend.data_process.worker loads package init without real DB/redis deps.
test(data_process): shim cleanup_source for submit_process_forward_chain tests
remove duplicate import
fix: update unit tests for greeting_message and example_questions fields
add init.sql to sonar.properites
♻️ Improvement: API to MCP conversion service supports configuring headers. (#3194)
♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details]
- Front-end and back-end modifications
- ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details]
- Modify the frontend, after adding, set the HTTP headers to empty.
- Modify test cases.
- ♻️ Improvement: Enhance processing of ES index names in memory banks. (#3196)
[Specification Details]
- Replace all symbols in the index name that do not meet the rules with “_”.
- Modify test cases.
- feat: add active memory tools (StoreMemoryTool, SearchMemoryTool) (#3197)
- Implement StoreMemoryTool for explicit memory storage during agent reasoning
- Implement SearchMemoryTool for on-demand memory retrieval during conversations
- Integrate tools into agent creation flow (create_agent_info.py)
- Register tools in nexent_agent.py and tools/init.py
- Add MEMORY_OPERATION tool sign for proper categorization
- Fix memory_core.py cache key to include event loop ID (prevents cross-loop conflicts)
- Add comprehensive test coverage for both tools
- Add procedural memory verification documentation
Tools follow existing patterns: lazy imports, observer integration, error handling, and respect user memory preferences (agent_share_option, disabled_agent_ids).
Co-authored-by: Dallas98 40557804+Dallas98@users.noreply.github.com
🐛 Bugfix: skill names and descriptions never load to context (#3205)
🐛 Bugfix: skill names and descriptions never load to context
🐛 Bugfix: skill names and descriptions never load to context
🐛 Bugfix: skill names and descriptions never load to context
🐛 Bugfix: official skills not copied to target directory
🐛 Bugfix: official skills not copied to target directory
Feat: add selected count badges to tool/skill pool labels (#3206)
Co-authored-by: chase byzhangxin11@126.com
🐛 Bugfix: Fix attribution error when tool calling error (#3208)
✨ Feat: Add support for Word document generation, preview, and download (#3191)
Feat: Add support for Word document generation, preview, and download
Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
- Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
Restrict uploads to a known safe workspace/output directory
修改单元测试
修复单元测试
Bugfix: Store uploaded files in Minio for conversation messages to enable file visibility in history
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
✨Feat:Enhance prompt optimization by integrating openjiuwen and fix related bugs (#3190)
✨Feat:add prompt optimization
🐛Bugfix: dockerbuild failed when running pipefail in python3_11
🔨Optimize: Optimize prompt optimization display page and interaction methods
🐛Bugfix: fix dependencies replication
🎨:Optimize frontend prompts and loading interface
🔧 Refactor: Update imports and remove redundant ENABLE_JIUWEN_SDK import in prompt_service.py
🔧 Refactor: Correct import path for NexentCapabilityError and enhance test coverage for prompt optimization service
🔧 Refactor: Update import paths for exception handling and improve logging formatting in prompt_service.py
🔧 Refactor: Simplify lazy imports in jiuwen_sdk_adapter.py and update import paths in prompt_service.py
🔧 Refactor: Enhance Jiuwen SDK adapter handling and improve test stubs in prompt_service.py and related test files
🧪test:Pydantic model for PromptTemplateRequest in test_prompt_template_app.py
🔧 Refactor: Remove unnecessary dependency exclusions from pyproject.toml
🔧 Update: Upgrade huggingface_hub dependency version in pyproject.toml
🔧 Update: Exclude unnecessary transitive dependencies and adjust huggingface_hub version in pyproject.toml
🔧 Test: Add mock modules for unstructured inference and set up package paths in test files
🔧 Test: Enhance test setup by adding optional SDK mocks and cleaning up module imports in data processing tests
🔧 Test: Consolidate mock module setup for unstructured inference across multiple test files
🔧 Test: Remove unused optional SDK mocks from test configuration
🔧 Refactor: Clean up imports and enhance dynamic loading of fastmcp components in Docker client
📦update:sdk dependence update
Add CAS SSO integration and improve logout handling (#3072)
feat: add CAS SSO integration
Skip CAS logout when CAS_LOGOUT_URL is unset
取消转义
Improve CAS logout handling and confirm user logout
Disable account deletion for CAS users
Add CAS session init SQL and k8s config
clean code
Remove agent guardrails design doc from tracking
补充文档
Co-authored-by: hhhhsc
🐛Bugfix: Remove unnecessary dependency exclusions and upgrade huggingface_hub version in pyproject.toml (#3211)
refactor: move current time from system prompt to user message for prompt cache stability (#3203)
Remove {{time}} from all 4 prompt YAML templates (manager/managed × en/zh) and strip time_str from the context_utils pipeline (_format_app_context, build_skeleton_header_component, build_context_components, build_app_context_string). Also remove time from create_agent_info render kwargs and build_context_components call.
In CoreAgent.run, prepend [Current time: …] to self.task so the timestamp travels with the user message instead of being baked into the system prompt. This makes the rendered system prompt fully deterministic per (agent_id, tenant_id, version_no, language) — enabling prompt/KV cache hits across requests for the same agent config.
Sync test_context_utils.py: drop time_str= from 3 test cases.
Remove unused datetime imports from context_utils.py and create_agent_info.py.
- 🐛 Bugfix: Fixed the issue of being unable to add MCP services via containerization. (#3213)
[Specification Details]
- Modify the DEFAULT_NETWORK_NAME when starting the MCP service in the container to match the name in docker-compose.
- Modify the parameters passed to the add_mcp_service method; custom_headers defaults to None.
🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. (#3219)
🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details]
- The return parameter of the file_process method has changed and needs to be unpacked.
- 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details]
- Modify test case.
- 🐛 Bugfix: Fixed an issue where the MCP service could not be added correctly after updating the FastMCP version. (#3222)
[Specification Details]
- Add
kwargsto thecreate_httpx_clientfunction to accept all additional parameters.
🐛 Bugfix: Fix incomplete display of tenant resources page after window resize (#3215)
Move non-shadcn ui component to other folder
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix incomplete display of tenant resources page after window resize
Add agent marketplace repository and version pinning for sub-agents (#3239)
feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
- feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
- feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
- feat: add agent marketplace repository and pin sub-agent versions at publish
Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided.
feat(agent): add verification configuration for agents and update related components (#3174)
feat(agent): add verification configuration for agents and update related components
feat(model): update model type labels and add monitoring dashboard translations
🐛 Bugfix: Fix inability to select agent from agent space to edit (#3240)
Move non-shadcn ui component to other folder
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix inability to select agent from agent space to edit
Bugfix: Display correct version info when viewing agent details
Update data agent and ME CAS integration documentation (#3242)
补充dataagent对接文档
补充ME cas对接文档
补充ME cas对接文档
Co-authored-by: hhhhsc
✨ Add several northbound apis (#3223)
✨ Add several northbound apis
✨ Add several northbound apis
✨ Add several northbound apis
✨ Add several northbound apis
✨ Add several northbound apis
refactor: simplify deployment script by removing unused variables and functions (#3245)
feat(agent): add verification configuration for agents and update related components
feat(model): update model type labels and add monitoring dashboard translations
refactor(build_offline_package): simplify deployment script by removing unused variables and functions
🐛 Bugfix: Adjust agent detail UI layout to accommodate newly added “self-verification” field (#3246)
Move non-shadcn ui component to other folder
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix incomplete display of tenant resources page after window resize
Bugfix: Fix inability to select agent from agent space to edit
Bugfix: Display correct version info when viewing agent details
Bugfix: Adjust agent detail UI layout to accommodate newly added “self-verification” field
补充sql (#3248)
补充sql
扩大limit限制
🐛 Bugfix: Fixed an issue where the MCP service failed to start in a Kubernetes container. (#3254)
[Specification Details]
- Modify the pod naming logic to convert all non-compliant characters to -.
- Modify test cases.
🐛 Bugfix: knowledge_base_search_tool called with TypeError: argument of type ‘FieldInfo’ is not iterable (#3259)
🐛 Bugfix: Fixed an issue where the one-click rename function failed after importing an agent. (#3258)
[Specification Details]
- The frontend does not pass
agent_idwhen calling theregenerate_nameAPI.
Bugfix: Exclude attachments from assistant when saving conversation history (#3261)
Bump APP_VERSION from v2.2.0 to v2.2.1 (#3268)
The default setting for client-side self-validation is “False”.
Co-authored-by: chase byzhangxin11@126.com Co-authored-by: Chenlifeng 174292121+Lifeng-Chen@users.noreply.github.com Co-authored-by: Dallas98 40557804+Dallas98@users.noreply.github.com Co-authored-by: Jason Wang 56037774+JasonW404@users.noreply.github.com Co-authored-by: Xia Yichen iamjasonxia@126.com Co-authored-by: JeffWu 45140512+jeffwu-1999@users.noreply.github.com Co-authored-by: WMC001 46217886+WMC001@users.noreply.github.com Co-authored-by: xuyaqi xuyaqist@gmail.com Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com Co-authored-by: DongJiBao2001 120021235+DongJiBao2001@users.noreply.github.com Co-authored-by: hhhhsc701 56435672+hhhhsc701@users.noreply.github.com Co-authored-by: Dallas98 990259227@qq.com Co-authored-by: frr 64584192+wuyuanfr@users.noreply.github.com
- Revert “Release/v2.2.1 (#3269)” (#3272)
This reverts commit 9ff420ecce6b2ca21a67ce51053205860a76e41a.
feat(agent-repository): remove categories and allow custom emoji icons
feat(agent-space): improve mine tab UX with delete, navigation, and author display
- Add delete action for agents in mine tab with confirmation modal
- Navigate back to agent repository when editing from agent-space
- Persist agent-space tab state via URL query params (?tab=mine)
- Display author in repository detail modal and map author field
- Auto-fill agent author from user email on create
- Adjust agents page header layout to accommodate back button
fix conflict
fix conflict
fix: delete test ts file
Co-authored-by: panyehong 91180085+YehongPan@users.noreply.github.com Co-authored-by: chase byzhangxin11@126.com Co-authored-by: Dallas98 40557804+Dallas98@users.noreply.github.com Co-authored-by: Jason Wang 56037774+JasonW404@users.noreply.github.com Co-authored-by: Xia Yichen iamjasonxia@126.com Co-authored-by: JeffWu 45140512+jeffwu-1999@users.noreply.github.com Co-authored-by: WMC001 46217886+WMC001@users.noreply.github.com Co-authored-by: xuyaqi xuyaqist@gmail.com Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com Co-authored-by: DongJiBao2001 120021235+DongJiBao2001@users.noreply.github.com Co-authored-by: hhhhsc701 56435672+hhhhsc701@users.noreply.github.com Co-authored-by: Dallas98 990259227@qq.com Co-authored-by: frr 64584192+wuyuanfr@users.noreply.github.com
🐛Bugfix: Fix responsive layout issues on knowledge base page (#3381)
🐛 BugFix: show name conflict error inline in knowledge base input (#3251)
Show error message inline below input when KB name already exists, instead of relying on input status alone. Closes #3251.
- Add nameStatus state + AlertCircle icon + error text
- Change title bar alignment from items-center to items-start
- Pass nameStatus from UploadArea to DocumentList via prop
🐛 BugFix: Improve responsive layout of knowledge base creation page (#3251)
fix: improve responsive layout and prevent overflow in knowledge base components
🐛 Bugfix: Fixed an issue with tools relying on large models: previously, if a model was selected and subsequently deleted, the agent would encounter runtime errors without any corresponding notification on the frontend. (#3397)
🐛 Bugfix: Fixed an issue where deleted models could still be selected during debugging. + Internationalization loading description of tools.
🐛 Bugfix: Fixed an issue with tools relying on large models: previously, if a model was selected and subsequently deleted, the agent would encounter runtime errors without any corresponding notification on the frontend.
Disable context component budget pruning (#3394)
🐛Bugfix: Persist conversation agent and verify jwt expiry (#3392)
fix: persist conversation agent and verify jwt expiry
test: cover conversation agent and jwt expiry changes
fix: refresh published agents after deletion
11
♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent. (#3400)
♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent.
♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent.
♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent.
fix context manager builtin tool context (#3401)
支持web config runtime northbound多副本 (#3390)
feat: 支持web config runtime northbound多副本
Use ReadWriteMany for Kubernetes persistence defaults
Normalize PR diff line endings
fix: 修复单测
Fix agent service unit test mocks
feat: 默认单实例
feat: 补充单测
feat: 补充单测
feat: enhance deployment options persistence and loading mechanism
feat: remove multi-replica mode references and improve error logging in northbound service
Co-authored-by: root root@DESKTOP-UARO3HF.localdomain
✨ Feature: add skill repository lifecycle and management UI (#3393)
Add skill repository backend APIs
Add skill repository frontend flow
Refine skill repository build UI
feat: add skill edit modal state
feat: improve skill repository copy, edit, and review flows
feat: refine agent config skill management
test: add skill repository coverage and remove dead code
fix: harden skill editing and repository workflow
fix: address skill repository quality gates
fix: correct skill path validation
fix: stabilize skill path test setup
test: cover skill update by id workflow
fix: resolve skill repository quality gate issues
fix: test
Co-authored-by: sumi2234 sumi2234@noreply.atomgit.com
- Add OAuth login mode config and forced redirect handling (#3414)
Co-authored-by: root root@DESKTOP-UARO3HF.localdomain
✨ Feature: MCP market restructure — Repository, My MCPs, Review Center (#3396)
mcp web
mcp web
mcp web
mcp web
mcp web
mcp web
delete version
delete version
local mirror
修复工具验证问题以及工具数量显示问题
增加自定义外部市场mcp名称功能; 增加mcp重复命名检查;
增加工具数量更新功能
增加工具数量更新功能
修复仓库的工具数量显示问题; 修复mcp删除bug
“我的”mcp“申请上架”逻辑问题
修复“我的”mcp开发者显示问题; 修复mcp删除后没有同步到智能体开发mcp列表问题;
修复删除mcp未初始化mcp启用状态的问题
修复市场下载的mcp作者显示问题
外部市场mcp连通性校验
添加MCP服务按钮修改
修复仓库下载的mcp不显示hub的问题
删除smithery mcp市场
修复通过镜像上传mcp不显示工具数量问题
修复mcp来源显示错误
修复审核中心标签数字显示问题
mcp市场“仓库”页面和“我的”页面权限调整:仓库页面为租户内共享,我的页面为用户个人使用; 增加表格迁移;
Update settings.local.json
Delete MCP_MARKET_FRONTEND_BACKEND_MAPPING.md
更新测试用例
fix test case
Quality Gate
Quality Gate
test case
前端修改
审核机制及表设计按照agent仓库修改
审核机制及表设计按照agent仓库修改
test cases
test cases
test cases
test cases
🐛 Bugfix: Fix skill count display error when delete a skill has been selected (#3415)
feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints(#3416)
feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints
feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints
feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints
Bump version from v2.2.2 to v2.3.0
🐛 Bugfix: update skill repository action wording (#3418)
fix: update skill repository action wording
fix: update skill repository action wording
fix: internationalize skill repository UI
fix: remove duplicate skill locale keys (#3423)
fix: Clean up leftover file (#3421)
mcp web
mcp web
mcp web
mcp web
mcp web
mcp web
delete version
delete version
local mirror
修复工具验证问题以及工具数量显示问题
增加自定义外部市场mcp名称功能; 增加mcp重复命名检查;
增加工具数量更新功能
增加工具数量更新功能
修复仓库的工具数量显示问题; 修复mcp删除bug
“我的”mcp“申请上架”逻辑问题
修复“我的”mcp开发者显示问题; 修复mcp删除后没有同步到智能体开发mcp列表问题;
修复删除mcp未初始化mcp启用状态的问题
修复市场下载的mcp作者显示问题
外部市场mcp连通性校验
添加MCP服务按钮修改
修复仓库下载的mcp不显示hub的问题
删除smithery mcp市场
修复通过镜像上传mcp不显示工具数量问题
修复mcp来源显示错误
修复审核中心标签数字显示问题
mcp市场“仓库”页面和“我的”页面权限调整:仓库页面为租户内共享,我的页面为用户个人使用; 增加表格迁移;
Update settings.local.json
Delete MCP_MARKET_FRONTEND_BACKEND_MAPPING.md
更新测试用例
fix test case
Quality Gate
Quality Gate
test case
前端修改
审核机制及表设计按照agent仓库修改
审核机制及表设计按照agent仓库修改
test cases
test cases
test cases
test cases
bug fix
Delete k8s/helm/nexent/charts/nexent-common/files/init.sql
Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only (#3422)
Bugfix:add crypto.randomUUID() fallback in http
Bugfix: Update homepage redirect link
Refactor: Auto-create conversation when conversation_id is empty in agent/run
Bugfix: skip conversation auto-create in debug mode
修复单元测试
新增UT
新增UT测试
修改单元测试
Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only
Revert “Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only”
This reverts commit fb7a2934a5bd6cce111f6b349b8190f52b177e04.
Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only
🐛 Fix sequence OWNED BY before table creation in migration v2.3.0_0709 (#3424)
Fix agent skill unselect persistence (#3426)
fix: MCP space - api and frontend bug fixes (#3427)
Fix: remove mcp version number (#3429)
feat: remove version number field from MCP edit modal
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
- 🐛 Fix: remove version badge from review center detail modal
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
- 🐛 Fix: add missing English translations for MCP page
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
Co-authored-by: Claude Opus 4.7 noreply@anthropic.com
fix: skill summary (#3430)
fix skill creation stream parsing
fix copied skill repository publish
test skill stream and export edge cases
test remaining skill stream parser branches
Co-authored-by: Jason Wang 56037774+JasonW404@users.noreply.github.com Co-authored-by: DongJiBao2001 120021235+DongJiBao2001@users.noreply.github.com Co-authored-by: gjc199 97944442+gjc199@users.noreply.github.com Co-authored-by: xuyaqi xuyaqist@gmail.com Co-authored-by: panyehong 91180085+YehongPan@users.noreply.github.com Co-authored-by: frr 64584192+wuyuanfr@users.noreply.github.com Co-authored-by: liudfgoo 49781630+liudfgoo@users.noreply.github.com Co-authored-by: Claude noreply@anthropic.com Co-authored-by: liudongfei liudongfei4@huawei.com Co-authored-by: hhhhsc701 56435672+hhhhsc701@users.noreply.github.com Co-authored-by: root root@DESKTOP-UARO3HF.localdomain Co-authored-by: jxl jixiaolongcom@sina.cn Co-authored-by: chase byzhangxin11@126.com Co-authored-by: Chenlifeng 174292121+Lifeng-Chen@users.noreply.github.com Co-authored-by: Xia Yichen iamjasonxia@126.com Co-authored-by: JeffWu 45140512+jeffwu-1999@users.noreply.github.com Co-authored-by: WMC001 46217886+WMC001@users.noreply.github.com Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com Co-authored-by: Jinyu Z 1012871848@qq.com Co-authored-by: Summer-Si 140902149+Summer-Si@users.noreply.github.com Co-authored-by: sumi2234 sumi2234@noreply.atomgit.com Co-authored-by: Hankin 837833609@qq.com
Nexent is a zero-code platform for auto-generating production-grade AI agents, built on Harness Engineering principles. It provides unified tools, skills, memory, and orchestration with built-in const
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
Nexent 是一个基于 Harness Engineering 原则打造的零代码智能体自动生成平台。集统一工具、技能、记忆和编排能力于一体,内置约束机制、反馈循环和控制平面。无需编排,无需复杂的拖拉拽操作,使用纯语言开发你想要的任何智能体。
🚀 先来试试看
自行部署
如果需要在本地或私有环境中部署 Nexent,我们提供两种部署方式:
系统要求
Docker 部署(推荐个人/小团队使用)
适用于大多数用户,快速简单。部署前需准备Docker 24+, Docker Compose v2+:
根目录
deploy.sh只负责转发到目标部署脚本;Docker 真实实现为bash deploy/docker/deploy.sh。Docker 和 Kubernetes 使用同一套部署配置模型;交互式运行会通过 Bash TUI 选择组件、端口策略和镜像源。infrastructure必选,application、data-process、supabase默认选中,也可以取消以部署更小的组合。使用--defaults可跳过 TUI,并复用已保存的deploy.options或内置默认值。非交互部署也可传入--version、--components、--port-policy development|production、--image-source general|mainland|local-latest。Docker 与 Kubernetes 统一使用
deploy/env/.env作为运行配置文件;已有deploy/env/.env会原样保留。如果deploy/env/.env不存在,部署脚本会优先复用已有的docker/.env,再回退到deploy/env/.env.example。监控相关配置会从deploy/env/monitoring.env.example生成到deploy/env/monitoring.env。Docker 卸载入口为
bash uninstall.sh docker,默认交互确认是否删除持久化数据;也可以通过--delete-volumes true|false控制,或使用bash uninstall.sh docker delete-all同时删除容器和持久化数据。离线镜像包可通过
bash build.sh --package --target docker --compress true或bash deploy/offline/build_offline_package.sh --target docker --compress true构建。包内包含镜像 tar、load-images.sh、push-images.sh、根目录部署/卸载入口、部署脚本、SQL 文件、manifest.yaml和checksums.txt。包内部署会复用已保存的deploy.options或内置默认值,默认不进入 TUI;添加--config可交互配置。在目标机器上使用bash deploy.sh --load-images docker ...加载镜像并部署,或使用bash deploy.sh --push-images --image-registry-prefix registry.example.com/nexent docker ...推送到内部仓库并使用该镜像前缀部署。启用--push-images且未传前缀时,deploy.sh会先询问镜像仓库前缀,随后push-images.sh询问仓库账号和密码。详细部署指南请参考 Docker 安装部署。
Kubernetes 部署(适合企业级生产环境)
适用于需要高可用、弹性扩展的企业场景。部署前需准备 Kubernetes 集群(1.24+)和 Helm 3+:
Kubernetes 真实实现为
bash deploy/k8s/deploy.sh。它会读取同一个deploy/env/.env,并显式渲染为 Helm ConfigMap 和 Secret 覆盖值。PVC 可通过--persistence-mode local|dynamic|existing、--storage-class/--sc、--local-path、--local-node-name、--existing-claim-prefix控制。local 模式会渲染hostPathPV,不再需要 nodeAffinity。根目录卸载入口为
bash uninstall.sh docker ...或bash uninstall.sh k8s ...,具体实现仍分别在deploy/docker/uninstall.sh和deploy/k8s/uninstall.sh。Kubernetes 离线包使用同一个构建脚本,传入
--target k8s或--target all。部署前需要在每个需要运行 Pod 的节点上执行load-images.sh,或使用--push-images --image-registry-prefix registry.example.com/nexent将镜像推送到集群可访问的内部镜像仓库,再使用与打包时一致的版本、镜像源和镜像仓库前缀部署。详细部署指南请参考 Kubernetes 安装部署。
✨ 核心特性
Nexent 为构建强大的 AI 智能体提供全面的功能集:
🤝 加入我们的社区
如果我们的愿景与您产生共鸣,请通过 贡献指南 加入我们,共同塑造 Nexent。
早期贡献者不会被忽视:从特殊徽章和纪念品到其他实质性奖励,我们致力于感谢那些帮助 Nexent 诞生的先驱者。
最重要的是,我们需要关注度。请 前往 GitHub 为我们点星 ⭐ 并关注,与朋友分享,帮助更多开发者发现 Nexent —— 您的每一次点击都能为项目带来新的参与者,保持发展势头。
📖 下一步
准备好深入了解了吗?以下是主要文档入口:
📄 许可证
Nexent 采用 MIT 许可证。