Skip to content

Commit 4320a64

Browse files
authored
Merge branch 'main' into main
2 parents 719bf04 + 73fb078 commit 4320a64

52 files changed

Lines changed: 137 additions & 123 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ Employs a team of specialized AI agents that collaborate to solve complex tasks.
151151
Eigent pre-defined the following agent workers:
152152

153153
- **Developer Agent:** Writes and executes code, runs terminal commands.
154-
- **Search Agent:** Searches the web and extracts content.
154+
- **Browser Agent:** Searches the web and extracts content.
155155
- **Document Agent:** Creates and manages documents.
156156
- **Multi-Modal Agent:** Processes images and audio.
157157

README_JA.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ Eigentの強力な機能で卓越した生産性の可能性を最大限に引
149149
Eigentは以下のエージェントワーカーを事前定義しています:
150150

151151
- **Developer Agent:** コードを書いて実行し、ターミナルコマンドを実行します。
152-
- **Search Agent:** ウェブを検索し、コンテンツを抽出します。
152+
- **Browser Agent:** ウェブを検索し、コンテンツを抽出します。
153153
- **Document Agent:** ドキュメントを作成・管理します。
154154
- **Multi-Modal Agent:** 画像と音声を処理します。
155155

backend/app/controller/model_controller.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from fastapi import APIRouter, HTTPException
2-
from pydantic import BaseModel, Field
2+
from pydantic import BaseModel, Field, field_validator
33
from app.component.model_validation import create_agent
4+
from app.model.chat import PLATFORM_MAPPING
45
from camel.types import ModelType
56
from app.component.error_format import normalize_error_to_openai_format
67
from utils import traceroot_wrapper as traceroot
@@ -19,6 +20,11 @@ class ValidateModelRequest(BaseModel):
1920
model_config_dict: dict | None = Field(None, description="Model config dict")
2021
extra_params: dict | None = Field(None, description="Extra model parameters")
2122

23+
@field_validator("model_platform")
24+
@classmethod
25+
def map_model_platform(cls, v: str) -> str:
26+
return PLATFORM_MAPPING.get(v, v)
27+
2228

2329
class ValidateModelResponse(BaseModel):
2430
is_valid: bool = Field(..., description="Is valid")

backend/app/model/chat.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ class QuestionAnalysisResult(BaseModel):
3434

3535
McpServers = dict[Literal["mcpServers"], dict[str, dict]]
3636

37+
PLATFORM_MAPPING = {
38+
"Z.ai": "openai-compatible-model",
39+
}
3740

3841
class Chat(BaseModel):
3942
task_id: str
@@ -65,6 +68,11 @@ class Chat(BaseModel):
6568
extra_params: dict | None = None # For provider-specific parameters like Azure
6669
search_config: dict[str, str] | None = None # User-specific search engine configurations (e.g., GOOGLE_API_KEY, SEARCH_ENGINE_ID)
6770

71+
@field_validator("model_platform")
72+
@classmethod
73+
def map_model_platform(cls, v: str) -> str:
74+
return PLATFORM_MAPPING.get(v, v)
75+
6876
@field_validator("model_type")
6977
@classmethod
7078
def check_model_type(cls, model_type: str):

backend/app/service/chat_service.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
developer_agent,
3636
document_agent,
3737
multi_modal_agent,
38-
search_agent,
38+
browser_agent,
3939
social_medium_agent,
4040
task_summary_agent,
4141
question_confirm_agent,
@@ -1332,13 +1332,13 @@ async def construct_workforce(options: Chat) -> tuple[Workforce, ListenChatAgent
13321332
)
13331333
# msg_toolkit = AgentCommunicationToolkit(max_message_history=100)
13341334

1335-
searcher = search_agent(options)
1335+
searcher = browser_agent(options)
13361336
developer = await developer_agent(options)
13371337
documenter = await document_agent(options)
13381338
multi_modaler = multi_modal_agent(options)
13391339

