目录
Dallas98

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]

  1. Standardizing the styling of debugging pop-ups in frontend tools.
  2. 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]

  1. Front-end and back-end modifications
  • ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details]
  1. Modify the frontend, after adding, set the HTTP headers to empty.
  2. Modify test cases.
  • ♻️ Improvement: Enhance processing of ES index names in memory banks. (#3196)

[Specification Details]

  1. Replace all symbols in the index name that do not meet the rules with “_”.
  2. 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]

  1. Modify the DEFAULT_NETWORK_NAME when starting the MCP service in the container to match the name in docker-compose.
  2. 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]

  1. 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]
  1. Modify test case.
  • 🐛 Bugfix: Fixed an issue where the MCP service could not be added correctly after updating the FastMCP version. (#3222)

[Specification Details]

  1. Add kwargs to the create_httpx_client function 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]

  1. Modify the pod naming logic to convert all non-compliant characters to -.
  2. 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]

  1. The frontend does not pass agent_id when calling the regenerate_name API.
  • 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]

  1. Front-end and back-end modifications
  • ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details]
  1. Modify the frontend, after adding, set the HTTP headers to empty.
  2. Modify test cases.
  • ♻️ Improvement: Enhance processing of ES index names in memory banks. (#3196)

[Specification Details]

  1. Replace all symbols in the index name that do not meet the rules with “_”.
  2. 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]

  1. Modify the DEFAULT_NETWORK_NAME when starting the MCP service in the container to match the name in docker-compose.
  2. 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]

  1. 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]
  1. Modify test case.
  • 🐛 Bugfix: Fixed an issue where the MCP service could not be added correctly after updating the FastMCP version. (#3222)

[Specification Details]

  1. Add kwargs to the create_httpx_client function 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]

  1. Modify the pod naming logic to convert all non-compliant characters to -.
  2. 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]

  1. The frontend does not pass agent_id when calling the regenerate_name API.
  • 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

10天前5447次提交

Nexent Banner

Website English 中文 Documentation Docker Pulls Codecov (with branch)

Nexent 是一个基于 Harness Engineering 原则打造的零代码智能体自动生成平台。集统一工具、技能、记忆和编排能力于一体,内置约束机制、反馈循环和控制平面。无需编排,无需复杂的拖拉拽操作,使用纯语言开发你想要的任何智能体。

一个提示词,无限种可能。

🚀 先来试试看

⭐ 在您开始使用前,请您顺手在 GitHub 为我们点个 Star,您的支持是我们前进的动力!

自行部署

如果需要在本地或私有环境中部署 Nexent,我们提供两种部署方式:

系统要求

资源 Docker 部署 Kubernetes 部署
CPU 4 核(最低)/ 8 核(推荐) 4 核(最低)/ 8 核(推荐)
内存 8 GiB(最低)/ 16 GiB(推荐) 16 GiB(最低)/ 64 GiB(推荐)
磁盘 40 GiB(最低)/ 100 GiB(推荐) 100 GiB(最低)/ 200 GiB(推荐)
架构 x86_64 / ARM64 x86_64 / ARM64
软件 Docker 24+, Docker Compose v2+ Kubernetes 1.24+, Helm 3+

注意: 推荐配置可确保生产环境下的最佳性能。

Docker 部署(推荐个人/小团队使用)

适用于大多数用户,快速简单。部署前需准备Docker 24+, Docker Compose v2+:

git clone https://github.com/ModelEngine-Group/nexent.git
cd nexent
bash deploy.sh docker

根目录 deploy.sh 只负责转发到目标部署脚本;Docker 真实实现为 bash deploy/docker/deploy.sh。Docker 和 Kubernetes 使用同一套部署配置模型;交互式运行会通过 Bash TUI 选择组件、端口策略和镜像源。infrastructure 必选,applicationdata-processsupabase 默认选中,也可以取消以部署更小的组合。使用 --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 truebash deploy/offline/build_offline_package.sh --target docker --compress true 构建。包内包含镜像 tar、load-images.shpush-images.sh、根目录部署/卸载入口、部署脚本、SQL 文件、manifest.yamlchecksums.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+:

git clone https://github.com/ModelEngine-Group/nexent.git
cd nexent
bash deploy.sh k8s

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 模式会渲染 hostPath PV,不再需要 nodeAffinity。

根目录卸载入口为 bash uninstall.sh docker ...bash uninstall.sh k8s ...,具体实现仍分别在 deploy/docker/uninstall.shdeploy/k8s/uninstall.sh

Kubernetes 离线包使用同一个构建脚本,传入 --target k8s--target all。部署前需要在每个需要运行 Pod 的节点上执行 load-images.sh,或使用 --push-images --image-registry-prefix registry.example.com/nexent 将镜像推送到集群可访问的内部镜像仓库,再使用与打包时一致的版本、镜像源和镜像仓库前缀部署。

详细部署指南请参考 Kubernetes 安装部署

✨ 核心特性

Nexent 为构建强大的 AI 智能体提供全面的功能集:

特性 描述
⚙️ 多模型集成 OpenAI 兼容任意提供商,LLM/Embedding/VLM/STT/TTS 全覆盖,支持灵活切换
🤖 零代码智能体生成 纯自然语言描述需求,一键生成可执行智能体,所想即所得
🤝 A2A 智能体协作 Agent-to-Agent 协议支持多智能体无缝协作,构建分布式工作流
🧠 分层记忆机制 两层记忆体系(用户级+用户-智能体级),跨对话持续积累上下文
📝 Skill 渐进式披露 动态加载 Skill 内容至上下文,高效利用上下文窗口
🗄️ 个人级知识库 20+ 文档格式实时导入与智能检索,自动摘要,细粒度权限控制
🔧 MCP 工具生态 即插即用的扩展工具体系,支持自定义开发和第三方 MCP 服务
🌐 互联网知识集成 多搜索源混合,实时信息与私有数据融合
🔍 知识级溯源 精确引用与来源验证,每个事实透明可查
🎭 多模态交互 语音、文字、图像、文件,全方位自然对话
🔢 智能体版本管理 版本迭代与历史回溯,安全可控
🏪 智能体市场 官方与社区优质智能体一键安装即用
👥 分权分域管理 多租户隔离,RBAC 权限体系,资源级精细管控

🤝 加入我们的社区

If you want to go fast, go alone; if you want to go far, go together.

  • 🗺️ 查看我们的 功能地图 探索当前和即将推出的功能。
  • 🔍 试用当前版本 并在 问题反馈 中留下想法或报告错误。

Rome wasn’t built in a day.

如果我们的愿景与您产生共鸣,请通过 贡献指南 加入我们,共同塑造 Nexent。

早期贡献者不会被忽视:从特殊徽章和纪念品到其他实质性奖励,我们致力于感谢那些帮助 Nexent 诞生的先驱者。

最重要的是,我们需要关注度。请 前往 GitHub 为我们点星 ⭐ 并关注,与朋友分享,帮助更多开发者发现 Nexent —— 您的每一次点击都能为项目带来新的参与者,保持发展势头。

📖 下一步

准备好深入了解了吗?以下是主要文档入口:

📄 许可证

Nexent 采用 MIT 许可证

关于

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

158.2 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号