pygpt-net 2.6.23__py3-none-any.whl → 2.6.25__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. pygpt_net/CHANGELOG.txt +14 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/controller/chat/response.py +6 -5
  4. pygpt_net/controller/config/placeholder.py +3 -1
  5. pygpt_net/controller/model/importer.py +28 -5
  6. pygpt_net/core/agents/runners/loop.py +36 -3
  7. pygpt_net/core/attachments/context.py +4 -4
  8. pygpt_net/core/idx/chat.py +1 -1
  9. pygpt_net/core/idx/indexing.py +3 -3
  10. pygpt_net/core/idx/llm.py +61 -2
  11. pygpt_net/data/config/config.json +41 -4
  12. pygpt_net/data/config/models.json +3 -3
  13. pygpt_net/data/config/settings.json +56 -1
  14. pygpt_net/data/locale/locale.de.ini +46 -0
  15. pygpt_net/data/locale/locale.en.ini +53 -1
  16. pygpt_net/data/locale/locale.es.ini +46 -0
  17. pygpt_net/data/locale/locale.fr.ini +46 -0
  18. pygpt_net/data/locale/locale.it.ini +46 -0
  19. pygpt_net/data/locale/locale.pl.ini +47 -1
  20. pygpt_net/data/locale/locale.uk.ini +46 -0
  21. pygpt_net/data/locale/locale.zh.ini +46 -0
  22. pygpt_net/provider/agents/llama_index/codeact_workflow.py +8 -7
  23. pygpt_net/provider/agents/llama_index/planner_workflow.py +11 -10
  24. pygpt_net/provider/agents/llama_index/supervisor_workflow.py +9 -8
  25. pygpt_net/provider/agents/openai/agent_b2b.py +30 -17
  26. pygpt_net/provider/agents/openai/agent_planner.py +29 -29
  27. pygpt_net/provider/agents/openai/agent_with_experts_feedback.py +21 -23
  28. pygpt_net/provider/agents/openai/agent_with_feedback.py +21 -23
  29. pygpt_net/provider/agents/openai/bot_researcher.py +25 -30
  30. pygpt_net/provider/agents/openai/evolve.py +37 -39
  31. pygpt_net/provider/agents/openai/supervisor.py +16 -18
  32. pygpt_net/provider/core/config/patch.py +45 -1
  33. pygpt_net/provider/llms/anthropic.py +38 -7
  34. pygpt_net/provider/llms/azure_openai.py +9 -4
  35. pygpt_net/provider/llms/deepseek_api.py +36 -3
  36. pygpt_net/provider/llms/google.py +9 -3
  37. pygpt_net/provider/llms/hugging_face_api.py +9 -3
  38. pygpt_net/provider/llms/hugging_face_router.py +17 -3
  39. pygpt_net/provider/llms/llama_index/x_ai/__init__.py +0 -0
  40. pygpt_net/provider/llms/llama_index/x_ai/embedding.py +71 -0
  41. pygpt_net/provider/llms/local.py +25 -1
  42. pygpt_net/provider/llms/mistral.py +29 -1
  43. pygpt_net/provider/llms/ollama.py +3 -1
  44. pygpt_net/provider/llms/openai.py +7 -2
  45. pygpt_net/provider/llms/x_ai.py +19 -3
  46. pygpt_net/ui/widget/textarea/input.py +3 -3
  47. {pygpt_net-2.6.23.dist-info → pygpt_net-2.6.25.dist-info}/METADATA +54 -28
  48. {pygpt_net-2.6.23.dist-info → pygpt_net-2.6.25.dist-info}/RECORD +51 -49
  49. {pygpt_net-2.6.23.dist-info → pygpt_net-2.6.25.dist-info}/LICENSE +0 -0
  50. {pygpt_net-2.6.23.dist-info → pygpt_net-2.6.25.dist-info}/WHEEL +0 -0
  51. {pygpt_net-2.6.23.dist-info → pygpt_net-2.6.25.dist-info}/entry_points.txt +0 -0
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.24 03:00:00 #
9
+ # Updated Date: 2025.08.26 01:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import copy
@@ -31,6 +31,7 @@ from pygpt_net.item.preset import PresetItem
31
31
 
32
32
  from pygpt_net.provider.gpt.agents.remote_tools import append_tools
33
33
  from pygpt_net.provider.gpt.agents.response import StreamHandler
34
+ from pygpt_net.utils import trans
34
35
 
