Nexent Version
v2.1.1
Problem Description
During local deployment and agent creation, I encountered cases where the frontend showed that configuration was completed, but the backend database or the published agent version did not actually contain the required configuration.
The two main issues were:
-
A knowledge base was created from the frontend, but knowledge_record_t.embedding_model_id and embedding_model_name were empty. As a result, document indexing failed even though the embedding model bge-m3 was shown as available in Model Management.
-
The agent frontend showed knowledge_base_search as selected/configured, but the published agent version still had index_names = null. As a result, the chat page could not correctly use the knowledge base.
Relevant backend errors:
Embedding API error: 'NoneType' object has no attribute 'get_embeddings'
Embedding model is required for knowledge_base_search but index_names is empty
This made it difficult to determine whether the problem came from file parsing, embedding model configuration, knowledge base binding, tool configuration, or published agent version persistence.
Reproduction Steps
- Deploy Nexent v2.1.1 locally with Docker on macOS.
- Add an embedding model in Model Management.
- Confirm the embedding model
bge-m3 is shown as available.
- Create a new knowledge base from the frontend.
- Upload PDF / Markdown / PPT files.
- The files may fail to index if the knowledge base record does not contain
embedding_model_id.
- Check the database and observe that
knowledge_record_t.embedding_model_id and embedding_model_name are empty.
- Create a new agent.
- Add
knowledge_base_search as a tool.
- Configure the tool to use the knowledge base.
- Save the tool configuration.
- Save and publish the agent.
- Open the chat page and select the published agent.
- Send a knowledge-base-related query.
- The agent may fail if the published tool config still has
index_names = null.
Temporary workaround used locally:
- Manually bind the knowledge base record to the available
bge-m3 embedding model.
- Delete the failed files and re-upload them.
- Reopen the
knowledge_base_search tool configuration.
- Explicitly set
index_names, top_k, search_mode, and rerank.
- Save tool config.
- Save the agent.
- Publish a new version.
After these steps, document indexing and agent chat worked correctly.
Additional Information
Expected behavior:
-
When creating or using a knowledge base, Nexent should either:
- automatically bind the current available embedding model;
- or require the user to select an embedding model;
- or block file upload with a clear message if no embedding model is bound.
-
When publishing an agent, if knowledge_base_search is selected but index_names is empty, Nexent should:
- block publishing;
- show a clear validation error such as
Please select a knowledge base for knowledge_base_search;
- or automatically validate the published tool configuration before publishing.
-
The system should not allow publishing an agent that fails at runtime because a required tool parameter is missing.
-
The UI should make the difference clearer between:
- Save tool config
- Save agent
- Publish version
-
It would be helpful to add a debug-friendly display of the effective published tool configuration.
Environment:
- Nexent version: v2.1.1
- Deployment: Local Docker deployment on macOS
- Browser: Chrome
- Model provider: SiliconFlow
- LLM: Qwen3.5-9B
- Embedding model: bge-m3
No API keys, .env files, database files, or private course materials are included in this issue.
Nexent Version
v2.1.1
Problem Description
During local deployment and agent creation, I encountered cases where the frontend showed that configuration was completed, but the backend database or the published agent version did not actually contain the required configuration.
The two main issues were:
A knowledge base was created from the frontend, but
knowledge_record_t.embedding_model_idandembedding_model_namewere empty. As a result, document indexing failed even though the embedding modelbge-m3was shown as available in Model Management.The agent frontend showed
knowledge_base_searchas selected/configured, but the published agent version still hadindex_names = null. As a result, the chat page could not correctly use the knowledge base.Relevant backend errors:
This made it difficult to determine whether the problem came from file parsing, embedding model configuration, knowledge base binding, tool configuration, or published agent version persistence.
Reproduction Steps
bge-m3is shown as available.embedding_model_id.knowledge_record_t.embedding_model_idandembedding_model_nameare empty.knowledge_base_searchas a tool.index_names = null.Temporary workaround used locally:
bge-m3embedding model.knowledge_base_searchtool configuration.index_names,top_k,search_mode, andrerank.After these steps, document indexing and agent chat worked correctly.
Additional Information
Expected behavior:
When creating or using a knowledge base, Nexent should either:
When publishing an agent, if
knowledge_base_searchis selected butindex_namesis empty, Nexent should:Please select a knowledge base for knowledge_base_search;The system should not allow publishing an agent that fails at runtime because a required tool parameter is missing.
The UI should make the difference clearer between:
It would be helpful to add a debug-friendly display of the effective published tool configuration.
Environment:
No API keys,
.envfiles, database files, or private course materials are included in this issue.