Skip to content

Commit a8a0228

Browse files
feat: Agent can set code and connect the code into tool.name
1 parent b365017 commit a8a0228

22 files changed

Lines changed: 81 additions & 4 deletions

File tree

apps/application/flow/default_workflow.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"node_data": {
1515
"desc": "",
1616
"name": "maxkbapplication",
17+
"code": "",
1718
"prologue": "您好,我是 MaxKB 小助手,您可以向我提出 MaxKB 使用问题。\n- MaxKB 主要功能有什么?\n- MaxKB 支持哪些大语言模型?\n- MaxKB 支持哪些文档类型?"
1819
},
1920
"input_field_list": [

apps/application/flow/default_workflow_en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"node_data": {
1515
"desc": "",
1616
"name": "maxkbapplication",
17+
"code": "",
1718
"prologue": "Hello, I am the MaxKB assistant. You can ask me about MaxKB usage issues.\n-What are the main functions of MaxKB?\n-What major language models does MaxKB support?\n-What document types does MaxKB support?"
1819
},
1920
"input_field_list": [

apps/application/flow/default_workflow_zh.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"node_data": {
1515
"desc": "",
1616
"name": "maxkbapplication",
17+
"code": "",
1718
"prologue": "您好,我是 MaxKB 小助手,您可以向我提出 MaxKB 使用问题。\n- MaxKB 主要功能有什么?\n- MaxKB 支持哪些大语言模型?\n- MaxKB 支持哪些文档类型?"
1819
},
1920
"input_field_list": [

apps/application/flow/default_workflow_zh_Hant.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"node_data": {
1515
"desc": "",
1616
"name": "maxkbapplication",
17+
"code": "",
1718
"prologue": "您好,我是 MaxKB 小助手,您可以向我提出 MaxKB 使用問題。\n- MaxKB 主要功能有哪些?\n- MaxKB 支援哪些大型語言模型?\n- MaxKB 支援哪些文件類型?"
1819
},
1920
"input_field_list": [
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Generated by Django 5.2.9 on 2026-05-08 17:03
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('application', '0013_application_long_term_enable_and_more'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='application',
15+
name='code',
16+
field=models.CharField(null=True, max_length=128, verbose_name='应用代码'),
17+
preserve_default=False,
18+
),
19+
migrations.AddField(
20+
model_name='applicationversion',
21+
name='application_code',
22+
field=models.CharField(null=True, max_length=128, verbose_name='应用代码'),
23+
preserve_default=False,
24+
),
25+
]

apps/application/models/application.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class Application(AppModelMixin):
6363
default='default')
6464
is_publish = models.BooleanField(verbose_name="是否发布", default=False)
6565
name = models.CharField(max_length=128, verbose_name="应用名称", db_index=True)
66+
code = models.CharField(max_length=128, verbose_name="应用代码", blank=True, default=None, null=True)
6667
desc = models.CharField(max_length=512, verbose_name="引用描述", default="")
6768
prologue = models.CharField(max_length=40960, verbose_name="开场白", default="")
6869
dialogue_number = models.IntegerField(default=0, verbose_name="会话数量")
@@ -147,6 +148,7 @@ class ApplicationVersion(AppModelMixin):
147148
publish_user_name = models.CharField(verbose_name="发布者名称", max_length=128, default="")
148149
workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True)
149150
application_name = models.CharField(max_length=128, verbose_name="应用名称")
151+
application_code = models.CharField(max_length=128, verbose_name="应用代码", blank=True, default=None, null=True)
150152
desc = models.CharField(max_length=512, verbose_name="引用描述", default="")
151153
prologue = models.CharField(max_length=40960, verbose_name="开场白", default="")
152154
dialogue_number = models.IntegerField(default=0, verbose_name="会话数量")

apps/application/serializers/application.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@ class Meta:
199199
class WorkflowRequest(serializers.Serializer):
200200
name = serializers.CharField(required=True, max_length=64, min_length=1,
201201
label=_("Application Name"))
202+
code = serializers.CharField(required=False, allow_null=True, allow_blank=True, max_length=64,
203+
label=_("Application Code"))
202204
desc = serializers.CharField(required=False, allow_null=True, allow_blank=True,
203205
max_length=256, min_length=1,
204206
label=_("Application Description"))
@@ -214,10 +216,12 @@ def to_application_model(user_id: str, workspace_id: str, application: Dict):
214216
if node.get('id') == 'base-node':
215217
node.get('properties')['node_data']['desc'] = application.get('desc')
216218
node.get('properties')['node_data']['name'] = application.get('name')
219+
node.get('properties')['node_data']['code'] = application.get('code')
217220
node.get('properties')['node_data']['prologue'] = application.get('prologue')
218221
return Application(
219222
id=uuid.uuid7(),
220223
name=application.get('name'),
224+
code=application.get('code'),
221225
desc=application.get('desc'),
222226
workspace_id=workspace_id,
223227
folder_id=application.get('folder_id', application.get('workspace_id')),
@@ -242,6 +246,8 @@ def to_application_model(user_id: str, workspace_id: str, application: Dict):
242246
class SimplateRequest(serializers.Serializer):
243247
name = serializers.CharField(required=True, max_length=64, min_length=1,
244248
label=_("application name"))
249+
code = serializers.CharField(required=False, allow_null=True, allow_blank=True, max_length=64,
250+
label=_("application code"))
245251
desc = serializers.CharField(required=False, allow_null=True, allow_blank=True,
246252
max_length=256, min_length=1,
247253
label=_("application describe"))
@@ -302,6 +308,7 @@ def to_application_model(user_id: str, workspace_id: str, application: Dict):
302308
return Application(
303309
id=uuid.uuid7(),
304310
name=application.get('name'),
311+
code=application.get('code'),
305312
desc=application.get('desc'),
306313
workspace_id=workspace_id,
307314
prologue=application.get('prologue'),
@@ -453,6 +460,8 @@ class ApplicationImportRequest(serializers.Serializer):
453460
class ApplicationEditSerializer(serializers.Serializer):
454461
name = serializers.CharField(required=False, max_length=64, min_length=1,
455462
label=_("Application Name"))
463+
code = serializers.CharField(required=False, allow_null=True, allow_blank=True, max_length=64,
464+
label=_("Application Code"))
456465
desc = serializers.CharField(required=False, max_length=256, min_length=1, allow_null=True, allow_blank=True,
457466
label=_("Application Description"))
458467
model_id = serializers.CharField(required=False, allow_blank=True, allow_null=True,
@@ -706,6 +715,7 @@ def to_application(application, workspace_id, user_id, update_tool_map, folder_i
706715
id=uuid.uuid7(),
707716
user_id=user_id,
708717
name=application.get('name'),
718+
code=application.get('code'),
709719
workspace_id=workspace_id,
710720
folder_id=folder_id,
711721
desc=application.get('desc'),
@@ -913,7 +923,7 @@ def to_tool_dict(tool, tool_workflow_dict):
913923
@staticmethod
914924
def reset_application_version(application_version, application):
915925
update_field_dict = {
916-
'application_name': 'name', 'desc': 'desc', 'prologue': 'prologue', 'dialogue_number': 'dialogue_number',
926+
'application_name': 'name', 'application_code': 'code', 'desc': 'desc', 'prologue': 'prologue', 'dialogue_number': 'dialogue_number',
917927
'user_id': 'user_id', 'model_id': 'model_id', 'knowledge_setting': 'knowledge_setting',
918928
'model_setting': 'model_setting', 'model_params_setting': 'model_params_setting',
919929
'tts_model_params_setting': 'tts_model_params_setting',
@@ -955,6 +965,7 @@ def publish(self, instance, with_valid=True):
955965
node_data = base_node.get('properties').get('node_data')
956966
if node_data is not None:
957967
application.name = node_data.get('name')
968+
application.code = node_data.get('code')
958969
application.desc = node_data.get('desc')
959970
application.prologue = node_data.get('prologue')
960971
application.work_flow = work_flow
@@ -1095,7 +1106,7 @@ def edit(self, instance: Dict, with_valid=True):
10951106
self.update_work_flow_model(instance)
10961107
if 'mcp_servers' in instance and len(instance.get('mcp_servers', {})) > 0:
10971108
ToolExecutor().validate_mcp_transport(json.dumps(instance.get('mcp_servers')))
1098-
update_keys = ['name', 'desc', 'model_id', 'multiple_rounds_dialogue', 'prologue', 'status',
1109+
update_keys = ['name', 'code', 'desc', 'model_id', 'multiple_rounds_dialogue', 'prologue', 'status',
10991110
'knowledge_setting', 'model_setting', 'problem_optimization', 'dialogue_number',
11001111
'stt_model_id', 'tts_model_id', 'tts_model_enable', 'stt_model_enable', 'tts_type',
11011112
'tts_autoplay', 'stt_autosend', 'file_upload_enable', 'file_upload_setting',

apps/chat/mcp/tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def list_tools(self):
3434
return {
3535
"tools": [
3636
{
37-
"name": f'agent_{str(self.application.id)[:8]}',
37+
"name": f'agent_{str(self.application.id)[:8]}' + (f'_{self.application.code}' if self.application.code else ''),
3838
"description": f'{self.application.name} {self.application.desc}',
3939
"inputSchema": {
4040
"type": "object",

apps/chat/serializers/chat_authentication.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class ApplicationProfileSerializer(serializers.Serializer):
9595
@staticmethod
9696
def reset_application(application, application_version):
9797
update_field_dict = {
98-
'application_name': 'name', 'desc': 'desc', 'prologue': 'prologue', 'dialogue_number': 'dialogue_number',
98+
'application_name': 'name', 'application_code': 'code', 'desc': 'desc', 'prologue': 'prologue', 'dialogue_number': 'dialogue_number',
9999
'user_id': 'user_id', 'model_id': 'model_id', 'knowledge_setting': 'knowledge_setting',
100100
'model_setting': 'model_setting', 'model_params_setting': 'model_params_setting',
101101
'tts_model_params_setting': 'tts_model_params_setting',

ui/src/api/type/application.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import bus from '@/bus'
44

55
interface ApplicationFormType {
66
name?: string
7+
code?: string
78
desc?: string
89
model_id?: string
910
dialogue_number?: number

0 commit comments

Comments
 (0)