35
36
  from ..base import BaseAgent
36
37
  from ...gpt.agents.experts import get_experts
@@ -73,7 +74,7 @@ class Agent(BaseAgent):
73
74
  id = kwargs.get("bot_id", 1)
74
75
  option_key = f"bot_{id}"
75
76
  kwargs = {
76
- "name": "Bot {}".format(id),
77
+ "name": self.get_option(preset, option_key, "name"),
77
78
  "instructions": self.get_option(preset, option_key, "prompt"),
78
79
  "model": window.core.agents.provider.get_openai_model(model),
79
80
  }
@@ -226,6 +227,7 @@ class Agent(BaseAgent):
226
227
  tools=tools,
227
228
  )
228
229
 
230
+ bot_1_name = self.get_option(preset, "bot_1", "name")
229
231
  bot_1_kwargs = copy.deepcopy(agent_kwargs)
230
232
  bot_2_kwargs = copy.deepcopy(agent_kwargs)
231
233
 
@@ -239,6 +241,7 @@ class Agent(BaseAgent):
239
241
  if model_name_2:
240
242
  model_2 = window.core.models.get(model_name_2)
241
243
  bot_2_kwargs["model"] = model_2
244
+ bot_2_name = self.get_option(preset, "bot_2", "name")
242
245
  bot_2_kwargs["bot_id"] = 2
243
246
  if experts:
244
247
  bot_2_kwargs["handoffs"] = experts
@@ -334,7 +337,7 @@ class Agent(BaseAgent):
334
337
  handler.reset()
335
338
 
336
339
  # bot 1 title
337
- title = "\n\n**Bot 1**\n\n"
340
+ title = f"\n\n**{bot_1_name}**\n\n"
338
341
  ctx.stream = title
339
342
  bridge.on_step(ctx, begin)
340
343
  begin = False
@@ -380,7 +383,7 @@ class Agent(BaseAgent):
380
383
  handler.reset()
381
384
 
382
385
  # bot 2 title
383
- title = "\n\n**Bot 2**\n\n"
386
+ title = f"\n\n**{bot_2_name}**\n\n"
384
387
  ctx.stream = title
385
388
  bridge.on_step(ctx, False)
386
389
  if not use_partial_ctx:
