From ff3383ce0cdd47c0a45b56a2304b9da007499e4e Mon Sep 17 00:00:00 2001 From: sd416 <65273389+sd416@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:46:53 +0530 Subject: [PATCH 01/12] Add GitHub Actions to Dependabot configuration Added configuration for GitHub Actions updates to Dependabot. --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index fe250ebd3..770ded5f5 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,3 +9,9 @@ updates: directory: "/" # Location of package manifests schedule: interval: "monthly" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + # Check for updates to GitHub Actions every week + interval: "weekly" From d95f93ae5c86f29c57dd5d6cd7eb4ec16b42b6fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 06:18:04 +0000 Subject: [PATCH 02/12] chore(deps): bump tj-actions/changed-files from 45 to 47 Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 45 to 47. - [Release notes](https://github.com/tj-actions/changed-files/releases) - [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md) - [Commits](https://github.com/tj-actions/changed-files/compare/v45...v47) --- updated-dependencies: - dependency-name: tj-actions/changed-files dependency-version: '47' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/lint-markdown.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-markdown.yml b/.github/workflows/lint-markdown.yml index 8bac4240d..df0d9c405 100644 --- a/.github/workflows/lint-markdown.yml +++ b/.github/workflows/lint-markdown.yml @@ -26,7 +26,7 @@ jobs: - name: Get changed markdown files id: changed-files - uses: tj-actions/changed-files@v45 + uses: tj-actions/changed-files@v47 with: files: | **.md From 54c5fc220ce3670a13f7a0cbd23a9f5c053c9c56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 06:18:08 +0000 Subject: [PATCH 03/12] chore(deps): bump actions/download-artifact from 4 to 7 Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 7. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v4...v7) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-view.yml | 6 +++--- .github/workflows/build.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-view.yml b/.github/workflows/build-view.yml index b81c3ed4c..3e20c1fd1 100644 --- a/.github/workflows/build-view.yml +++ b/.github/workflows/build-view.yml @@ -97,19 +97,19 @@ jobs: # Download all artifacts with correct names - name: Download mac-x64 artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: release-macos-15-intel-x64 path: temp-mac-x64 - name: Download mac-arm64 artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: release-macos-latest-arm64 path: temp-mac-arm64 - name: Download win-x64 artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: release-windows-latest-x64 path: temp-win-x64 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 59b8616f8..8ec9d5a38 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -101,19 +101,19 @@ jobs: # Download all artifacts with correct names - name: Download mac-x64 artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: release-macos-15-intel-x64 path: temp-mac-x64 - name: Download mac-arm64 artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: release-macos-latest-arm64 path: temp-mac-arm64 - name: Download win-x64 artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: release-windows-latest-x64 path: temp-win-x64 From b7faebac86151f8dbc5641df951f9484d1eb1597 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 06:18:12 +0000 Subject: [PATCH 04/12] chore(deps): bump actions/setup-python from 4 to 6 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 6. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-view.yml | 2 +- .github/workflows/build.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-view.yml b/.github/workflows/build-view.yml index b81c3ed4c..83dc7b567 100644 --- a/.github/workflows/build-view.yml +++ b/.github/workflows/build-view.yml @@ -30,7 +30,7 @@ jobs: node-version: 20 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: "3.11" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 59b8616f8..bea0bb0f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,7 +42,7 @@ jobs: node-version: 20 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: "3.11" From 818b176f55300ddb7ec44c287180f92ae3694c32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 06:18:17 +0000 Subject: [PATCH 05/12] chore(deps): bump actions/setup-node from 4 to 6 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-view.yml | 2 +- .github/workflows/build.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-view.yml b/.github/workflows/build-view.yml index b81c3ed4c..1e632541a 100644 --- a/.github/workflows/build-view.yml +++ b/.github/workflows/build-view.yml @@ -25,7 +25,7 @@ jobs: uses: actions/checkout@v4 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: 20 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 59b8616f8..6d23ed46f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: uses: actions/checkout@v4 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: 20 From 8a1d711bf87373436de75cac65d82dd1a425ba9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 06:18:21 +0000 Subject: [PATCH 06/12] chore(deps): bump actions/upload-artifact from 4 to 6 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-view.yml | 4 ++-- .github/workflows/build.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-view.yml b/.github/workflows/build-view.yml index b81c3ed4c..4c4517c3f 100644 --- a/.github/workflows/build-view.yml +++ b/.github/workflows/build-view.yml @@ -72,7 +72,7 @@ jobs: - name: Upload Artifact (macOS - dmg only) if: runner.os == 'macOS' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: release-${{ matrix.os }}-${{ matrix.arch }} path: | @@ -81,7 +81,7 @@ jobs: - name: Upload Artifact (Windows - exe only) if: runner.os == 'Windows' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: release-${{ matrix.os }}-${{ matrix.arch }} path: | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 59b8616f8..db14467fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,7 +83,7 @@ jobs: VITE_STACK_SECRET_SERVER_KEY: ${{ secrets.VITE_STACK_SECRET_SERVER_KEY }} - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: release-${{ matrix.os }}-${{ matrix.arch }} path: | From 41ccd91f87d61e8348b1a5a6d3cad6614070e41c Mon Sep 17 00:00:00 2001 From: Anish Umale Date: Sat, 17 Jan 2026 00:43:11 +0530 Subject: [PATCH 07/12] feat: add openrouter model config --- src/lib/llm.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/llm.ts b/src/lib/llm.ts index 57cf51a5f..2eccaae12 100644 --- a/src/lib/llm.ts +++ b/src/lib/llm.ts @@ -28,6 +28,15 @@ export const INIT_PROVODERS: Provider[] = [ is_valid: false, model_type: "" }, + { + id: 'openrouter', + name: 'OpenRouter', + apiKey: '', + apiHost: 'https://openrouter.ai/api/v1', + description: "OpenRouter model configuration.", + is_valid: false, + model_type: "" + }, { id: 'tongyi-qianwen', name: 'Qwen', From 978efddb65b130e81a64ff89c30d76462c178b6f Mon Sep 17 00:00:00 2001 From: Wendong-Fan Date: Sat, 17 Jan 2026 04:26:30 +0800 Subject: [PATCH 08/12] chore: rename search agent into browser agent --- README.md | 2 +- README_JA.md | 2 +- backend/app/service/chat_service.py | 8 +++---- backend/app/service/task.py | 2 +- backend/app/utils/agent.py | 18 +++++++------- backend/app/utils/toolkit/craw4ai_toolkit.py | 2 +- .../toolkit/hybrid_browser_python_toolkit.py | 2 +- .../utils/toolkit/hybrid_browser_toolkit.py | 2 +- .../app/utils/toolkit/pyautogui_toolkit.py | 2 +- backend/app/utils/toolkit/search_toolkit.py | 2 +- .../tests/unit/service/test_chat_service.py | 2 +- backend/tests/unit/service/test_task.py | 2 +- backend/tests/unit/utils/test_agent.py | 12 +++++----- docs/get_started/quick_start.md | 6 ++--- src/components/SearchAgentWrokSpace/index.tsx | 4 ++-- .../TerminalAgentWrokSpace/index.tsx | 4 ++-- src/components/WorkFlow/index.tsx | 6 ++--- src/components/WorkFlow/node.tsx | 6 ++--- src/components/WorkSpaceMenu/index.tsx | 24 +++++++++---------- src/i18n/locales/ar/dashboard.json | 2 +- src/i18n/locales/ar/layout.json | 2 +- src/i18n/locales/de/dashboard.json | 2 +- src/i18n/locales/de/layout.json | 2 +- src/i18n/locales/en-us/dashboard.json | 2 +- src/i18n/locales/en-us/layout.json | 2 +- src/i18n/locales/es/dashboard.json | 2 +- src/i18n/locales/es/layout.json | 2 +- src/i18n/locales/fr/dashboard.json | 2 +- src/i18n/locales/fr/layout.json | 2 +- src/i18n/locales/it/dashboard.json | 2 +- src/i18n/locales/it/layout.json | 2 +- src/i18n/locales/ja/dashboard.json | 2 +- src/i18n/locales/ja/layout.json | 2 +- src/i18n/locales/ko/dashboard.json | 2 +- src/i18n/locales/ko/layout.json | 2 +- src/i18n/locales/ru/dashboard.json | 2 +- src/i18n/locales/ru/layout.json | 2 +- src/i18n/locales/zh-Hans/dashboard.json | 2 +- src/i18n/locales/zh-Hans/layout.json | 2 +- src/i18n/locales/zh-Hant/dashboard.json | 2 +- src/i18n/locales/zh-Hant/layout.json | 2 +- src/pages/Dashboard/Project.tsx | 8 +++---- src/pages/Home.tsx | 6 ++--- src/store/chatStore.ts | 6 ++--- src/types/chatbox.d.ts | 6 ++--- src/types/workspace.d.ts | 2 +- test/mocks/sse.mock.ts | 22 ++++++++--------- 47 files changed, 101 insertions(+), 101 deletions(-) diff --git a/README.md b/README.md index b9c3a6383..316c6a374 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ Employs a team of specialized AI agents that collaborate to solve complex tasks. Eigent pre-defined the following agent workers: - **Developer Agent:** Writes and executes code, runs terminal commands. -- **Search Agent:** Searches the web and extracts content. +- **Browser Agent:** Searches the web and extracts content. - **Document Agent:** Creates and manages documents. - **Multi-Modal Agent:** Processes images and audio. diff --git a/README_JA.md b/README_JA.md index 34e0d02ac..3cc3cea7c 100644 --- a/README_JA.md +++ b/README_JA.md @@ -149,7 +149,7 @@ Eigentの強力な機能で卓越した生産性の可能性を最大限に引 Eigentは以下のエージェントワーカーを事前定義しています: - **Developer Agent:** コードを書いて実行し、ターミナルコマンドを実行します。 -- **Search Agent:** ウェブを検索し、コンテンツを抽出します。 +- **Browser Agent:** ウェブを検索し、コンテンツを抽出します。 - **Document Agent:** ドキュメントを作成・管理します。 - **Multi-Modal Agent:** 画像と音声を処理します。 diff --git a/backend/app/service/chat_service.py b/backend/app/service/chat_service.py index afbbc1696..de45225e2 100644 --- a/backend/app/service/chat_service.py +++ b/backend/app/service/chat_service.py @@ -35,7 +35,7 @@ from app.utils.agent import ( developer_agent, document_agent, multi_modal_agent, - search_agent, + browser_agent, social_medium_agent, task_summary_agent, question_confirm_agent, @@ -1332,13 +1332,13 @@ The current date is {datetime.date.today()}. For any date-related tasks, you MUS ) # msg_toolkit = AgentCommunicationToolkit(max_message_history=100) - searcher = search_agent(options) + searcher = browser_agent(options) developer = await developer_agent(options) documenter = await document_agent(options) multi_modaler = multi_modal_agent(options) # msg_toolkit.register_agent("Worker", new_worker_agent) - # msg_toolkit.register_agent("Search_Agent", searcher) + # msg_toolkit.register_agent("Browser_Agent", searcher) # msg_toolkit.register_agent("Developer_Agent", developer) # msg_toolkit.register_agent("Document_Agent", documenter) # msg_toolkit.register_agent("Multi_Modal_Agent", multi_modaler) @@ -1368,7 +1368,7 @@ The current date is {datetime.date.today()}. For any date-related tasks, you MUS developer, ) workforce.add_single_agent_worker( - "Search Agent: Can search the web, extract webpage content, " + "Browser Agent: Can search the web, extract webpage content," "simulate browser actions, and provide relevant information to " "solve the given task.", searcher, diff --git a/backend/app/service/task.py b/backend/app/service/task.py index 7f2e379d5..77439487b 100644 --- a/backend/app/service/task.py +++ b/backend/app/service/task.py @@ -250,7 +250,7 @@ class Agents(str, Enum): coordinator_agent = "coordinator_agent" new_worker_agent = "new_worker_agent" developer_agent = "developer_agent" - search_agent = "search_agent" + browser_agent = "browser_agent" document_agent = "document_agent" multi_modal_agent = "multi_modal_agent" social_medium_agent = "social_medium_agent" diff --git a/backend/app/utils/agent.py b/backend/app/utils/agent.py index ae73cc440..ce734da56 100644 --- a/backend/app/utils/agent.py +++ b/backend/app/utils/agent.py @@ -844,11 +844,11 @@ these tips to maximize your effectiveness: @traceroot.trace() -def search_agent(options: Chat): +def browser_agent(options: Chat): working_directory = get_working_directory(options) - traceroot_logger.info(f"Creating search agent for project: {options.project_id} in directory: {working_directory}") + traceroot_logger.info(f"Creating browser agent for project: {options.project_id} in directory: {working_directory}") message_integration = ToolkitMessageIntegration( - message_handler=HumanToolkit(options.project_id, Agents.search_agent).send_message_to_user + message_handler=HumanToolkit(options.project_id, Agents.browser_agent).send_message_to_user ) web_toolkit_custom = HybridBrowserToolkit( @@ -878,10 +878,10 @@ def search_agent(options: Chat): # Save reference before registering for toolkits_to_register_agent web_toolkit_for_agent_registration = web_toolkit_custom web_toolkit_custom = message_integration.register_toolkits(web_toolkit_custom) - terminal_toolkit = TerminalToolkit(options.project_id, Agents.search_agent, safe_mode=True, clone_current_env=False) + terminal_toolkit = TerminalToolkit(options.project_id, Agents.browser_agent, safe_mode=True, clone_current_env=False) terminal_toolkit = message_integration.register_functions([terminal_toolkit.shell_exec]) - note_toolkit = NoteTakingToolkit(options.project_id, Agents.search_agent, working_directory=working_directory) + note_toolkit = NoteTakingToolkit(options.project_id, Agents.browser_agent, working_directory=working_directory) note_toolkit = message_integration.register_toolkits(note_toolkit) search_tools = SearchToolkit.get_can_use_tools(options.project_id) # Only register search tools if any are available @@ -891,7 +891,7 @@ def search_agent(options: Chat): search_tools = [] tools = [ - *HumanToolkit.get_can_use_tools(options.project_id, Agents.search_agent), + *HumanToolkit.get_can_use_tools(options.project_id, Agents.browser_agent), *web_toolkit_custom.get_tools(), *terminal_toolkit, *note_toolkit.get_tools(), @@ -1011,9 +1011,9 @@ Your approach depends on available search tools: """ return agent_model( - Agents.search_agent, + Agents.browser_agent, BaseMessage.make_assistant_message( - role_name="Search Agent", + role_name="Browser Agent", content=system_message, ), options, @@ -1493,7 +1493,7 @@ Your integrated toolkits enable you to: - Communicate with other agents using messaging tools when collaboration is needed. Use `list_available_agents` to see available team members and `send_message` to coordinate with them, especially when you need content - from document agents or research from search agents. + from document agents or research from browser agents. 9. File System Access: - You can use terminal tools to interact with the local file system in diff --git a/backend/app/utils/toolkit/craw4ai_toolkit.py b/backend/app/utils/toolkit/craw4ai_toolkit.py index 65d1b51c7..4fcaa990b 100644 --- a/backend/app/utils/toolkit/craw4ai_toolkit.py +++ b/backend/app/utils/toolkit/craw4ai_toolkit.py @@ -7,7 +7,7 @@ from app.utils.toolkit.abstract_toolkit import AbstractToolkit @auto_listen_toolkit(BaseCrawl4AIToolkit) class Crawl4AIToolkit(BaseCrawl4AIToolkit, AbstractToolkit): - agent_name: str = Agents.search_agent + agent_name: str = Agents.browser_agent def __init__(self, api_task_id: str, timeout: float | None = None): self.api_task_id = api_task_id diff --git a/backend/app/utils/toolkit/hybrid_browser_python_toolkit.py b/backend/app/utils/toolkit/hybrid_browser_python_toolkit.py index db48abf2f..a0fc6da3e 100644 --- a/backend/app/utils/toolkit/hybrid_browser_python_toolkit.py +++ b/backend/app/utils/toolkit/hybrid_browser_python_toolkit.py @@ -128,7 +128,7 @@ class BrowserSession(BaseHybridBrowserSession): @auto_listen_toolkit(BaseHybridBrowserToolkit) class HybridBrowserPythonToolkit(BaseHybridBrowserToolkit, AbstractToolkit): - agent_name: str = Agents.search_agent + agent_name: str = Agents.browser_agent def __init__( self, diff --git a/backend/app/utils/toolkit/hybrid_browser_toolkit.py b/backend/app/utils/toolkit/hybrid_browser_toolkit.py index f39cb9000..29d28479e 100644 --- a/backend/app/utils/toolkit/hybrid_browser_toolkit.py +++ b/backend/app/utils/toolkit/hybrid_browser_toolkit.py @@ -215,7 +215,7 @@ websocket_connection_pool = WebSocketConnectionPool() @auto_listen_toolkit(BaseHybridBrowserToolkit) class HybridBrowserToolkit(BaseHybridBrowserToolkit, AbstractToolkit): - agent_name: str = Agents.search_agent + agent_name: str = Agents.browser_agent def __init__( self, diff --git a/backend/app/utils/toolkit/pyautogui_toolkit.py b/backend/app/utils/toolkit/pyautogui_toolkit.py index 8cf3d0c50..324112eb3 100644 --- a/backend/app/utils/toolkit/pyautogui_toolkit.py +++ b/backend/app/utils/toolkit/pyautogui_toolkit.py @@ -10,7 +10,7 @@ from app.utils.toolkit.abstract_toolkit import AbstractToolkit @auto_listen_toolkit(BasePyAutoGUIToolkit) class PyAutoGUIToolkit(BasePyAutoGUIToolkit, AbstractToolkit): - agent_name: str = Agents.search_agent + agent_name: str = Agents.browser_agent def __init__( self, diff --git a/backend/app/utils/toolkit/search_toolkit.py b/backend/app/utils/toolkit/search_toolkit.py index ab6958a86..93607383d 100644 --- a/backend/app/utils/toolkit/search_toolkit.py +++ b/backend/app/utils/toolkit/search_toolkit.py @@ -14,7 +14,7 @@ logger = traceroot.get_logger("search_toolkit") @auto_listen_toolkit(BaseSearchToolkit) class SearchToolkit(BaseSearchToolkit, AbstractToolkit): - agent_name: str = Agents.search_agent + agent_name: str = Agents.browser_agent def __init__( self, diff --git a/backend/tests/unit/service/test_chat_service.py b/backend/tests/unit/service/test_chat_service.py index fd854eec6..a483fba5b 100644 --- a/backend/tests/unit/service/test_chat_service.py +++ b/backend/tests/unit/service/test_chat_service.py @@ -612,7 +612,7 @@ class TestChatServiceAgentOperations: with patch("app.service.chat_service.agent_model") as mock_agent_model, \ patch("app.service.chat_service.Workforce", return_value=mock_workforce), \ - patch("app.service.chat_service.search_agent"), \ + patch("app.service.chat_service.browser_agent"), \ patch("app.service.chat_service.developer_agent"), \ patch("app.service.chat_service.document_agent"), \ patch("app.service.chat_service.multi_modal_agent"), \ diff --git a/backend/tests/unit/service/test_task.py b/backend/tests/unit/service/test_task.py index 5ebcb3f88..330215a51 100644 --- a/backend/tests/unit/service/test_task.py +++ b/backend/tests/unit/service/test_task.py @@ -156,7 +156,7 @@ class TestTaskServiceModels: """Test Agents enum contains expected values.""" expected_agents = [ "task_agent", "coordinator_agent", "new_worker_agent", - "developer_agent", "search_agent", "document_agent", + "developer_agent", "browser_agent", "document_agent", "multi_modal_agent", "social_medium_agent", "mcp_agent" ] diff --git a/backend/tests/unit/utils/test_agent.py b/backend/tests/unit/utils/test_agent.py index 161db996b..5eb57c643 100644 --- a/backend/tests/unit/utils/test_agent.py +++ b/backend/tests/unit/utils/test_agent.py @@ -19,7 +19,7 @@ from app.utils.agent import ( question_confirm_agent, task_summary_agent, developer_agent, - search_agent, + browser_agent, document_agent, multi_modal_agent, social_medium_agent, @@ -520,8 +520,8 @@ class TestAgentFactoryFunctions: tools_arg = call_args[0][3] # tools argument assert isinstance(tools_arg, list) - def test_search_agent_creation(self, sample_chat_data): - """Test search_agent creates agent with search tools.""" + def test_browser_agent_creation(self, sample_chat_data): + """Test browser_agent creates agent with search tools.""" options = Chat(**sample_chat_data) # Setup task lock in the registry before calling agent function @@ -557,14 +557,14 @@ class TestAgentFactoryFunctions: mock_agent = MagicMock() mock_agent_model.return_value = mock_agent - result = search_agent(options) + result = browser_agent(options) assert result is mock_agent mock_agent_model.assert_called_once() - # Check that it was called with search agent configuration + # Check that it was called with browser agent configuration call_args = mock_agent_model.call_args - assert "search_agent" in str(call_args[0][0]) # agent_name (enum contains this value) + assert "browser_agent" in str(call_args[0][0]) # agent_name (enum contains this value) # The system_prompt is a BaseMessage, so check its content attribute system_message = call_args[0][1] if hasattr(system_message, 'content'): diff --git a/docs/get_started/quick_start.md b/docs/get_started/quick_start.md index 7f111da02..28faad0e5 100644 --- a/docs/get_started/quick_start.md +++ b/docs/get_started/quick_start.md @@ -62,7 +62,7 @@ Cloud version users: outputs are also saved in your cloud workspace according to Eigent comes with four ready-to-work agents. Each is equipped with a specific set of tools and shines at specific tasks—click to explore: 1. **Developer Agent** – writes, debugs and executes code -2. **Search Agent** – fetches and gathers info from the web +2. **Browser Agent** – fetches and gathers info from the web 3. **Multimodal Agent** – ideals with images, videos and more 4. **Document Agent** – reads, writes and manages files (Markdown, PDF, Word, etc.) @@ -115,10 +115,10 @@ Once the task starts, your agents will run in parallel on the Canvas: Click on an agent icon to open its **Workspace**: -- Example 1: open **Search Agent**, launch embedded browser +- Example 1: open **Browser Agent**, launch embedded browser - Use **“Take Control”** to take over browsing (e.g., accept cookies), then return control to the agent -![Search Agent](/docs/images/quickstart_takecontrol.gif) +![Browser Agent](/docs/images/quickstart_takecontrol.gif) - Example 2: open **Developer Agent**, lauch **Terminal** diff --git a/src/components/SearchAgentWrokSpace/index.tsx b/src/components/SearchAgentWrokSpace/index.tsx index fb198a900..07e3c23a7 100644 --- a/src/components/SearchAgentWrokSpace/index.tsx +++ b/src/components/SearchAgentWrokSpace/index.tsx @@ -38,8 +38,8 @@ export default function Home() { borderColor: "border-bg-fill-coding-active", bgColorLight: "bg-emerald-200", }, - search_agent: { - name: "Search Agent", + browser_agent: { + name: "Browser Agent", icon: , textColor: "text-blue-700", bgColor: "bg-bg-fill-browser-active", diff --git a/src/components/TerminalAgentWrokSpace/index.tsx b/src/components/TerminalAgentWrokSpace/index.tsx index dc6ea08ef..a4111f75c 100644 --- a/src/components/TerminalAgentWrokSpace/index.tsx +++ b/src/components/TerminalAgentWrokSpace/index.tsx @@ -40,8 +40,8 @@ export default function TerminalAgentWrokSpace() { borderColor: "border-bg-fill-coding-active", bgColorLight: "bg-emerald-200", }, - search_agent: { - name: "Search Agent", + browser_agent: { + name: "Browser Agent", icon: , textColor: "text-blue-700", bgColor: "bg-bg-fill-browser-active", diff --git a/src/components/WorkFlow/index.tsx b/src/components/WorkFlow/index.tsx index 45ad756c8..f23c79758 100644 --- a/src/components/WorkFlow/index.tsx +++ b/src/components/WorkFlow/index.tsx @@ -68,9 +68,9 @@ export default function Workflow({ }, { tasks: [], - agent_id: "search_agent", - name: "Search Agent", - type: "search_agent", + agent_id: "browser_agent", + name: "Browser Agent", + type: "browser_agent", tools: [ "Search Toolkit", "Browser Toolkit", diff --git a/src/components/WorkFlow/node.tsx b/src/components/WorkFlow/node.tsx index 3af1e022e..2952ed4bd 100644 --- a/src/components/WorkFlow/node.tsx +++ b/src/components/WorkFlow/node.tsx @@ -234,8 +234,8 @@ export function Node({ id, data }: NodeProps) { borderColor: "border-bg-fill-coding-active", bgColorLight: "bg-emerald-200", }, - search_agent: { - name: "Search Agent", + browser_agent: { + name: "Browser Agent", icon: , textColor: "text-blue-700", bgColor: "bg-bg-fill-browser-active", @@ -278,7 +278,7 @@ export function Node({ id, data }: NodeProps) { "# Web Deployment ", "# Screen Capture ", ], - search_agent: ["# Web Browser ", "# Search Engines "], + browser_agent: ["# Web Browser ", "# Search Engines "], multi_modal_agent: [ "# Image Analysis ", "# Video Processing ", diff --git a/src/components/WorkSpaceMenu/index.tsx b/src/components/WorkSpaceMenu/index.tsx index c8d76ec92..157032ba6 100644 --- a/src/components/WorkSpaceMenu/index.tsx +++ b/src/components/WorkSpaceMenu/index.tsx @@ -35,9 +35,9 @@ export function WorkSpaceMenu() { }, { tasks: [], - agent_id: "search_agent", - name: t("layout.search-agent"), - type: "search_agent", + agent_id: "browser_agent", + name: t("layout.browser-agent"), + type: "browser_agent", log: [], activeWebviewIds: [], }, @@ -101,7 +101,7 @@ export function WorkSpaceMenu() { ); if (activeAgentIndex === -1) { - const searchAgentIndex = taskAssigning.findIndex((item) => item.type === 'search_agent'); + const searchAgentIndex = taskAssigning.findIndex((item) => item.type === 'browser_agent'); if (searchAgentIndex !== -1) { taskAssigning[searchAgentIndex].activeWebviewIds?.push({ id, @@ -134,8 +134,8 @@ export function WorkSpaceMenu() { ...webViewUrls, ]); } else { - // If no URL match found, also try to add to search_agent - const searchAgentIndex = taskAssigning.findIndex((item) => item.type === 'search_agent'); + // If no URL match found, also try to add to browser_agent + const searchAgentIndex = taskAssigning.findIndex((item) => item.type === 'browser_agent'); if (searchAgentIndex !== -1 && webViewUrls.length > 0) { taskAssigning[searchAgentIndex].activeWebviewIds?.push({ id, @@ -153,7 +153,7 @@ export function WorkSpaceMenu() { let webviews: { id: string; agent_id: string; index: number }[] = []; taskAssigning.map((item) => { - if (item.type === "search_agent") { + if (item.type === "browser_agent") { item.activeWebviewIds?.map((webview, index) => { // console.log("@@@@@@", webview); if (webview.id === id) { @@ -222,8 +222,8 @@ export function WorkSpaceMenu() { borderColor: "border-bg-fill-coding-active", bgColorLight: "bg-emerald-200", }, - search_agent: { - name: t("layout.search-agent"), + browser_agent: { + name: t("layout.browser-agent"), icon: , textColor: "text-blue-700", bgColor: "bg-bg-fill-browser-active", @@ -265,9 +265,9 @@ export function WorkSpaceMenu() { className={`!h-[10px] !w-[10px] ${agentMap.developer_agent.textColor}`} /> ), - search_agent: ( + browser_agent: ( ), document_agent: ( @@ -376,7 +376,7 @@ export function WorkSpaceMenu() { disabled={ ![ "developer_agent", - "search_agent", + "browser_agent", "document_agent", ].includes(agent.type as AgentNameType) || agent.tasks.length === 0 diff --git a/src/i18n/locales/ar/dashboard.json b/src/i18n/locales/ar/dashboard.json index 3f3c000e8..d309d0e63 100644 --- a/src/i18n/locales/ar/dashboard.json +++ b/src/i18n/locales/ar/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "بحث إيموجي", "calculator": "آلة حاسبة", "developer-agent": "وكيل المطور", - "search-agent": "وكيل البحث", + "browser-agent": "وكيل المتصفح", "document-agent": "وكيل المستندات", "multi-modal-agent": "وكيل متعدد الوسائط", "social-media-agent": "وكيل وسائل التواصل الاجتماعي", diff --git a/src/i18n/locales/ar/layout.json b/src/i18n/locales/ar/layout.json index 522629c55..89a534592 100644 --- a/src/i18n/locales/ar/layout.json +++ b/src/i18n/locales/ar/layout.json @@ -100,7 +100,7 @@ "share": "مشاركة", "home": "الرئيسية", "developer-agent": "وكيل المطور", - "search-agent": "وكيل البحث", + "browser-agent": "وكيل المتصفح", "document-agent": "وكيل المستندات", "multi-modal-agent": "وكيل متعدد الوسائط", "social-media-agent": "وكيل وسائل التواصل الاجتماعي", diff --git a/src/i18n/locales/de/dashboard.json b/src/i18n/locales/de/dashboard.json index 365be9711..40aa684af 100644 --- a/src/i18n/locales/de/dashboard.json +++ b/src/i18n/locales/de/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "Emoji suchen", "calculator": "Taschenrechner", "developer-agent": "Entwickler-Agent", - "search-agent": "Such-Agent", + "browser-agent": "Browser-Agent", "document-agent": "Dokument-Agent", "multi-modal-agent": "Multi-Modal-Agent", "social-media-agent": "Social-Media-Agent", diff --git a/src/i18n/locales/de/layout.json b/src/i18n/locales/de/layout.json index e96d5607e..3bcd2b82f 100644 --- a/src/i18n/locales/de/layout.json +++ b/src/i18n/locales/de/layout.json @@ -100,7 +100,7 @@ "share": "Teilen", "home": "Startseite", "developer-agent": "Entwickler-Agent", - "search-agent": "Such-Agent", + "browser-agent": "Browser-Agent", "document-agent": "Dokument-Agent", "multi-modal-agent": "Multi-Modal-Agent", "social-media-agent": "Social-Media-Agent", diff --git a/src/i18n/locales/en-us/dashboard.json b/src/i18n/locales/en-us/dashboard.json index 9b2e6cd17..9ccaa2187 100644 --- a/src/i18n/locales/en-us/dashboard.json +++ b/src/i18n/locales/en-us/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "Search Emoji", "calculator": "Calculator", "developer-agent": "Developer Agent", - "search-agent": "Search Agent", + "browser-agent": "Browser Agent", "document-agent": "Document Agent", "multi-modal-agent": "Multi Modal Agent", "social-media-agent": "Social Media Agent", diff --git a/src/i18n/locales/en-us/layout.json b/src/i18n/locales/en-us/layout.json index 128ba2271..0852352fd 100644 --- a/src/i18n/locales/en-us/layout.json +++ b/src/i18n/locales/en-us/layout.json @@ -102,7 +102,7 @@ "home": "Home", "back": "Back", "developer-agent": "Developer Agent", - "search-agent": "Search Agent", + "browser-agent": "Browser Agent", "document-agent": "Document Agent", "multi-modal-agent": "Multi Modal Agent", "social-media-agent": "Social Media Agent", diff --git a/src/i18n/locales/es/dashboard.json b/src/i18n/locales/es/dashboard.json index 77c301f61..515ca1f51 100644 --- a/src/i18n/locales/es/dashboard.json +++ b/src/i18n/locales/es/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "Buscar Emoji", "calculator": "Calculadora", "developer-agent": "Agente Desarrollador", - "search-agent": "Agente de Búsqueda", + "browser-agent": "Agente de Navegador", "document-agent": "Agente de Documentos", "multi-modal-agent": "Agente Multi Modal", "social-media-agent": "Agente de Redes Sociales", diff --git a/src/i18n/locales/es/layout.json b/src/i18n/locales/es/layout.json index f05b9da33..3b9e9481a 100644 --- a/src/i18n/locales/es/layout.json +++ b/src/i18n/locales/es/layout.json @@ -100,7 +100,7 @@ "share": "Compartir", "home": "Inicio", "developer-agent": "Agente Desarrollador", - "search-agent": "Agente de Búsqueda", + "browser-agent": "Agente de Navegador", "document-agent": "Agente de Documentos", "multi-modal-agent": "Agente Multi Modal", "social-media-agent": "Agente de Redes Sociales", diff --git a/src/i18n/locales/fr/dashboard.json b/src/i18n/locales/fr/dashboard.json index 447e5d94e..e9a79b772 100644 --- a/src/i18n/locales/fr/dashboard.json +++ b/src/i18n/locales/fr/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "Rechercher un emoji", "calculator": "Calculatrice", "developer-agent": "Agent Développeur", - "search-agent": "Agent de Recherche", + "browser-agent": "Agent Navigateur", "document-agent": "Agent de Documents", "multi-modal-agent": "Agent Multi Modal", "social-media-agent": "Agent de Médias Sociaux", diff --git a/src/i18n/locales/fr/layout.json b/src/i18n/locales/fr/layout.json index 4f7eca894..b014860cd 100644 --- a/src/i18n/locales/fr/layout.json +++ b/src/i18n/locales/fr/layout.json @@ -100,7 +100,7 @@ "share": "Partager", "home": "Accueil", "developer-agent": "Agent Développeur", - "search-agent": "Agent de Recherche", + "browser-agent": "Agent Navigateur", "document-agent": "Agent de Documents", "multi-modal-agent": "Agent Multi Modal", "social-media-agent": "Agent de Médias Sociaux", diff --git a/src/i18n/locales/it/dashboard.json b/src/i18n/locales/it/dashboard.json index 73b0fff5b..a0184cc2a 100644 --- a/src/i18n/locales/it/dashboard.json +++ b/src/i18n/locales/it/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "Cerca Emoji", "calculator": "Calcolatrice", "developer-agent": "Agente Sviluppatore", - "search-agent": "Agente di Ricerca", + "browser-agent": "Agente Browser", "document-agent": "Agente Documenti", "multi-modal-agent": "Agente Multi Modale", "social-media-agent": "Agente Social Media", diff --git a/src/i18n/locales/it/layout.json b/src/i18n/locales/it/layout.json index 3a18faa1f..d01a46c5a 100644 --- a/src/i18n/locales/it/layout.json +++ b/src/i18n/locales/it/layout.json @@ -100,7 +100,7 @@ "share": "Condividi", "home": "Home", "developer-agent": "Agente Sviluppatore", - "search-agent": "Agente di Ricerca", + "browser-agent": "Agente Browser", "document-agent": "Agente Documenti", "multi-modal-agent": "Agente Multi Modale", "social-media-agent": "Agente Social Media", diff --git a/src/i18n/locales/ja/dashboard.json b/src/i18n/locales/ja/dashboard.json index aba32f28b..0b6435fec 100644 --- a/src/i18n/locales/ja/dashboard.json +++ b/src/i18n/locales/ja/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "絵文字を検索", "calculator": "計算機", "developer-agent": "開発者エージェント", - "search-agent": "検索エージェント", + "browser-agent": "ブラウザエージェント", "document-agent": "ドキュメントエージェント", "multi-modal-agent": "マルチモーダルエージェント", "social-media-agent": "ソーシャルメディアエージェント", diff --git a/src/i18n/locales/ja/layout.json b/src/i18n/locales/ja/layout.json index 0942b31b6..2deca213e 100644 --- a/src/i18n/locales/ja/layout.json +++ b/src/i18n/locales/ja/layout.json @@ -100,7 +100,7 @@ "share": "共有", "home": "ホーム", "developer-agent": "開発者エージェント", - "search-agent": "検索エージェント", + "browser-agent": "ブラウザエージェント", "document-agent": "ドキュメントエージェント", "multi-modal-agent": "マルチモーダルエージェント", "social-media-agent": "ソーシャルメディアエージェント", diff --git a/src/i18n/locales/ko/dashboard.json b/src/i18n/locales/ko/dashboard.json index 05092ff6d..0338ea412 100644 --- a/src/i18n/locales/ko/dashboard.json +++ b/src/i18n/locales/ko/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "이모지 검색", "calculator": "계산기", "developer-agent": "개발자 에이전트", - "search-agent": "검색 에이전트", + "browser-agent": "브라우저 에이전트", "document-agent": "문서 에이전트", "multi-modal-agent": "멀티모달 에이전트", "social-media-agent": "소셜미디어 에이전트", diff --git a/src/i18n/locales/ko/layout.json b/src/i18n/locales/ko/layout.json index 1a6a0bcc5..4b5676dce 100644 --- a/src/i18n/locales/ko/layout.json +++ b/src/i18n/locales/ko/layout.json @@ -100,7 +100,7 @@ "share": "공유", "home": "홈", "developer-agent": "개발자 에이전트", - "search-agent": "검색 에이전트", + "browser-agent": "브라우저 에이전트", "document-agent": "문서 에이전트", "multi-modal-agent": "멀티모달 에이전트", "social-media-agent": "소셜미디어 에이전트", diff --git a/src/i18n/locales/ru/dashboard.json b/src/i18n/locales/ru/dashboard.json index af8730d56..88d034276 100644 --- a/src/i18n/locales/ru/dashboard.json +++ b/src/i18n/locales/ru/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "Поиск эмодзи", "calculator": "Калькулятор", "developer-agent": "Агент разработчика", - "search-agent": "Агент поиска", + "browser-agent": "Агент браузера", "document-agent": "Агент документов", "multi-modal-agent": "Мультимодальный агент", "social-media-agent": "Агент социальных сетей", diff --git a/src/i18n/locales/ru/layout.json b/src/i18n/locales/ru/layout.json index 2dcaeab9c..0ad35b9ab 100644 --- a/src/i18n/locales/ru/layout.json +++ b/src/i18n/locales/ru/layout.json @@ -100,7 +100,7 @@ "share": "Поделиться", "home": "Главная", "developer-agent": "Агент разработчика", - "search-agent": "Агент поиска", + "browser-agent": "Агент браузера", "document-agent": "Агент документов", "multi-modal-agent": "Мультимодальный агент", "social-media-agent": "Агент социальных сетей", diff --git a/src/i18n/locales/zh-Hans/dashboard.json b/src/i18n/locales/zh-Hans/dashboard.json index 8ab137037..acd0203bc 100644 --- a/src/i18n/locales/zh-Hans/dashboard.json +++ b/src/i18n/locales/zh-Hans/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "搜索表情", "calculator": "计算器", "developer-agent": "开发者智能体", - "search-agent": "搜索智能体", + "browser-agent": "浏览器智能体", "document-agent": "文档智能体", "multi-modal-agent": "多模态智能体", "social-media-agent": "社交媒体智能体", diff --git a/src/i18n/locales/zh-Hans/layout.json b/src/i18n/locales/zh-Hans/layout.json index ddbbd84f6..9cca62f29 100644 --- a/src/i18n/locales/zh-Hans/layout.json +++ b/src/i18n/locales/zh-Hans/layout.json @@ -103,7 +103,7 @@ "home": "首页", "back": "返回", "developer-agent": "开发者智能体", - "search-agent": "搜索智能体", + "browser-agent": "浏览器智能体", "document-agent": "文档智能体", "multi-modal-agent": "多模态智能体", "social-media-agent": "社交媒体智能体", diff --git a/src/i18n/locales/zh-Hant/dashboard.json b/src/i18n/locales/zh-Hant/dashboard.json index a29288a7f..7659a8397 100644 --- a/src/i18n/locales/zh-Hant/dashboard.json +++ b/src/i18n/locales/zh-Hant/dashboard.json @@ -19,7 +19,7 @@ "search-emoji": "搜尋表情符號", "calculator": "計算機", "developer-agent": "開發者智能體", - "search-agent": "搜尋智能體", + "browser-agent": "瀏覽器智能體", "document-agent": "文件智能體", "multi-modal-agent": "多模態智能體", "social-media-agent": "社群媒體智能體", diff --git a/src/i18n/locales/zh-Hant/layout.json b/src/i18n/locales/zh-Hant/layout.json index c67008118..b4e6dc4f8 100644 --- a/src/i18n/locales/zh-Hant/layout.json +++ b/src/i18n/locales/zh-Hant/layout.json @@ -103,7 +103,7 @@ "home": "首頁", "back": "返回", "developer-agent": "開發者智能體", - "search-agent": "搜尋智能體", + "browser-agent": "瀏覽器智能體", "document-agent": "文件智能體", "multi-modal-agent": "多模態智能體", "social-media-agent": "社群媒體智能體", diff --git a/src/pages/Dashboard/Project.tsx b/src/pages/Dashboard/Project.tsx index 584fe4864..5ab5b9e20 100644 --- a/src/pages/Dashboard/Project.tsx +++ b/src/pages/Dashboard/Project.tsx @@ -72,8 +72,8 @@ export default function Project() { borderColor: "border-bg-fill-coding-active", bgColorLight: "bg-emerald-200", }, - search_agent: { - name: t("dashboard.search-agent"), + browser_agent: { + name: t("dashboard.browser-agent"), textColor: "text-blue-700", bgColor: "bg-bg-fill-browser-active", @@ -116,9 +116,9 @@ export default function Project() { className={`!h-[10px] !w-[10px] ${agentMap.developer_agent.textColor}`} /> ), - search_agent: ( + browser_agent: ( ), document_agent: ( diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index a43293155..64b540da9 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -49,7 +49,7 @@ export default function Home() { ]; let webviews: { id: string; agent_id: string; index: number }[] = []; taskAssigning.map((item) => { - if (item.type === "search_agent") { + if (item.type === "browser_agent") { item.activeWebviewIds?.map((webview, index) => { webviews.push({ ...webview, agent_id: item.agent_id, index }); }); @@ -61,7 +61,7 @@ export default function Home() { } if (webviews.length === 0) { - const searchAgent = taskAssigning.find(agent => agent.type === 'search_agent'); + const searchAgent = taskAssigning.find(agent => agent.type === 'browser_agent'); if (searchAgent && searchAgent.activeWebviewIds && searchAgent.activeWebviewIds.length > 0) { searchAgent.activeWebviewIds.forEach((webview, index) => { webviews.push({ ...webview, agent_id: searchAgent.agent_id, index }); @@ -204,7 +204,7 @@ export default function Home() { agent.agent_id === chatStore.tasks[chatStore.activeTaskId as string] .activeWorkSpace - )?.type === "search_agent" && ( + )?.type === "browser_agent" && (
diff --git a/src/store/chatStore.ts b/src/store/chatStore.ts index 5a53d54db..2b475693f 100644 --- a/src/store/chatStore.ts +++ b/src/store/chatStore.ts @@ -662,7 +662,7 @@ const chatStore = (initial?: Partial) => createStore()( console.log("agentMessages", agentMessages); const agentNameMap = { developer_agent: "Developer Agent", - search_agent: "Search Agent", + browser_agent: "Browser Agent", document_agent: "Document Agent", multi_modal_agent: "Multi Modal Agent", social_medium_agent: "Social Media Agent", @@ -940,7 +940,7 @@ const chatStore = (initial?: Partial) => createStore()( if (!hasAgent) { let activeWebviewIds: any = []; - if (agent_name == 'search_agent') { + if (agent_name == 'browser_agent') { snapshots.forEach((item: any) => { const imgurl = !item.image_path.includes('/public') ? item.image_path : (import.meta.env.DEV ? import.meta.env.VITE_PROXY_URL : import.meta.env.VITE_BASE_URL) + item.image_path activeWebviewIds.push({ @@ -1011,7 +1011,7 @@ const chatStore = (initial?: Partial) => createStore()( // destroy webview tasks[currentTaskId].taskAssigning = tasks[currentTaskId].taskAssigning.map((item) => { - if (item.type === "search_agent" && item.activeWebviewIds?.length && item.activeWebviewIds?.length > 0) { + if (item.type === "browser_agent" && item.activeWebviewIds?.length && item.activeWebviewIds?.length > 0) { let removeList: number[] = [] item.activeWebviewIds.map((webview, index) => { if (webview.processTaskId === task_id) { diff --git a/src/types/chatbox.d.ts b/src/types/chatbox.d.ts index d494feb58..94beef44f 100644 --- a/src/types/chatbox.d.ts +++ b/src/types/chatbox.d.ts @@ -133,19 +133,19 @@ declare global { type AgentNameType = | "developer_agent" - | "search_agent" + | "browser_agent" | "document_agent" | "multi_modal_agent" | "social_medium_agent"; interface AgentNameMap { developer_agent: "Developer Agent"; - search_agent: "Search Agent"; + browser_agent: "Browser Agent"; document_agent: "Document Agent"; multi_modal_agent: "Multi Modal Agent"; social_medium_agent: "Social Media Agent"; } - type WorkspaceType = 'workflow' | 'developer_agent' | 'search_agent' | 'document_agent' | 'multi_modal_agent' | 'social_medium_agent' | null; + type WorkspaceType = 'workflow' | 'developer_agent' | 'browser_agent' | 'document_agent' | 'multi_modal_agent' | 'social_medium_agent' | null; } diff --git a/src/types/workspace.d.ts b/src/types/workspace.d.ts index 0bde87527..d26116a22 100644 --- a/src/types/workspace.d.ts +++ b/src/types/workspace.d.ts @@ -1,7 +1,7 @@ // Global type definitions for WorkspaceMenu component declare global { - type WorkspaceType = 'workflow' | 'developer_agent' | 'search_agent' | 'document_agent' | 'multi_modal_agent' | 'social_medium_agent' | null; + type WorkspaceType = 'workflow' | 'developer_agent' | 'browser_agent' | 'document_agent' | 'multi_modal_agent' | 'social_medium_agent' | null; } diff --git a/test/mocks/sse.mock.ts b/test/mocks/sse.mock.ts index c7255391e..eb8ff527a 100644 --- a/test/mocks/sse.mock.ts +++ b/test/mocks/sse.mock.ts @@ -81,7 +81,7 @@ export const issue619SseSequence = [ event: { step: 'create_agent', data: { - agent_name: 'search_agent', + agent_name: 'browser_agent', agent_id: 'c249ac7b-6745-4832-a5c1-3238f9176434', tools: ['Search Toolkit', 'Browser Toolkit', 'Human Toolkit', 'Note Taking Toolkit', 'Terminal Toolkit'] } @@ -92,7 +92,7 @@ export const issue619SseSequence = [ event: { step: 'deactivate_toolkit', data: { - agent_name: 'search_agent', + agent_name: 'browser_agent', process_task_id: '', toolkit_name: 'Browser Toolkit', method_name: 'register agent', @@ -129,11 +129,11 @@ export const issue619SseSequence = [ event: { step: 'activate_toolkit', data: { - agent_name: 'search_agent', + agent_name: 'browser_agent', process_task_id: '', toolkit_name: 'Browser Toolkit', method_name: 'register agent', - message: 'ChatAgent(Search Agent, RoleType.ASSISTANT, gpt-5)' + message: 'ChatAgent(Browser Agent, RoleType.ASSISTANT, gpt-5)' } }, delay: 100 @@ -153,11 +153,11 @@ export const issue619SseSequence = [ event: { step: 'activate_toolkit', data: { - agent_name: 'search_agent', + agent_name: 'browser_agent', process_task_id: '', toolkit_name: 'Browser Toolkit', method_name: 'register agent', - message: 'ChatAgent(Search Agent, RoleType.ASSISTANT, gpt-5)' + message: 'ChatAgent(Browser Agent, RoleType.ASSISTANT, gpt-5)' } }, delay: 100 @@ -200,11 +200,11 @@ export const issue619SseSequence = [ event: { step: 'activate_toolkit', data: { - agent_name: 'search_agent', + agent_name: 'browser_agent', process_task_id: '', toolkit_name: 'Browser Toolkit', method_name: 'register agent', - message: 'ChatAgent(Search Agent, RoleType.ASSISTANT, gpt-4.1)' + message: 'ChatAgent(Browser Agent, RoleType.ASSISTANT, gpt-4.1)' } }, delay: 100 @@ -248,7 +248,7 @@ export const issue619SseSequence = [ event: { step: 'deactivate_toolkit', data: { - agent_name: 'search_agent', + agent_name: 'browser_agent', process_task_id: '', toolkit_name: 'Browser Toolkit', method_name: 'register agent', @@ -272,11 +272,11 @@ export const issue619SseSequence = [ event: { step: 'activate_toolkit', data: { - agent_name: 'search_agent', + agent_name: 'browser_agent', process_task_id: '', toolkit_name: 'Browser Toolkit', method_name: 'register agent', - message: 'ChatAgent(Search Agent, RoleType.ASSISTANT, gpt-4.1)' + message: 'ChatAgent(Browser Agent, RoleType.ASSISTANT, gpt-4.1)' } }, delay: 1100 From 3e97f60335ebd5f0d82f92e3c530c3d24c3d3a68 Mon Sep 17 00:00:00 2001 From: Wendong-Fan Date: Sat, 17 Jan 2026 04:46:09 +0800 Subject: [PATCH 09/12] minor fix --- backend/app/service/chat_service.py | 2 +- src/components/WorkSpaceMenu/index.tsx | 18 +++++++++--------- src/pages/Home.tsx | 16 ++++++++-------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/backend/app/service/chat_service.py b/backend/app/service/chat_service.py index de45225e2..c8b6ef716 100644 --- a/backend/app/service/chat_service.py +++ b/backend/app/service/chat_service.py @@ -1368,7 +1368,7 @@ The current date is {datetime.date.today()}. For any date-related tasks, you MUS developer, ) workforce.add_single_agent_worker( - "Browser Agent: Can search the web, extract webpage content," + "Browser Agent: Can search the web, extract webpage content, " "simulate browser actions, and provide relevant information to " "solve the given task.", searcher, diff --git a/src/components/WorkSpaceMenu/index.tsx b/src/components/WorkSpaceMenu/index.tsx index 157032ba6..5e90b8f7f 100644 --- a/src/components/WorkSpaceMenu/index.tsx +++ b/src/components/WorkSpaceMenu/index.tsx @@ -101,9 +101,9 @@ export function WorkSpaceMenu() { ); if (activeAgentIndex === -1) { - const searchAgentIndex = taskAssigning.findIndex((item) => item.type === 'browser_agent'); - if (searchAgentIndex !== -1) { - taskAssigning[searchAgentIndex].activeWebviewIds?.push({ + const browserAgentIndex = taskAssigning.findIndex((item) => item.type === 'browser_agent'); + if (browserAgentIndex !== -1) { + taskAssigning[browserAgentIndex].activeWebviewIds?.push({ id, url, img: "", @@ -135,9 +135,9 @@ export function WorkSpaceMenu() { ]); } else { // If no URL match found, also try to add to browser_agent - const searchAgentIndex = taskAssigning.findIndex((item) => item.type === 'browser_agent'); - if (searchAgentIndex !== -1 && webViewUrls.length > 0) { - taskAssigning[searchAgentIndex].activeWebviewIds?.push({ + const browserAgentIndex = taskAssigning.findIndex((item) => item.type === 'browser_agent'); + if (browserAgentIndex !== -1 && webViewUrls.length > 0) { + taskAssigning[browserAgentIndex].activeWebviewIds?.push({ id, url, img: "", @@ -175,16 +175,16 @@ export function WorkSpaceMenu() { ...chatStore.tasks[chatStore.activeTaskId as string] .taskAssigning, ]; - const searchAgentIndex = taskAssigning.findIndex( + const browserAgentIndex = taskAssigning.findIndex( (agent) => agent.agent_id === webview.agent_id ); if ( - searchAgentIndex !== -1 && + browserAgentIndex !== -1 && base64 && base64 !== "data:image/jpeg;base64," ) { - taskAssigning[searchAgentIndex].activeWebviewIds![ + taskAssigning[browserAgentIndex].activeWebviewIds![ webview.index ].img = base64; diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index 64b540da9..e55bfd532 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -61,10 +61,10 @@ export default function Home() { } if (webviews.length === 0) { - const searchAgent = taskAssigning.find(agent => agent.type === 'browser_agent'); - if (searchAgent && searchAgent.activeWebviewIds && searchAgent.activeWebviewIds.length > 0) { - searchAgent.activeWebviewIds.forEach((webview, index) => { - webviews.push({ ...webview, agent_id: searchAgent.agent_id, index }); + const browserAgent = taskAssigning.find(agent => agent.type === 'browser_agent'); + if (browserAgent && browserAgent.activeWebviewIds && browserAgent.activeWebviewIds.length > 0) { + browserAgent.activeWebviewIds.forEach((webview, index) => { + webviews.push({ ...webview, agent_id: browserAgent.agent_id, index }); }); } } @@ -88,15 +88,15 @@ export default function Home() { let taskAssigning = [ ...currentTask.taskAssigning, ]; - const searchAgentIndex = taskAssigning.findIndex( + const browserAgentIndex = taskAssigning.findIndex( (agent) => agent.agent_id === webview.agent_id ); if ( - searchAgentIndex !== -1 && + browserAgentIndex !== -1 && base64 !== "data:image/jpeg;base64," ) { - taskAssigning[searchAgentIndex].activeWebviewIds![ + taskAssigning[browserAgentIndex].activeWebviewIds![ webview.index ].img = base64; chatStore.setTaskAssigning( @@ -104,7 +104,7 @@ export default function Home() { taskAssigning ); const { processTaskId, url } = - taskAssigning[searchAgentIndex].activeWebviewIds![ + taskAssigning[browserAgentIndex].activeWebviewIds![ webview.index ]; chatStore.setSnapshotsTemp(chatStore.activeTaskId as string, { From 31fe75c085f5d1b02ba51693b887c9ecbfa23bfb Mon Sep 17 00:00:00 2001 From: Caiodiv Date: Fri, 16 Jan 2026 18:15:29 -0300 Subject: [PATCH 10/12] add README_PT-BR to brazilian guys --- README_PT-BR.md | 395 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 README_PT-BR.md diff --git a/README_PT-BR.md b/README_PT-BR.md new file mode 100644 index 000000000..3b063eb33 --- /dev/null +++ b/README_PT-BR.md @@ -0,0 +1,395 @@ +
+ +[![][image-head]][eigent-site] + +[![][image-seperator]][eigent-site] + +### Eigent: O Desktop Cowork Open Source para Desbloquear sua Produtividade Excepcional + + + +[![][download-shield]][eigent-download] +[![][github-star]][eigent-github] +[![][social-x-shield]][social-x-link] +[![][discord-image]][discord-url]
+[![Reddit][reddit-image]][reddit-url] +[![Wechat][wechat-image]][wechat-url] +[![][sponsor-shield]][sponsor-link] +[![][built-with-camel]][camel-github] +[![][join-us-image]][join-us] + +
+ +
+
+ +[English](./README.md) · **Português** · [简体中文](./README_CN.md) · [日本語](./README_JA.md) · [Site Oficial][eigent-site] · [Documents][docs-site] · [Feedback][github-issue-link] + +
+
+ +**Eigent** é a aplicação desktop cowork open source que capacita você a construir, gerenciar e implantar uma força de trabalho de IA personalizada, capaz de transformar seus fluxos de trabalho mais complexos em tarefas automatizadas. + +Construído sobre o aclamado projeto open source da [CAMEL-AI][camel-site], nosso sistema introduz uma **Força de Trabalho Multiagente** que **aumenta a produtividade** por meio de execução paralela, personalização e proteção de privacidade. + +### ⭐ 100% Open Source - 🥇 Implantação Local - 🏆 Integração MCP + +- ✅ **Zero Configuração** - Nenhuma configuração técnica necessária +- ✅ **Coordenação Multiagente** - Gerencie fluxos de trabalho complexos com múltiplos agentes +- ✅ **Recursos Corporativos** - SSO / Controle de acesso +- ✅ **Implantação Local** +- ✅ **Open Source** +- ✅ **Suporte a Modelos Personalizados** +- ✅ **Integração MCP** + +
+ +[![][image-join-us]][join-us] + +
+Sumário + +#### TOC + +- [🚀 Primeiros Passos](#-getting-started) + - [🏠 Implantação Local (Recomendado)](#-local-deployment-recommended) + - [⚡ Início Rápido (Conectado à Nuvem)](#-quick-start-cloud-connected) + - [🏢 Corporativo](#-enterprise) + - [☁️ Versão em Nuvem](#️-cloud-version) +- [✨ Principais Recursos](#-key-features) + - [🏭 Força de Trabalho](#-workforce) + - [🧠 Suporte Abrangente a Modelos](#-comprehensive-model-support) + - [🔌 Integração de Ferramentas MCP (MCP)](#-mcp-tools-integration-mcp) + - [✋ Humano-no-Loop](#-human-in-the-loop) + - [👐 100% Open Source](#-100-open-source) +- [🧩 Casos de Uso](#-use-cases) +- [🛠️ Stack Tecnológica](#-tech-stack) + - [Backend](#backend) + - [Frontend](#frontend) +- [🌟 Mantendo-se à Frente](#staying-ahead) +- [🗺️ Roadmap](#-roadmap) +- [📖 Contribuindo](#-contributing) + - [Principais Contribuidores](#main-contributors) + - [Embaixador Distinto](#distinguished-amabssador) +- [Ecossistema](#ecosystem) +- [📄 Licença Open Source](#-open-source-license) +- [🌐 Comunidade & Contato](#-community--contact) + +#### + +
+ +
+ +## **🚀 Primeiros Passos** + +> **🔓 Construído em Público** — Eigent é **100% open source** desde o primeiro dia. Cada funcionalidade, cada commit e cada decisão são transparentes. Acreditamos que as melhores ferramentas de IA devem ser construídas abertamente com a comunidade, e não a portas fechadas. + +### 🏠 Implantação Local (Recomendado) + +A forma recomendada de executar o Eigent — totalmente independente, com controle completo sobre seus dados, sem necessidade de conta em nuvem. + +👉 **[Guia Completo de Implantação Local](./server/README_EN.md)** + +Esta configuração inclui: +- Servidor backend local com API completa +- Integração de modelos locais (vLLM, Ollama, LM Studio, etc.) +- Isolamento completo de serviços em nuvem +- Zero dependências externas + +### ⚡ Início Rápido (Conectado à Nuvem) + +Para uma visualização rápida usando nosso backend em nuvem — comece em segundos: + +#### Pré-requisitos + +- Node.js (versão 18–22) e npm + +#### Passos + +```bash +git clone https://github.com/eigent-ai/eigent.git +cd eigent +npm install +npm run dev +``` + +> Nota: Este modo se conecta aos serviços em nuvem do Eigent e requer registro de conta. Para uma experiência totalmente independente, utilize a [Implantação Local](#-local-deployment-recommended) em vez disso. + +### 🏢 Empresarial + +Para organizações que requerem máxima segurança, personalização e controle: + +- **Recursos Exclusivos** (como SSO e desenvolvimento personalizado) +- **Implantação Empresarial Escalável** +- **SLAs Negociados** e serviços de implementação + +📧 Para mais detalhes, entre em contato conosco em [info@eigent.ai](mailto:info@eigent.ai). + +### ☁️ Versão em Nuvem + +Para equipes que preferem infraestrutura gerenciada, também oferecemos uma plataforma em nuvem. A maneira mais rápida de experimentar as capacidades de IA multi-agente do Eigent sem complexidade de configuração. Nós hospedaremos os modelos, APIs e armazenamento em nuvem, garantindo que o Eigent funcione perfeitamente. + +- **Acesso Instantâneo** - Comece a construir fluxos de trabalho multi-agente em minutos. +- **Infraestrutura Gerenciada** - Nós cuidamos da escalabilidade, atualizações e manutenção. +- **Suporte Premium** - Assine e obtenha assistência prioritária de nossa equipe de engenharia.. + +
+ +[![image-public-beta]][eigent-download] + + + +## **✨ Principais recursos** +Desbloqueie todo o potencial de produtividade excepcional com os poderosos recursos do Eigent—construídos para integração perfeita, execução de tarefas mais inteligente e automação ilimitada. + +### 🏭 Força de Trabalho +Emprega uma equipe de agentes de IA especializados que colaboram para resolver tarefas complexas. O Eigent divide dinamicamente as tarefas e ativa múltiplos agentes para trabalhar **em paralelo.** + +O Eigent pré-definiu os seguintes agentes trabalhadores: + +- **Agente Desenvolvedor:** Escreve e executa código, executa comandos de terminal. +- **Agente de Busca:** Pesquisa na web e extrai conteúdo. +- **Agente de Documento:** Cria e gerencia documentos. +- **Agente Multi-Modal:** Processa imagens e áudio. + +![Workforce](https://eigent-ai.github.io/.github/assets/gif/feature_dynamic_workforce.gif) + +
+ +### 🧠 Suporte Abrangente a Modelos +Implante o Eigent localmente com seus modelos preferidos. + +![Model](https://eigent-ai.github.io/.github/assets/gif/feature_local_model.gif) + +
+ +### 🔌 Integração de Ferramentas MCP (MCP) +O Eigent vem com ferramentas massivas integradas do **Protocolo de Contexto de Modelo (MCP)** (para navegação web, execução de código, Notion, Google suite, Slack etc.), e também permite que você **instale suas próprias ferramentas**. Equipe os agentes com exatamente as ferramentas certas para seus cenários – até mesmo integre APIs internas ou funções personalizadas – para aprimorar suas capacidades. + +![MCP](https://eigent-ai.github.io/.github/assets/gif/feature_add_mcps.gif) + +
+ +### ✋ Humano no Circuito +Se uma tarefa ficar travada ou encontrar incerteza, o Eigent solicitará automaticamente entrada humana. + +![Human-in-the-loop](https://eigent-ai.github.io/.github/assets/gif/feature_human_in_the_loop.gif) + +
+ +### 👐 100% Código Aberto +O Eigent é completamente de código aberto. Você pode baixar, inspecionar e modificar o código, garantindo transparência e promovendo um ecossistema impulsionado pela comunidade para inovação multi-agente. + +![Código Aberto][image-opensource] + +
+ +## 🧩 Casos de Uso + +### 1. Itinerário de Viagem de Tênis em Palm Springs com Resumo no Slack [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM0MzUxNTEzMzctNzExMyI.aIeysw.MUeG6ZcBxI1GqvPDvn4dcv-CDWw__1753435151337-7113) + +
+ +Prompt: Somos dois fãs de tênis e queremos ir ver o torneio de tênis ... +
+Somos dois fãs de tênis e queremos ir ver o torneio de tênis em Palm Springs 2026. Eu moro em SF - por favor, prepare um itinerário detalhado com voos, hotéis, coisas para fazer por 3 dias - na época em que as semifinais/finais estão acontecendo. Gostamos de trilhas, comida vegana e spas. Nosso orçamento é de $5K. O itinerário deve ser uma linha do tempo detalhada de horário, atividade, custo, outros detalhes e, se aplicável, um link para comprar ingressos/fazer reservas etc. para o item. Algumas preferências. Acesso a spa seria bom, mas não necessário. Quando você terminar esta tarefa, por favor gere um relatório html sobre esta viagem; escreva um resumo deste plano e envie o resumo de texto e o link do relatório html para o canal slack #tennis-trip-sf. +
+ +
+ +### 2. Gerar Relatório do Q2 a partir de Dados Bancários em CSV [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM1MjY4OTE4MDgtODczOSI.aIjJmQ.WTdoX9mATwrcBr_w53BmGEHPo8U__1753526891808-8739) + +
+Prompt: Por favor, me ajude a preparar uma demonstração financeira do Q2 baseada no meu ... +
+Por favor, me ajude a preparar uma demonstração financeira do Q2 baseada no meu arquivo de registro de transferência bancária bank_transacation.csv na minha área de trabalho para um relatório html com gráfico para investidores sobre quanto gastamos. +
+ +
+ +### 3. Automação de Relatório de Pesquisa de Mercado de Saúde do Reino Unido [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTMzOTM1NTg3OTctODcwNyI.aIey-Q.Jh9QXzYrRYarY0kz_qsgoj3ewX0__1753393558797-8707) + +
+Prompt: Analise a indústria de saúde do Reino Unido para apoiar o planejamento ... +
+Analise a indústria de saúde do Reino Unido para apoiar o planejamento da minha próxima empresa. Forneça uma visão geral abrangente do mercado, incluindo tendências atuais, projeções de crescimento e regulamentações relevantes. Identifique as 5–10 principais oportunidades, lacunas ou segmentos mal atendidos dentro do mercado. Apresente todas as descobertas em um relatório HTML bem estruturado e profissional. Em seguida, envie uma mensagem para o canal slack #eigentr-product-test quando esta tarefa estiver concluída para alinhar o conteúdo do relatório com meus colegas de equipe. +
+ +
+ +### 4. Viabilidade do Mercado Alemão de Skate Elétrico [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM2NTI4MjY3ODctNjk2Ig.aIjGiA.t-qIXxk_BZ4ENqa-yVIm0wMVyXU__1753652826787-696) + +
+Prompt: Somos uma empresa que produz skates elétricos de alto padrão ... +
+Somos uma empresa que produz skates elétricos de alto padrão e estamos considerando entrar no mercado alemão. Por favor, prepare um relatório detalhado de viabilidade de entrada no mercado. O relatório deve cobrir os seguintes aspectos: 1. Tamanho do Mercado & Regulamentações: Pesquise o tamanho do mercado, taxa de crescimento anual, principais players e participação de mercado de Veículos Elétricos Leves Pessoais (PLEVs) na Alemanha. Ao mesmo tempo, forneça um detalhamento e resumo das leis e regulamentações alemãs sobre o uso de skates elétricos em vias públicas, incluindo requisitos de certificação (como certificação ABE) e apólices de seguro. 2. Perfil do Consumidor: Analise o perfil dos potenciais consumidores alemães, incluindo idade, nível de renda, principais cenários de uso (deslocamento, lazer), fatores-chave de decisão de compra (preço, desempenho, marca, design) e os canais que normalmente utilizam para buscar informações (fóruns, redes sociais, lojas físicas). 3. Canais & Distribuição: Investigue as principais plataformas online de venda de eletrônicos na Alemanha (ex.: Amazon.de, MediaMarkt.de) e grandes redes físicas de artigos esportivos de alto padrão. Liste os 5 principais potenciais parceiros de distribuição online e offline e encontre, se possível, as informações de contato de seus departamentos de compras. 4. Custos & Precificação: Com base na estrutura de custos do produto no arquivo Product_Cost.csv na minha área de trabalho, e considerando taxas alfandegárias alemãs, Imposto sobre Valor Agregado (IVA), custos logísticos e de armazenagem, além de possíveis despesas de marketing, estime o Preço de Venda Sugerido ao Consumidor (MSRP) e analise sua competitividade no mercado. 5. Relatório Abrangente & Apresentação: Resuma todas as descobertas da pesquisa em um arquivo de relatório em HTML. O conteúdo deve incluir gráficos de dados, principais conclusões e uma recomendação final de estratégia de entrada no mercado (Recomendado / Não Recomendado / Recomendado com Condições). +
+ +
+ +### 5. Auditoria de SEO para Lançamento do Workforce Multiagent [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM2OTk5NzExNDQtNTY5NiI.aIex0w.jc_NIPmfIf9e3zGt-oG9fbMi3K4__1753699971144-5696) + +
+Prompt: Para apoiar o lançamento do nosso novo produto Workforce Multiagent ... +
+Para apoiar o lançamento do nosso novo produto Workforce Multiagent, por favor, execute uma auditoria completa de SEO no nosso site oficial (https://www.camel-ai.org/) e entregue um relatório detalhado de otimização com recomendações acionáveis. +
+ +
+ +### 6. Identificar Arquivos Duplicados em Downloads [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM3NjAzODgxNzEtMjQ4Ig.aIhKLQ.epOG--0Nj0o4Bqjtdqm9OZdaqRQ__1753760388171-248) + +
+Prompt: Tenho uma pasta chamada mydocs dentro do diretório Documents ... +
+Tenho uma pasta chamada mydocs dentro do diretório Documents. Por favor, escaneie-a e identifique todos os arquivos que sejam duplicados exatos ou quase duplicados — incluindo aqueles com conteúdo, tamanho ou formato idênticos (mesmo que nomes ou extensões de arquivo sejam diferentes). Liste-os claramente, agrupados por similaridade. +
+ +
+ +### 7. Adicionar Assinatura a PDF [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTQwOTU0ODM0NTItNTY2MSI.aJCHrA.Mg5yPOFqj86H_GQvvRNditzepXc__1754095483452-5661) + +
+Prompt: Por favor, adicione esta imagem de assinatura às áreas de assinatura no PDF ... +
+Por favor, adicione esta imagem de assinatura às áreas de assinatura no PDF. Você pode instalar a ferramenta de linha de comando ‘tesseract’ (necessária para localização confiável das ‘Áreas de Assinatura’ via OCR) para ajudar a concluir esta tarefa. +
+ +
+ +## 🛠️ Stack Tecnológica + +### Backend +- **Framework:** FastAPI +- **Gerenciador de Pacotes:** uv +- **Servidor Assíncrono:** Uvicorn +- **Autenticação:** OAuth 2.0, Passlib. +- **Framework Multiagente:** CAMEL + +### Frontend + +- **Framework:** React +- **Framework de App Desktop:** Electron +- **Linguagem:** TypeScript +- **UI:** Tailwind CSS, Radix UI, Lucide React, Framer Motion +- **Gerenciamento de Estado:** Zustand +- **Editor de Fluxo:** React Flow + +## 🌟 Mantendo-se à Frente + +> \[!IMPORTANT] +> +> **Dê uma estrela no Eigent**, você receberá todas as notificações de lançamento do GitHub sem qualquer atraso \~ ⭐️ + +![][image-star-us] + +## 🗺️ Roadmap + +| Topicos | Issues | Canal do Discord | +| ------------------------- | -- |-- | +| **Engenharia de Contexto** | - Cache de prompts
- Otimização de prompt do sistema
- Otimização de docstrings do toolkit
- Compressão de contexto | [**Entrar no Discord →**](https://discord.gg/D2e3rBWD) | +| **Aprimoramento Multimodal** | - Compreensão de imagens mais precisa ao usar o navegador
- Geração avançada de vídeo | [**Entrar no Discord →**](https://discord.gg/kyapNCeJ) | +| **Sistema Multiagente** | - Suporte do Workforce a fluxos fixos
- Suporte do Workforce a conversas em múltiplas rodadas | [**Entrar no Discord →**](https://discord.gg/bFRmPuDB) | +| **Toolkit de Navegador** | - Integração com BrowseCamp
- Melhoria de benchmark
- Proibir visitas repetidas a páginas
- Clique automático em botões de cache | [**Entrar no Discord →**](https://discord.gg/NF73ze5v) | +| **Toolkit de Documentos** | - Suporte à edição dinâmica de arquivos | [**Entrar no Discord →**](https://discord.gg/4yAWJxYr) | +| **Toolkit de Terminal** | - Melhoria de benchmark
- Integração com Terminal-Bench | [**Entrar no Discord →**](https://discord.gg/FjQfnsrV) | +| **Ambiente & RL** | - Design de ambiente
- Geração de dados
- Integração de frameworks de RL (VERL, TRL, OpenRLHF) | [**Entrar no Discord →**](https://discord.gg/MaVZXEn8) | + + +## [🤝 Contribuição][contribution-link] + +Acreditamos em construir confiança e abraçar todas as formas de colaboração open source. Suas contribuições criativas ajudam a impulsionar a inovação do `Eigent`. Explore as issues e projetos no GitHub para participar e mostrar do que você é capaz 🤝❤️ [Guia de Contribuição][contribution-link] + + +## Contribuidores + + + + + +Feito com [contrib.rocks](https://contrib.rocks). + +
+ +## [❤️ Patrocínio][sponsor-link] + +O Eigent é construído sobre as pesquisas e infraestruturas da [CAMEL-AI.org][camel-ai-org-github]'s research and infrastructures. [Patrocinar a CAMEL-AI.org][sponsor-link] tornará o `Eigent` ainda melhor. + +## **📄 Licença Open Source** + +Este repositório é licenciado sob a [Licença Apache 2.0](LICENSE). + +## 🌐 Comunidade & Contato +Para mais informações, entre em contato pelo e-mail info@eigent.ai + +- **GitHub Issues:** Relate bugs, solicite funcionalidades e acompanhe o desenvolvimento. [Enviar uma issue][github-issue-link] + +- **Discord:** Obtenha suporte em tempo real, converse com a comunidade e fique atualizado. [Junte-se a nós](https://discord.camel-ai.org/) + +- **X (Twitter):** Siga para atualizações, insights de IA e anúncios importantes. [Siga-nos][social-x-link] + +- **Comunidade WeChat:** Escaneie o QR code abaixo para adicionar nosso assistente no WeChat e entrar no grupo da comunidade WeChat. + +
+ +
+ + + + + +[discord-url]: https://discord.camel-ai.org/ +[discord-image]: https://img.shields.io/discord/1082486657678311454?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb + +[built-with-camel]:https://img.shields.io/badge/-Built--with--CAMEL-4C19E8.svg?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQ4IiBoZWlnaHQ9IjI3MiIgdmlld0JveD0iMCAwIDI0OCAyNzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04LjgzMTE3IDE4LjU4NjVMMCAzMC44MjY3QzUuNDY2OTIgMzUuMDQzMiAxNS4xMzkxIDM4LjgyNTggMjQuODExNCAzNi4yOTU5QzMwLjY5ODggNDAuOTM0MSAzOS42NzAyIDQwLjIzMTMgNDQuMTU1OSA0MC4wOTA4QzQzLjQ1NSA0Ny4zOTk0IDQyLjQ3MzcgNzAuOTU1OCA0NC4xNTU5IDEwNi43MTJDNDUuODM4IDE0Mi40NjggNzEuNzcwOCAxNjYuODY4IDg0LjUyNjkgMTc0LjU5OEw3Ni4wMDAyIDIyMEw4NC41MjY5IDI3MkgxMDguOTE4TDk4LjAwMDIgMjIwTDEwOC45MTggMTc0LjU5OEwxMjkuOTQ0IDI3MkgxNTQuNzU2TDEzNC4xNSAxNzQuNTk4SDE4Ny4xMzdMMTY2LjUzMSAyNzJIMTkxLjc2M0wyMTIuMzY5IDE3NC41OThMMjI2IDIyMEwyMTIuMzY5IDI3MkgyMzcuNjAxTDI0OC4wMDEgMjIwTDIzNy4xOCAxNzQuNTk4QzIzOS4yODMgMTY5LjExNyAyNDAuNDAxIDE2Ni45NzYgMjQxLjgwNiAxNjEuMTA1QzI0OS4zNzUgMTI5LjQ4MSAyMzUuMDc3IDEwMy45MDEgMjI2LjY2NyA5NC40ODRMMjA2LjQ4MSA3My44MjNDMTk3LjY1IDY0Ljk2ODMgMTgyLjUxMSA2NC41NDY3IDE3Mi44MzkgNzIuNTU4MUMxNjUuNzI4IDc4LjQ0NzcgMTYxLjcwMSA3OC43NzI3IDE1NC43NTYgNzIuNTU4MUMxNTEuODEyIDcwLjAyODEgMTQ0LjUzNSA2MS40ODg5IDEzNC45OTEgNTMuNTgzN0MxMjUuMzE5IDQ1LjU3MjMgMTA4LjQ5NyA0OC45NDU1IDEwMi4xODkgNTUuNjkxOUw3My41OTMxIDg0LjM2NDRWNy42MjM0OUw3OS4xMjczIDBDNjAuOTA0MiAzLjY1NDMzIDIzLjgwMjEgOS41NjMwOSAxOS43NjUgMTAuNTc1MUMxNS43Mjc5IDExLjU4NyAxMC43OTM3IDE2LjMzNzcgOC44MzExNyAxOC41ODY1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQzLjIwMzggMTguNzE4N0w0OS4wOTEyIDEzLjA0OTNMNTQuOTc4NyAxOC43MTg3TDQ5LjA5MTIgMjQuODI0Mkw0My4yMDM4IDE4LjcxODdaIiBmaWxsPSIjNEMxOUU4Ii8+Cjwvc3ZnPgo= + +[eigent-github]: https://github.com/eigent-ai/eigent +[github-star]: https://img.shields.io/github/stars/eigent-ai?color=F5F4F0&labelColor=gray&style=plastic&logo=github +[camel-ai-org-github]: https://github.com/camel-ai + +[camel-github]: https://github.com/camel-ai/camel +[eigent-github]: https://github.com/eigent-ai/eigent +[contribution-link]: https://github.com/eigent-ai/eigent/blob/main/CONTRIBUTING.md + +[social-x-link]: https://x.com/Eigent_AI +[social-x-shield]: https://img.shields.io/badge/-%40Eigent_AI-white?labelColor=gray&logo=x&logoColor=white&style=plastic + +[reddit-url]: https://www.reddit.com/r/CamelAI/ +[reddit-image]: https://img.shields.io/reddit/subreddit-subscribers/CamelAI?style=plastic&logo=reddit&label=r%2FCAMEL&labelColor=white + +[wechat-url]: https://ghli.org/camel/wechat.png +[wechat-image]: https://img.shields.io/badge/WeChat-CamelAIOrg-brightgreen?logo=wechat&logoColor=white + +[sponsor-link]: https://github.com/sponsors/camel-ai +[sponsor-shield]: https://img.shields.io/badge/-Sponsor%20CAMEL--AI-1d1d1d?logo=github&logoColor=white&style=plastic + +[eigent-download]: https://www.eigent.ai/download +[download-shield]: https://img.shields.io/badge/Download%20Eigent-363AF5?style=plastic + +[join-us]:https://eigent-ai.notion.site/eigent-ai-careers +[join-us-image]:https://img.shields.io/badge/Join%20Us-yellow?style=plastic + + +[camel-site]: https://www.camel-ai.org +[eigent-site]: https://www.eigent.ai +[docs-site]: https://docs.eigent.ai +[github-issue-link]: https://github.com/eigent-ai/eigent/issues + + +[image-seperator]: https://eigent-ai.github.io/.github/assets/seperator.png +[image-head]: https://eigent-ai.github.io/.github/assets/head.png +[image-public-beta]: https://eigent-ai.github.io/.github/assets/banner.png +[image-star-us]: https://eigent-ai.github.io/.github/assets/star-us.gif +[image-opensource]: https://eigent-ai.github.io/.github/assets/opensource.png +[image-wechat]: https://eigent-ai.github.io/.github/assets/wechat.png +[image-join-us]: https://camel-ai.github.io/camel_asset/graphics/join_us.png + + +[image-workforce]: https://eigent-ai.github.io/.github/assets/feature_dynamic_workforce.gif +[image-human-in-the-loop]: https://eigent-ai.github.io/.github/assets/feature_human_in_the_loop.gif +[image-customise-workers]: https://eigent-ai.github.io/.github/assets/feature_customise_workers.gif +[image-add-mcps]: https://eigent-ai.github.io/.github/assets/feature_add_mcps.gif +[image-local-model]: https://eigent-ai.github.io/.github/assets/feature_local_model.gif From ee894ce4d9acce3cf49881ac52e9332f596e573f Mon Sep 17 00:00:00 2001 From: Wendong-Fan Date: Sat, 17 Jan 2026 05:18:37 +0800 Subject: [PATCH 11/12] update --- docs/core/workforce.md | 2 +- .../{SearchAgentWrokSpace => BrowserAgentWorkSpace}/index.tsx | 0 src/pages/Home.tsx | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) rename src/components/{SearchAgentWrokSpace => BrowserAgentWorkSpace}/index.tsx (100%) diff --git a/docs/core/workforce.md b/docs/core/workforce.md index 2113bca9f..b3728be76 100644 --- a/docs/core/workforce.md +++ b/docs/core/workforce.md @@ -76,7 +76,7 @@ Eigent comes with a set of pre-configured agents, each designed for a specific d - NoteTakingToolkit - WebDeployToolkit -### SearchAgent +### BrowserAgent *Can search the web, extract webpage content, simulate browser actions, and provide relevant information to solve the given task.* diff --git a/src/components/SearchAgentWrokSpace/index.tsx b/src/components/BrowserAgentWorkSpace/index.tsx similarity index 100% rename from src/components/SearchAgentWrokSpace/index.tsx rename to src/components/BrowserAgentWorkSpace/index.tsx diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index e55bfd532..70585e2c9 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -6,7 +6,7 @@ import useChatStoreAdapter from "@/hooks/useChatStoreAdapter"; import { useEffect, useState } from "react"; import { ReactFlowProvider } from "@xyflow/react"; import BottomBar from "@/components/BottomBar"; -import SearchAgentWrokSpace from "@/components/SearchAgentWrokSpace"; +import BrowserAgentWorkSpace from "@/components/BrowserAgentWorkSpace"; import TerminalAgentWrokSpace from "@/components/TerminalAgentWrokSpace"; import { useSidebarStore } from "@/store/sidebarStore"; import UpdateElectron from "@/components/update"; @@ -206,7 +206,7 @@ export default function Home() { .activeWorkSpace )?.type === "browser_agent" && (
- +
)} {chatStore.tasks[chatStore.activeTaskId as string] From 10e7bda8b11647a6d4d5edfb43003908927fc50e Mon Sep 17 00:00:00 2001 From: Wendong-Fan Date: Sat, 17 Jan 2026 09:36:23 +0800 Subject: [PATCH 12/12] enhance: add README_PT-BR to brazilian guys PR896 --- README.md | 2 +- README_CN.md | 2 +- README_JA.md | 2 +- README_PT-BR.md | 68 ++++++++++++++++++++++++------------------------- 4 files changed, 36 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 316c6a374..1c12b2eb4 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@
-**English** · [简体中文](./README_CN.md) · [日本語](./README_JA.md) · [Official Site][eigent-site] · [Documents][docs-site] · [Feedback][github-issue-link] +**English** · [Português](./README_PT-BR.md) · [简体中文](./README_CN.md) · [日本語](./README_JA.md) · [Official Site][eigent-site] · [Documents][docs-site] · [Feedback][github-issue-link]

diff --git a/README_CN.md b/README_CN.md index 1756c9417..e55be2c5b 100644 --- a/README_CN.md +++ b/README_CN.md @@ -23,7 +23,7 @@
-[English](./README.md) · **简体中文** · [日本語](./README_JA.md) · [官方网站][eigent-site] · [文档][docs-site] · [反馈][github-issue-link] +[English](./README.md) · [Português](./README_PT-BR.md) · **简体中文** · [日本語](./README_JA.md) · [官方网站][eigent-site] · [文档][docs-site] · [反馈][github-issue-link]

diff --git a/README_JA.md b/README_JA.md index 3cc3cea7c..ed2d76d08 100644 --- a/README_JA.md +++ b/README_JA.md @@ -23,7 +23,7 @@
-[English](./README.md) · [简体中文](./README_CN.md) · **日本語** · [公式サイト][eigent-site] · [ドキュメント][docs-site] · [フィードバック][github-issue-link] +[English](./README.md) · [Português](./README_PT-BR.md) · [简体中文](./README_CN.md) · **日本語** · [公式サイト][eigent-site] · [ドキュメント][docs-site] · [フィードバック][github-issue-link]

diff --git a/README_PT-BR.md b/README_PT-BR.md index 3b063eb33..8e101e4f6 100644 --- a/README_PT-BR.md +++ b/README_PT-BR.md @@ -23,7 +23,7 @@
-[English](./README.md) · **Português** · [简体中文](./README_CN.md) · [日本語](./README_JA.md) · [Site Oficial][eigent-site] · [Documents][docs-site] · [Feedback][github-issue-link] +[English](./README.md) · **Português** · [简体中文](./README_CN.md) · [日本語](./README_JA.md) · [Site Oficial][eigent-site] · [Documentação][docs-site] · [Feedback][github-issue-link]

@@ -51,29 +51,28 @@ Construído sobre o aclamado projeto open source da [CAMEL-AI][camel-site], noss #### TOC -- [🚀 Primeiros Passos](#-getting-started) - - [🏠 Implantação Local (Recomendado)](#-local-deployment-recommended) - - [⚡ Início Rápido (Conectado à Nuvem)](#-quick-start-cloud-connected) - - [🏢 Corporativo](#-enterprise) - - [☁️ Versão em Nuvem](#️-cloud-version) -- [✨ Principais Recursos](#-key-features) - - [🏭 Força de Trabalho](#-workforce) - - [🧠 Suporte Abrangente a Modelos](#-comprehensive-model-support) - - [🔌 Integração de Ferramentas MCP (MCP)](#-mcp-tools-integration-mcp) - - [✋ Humano-no-Loop](#-human-in-the-loop) - - [👐 100% Open Source](#-100-open-source) -- [🧩 Casos de Uso](#-use-cases) -- [🛠️ Stack Tecnológica](#-tech-stack) +- [🚀 Primeiros Passos](#-primeiros-passos) + - [🏠 Implantação Local (Recomendado)](#-implantação-local-recomendado) + - [⚡ Início Rápido (Conectado à Nuvem)](#-início-rápido-conectado-à-nuvem) + - [🏢 Empresarial](#-empresarial) + - [☁️ Versão em Nuvem](#️-versão-em-nuvem) +- [✨ Principais Recursos](#-principais-recursos) + - [🏭 Força de Trabalho](#-força-de-trabalho) + - [🧠 Suporte Abrangente a Modelos](#-suporte-abrangente-a-modelos) + - [🔌 Integração de Ferramentas MCP (MCP)](#-integração-de-ferramentas-mcp-mcp) + - [✋ Humano no Circuito](#-humano-no-circuito) + - [👐 100% Código Aberto](#-100-código-aberto) +- [🧩 Casos de Uso](#-casos-de-uso) +- [🛠️ Stack Tecnológica](#-stack-tecnológica) - [Backend](#backend) - [Frontend](#frontend) -- [🌟 Mantendo-se à Frente](#staying-ahead) +- [🌟 Mantendo-se à Frente](#-mantendo-se-à-frente) - [🗺️ Roadmap](#-roadmap) -- [📖 Contribuindo](#-contributing) - - [Principais Contribuidores](#main-contributors) - - [Embaixador Distinto](#distinguished-amabssador) -- [Ecossistema](#ecosystem) -- [📄 Licença Open Source](#-open-source-license) -- [🌐 Comunidade & Contato](#-community--contact) +- [🤝 Contribuição](#-contribuição) + - [Contribuidores](#contribuidores) +- [❤️ Patrocínio](#-patrocínio) +- [📄 Licença Open Source](#-licença-open-source) +- [🌐 Comunidade & Contato](#-comunidade--contato) #### @@ -114,7 +113,7 @@ npm install npm run dev ``` -> Nota: Este modo se conecta aos serviços em nuvem do Eigent e requer registro de conta. Para uma experiência totalmente independente, utilize a [Implantação Local](#-local-deployment-recommended) em vez disso. +> Nota: Este modo se conecta aos serviços em nuvem do Eigent e requer registro de conta. Para uma experiência totalmente independente, utilize a [Implantação Local](#-implantação-local-recomendado) em vez disso. ### 🏢 Empresarial @@ -132,7 +131,7 @@ Para equipes que preferem infraestrutura gerenciada, também oferecemos uma plat - **Acesso Instantâneo** - Comece a construir fluxos de trabalho multi-agente em minutos. - **Infraestrutura Gerenciada** - Nós cuidamos da escalabilidade, atualizações e manutenção. -- **Suporte Premium** - Assine e obtenha assistência prioritária de nossa equipe de engenharia.. +- **Suporte Premium** - Assine e obtenha assistência prioritária de nossa equipe de engenharia.
@@ -151,7 +150,7 @@ Emprega uma equipe de agentes de IA especializados que colaboram para resolver t O Eigent pré-definiu os seguintes agentes trabalhadores: - **Agente Desenvolvedor:** Escreve e executa código, executa comandos de terminal. -- **Agente de Busca:** Pesquisa na web e extrai conteúdo. +- **Agente de Busca:** Pesquisa na web e extrai conteúdo. - **Agente de Documento:** Cria e gerencia documentos. - **Agente Multi-Modal:** Processa imagens e áudio. @@ -193,7 +192,7 @@ O Eigent é completamente de código aberto. Você pode baixar, inspecionar e mo
-Prompt: Somos dois fãs de tênis e queremos ir ver o torneio de tênis ... +Prompt: Somos dois fãs de tênis e queremos ir ver o torneio de tênis ...
Somos dois fãs de tênis e queremos ir ver o torneio de tênis em Palm Springs 2026. Eu moro em SF - por favor, prepare um itinerário detalhado com voos, hotéis, coisas para fazer por 3 dias - na época em que as semifinais/finais estão acontecendo. Gostamos de trilhas, comida vegana e spas. Nosso orçamento é de $5K. O itinerário deve ser uma linha do tempo detalhada de horário, atividade, custo, outros detalhes e, se aplicável, um link para comprar ingressos/fazer reservas etc. para o item. Algumas preferências. Acesso a spa seria bom, mas não necessário. Quando você terminar esta tarefa, por favor gere um relatório html sobre esta viagem; escreva um resumo deste plano e envie o resumo de texto e o link do relatório html para o canal slack #tennis-trip-sf.
@@ -203,7 +202,7 @@ Somos dois fãs de tênis e queremos ir ver o torneio de tênis em Palm Springs ### 2. Gerar Relatório do Q2 a partir de Dados Bancários em CSV [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM1MjY4OTE4MDgtODczOSI.aIjJmQ.WTdoX9mATwrcBr_w53BmGEHPo8U__1753526891808-8739)
-Prompt: Por favor, me ajude a preparar uma demonstração financeira do Q2 baseada no meu ... +Prompt: Por favor, me ajude a preparar uma demonstração financeira do Q2 baseada no meu ...
Por favor, me ajude a preparar uma demonstração financeira do Q2 baseada no meu arquivo de registro de transferência bancária bank_transacation.csv na minha área de trabalho para um relatório html com gráfico para investidores sobre quanto gastamos.
@@ -213,7 +212,7 @@ Por favor, me ajude a preparar uma demonstração financeira do Q2 baseada no me ### 3. Automação de Relatório de Pesquisa de Mercado de Saúde do Reino Unido [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTMzOTM1NTg3OTctODcwNyI.aIey-Q.Jh9QXzYrRYarY0kz_qsgoj3ewX0__1753393558797-8707)
-Prompt: Analise a indústria de saúde do Reino Unido para apoiar o planejamento ... +Prompt: Analise a indústria de saúde do Reino Unido para apoiar o planejamento ...
Analise a indústria de saúde do Reino Unido para apoiar o planejamento da minha próxima empresa. Forneça uma visão geral abrangente do mercado, incluindo tendências atuais, projeções de crescimento e regulamentações relevantes. Identifique as 5–10 principais oportunidades, lacunas ou segmentos mal atendidos dentro do mercado. Apresente todas as descobertas em um relatório HTML bem estruturado e profissional. Em seguida, envie uma mensagem para o canal slack #eigentr-product-test quando esta tarefa estiver concluída para alinhar o conteúdo do relatório com meus colegas de equipe.
@@ -223,7 +222,7 @@ Analise a indústria de saúde do Reino Unido para apoiar o planejamento da minh ### 4. Viabilidade do Mercado Alemão de Skate Elétrico [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM2NTI4MjY3ODctNjk2Ig.aIjGiA.t-qIXxk_BZ4ENqa-yVIm0wMVyXU__1753652826787-696)
-Prompt: Somos uma empresa que produz skates elétricos de alto padrão ... +Prompt: Somos uma empresa que produz skates elétricos de alto padrão ...
Somos uma empresa que produz skates elétricos de alto padrão e estamos considerando entrar no mercado alemão. Por favor, prepare um relatório detalhado de viabilidade de entrada no mercado. O relatório deve cobrir os seguintes aspectos: 1. Tamanho do Mercado & Regulamentações: Pesquise o tamanho do mercado, taxa de crescimento anual, principais players e participação de mercado de Veículos Elétricos Leves Pessoais (PLEVs) na Alemanha. Ao mesmo tempo, forneça um detalhamento e resumo das leis e regulamentações alemãs sobre o uso de skates elétricos em vias públicas, incluindo requisitos de certificação (como certificação ABE) e apólices de seguro. 2. Perfil do Consumidor: Analise o perfil dos potenciais consumidores alemães, incluindo idade, nível de renda, principais cenários de uso (deslocamento, lazer), fatores-chave de decisão de compra (preço, desempenho, marca, design) e os canais que normalmente utilizam para buscar informações (fóruns, redes sociais, lojas físicas). 3. Canais & Distribuição: Investigue as principais plataformas online de venda de eletrônicos na Alemanha (ex.: Amazon.de, MediaMarkt.de) e grandes redes físicas de artigos esportivos de alto padrão. Liste os 5 principais potenciais parceiros de distribuição online e offline e encontre, se possível, as informações de contato de seus departamentos de compras. 4. Custos & Precificação: Com base na estrutura de custos do produto no arquivo Product_Cost.csv na minha área de trabalho, e considerando taxas alfandegárias alemãs, Imposto sobre Valor Agregado (IVA), custos logísticos e de armazenagem, além de possíveis despesas de marketing, estime o Preço de Venda Sugerido ao Consumidor (MSRP) e analise sua competitividade no mercado. 5. Relatório Abrangente & Apresentação: Resuma todas as descobertas da pesquisa em um arquivo de relatório em HTML. O conteúdo deve incluir gráficos de dados, principais conclusões e uma recomendação final de estratégia de entrada no mercado (Recomendado / Não Recomendado / Recomendado com Condições).
@@ -233,7 +232,7 @@ Somos uma empresa que produz skates elétricos de alto padrão e estamos conside ### 5. Auditoria de SEO para Lançamento do Workforce Multiagent [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM2OTk5NzExNDQtNTY5NiI.aIex0w.jc_NIPmfIf9e3zGt-oG9fbMi3K4__1753699971144-5696)
-Prompt: Para apoiar o lançamento do nosso novo produto Workforce Multiagent ... +Prompt: Para apoiar o lançamento do nosso novo produto Workforce Multiagent ...
Para apoiar o lançamento do nosso novo produto Workforce Multiagent, por favor, execute uma auditoria completa de SEO no nosso site oficial (https://www.camel-ai.org/) e entregue um relatório detalhado de otimização com recomendações acionáveis.
@@ -243,7 +242,7 @@ Para apoiar o lançamento do nosso novo produto Workforce Multiagent, por favor, ### 6. Identificar Arquivos Duplicados em Downloads [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTM3NjAzODgxNzEtMjQ4Ig.aIhKLQ.epOG--0Nj0o4Bqjtdqm9OZdaqRQ__1753760388171-248)
-Prompt: Tenho uma pasta chamada mydocs dentro do diretório Documents ... +Prompt: Tenho uma pasta chamada mydocs dentro do diretório Documents ...
Tenho uma pasta chamada mydocs dentro do diretório Documents. Por favor, escaneie-a e identifique todos os arquivos que sejam duplicados exatos ou quase duplicados — incluindo aqueles com conteúdo, tamanho ou formato idênticos (mesmo que nomes ou extensões de arquivo sejam diferentes). Liste-os claramente, agrupados por similaridade.
@@ -253,7 +252,7 @@ Tenho uma pasta chamada mydocs dentro do diretório Documents. Por favor, escane ### 7. Adicionar Assinatura a PDF [Replay ▶️](https://www.eigent.ai/download?share_token=IjE3NTQwOTU0ODM0NTItNTY2MSI.aJCHrA.Mg5yPOFqj86H_GQvvRNditzepXc__1754095483452-5661)
-Prompt: Por favor, adicione esta imagem de assinatura às áreas de assinatura no PDF ... +Prompt: Por favor, adicione esta imagem de assinatura às áreas de assinatura no PDF ...
Por favor, adicione esta imagem de assinatura às áreas de assinatura no PDF. Você pode instalar a ferramenta de linha de comando ‘tesseract’ (necessária para localização confiável das ‘Áreas de Assinatura’ via OCR) para ajudar a concluir esta tarefa.
@@ -266,7 +265,7 @@ Por favor, adicione esta imagem de assinatura às áreas de assinatura no PDF. V - **Framework:** FastAPI - **Gerenciador de Pacotes:** uv - **Servidor Assíncrono:** Uvicorn -- **Autenticação:** OAuth 2.0, Passlib. +- **Autenticação:** OAuth 2.0, Passlib - **Framework Multiagente:** CAMEL ### Frontend @@ -288,7 +287,7 @@ Por favor, adicione esta imagem de assinatura às áreas de assinatura no PDF. V ## 🗺️ Roadmap -| Topicos | Issues | Canal do Discord | +| Tópicos | Issues | Canal do Discord | | ------------------------- | -- |-- | | **Engenharia de Contexto** | - Cache de prompts
- Otimização de prompt do sistema
- Otimização de docstrings do toolkit
- Compressão de contexto | [**Entrar no Discord →**](https://discord.gg/D2e3rBWD) | | **Aprimoramento Multimodal** | - Compreensão de imagens mais precisa ao usar o navegador
- Geração avançada de vídeo | [**Entrar no Discord →**](https://discord.gg/kyapNCeJ) | @@ -316,7 +315,7 @@ Feito com [contrib.rocks](https://contrib.rocks). ## [❤️ Patrocínio][sponsor-link] -O Eigent é construído sobre as pesquisas e infraestruturas da [CAMEL-AI.org][camel-ai-org-github]'s research and infrastructures. [Patrocinar a CAMEL-AI.org][sponsor-link] tornará o `Eigent` ainda melhor. +O Eigent é construído sobre as pesquisas e infraestruturas da [CAMEL-AI.org][camel-ai-org-github]. [Patrocinar a CAMEL-AI.org][sponsor-link] tornará o `Eigent` ainda melhor. ## **📄 Licença Open Source** @@ -351,7 +350,6 @@ Para mais informações, entre em contato pelo e-mail info@eigent.ai [camel-ai-org-github]: https://github.com/camel-ai [camel-github]: https://github.com/camel-ai/camel -[eigent-github]: https://github.com/eigent-ai/eigent [contribution-link]: https://github.com/eigent-ai/eigent/blob/main/CONTRIBUTING.md [social-x-link]: https://x.com/Eigent_AI