13401340
# msg_toolkit.register_agent("Worker", new_worker_agent)
1341-
# msg_toolkit.register_agent("Search_Agent", searcher)
1341+
# msg_toolkit.register_agent("Browser_Agent", searcher)
13421342
# msg_toolkit.register_agent("Developer_Agent", developer)
13431343
# msg_toolkit.register_agent("Document_Agent", documenter)
13441344
# msg_toolkit.register_agent("Multi_Modal_Agent", multi_modaler)
@@ -1368,7 +1368,7 @@ async def construct_workforce(options: Chat) -> tuple[Workforce, ListenChatAgent
13681368
developer,
13691369
)
13701370
workforce.add_single_agent_worker(
1371-
"Search Agent: Can search the web, extract webpage content, "
1371+
"Browser Agent: Can search the web, extract webpage content, "
13721372
"simulate browser actions, and provide relevant information to "
13731373
"solve the given task.",
13741374
searcher,

backend/app/service/task.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class Agents(str, Enum):
250250
coordinator_agent = "coordinator_agent"
251251
new_worker_agent = "new_worker_agent"
252252
developer_agent = "developer_agent"
253-
search_agent = "search_agent"
253+
browser_agent = "browser_agent"
254254
document_agent = "document_agent"
255255
multi_modal_agent = "multi_modal_agent"
256256
social_medium_agent = "social_medium_agent"

backend/app/utils/agent.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -844,11 +844,11 @@ async def developer_agent(options: Chat):
844844

845845

846846
@traceroot.trace()
847-
def search_agent(options: Chat):
847+
def browser_agent(options: Chat):
848848
working_directory = get_working_directory(options)
849-
traceroot_logger.info(f"Creating search agent for project: {options.project_id} in directory: {working_directory}")
849+
traceroot_logger.info(f"Creating browser agent for project: {options.project_id} in directory: {working_directory}")
850850
message_integration = ToolkitMessageIntegration(
851-
message_handler=HumanToolkit(options.project_id, Agents.search_agent).send_message_to_user
851+
message_handler=HumanToolkit(options.project_id, Agents.browser_agent).send_message_to_user
852852
)
853853

854854
web_toolkit_custom = HybridBrowserToolkit(
@@ -878,10 +878,10 @@ def search_agent(options: Chat):
878878
# Save reference before registering for toolkits_to_register_agent
879879
web_toolkit_for_agent_registration = web_toolkit_custom
880880
web_toolkit_custom = message_integration.register_toolkits(web_toolkit_custom)
881-
terminal_toolkit = TerminalToolkit(options.project_id, Agents.search_agent, safe_mode=True, clone_current_env=False)
881+
terminal_toolkit = TerminalToolkit(options.project_id, Agents.browser_agent, safe_mode=True, clone_current_env=False)
882882
terminal_toolkit = message_integration.register_functions([terminal_toolkit.shell_exec])
883883

884-
note_toolkit = NoteTakingToolkit(options.project_id, Agents.search_agent, working_directory=working_directory)
884+
note_toolkit = NoteTakingToolkit(options.project_id, Agents.browser_agent, working_directory=working_directory)
885885
note_toolkit = message_integration.register_toolkits(note_toolkit)
886886
search_tools = SearchToolkit.get_can_use_tools(options.project_id)
887887
# Only register search tools if any are available
@@ -891,7 +891,7 @@ def search_agent(options: Chat):
891891
search_tools = []
892892

893893
tools = [
894-
*HumanToolkit.get_can_use_tools(options.project_id, Agents.search_agent),
894+
*HumanToolkit.get_can_use_tools(options.project_id, Agents.browser_agent),
895895
*web_toolkit_custom.get_tools(),
896896
*terminal_toolkit,
897897
*note_toolkit.get_tools(),
@@ -1011,9 +1011,9 @@ def search_agent(options: Chat):
10111011
"""
10121012

10131013
return agent_model(
1014-
Agents.search_agent,
1014+
Agents.browser_agent,
10151015
BaseMessage.make_assistant_message(
1016-
role_name="Search Agent",
1016+
role_name="Browser Agent",
10171017
content=system_message,
10181018
),
10191019
options,
@@ -1493,7 +1493,7 @@ async def social_medium_agent(options: Chat):
14931493
- Communicate with other agents using messaging tools when collaboration
14941494
is needed. Use `list_available_agents` to see available team members and
14951495
`send_message` to coordinate with them, especially when you need content
1496-
from document agents or research from search agents.
1496+
from document agents or research from browser agents.
14971497
14981498
9. File System Access:
14991499
- You can use terminal tools to interact with the local file system in

backend/app/utils/toolkit/craw4ai_toolkit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
@auto_listen_toolkit(BaseCrawl4AIToolkit)
99
class Crawl4AIToolkit(BaseCrawl4AIToolkit, AbstractToolkit):
10-
agent_name: str = Agents.search_agent
10+
agent_name: str = Agents.browser_agent
1111

1212
def __init__(self, api_task_id: str, timeout: float | None = None):
1313
self.api_task_id = api_task_id

backend/app/utils/toolkit/hybrid_browser_python_toolkit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ async def get_new_tab(self):
128128

129129
@auto_listen_toolkit(BaseHybridBrowserToolkit)
130130
class HybridBrowserPythonToolkit(BaseHybridBrowserToolkit, AbstractToolkit):
131-
agent_name: str = Agents.search_agent
131+
agent_name: str = Agents.browser_agent
132132

133133
def __init__(
134134
self,

backend/app/utils/toolkit/hybrid_browser_toolkit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ async def close_all(self):
215215

216216
@auto_listen_toolkit(BaseHybridBrowserToolkit)
217217
class HybridBrowserToolkit(BaseHybridBrowserToolkit, AbstractToolkit):
218-
agent_name: str = Agents.search_agent
218+
agent_name: str = Agents.browser_agent
219219

220220
def __init__(
221221
self,

0 commit comments

Comments
 (0)