@@ -427,22 +430,27 @@ class Agent(BaseAgent):
427
430
  "bot_1": {
428
431
  "label": "Bot 1",
429
432
  "options": {
433
+ "name": {
434
+ "type": "text",
435
+ "label": trans("agent.option.name"),
436
+ "default": "Bot 1",
437
+ },
430
438
  "prompt": {
431
439
  "type": "textarea",
432
- "label": "Prompt",
433
- "description": "Prompt for bot 1",
440
+ "label": trans("agent.option.prompt"),
441
+ "description": trans("agent.option.prompt.b1.desc"),
434
442
  "default": self.PROMPT_BOT_1,
435
443
  },
436
444
  "allow_local_tools": {
437
445
  "type": "bool",
438
- "label": "Allow local tools",
439
- "description": "Allow usage of local tools for this agent",
446
+ "label": trans("agent.option.tools.local"),
447
+ "description": trans("agent.option.tools.local.desc"),
440
448
  "default": False,
441
449
  },
442
450
  "allow_remote_tools": {
443
451
  "type": "bool",
444
- "label": "Allow remote tools",
445
- "description": "Allow usage of remote tools for this agent",
452
+ "label": trans("agent.option.tools.remote"),
453
+ "description": trans("agent.option.tools.remote.desc"),
446
454
  "default": False,
447
455
  },
448
456
  }
@@ -450,28 +458,33 @@ class Agent(BaseAgent):
450
458
  "bot_2": {
451
459
  "label": "Bot 2",
452
460
  "options": {
461
+ "name": {
462
+ "type": "text",
463
+ "label": trans("agent.option.name"),
464
+ "default": "Bot 2",
465
+ },
453
466
  "model": {
454
- "label": "Model",
467
+ "label": trans("agent.option.model"),
455
468
  "type": "combo",
456
469
  "use": "models",
457
470
  "default": "gpt-4o",
458
471
  },
459
472
  "prompt": {
460
473
  "type": "textarea",
461
- "label": "Prompt",
462
- "description": "Prompt for bot 2",
474
+ "label": trans("agent.option.prompt"),
475
+ "description": trans("agent.option.prompt.b2.desc"),
463
476
  "default": self.PROMPT_BOT_2,
464
477
  },
465
478
  "allow_local_tools": {
466
479
  "type": "bool",
467
- "label": "Allow local tools",
468
- "description": "Allow usage of local tools for this agent",
480
+ "label": trans("agent.option.tools.local"),
481
+ "description": trans("agent.option.tools.local.desc"),
469
482
  "default": False,
470
483
  },
471
484
  "allow_remote_tools": {
472
485
  "type": "bool",
473
- "label": "Allow remote tools",
474
- "description": "Allow usage of remote tools for this agent",
486
+ "label": trans("agent.option.tools.remote"),
487
+ "description": trans("agent.option.tools.remote.desc"),
475
488
  "default": False,
476
489
  },
477
490
  }
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.24 03:00:00 #
9
+ # Updated Date: 2025.08.26 01:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from dataclasses import dataclass
@@ -16,7 +16,6 @@ from agents import (
16
16
  Agent as OpenAIAgent,
17
17
  Runner,
18
18
  RunConfig,
19
- ModelSettings,
20
19
  TResponseInputItem,
21
20
  )
22
21
 
@@ -32,8 +31,9 @@ from pygpt_net.item.model import ModelItem
32
31
  from pygpt_net.item.preset import PresetItem
33
32
 
34
33
  from pygpt_net.provider.gpt.agents.client import get_custom_model_provider, set_openai_env
35
- from pygpt_net.provider.gpt.agents.remote_tools import get_remote_tools, is_computer_tool, append_tools
34
+ from pygpt_net.provider.gpt.agents.remote_tools import append_tools
36
35
  from pygpt_net.provider.gpt.agents.response import StreamHandler
36
+ from pygpt_net.utils import trans
37
37
 
38
38
  from ..base import BaseAgent
39
39
  from ...gpt.agents.experts import get_experts
@@ -390,9 +390,9 @@ class Agent(BaseAgent):
390
390
  evaluator_result = await Runner.run(evaluator, input_items)
391
391
  result: EvaluationFeedback = evaluator_result.final_output
392
392
 
393
- info = f"\n___\n**Evaluator score: {result.score}**\n\n"
393
+ info = f"\n___\n**{trans('agent.eval.score')}: {result.score}**\n\n"
394
394
  if result.score == "pass":
395
- info += "\n\n**Response is good enough, exiting.**\n"
395
+ info += f"\n\n**{trans('agent.eval.score.good')}**\n"
396
396
  if use_partial_ctx:
397
397
  ctx = bridge.on_next_ctx(
398
398
  ctx=ctx,
@@ -408,7 +408,7 @@ class Agent(BaseAgent):
408
408
  final_output += info
409
409
  break
410
410
 
411
- info += "\n\n**Re-running with feedback**\n\n" + f"Feedback: {result.feedback}\n___\n"
411
+ info += f"\n\n**{trans('agent.eval.next')}**\n\nFeedback: {result.feedback}\n___\n"
412
412
  input_items.append({"content": f"Feedback: {result.feedback}", "role": "user"})
413
413
 
414
414
  if use_partial_ctx:
@@ -436,82 +436,82 @@ class Agent(BaseAgent):
436
436
  """
437
437
  return {
438
438
  "base": {
439
- "label": "Base agent",
439
+ "label": trans("agent.option.section.base"),
440
440
  "options": {
441
441
  "prompt": {
442
442
  "type": "textarea",
443
- "label": "Prompt",
444
- "description": "Prompt for base agent",
443
+ "label": trans("agent.option.prompt"),
444
+ "description": trans("agent.option.prompt.base.desc"),
445
445
  "default": self.PROMPT,
446
446
  },
447
447
  "allow_local_tools": {
448
448
  "type": "bool",
449
- "label": "Allow local tools",
450
- "description": "Allow usage of local tools for this agent",
449
+ "label": trans("agent.option.tools.local"),
450
+ "description": trans("agent.option.tools.local.desc"),
451
451
  "default": False,
452
452
  },
453
453
  "allow_remote_tools": {
454
454
  "type": "bool",
455
- "label": "Allow remote tools",
456
- "description": "Allow usage of remote tools for this agent",
455
+ "label": trans("agent.option.tools.remote"),
456
+ "description": trans("agent.option.tools.remote.desc"),
457
457
  "default": False,
458
458
  },
459
459
  }
460
460
  },
461
461
  "planner": {
462
- "label": "Planner",
462
+ "label": trans("agent.option.section.planner"),
463
463
  "options": {
464
464
  "model": {
465
- "label": "Model",
465
+ "label": trans("agent.option.model"),
466
466
  "type": "combo",
467
467
  "use": "models",
468
468
  "default": "o3-mini-low",
469
469
  },
470
470
  "prompt": {
471
471
  "type": "textarea",
472
- "label": "Prompt",
473
- "description": "Prompt for planner agent",
472
+ "label": trans("agent.option.prompt"),
473
+ "description": trans("agent.option.prompt.planner.desc"),
474
474
  "default": self.PROMPT_PLANNER,
475
475
  },
476
476
  "allow_local_tools": {
477
477
  "type": "bool",
478
- "label": "Allow local tools",
479
- "description": "Allow usage of local tools for planner agent",
478
+ "label": trans("agent.option.tools.local"),
479
+ "description": trans("agent.option.tools.local.desc"),
480
480
  "default": False,
481
481
  },
482
482
  "allow_remote_tools": {
483
483
  "type": "bool",
484
- "label": "Allow remote tools",
485
- "description": "Allow usage of remote tools for planner agent",
484
+ "label": trans("agent.option.tools.remote"),
485
+ "description": trans("agent.option.tools.remote.desc"),
486
486
  "default": False,
487
487
  },
488
488
  }
489
489
  },
490
490
  "feedback": {
491
- "label": "Feedback",
491
+ "label": trans("agent.option.section.feedback"),
492
492
  "options": {
493
493
  "model": {
494
- "label": "Model",
494
+ "label": trans("agent.option.model"),
495
495
  "type": "combo",
496
496
  "use": "models",
497
497
  "default": "gpt-4o",
498
498
  },
499
499
  "prompt": {
500
500
  "type": "textarea",
501
- "label": "Prompt",
502
- "description": "Prompt for feedback evaluation",
501
+ "label": trans("agent.option.prompt"),
502
+ "description": trans("agent.option.prompt.feedback.desc"),
503
503
  "default": self.PROMPT_FEEDBACK,
504
504
  },
505
505
  "allow_local_tools": {
506
506
  "type": "bool",
507
- "label": "Allow local tools",
508
- "description": "Allow usage of local tools for this agent",
507
+ "label": trans("agent.option.tools.local"),
508
+ "description": trans("agent.option.tools.local.desc"),
509
509
  "default": False,
510
510
  },
511
511
  "allow_remote_tools": {
512
512
  "type": "bool",
513
- "label": "Allow remote tools",
514
- "description": "Allow usage of remote tools for this agent",
513
+ "label": trans("agent.option.tools.remote"),
514
+ "description": trans("agent.option.tools.remote.desc"),
515
515
  "default": False,
516
516
  },
517
517
  }
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.24 03:00:00 #
9
+ # Updated Date: 2025.08.26 01:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from dataclasses import dataclass
@@ -15,8 +15,6 @@ from typing import Dict, Any, Tuple, Literal, Optional
15
15
  from agents import (
16
16
  Agent as OpenAIAgent,
17
17
  Runner,
18
- RunConfig,
19
- ModelSettings,
20
18
  TResponseInputItem,
21
19
  )
22
20
 
@@ -31,9 +29,9 @@ from pygpt_net.item.ctx import CtxItem
31
29
  from pygpt_net.item.model import ModelItem
32
30
  from pygpt_net.item.preset import PresetItem
33
31
 
34
- from pygpt_net.provider.gpt.agents.client import get_custom_model_provider, set_openai_env
35
- from pygpt_net.provider.gpt.agents.remote_tools import get_remote_tools, is_computer_tool, append_tools
32
+ from pygpt_net.provider.gpt.agents.remote_tools import append_tools
36
33
  from pygpt_net.provider.gpt.agents.response import StreamHandler
34
+ from pygpt_net.utils import trans
37
35
 
38
36
  from ..base import BaseAgent
39
37
  from ...gpt.agents.experts import get_experts
@@ -284,9 +282,9 @@ class Agent(BaseAgent):
284
282
  evaluator_result = await Runner.run(evaluator, input_items)
285
283
  result: EvaluationFeedback = evaluator_result.final_output
286
284
 
287
- info = f"\n___\n**Evaluator score: {result.score}**\n\n"
285
+ info = f"\n___\n**{trans('agent.eval.score')}: {result.score}**\n\n"
288
286
  if result.score == "pass":
289
- info += "\n\n**Response is good enough, exiting.**\n"
287
+ info += f"\n\n**{trans('agent.eval.score.good')}**\n"
290
288
  if use_partial_ctx:
291
289
  ctx = bridge.on_next_ctx(
292
290
  ctx=ctx,
@@ -302,7 +300,7 @@ class Agent(BaseAgent):
302
300
  final_output += info
303
301
  break
304
302
 
305
- info += "\n\n**Re-running with feedback**\n\n" + f"Feedback: {result.feedback}\n___\n"
303
+ info += f"\n\n**{trans('agent.eval.next')}**\n\nFeedback: {result.feedback}\n___\n"
306
304
  input_items.append({"content": f"Feedback: {result.feedback}", "role": "user"})
307
305
 
308
306
  if use_partial_ctx:
@@ -330,53 +328,53 @@ class Agent(BaseAgent):
330
328
  """
331
329
  return {
332
330
  "base": {
333
- "label": "Base agent",
331
+ "label": trans("agent.option.section.base"),
334
332
  "options": {
335
333
  "prompt": {
336
334
  "type": "textarea",
337
- "label": "Prompt",
338
- "description": "Prompt for base agent",
335
+ "label": trans("agent.option.prompt"),
336
+ "description": trans("agent.option.prompt.base.desc"),
339
337
  "default": self.PROMPT,
340
338
  },
341
339
  "allow_local_tools": {
342
340
  "type": "bool",
343
- "label": "Allow local tools",
344
- "description": "Allow usage of local tools for this agent",
341
+ "label": trans("agent.option.tools.local"),
342
+ "description": trans("agent.option.tools.local.desc"),
345
343
  "default": False,
346
344
  },
347
345
  "allow_remote_tools": {
348
346
  "type": "bool",
349
- "label": "Allow remote tools",
350
- "description": "Allow usage of remote tools for this agent",
347
+ "label": trans("agent.option.tools.remote"),
348
+ "description": trans("agent.option.tools.remote.desc"),
351
349
  "default": False,
352
350
  },
353
351
  }
354
352
  },
355
353
  "feedback": {
356
- "label": "Feedback",
354
+ "label": trans("agent.option.section.feedback"),
357
355
  "options": {
358
356
  "model": {
359
- "label": "Model",
357
+ "label": trans("agent.option.model"),
360
358
  "type": "combo",
361
359
  "use": "models",
362
360
  "default": "gpt-4o",
363
361
  },
364
362
  "prompt": {
365
363
  "type": "textarea",
366
- "label": "Prompt",
367
- "description": "Prompt for feedback evaluation",
364
+ "label": trans("agent.option.prompt"),
365
+ "description": trans("agent.option.prompt.feedback.desc"),
368
366
  "default": self.PROMPT_FEEDBACK,
369
367
  },
370
368
  "allow_local_tools": {
371
369
  "type": "bool",
372
- "label": "Allow local tools",
373
- "description": "Allow usage of local tools for this agent",
370
+ "label": trans("agent.option.tools.local"),
371
+ "description": trans("agent.option.tools.local.desc"),
374
372
  "default": False,
375
373
  },
376
374
  "allow_remote_tools": {
377
375
  "type": "bool",
378
- "label": "Allow remote tools",
379
- "description": "Allow usage of remote tools for this agent",
376
+ "label": trans("agent.option.tools.remote"),
377
+ "description": trans("agent.option.tools.remote.desc"),
380
378
  "default": False,
381
379
  },
382
380
  }
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.24 03:00:00 #
9
+ # Updated Date: 2025.08.26 01:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from dataclasses import dataclass
@@ -15,8 +15,6 @@ from typing import Dict, Any, Tuple, Literal, Optional
15
15
  from agents import (
16
16
  Agent as OpenAIAgent,
17
17
  Runner,
18
- RunConfig,
19
- ModelSettings,
20
18
  TResponseInputItem,
21
19
  )
22
20
 
@@ -31,9 +29,9 @@ from pygpt_net.item.ctx import CtxItem
31
29
  from pygpt_net.item.model import ModelItem
32
30
  from pygpt_net.item.preset import PresetItem
33
31
 
34
- from pygpt_net.provider.gpt.agents.client import get_custom_model_provider, set_openai_env
35
- from pygpt_net.provider.gpt.agents.remote_tools import get_remote_tools, is_computer_tool, append_tools
32
+ from pygpt_net.provider.gpt.agents.remote_tools import append_tools
36
33
  from pygpt_net.provider.gpt.agents.response import StreamHandler
34
+ from pygpt_net.utils import trans
37
35
 
38
36
  from ..base import BaseAgent
39
37
  from ...gpt.agents.experts import get_experts
@@ -284,9 +282,9 @@ class Agent(BaseAgent):
284
282
  evaluator_result = await Runner.run(evaluator, input_items)
285
283
  result: EvaluationFeedback = evaluator_result.final_output
286
284
 
287
- info = f"\n___\n**Evaluator score: {result.score}**\n\n"
285
+ info = f"\n___\n**{trans('agent.eval.score')}: {result.score}**\n\n"
288
286
  if result.score == "pass":
289
- info += "\n\n**Response is good enough, exiting.**\n"
287
+ info += f"\n\n**{trans('agent.eval.score.good')}**\n"
290
288
  if use_partial_ctx:
291
289
  ctx = bridge.on_next_ctx(
292
290
  ctx=ctx,
@@ -302,7 +300,7 @@ class Agent(BaseAgent):
302
300
  final_output += info
303
301
  break
304
302
 
305
- info += "\n\n**Re-running with feedback**\n\n" + f"Feedback: {result.feedback}\n___\n"
303
+ info += f"\n\n**{trans('agent.eval.next')}**\n\nFeedback: {result.feedback}\n___\n"
306
304
  input_items.append({"content": f"Feedback: {result.feedback}", "role": "user"})
307
305
 
308
306
  if use_partial_ctx:
@@ -330,53 +328,53 @@ class Agent(BaseAgent):
330
328
  """
331
329
  return {
332
330
  "base": {
333
- "label": "Base agent",
331
+ "label": trans("agent.option.section.base"),
334
332
  "options": {
335
333
  "prompt": {
336
334
  "type": "textarea",
337
- "label": "Prompt",
338
- "description": "Prompt for base agent",
335
+ "label": trans("agent.option.prompt"),
336
+ "description": trans("agent.option.prompt.base.desc"),
339
337
  "default": self.PROMPT,
340
338
  },
341
339
  "allow_local_tools": {
342
340
  "type": "bool",
343
- "label": "Allow local tools",
344
- "description": "Allow usage of local tools for this agent",
341
+ "label": trans("agent.option.tools.local"),
342
+ "description": trans("agent.option.tools.local.desc"),
345
343
  "default": False,
346
344
  },
347
345
  "allow_remote_tools": {
348
346
  "type": "bool",
349
- "label": "Allow remote tools",
350
- "description": "Allow usage of remote tools for this agent",
347
+ "label": trans("agent.option.tools.remote"),
348
+ "description": trans("agent.option.tools.remote.desc"),
351
349
  "default": False,
352
350
  },
353
351
  }
354
352
  },
355
353
  "feedback": {
356
- "label": "Feedback",
354
+ "label": trans("agent.option.section.feedback"),
357
355
  "options": {
358
356
  "model": {
359
- "label": "Model",
357
+ "label": trans("agent.option.model"),
360
358
  "type": "combo",
361
359
  "use": "models",
362
360
  "default": "gpt-4o",
363
361
  },
364
362
  "prompt": {
365
363
  "type": "textarea",
366
- "label": "Prompt",
367
- "description": "Prompt for feedback evaluation",
364
+ "label": trans("agent.option.prompt"),
365
+ "description": trans("agent.option.prompt.feedback.desc"),
368
366
  "default": self.PROMPT_FEEDBACK,
369
367
  },
370
368
  "allow_local_tools": {
371
369
  "type": "bool",
372
- "label": "Allow local tools",
373
- "description": "Allow usage of local tools for this agent",
370
+ "label": trans("agent.option.tools.local"),
371
+ "description": trans("agent.option.tools.local.desc"),
374
372
  "default": False,
375
373
  },
376
374
  "allow_remote_tools": {
377
375
  "type": "bool",
378
- "label": "Allow remote tools",
379
- "description": "Allow usage of remote tools for this agent",
376
+ "label": trans("agent.option.tools.remote"),
377
+ "description": trans("agent.option.tools.remote.desc"),
380
378
  "default": False,
381
379
  },
382
380
  }