Release/v1.0.0 (#3618)

* feat: add `apps` & `actions` attributes to Agent (#3504)

* feat: add app attributes to Agent

* feat: add actions attribute to Agent

* chore: resolve linter issues

* refactor: merge the apps and actions parameters into a single one

* fix: remove unnecessary print

* feat: logging error when CrewaiPlatformTools fails

* chore: export CrewaiPlatformTools directly from crewai_tools

* style: resolver linter issues

* test: fix broken tests

* style: solve linter issues

* fix: fix broken test

* feat: monorepo restructure and test/ci updates

- Add crewai workspace member
- Fix vcr cassette paths and restore test dirs
- Resolve ci failures and update linter/pytest rules

* chore: update python version to 3.13 and package metadata

* feat: add crewai-tools workspace and fix tests/dependencies

* feat: add crewai-tools workspace structure

* Squashed 'temp-crewai-tools/' content from commit 9bae5633

git-subtree-dir: temp-crewai-tools
git-subtree-split: 9bae56339096cb70f03873e600192bd2cd207ac9

* feat: configure crewai-tools workspace package with dependencies

* fix: apply ruff auto-formatting to crewai-tools code

* chore: update lockfile

* fix: don't allow tool tests yet

* fix: comment out extra pytest flags for now

* fix: remove conflicting conftest.py from crewai-tools tests

* fix: resolve dependency conflicts and test issues

- Pin vcrpy to 7.0.0 to fix pytest-recording compatibility
- Comment out types-requests to resolve urllib3 conflict
- Update requests requirement in crewai-tools to >=2.32.0

* chore: update CI workflows and docs for monorepo structure

* chore: update CI workflows and docs for monorepo structure

* fix: actions syntax

* chore: ci publish and pin versions

* fix: add permission to action

* chore: bump version to 1.0.0a1 across all packages

- Updated version to 1.0.0a1 in pyproject.toml for crewai and crewai-tools
- Adjusted version in __init__.py files for consistency

* WIP: v1 docs (#3626)

(cherry picked from commit d46e20fa09bcd2f5916282f5553ddeb7183bd92c)

* docs: parity for all translations

* docs: full name of acronym AMP

* docs: fix lingering unused code

* docs: expand contextual options in docs.json

* docs: add contextual action to request feature on GitHub (#3635)

* chore: apply linting fixes to crewai-tools

* feat: add required env var validation for brightdata

Co-authored-by: Greyson Lalonde <greyson.r.lalonde@gmail.com>

* fix: handle properly anyOf oneOf allOf schema's props

Co-authored-by: Greyson Lalonde <greyson.r.lalonde@gmail.com>

* feat: bump version to 1.0.0a2

* Lorenze/native inference sdks (#3619)

* ruff linted

* using native sdks with litellm fallback

* drop exa

* drop print on completion

* Refactor LLM and utility functions for type consistency

- Updated `max_tokens` parameter in `LLM` class to accept `float` in addition to `int`.
- Modified `create_llm` function to ensure consistent type hints and return types, now returning `LLM | BaseLLM | None`.
- Adjusted type hints for various parameters in `create_llm` and `_llm_via_environment_or_fallback` functions for improved clarity and type safety.
- Enhanced test cases to reflect changes in type handling and ensure proper instantiation of LLM instances.

* fix agent_tests

* fix litellm tests and usagemetrics fix

* drop print

* Refactor LLM event handling and improve test coverage

- Removed commented-out event emission for LLM call failures in `llm.py`.
- Added `from_agent` parameter to `CrewAgentExecutor` for better context in LLM responses.
- Enhanced test for LLM call failure to simulate OpenAI API failure and updated assertions for clarity.
- Updated agent and task ID assertions in tests to ensure they are consistently treated as strings.

* fix test_converter

* fixed tests/agents/test_agent.py

* Refactor LLM context length exception handling and improve provider integration

- Renamed `LLMContextLengthExceededException` to `LLMContextLengthExceededExceptionError` for clarity and consistency.
- Updated LLM class to pass the provider parameter correctly during initialization.
- Enhanced error handling in various LLM provider implementations to raise the new exception type.
- Adjusted tests to reflect the updated exception name and ensure proper error handling in context length scenarios.

* Enhance LLM context window handling across providers

- Introduced CONTEXT_WINDOW_USAGE_RATIO to adjust context window sizes dynamically for Anthropic, Azure, Gemini, and OpenAI LLMs.
- Added validation for context window sizes in Azure and Gemini providers to ensure they fall within acceptable limits.
- Updated context window size calculations to use the new ratio, improving consistency and adaptability across different models.
- Removed hardcoded context window sizes in favor of ratio-based calculations for better flexibility.

* fix test agent again

* fix test agent

* feat: add native LLM providers for Anthropic, Azure, and Gemini

- Introduced new completion implementations for Anthropic, Azure, and Gemini, integrating their respective SDKs.
- Added utility functions for tool validation and extraction to support function calling across LLM providers.
- Enhanced context window management and token usage extraction for each provider.
- Created a common utility module for shared functionality among LLM providers.

* chore: update dependencies and improve context management

- Removed direct dependency on `litellm` from the main dependencies and added it under extras for better modularity.
- Updated the `litellm` dependency specification to allow for greater flexibility in versioning.
- Refactored context length exception handling across various LLM providers to use a consistent error class.
- Enhanced platform-specific dependency markers for NVIDIA packages to ensure compatibility across different systems.

* refactor(tests): update LLM instantiation to include is_litellm flag in test cases

- Modified multiple test cases in test_llm.py to set the is_litellm parameter to True when instantiating the LLM class.
- This change ensures that the tests are aligned with the latest LLM configuration requirements and improves consistency across test scenarios.
- Adjusted relevant assertions and comments to reflect the updated LLM behavior.

* linter

* linted

* revert constants

* fix(tests): correct type hint in expected model description

- Updated the expected description in the test_generate_model_description_dict_field function to use 'Dict' instead of 'dict' for consistency with type hinting conventions.
- This change ensures that the test accurately reflects the expected output format for model descriptions.

* refactor(llm): enhance LLM instantiation and error handling

- Updated the LLM class to include validation for the model parameter, ensuring it is a non-empty string.
- Improved error handling by logging warnings when the native SDK fails, allowing for a fallback to LiteLLM.
- Adjusted the instantiation of LLM in test cases to consistently include the is_litellm flag, aligning with recent changes in LLM configuration.
- Modified relevant tests to reflect these updates, ensuring better coverage and accuracy in testing scenarios.

* fixed test

* refactor(llm): enhance token usage tracking and add copy methods

- Updated the LLM class to track token usage and log callbacks in streaming mode, improving monitoring capabilities.
- Introduced shallow and deep copy methods for the LLM instance, allowing for better management of LLM configurations and parameters.
- Adjusted test cases to instantiate LLM with the is_litellm flag, ensuring alignment with recent changes in LLM configuration.

* refactor(tests): reorganize imports and enhance error messages in test cases

- Cleaned up import statements in test_crew.py for better organization and readability.
- Enhanced error messages in test cases to use `re.escape` for improved regex matching, ensuring more robust error handling.
- Adjusted comments for clarity and consistency across test scenarios.
- Ensured that all necessary modules are imported correctly to avoid potential runtime issues.

* feat: add base devtooling

* fix: ensure dep refs are updated for devtools

* fix: allow pre-release

* feat: allow release after tag

* feat: bump versions to 1.0.0a3 

Co-authored-by: Greyson LaLonde <greyson.r.lalonde@gmail.com>

* fix: match tag and release title, ignore devtools build for pypi

* fix: allow failed pypi publish

* feat: introduce trigger listing and execution commands for local development (#3643)

* chore: exclude tests from ruff linting

* chore: exclude tests from GitHub Actions linter

* fix: replace print statements with logger in agent and memory handling

* chore: add noqa for intentional print in printer utility

* fix: resolve linting errors across codebase

* feat: update docs with new approach to consume Platform Actions (#3675)

* fix: remove duplicate line and add explicit env var

* feat: bump versions to 1.0.0a4 (#3686)

* Update triggers docs (#3678)

* docs: introduce triggers list & triggers run command

* docs: add KO triggers docs

* docs: ensure CREWAI_PLATFORM_INTEGRATION_TOKEN is mentioned on docs (#3687)

* Lorenze/bedrock llm (#3693)

* feat: add AWS Bedrock support and update dependencies

- Introduced BedrockCompletion class for AWS Bedrock integration in LLM.
- Added boto3 as a new dependency in both pyproject.toml and uv.lock.
- Updated LLM class to support Bedrock provider.
- Created new files for Bedrock provider implementation.

* using converse api

* converse

* linted

* refactor: update BedrockCompletion class to improve parameter handling

- Changed max_tokens from a fixed integer to an optional integer.
- Simplified model ID assignment by removing the inference profile mapping method.
- Cleaned up comments and unnecessary code related to tool specifications and model-specific parameters.

* feat: improve event bus thread safety and async support

Add thread-safe, async-compatible event bus with read–write locking and
handler dependency ordering. Remove blinker dependency and implement
direct dispatch. Improve type safety, error handling, and deterministic
event synchronization.

Refactor tests to auto-wait for async handlers, ensure clean teardown,
and add comprehensive concurrency coverage. Replace thread-local state
in AgentEvaluator with instance-based locking for correct cross-thread
access. Enhance tracing reliability and event finalization.

* feat: enhance OpenAICompletion class with additional client parameters (#3701)

* feat: enhance OpenAICompletion class with additional client parameters

- Added support for default_headers, default_query, and client_params in the OpenAICompletion class.
- Refactored client initialization to use a dedicated method for client parameter retrieval.
- Introduced new test cases to validate the correct usage of OpenAICompletion with various parameters.

* fix: correct test case for unsupported OpenAI model

- Updated the test_openai.py to ensure that the LLM instance is created before calling the method, maintaining proper error handling for unsupported models.
- This change ensures that the test accurately checks for the NotFoundError when an invalid model is specified.

* fix: enhance error handling in OpenAICompletion class

- Added specific exception handling for NotFoundError and APIConnectionError in the OpenAICompletion class to provide clearer error messages and improve logging.
- Updated the test case for unsupported models to ensure it raises a ValueError with the appropriate message when a non-existent model is specified.
- This change improves the robustness of the OpenAI API integration and enhances the clarity of error reporting.

* fix: improve test for unsupported OpenAI model handling

- Refactored the test case in test_openai.py to create the LLM instance after mocking the OpenAI client, ensuring proper error handling for unsupported models.
- This change enhances the clarity of the test by accurately checking for ValueError when a non-existent model is specified, aligning with recent improvements in error handling for the OpenAICompletion class.

* feat: bump versions to 1.0.0b1 (#3706)

* Lorenze/tools drop litellm (#3710)

* completely drop litellm and correctly pass config for qdrant

* feat: add support for additional embedding models in EmbeddingService

- Expanded the list of supported embedding models to include Google Vertex, Hugging Face, Jina, Ollama, OpenAI, Roboflow, Watson X, custom embeddings, Sentence Transformers, Text2Vec, OpenClip, and Instructor.
- This enhancement improves the versatility of the EmbeddingService by allowing integration with a wider range of embedding providers.

* fix: update collection parameter handling in CrewAIRagAdapter

- Changed the condition for setting vectors_config in the CrewAIRagAdapter to check for QdrantConfig instance instead of using hasattr. This improves type safety and ensures proper configuration handling for Qdrant integration.

* moved stagehand as optional dep (#3712)

* feat: bump versions to 1.0.0b2 (#3713)

* feat: enhance AnthropicCompletion class with additional client parame… (#3707)

* feat: enhance AnthropicCompletion class with additional client parameters and tool handling

- Added support for client_params in the AnthropicCompletion class to allow for additional client configuration.
- Refactored client initialization to use a dedicated method for retrieving client parameters.
- Implemented a new method to handle tool use conversation flow, ensuring proper execution and response handling.
- Introduced comprehensive test cases to validate the functionality of the AnthropicCompletion class, including tool use scenarios and parameter handling.

* drop print statements

* test: add fixture to mock ANTHROPIC_API_KEY for tests

- Introduced a pytest fixture to automatically mock the ANTHROPIC_API_KEY environment variable for all tests in the test_anthropic.py module.
- This change ensures that tests can run without requiring a real API key, improving test isolation and reliability.

* refactor: streamline streaming message handling in AnthropicCompletion class

- Removed the 'stream' parameter from the API call as it is set internally by the SDK.
- Simplified the handling of tool use events and response construction by extracting token usage from the final message.
- Enhanced the flow for managing tool use conversation, ensuring proper integration with the streaming API response.

* fix streaming here too

* fix: improve error handling in tool conversion for AnthropicCompletion class

- Enhanced exception handling during tool conversion by catching KeyError and ValueError.
- Added logging for conversion errors to aid in debugging and maintain robustness in tool integration.

* feat: enhance GeminiCompletion class with client parameter support (#3717)

* feat: enhance GeminiCompletion class with client parameter support

- Added support for client_params in the GeminiCompletion class to allow for additional client configuration.
- Refactored client initialization into a dedicated method for improved parameter handling.
- Introduced a new method to retrieve client parameters, ensuring compatibility with the base class.
- Enhanced error handling during client initialization to provide clearer messages for missing configuration.
- Updated documentation to reflect the changes in client parameter usage.

* add optional dependancies

* refactor: update test fixture to mock GOOGLE_API_KEY

- Renamed the fixture from `mock_anthropic_api_key` to `mock_google_api_key` to reflect the change in the environment variable being mocked.
- This update ensures that all tests in the module can run with a mocked GOOGLE_API_KEY, improving test isolation and reliability.

* fix tests

* feat: enhance BedrockCompletion class with advanced features

* feat: enhance BedrockCompletion class with advanced features and error handling

- Added support for guardrail configuration, additional model request fields, and custom response field paths in the BedrockCompletion class.
- Improved error handling for AWS exceptions and added token usage tracking with stop reason logging.
- Enhanced streaming response handling with comprehensive event management, including tool use and content block processing.
- Updated documentation to reflect new features and initialization parameters.
- Introduced a new test suite for BedrockCompletion to validate functionality and ensure robust integration with AWS Bedrock APIs.

* chore: add boto typing

* fix: use typing_extensions.Required for Python 3.10 compatibility

---------

Co-authored-by: Greyson Lalonde <greyson.r.lalonde@gmail.com>

* feat: azure native tests

* feat: add Azure AI Inference support and related tests

- Introduced the `azure-ai-inference` package with version `1.0.0b9` and its dependencies in `uv.lock` and `pyproject.toml`.
- Added new test files for Azure LLM functionality, including tests for Azure completion and tool handling.
- Implemented comprehensive test cases to validate Azure-specific behavior and integration with the CrewAI framework.
- Enhanced the testing framework to mock Azure credentials and ensure proper isolation during tests.

* feat: enhance AzureCompletion class with Azure OpenAI support

- Added support for the Azure OpenAI endpoint in the AzureCompletion class, allowing for flexible endpoint configurations.
- Implemented endpoint validation and correction to ensure proper URL formats for Azure OpenAI deployments.
- Enhanced error handling to provide clearer messages for common HTTP errors, including authentication and rate limit issues.
- Updated tests to validate the new endpoint handling and error messaging, ensuring robust integration with Azure AI Inference.
- Refactored parameter preparation to conditionally include the model parameter based on the endpoint type.

* refactor: convert project module to metaclass with full typing

* Lorenze/OpenAI base url backwards support (#3723)

* fix: enhance OpenAICompletion class base URL handling

- Updated the base URL assignment in the OpenAICompletion class to prioritize the new `api_base` attribute and fallback to the environment variable `OPENAI_BASE_URL` if both are not set.
- Added `api_base` to the list of parameters in the OpenAICompletion class to ensure proper configuration and flexibility in API endpoint management.

* feat: enhance OpenAICompletion class with api_base support

- Added the `api_base` parameter to the OpenAICompletion class to allow for flexible API endpoint configuration.
- Updated the `_get_client_params` method to prioritize `base_url` over `api_base`, ensuring correct URL handling.
- Introduced comprehensive tests to validate the behavior of `api_base` and `base_url` in various scenarios, including environment variable fallback.
- Enhanced test coverage for client parameter retrieval, ensuring robust integration with the OpenAI API.

* fix: improve OpenAICompletion class configuration handling

- Added a debug print statement to log the client configuration parameters during initialization for better traceability.
- Updated the base URL assignment logic to ensure it defaults to None if no valid base URL is provided, enhancing robustness in API endpoint configuration.
- Refined the retrieval of the `api_base` environment variable to streamline the configuration process.

* drop print

* feat: improvements on import native sdk support (#3725)

* feat: add support for Anthropic provider and enhance logging

- Introduced the `anthropic` package with version `0.69.0` in `pyproject.toml` and `uv.lock`, allowing for integration with the Anthropic API.
- Updated logging in the LLM class to provide clearer error messages when importing native providers, enhancing debugging capabilities.
- Improved error handling in the AnthropicCompletion class to guide users on installation via the updated error message format.
- Refactored import error handling in other provider classes to maintain consistency in error messaging and installation instructions.

* feat: enhance LLM support with Bedrock provider and update dependencies

- Added support for the `bedrock` provider in the LLM class, allowing integration with AWS Bedrock APIs.
- Updated `uv.lock` to replace `boto3` with `bedrock` in the dependencies, reflecting the new provider structure.
- Introduced `SUPPORTED_NATIVE_PROVIDERS` to include `bedrock` and ensure proper error handling when instantiating native providers.
- Enhanced error handling in the LLM class to raise informative errors when native provider instantiation fails.
- Added tests to validate the behavior of the new Bedrock provider and ensure fallback mechanisms work correctly for unsupported providers.

* test: update native provider fallback tests to expect ImportError

* adjust the test with the expected bevaior - raising ImportError

* this is exoecting the litellm format, all gemini native tests are in test_google.py

---------

Co-authored-by: Greyson LaLonde <greyson.r.lalonde@gmail.com>

* fix: remove stdout prints, improve test determinism, and update trace handling

Removed `print` statements from the `LLMStreamChunkEvent` handler to prevent
LLM response chunks from being written directly to stdout. The listener now
only tracks chunks internally.

Fixes #3715

Added explicit return statements for trace-related tests.

Updated cassette for `test_failed_evaluation` to reflect new behavior where
an empty trace dict is used instead of returning early.

Ensured deterministic cleanup order in test fixtures by making
`clear_event_bus_handlers` depend on `setup_test_environment`. This guarantees
event bus shutdown and file handle cleanup occur before temporary directory
deletion, resolving intermittent “Directory not empty” errors in CI.

* chore: remove lib/crewai exclusion from pre-commit hooks

* feat: enhance task guardrail functionality and validation

* feat: enhance task guardrail functionality and validation

- Introduced support for multiple guardrails in the Task class, allowing for sequential processing of guardrails.
- Added a new `guardrails` field to the Task model to accept a list of callable guardrails or string descriptions.
- Implemented validation to ensure guardrails are processed correctly, including handling of retries and error messages.
- Enhanced the `_invoke_guardrail_function` method to manage guardrail execution and integrate with existing task output processing.
- Updated tests to cover various scenarios involving multiple guardrails, including success, failure, and retry mechanisms.

This update improves the flexibility and robustness of task execution by allowing for more complex validation scenarios.

* refactor: enhance guardrail type handling in Task model

- Updated the Task class to improve guardrail type definitions, introducing GuardrailType and GuardrailsType for better clarity and type safety.
- Simplified the validation logic for guardrails, ensuring that both single and multiple guardrails are processed correctly.
- Enhanced error messages for guardrail validation to provide clearer feedback when incorrect types are provided.
- This refactor improves the maintainability and robustness of task execution by standardizing guardrail handling.

* feat: implement per-guardrail retry tracking in Task model

- Introduced a new private attribute `_guardrail_retry_counts` to the Task class for tracking retry attempts on a per-guardrail basis.
- Updated the guardrail processing logic to utilize the new retry tracking, allowing for independent retry counts for each guardrail.
- Enhanced error handling to provide clearer feedback when guardrails fail validation after exceeding retry limits.
- Modified existing tests to validate the new retry tracking behavior, ensuring accurate assertions on guardrail retries.

This update improves the robustness and flexibility of task execution by allowing for more granular control over guardrail validation and retry mechanisms.

* chore: 1.0.0b3 bump (#3734)

* chore: full ruff and mypy

improved linting, pre-commit setup, and internal architecture. Configured Ruff to respect .gitignore, added stricter rules, and introduced a lock pre-commit hook with virtualenv activation. Fixed type shadowing in EXASearchTool using a type_ alias to avoid PEP 563 conflicts and resolved circular imports in agent executor and guardrail modules. Removed agent-ops attributes, deprecated watson alias, and dropped crewai-enterprise tools with corresponding test updates. Refactored cache and memoization for thread safety and cleaned up structured output adapters and related logic.

* New MCL DSL (#3738)

* Adding MCP implementation

* New tests for MCP implementation

* fix tests

* update docs

* Revert "New tests for MCP implementation"

This reverts commit 0bbe6dee90.

* linter

* linter

* fix

* verify mcp pacakge exists

* adjust docs to be clear only remote servers are supported

* reverted

* ensure args schema generated properly

* properly close out

---------

Co-authored-by: lorenzejay <lorenzejaytech@gmail.com>
Co-authored-by: Greyson Lalonde <greyson.r.lalonde@gmail.com>

* feat: a2a experimental

experimental a2a support

---------

Co-authored-by: Lucas Gomide <lucaslg200@gmail.com>
Co-authored-by: Greyson LaLonde <greyson.r.lalonde@gmail.com>
Co-authored-by: Tony Kipkemboi <iamtonykipkemboi@gmail.com>
Co-authored-by: Mike Plachta <mplachta@users.noreply.github.com>
Co-authored-by: João Moura <joaomdmoura@gmail.com>
This commit is contained in:
Lorenze Jay
2025-10-20 14:10:19 -07:00
committed by GitHub
parent 42f2b4d551
commit d1343b96ed
1339 changed files with 111657 additions and 19564 deletions

View File

@@ -43,7 +43,7 @@ Ferramentas & Integrações é o hub central para conectar aplicações de terce
1. Acesse <Link href="https://app.crewai.com/crewai_plus/connectors">Integrações</Link>
2. Clique em <b>Conectar</b> no serviço desejado
3. Conclua o fluxo OAuth e conceda os escopos
4. Copie seu Token Enterprise na aba <b>Integração</b>
4. Copie seu Token Enterprise em <Link href="https://app.crewai.com/crewai_plus/settings/integrations">Configurações de Integração</Link>
<Frame>
![Token Enterprise](/images/enterprise/enterprise_action_auth_token.png)
@@ -57,26 +57,37 @@ Ferramentas & Integrações é o hub central para conectar aplicações de terce
uv add crewai-tools
```
### Configuração de variável de ambiente
<Note>
Para usar integrações com `Agent(apps=[])`, você deve definir a variável de ambiente `CREWAI_PLATFORM_INTEGRATION_TOKEN` com seu Enterprise Token.
</Note>
```bash
export CREWAI_PLATFORM_INTEGRATION_TOKEN="seu_enterprise_token"
```
Ou adicione ao seu arquivo `.env`:
```
CREWAI_PLATFORM_INTEGRATION_TOKEN=seu_enterprise_token
```
### Exemplo de uso
<Tip>
Todos os serviços autenticados ficam disponíveis como ferramentas. Adicione `CrewaiEnterpriseTools` ao agente e pronto.
Use a nova abordagem simplificada para integrar aplicativos empresariais. Simplesmente especifique o aplicativo e suas ações diretamente na configuração do Agent.
</Tip>
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="seu_enterprise_token"
)
print(enterprise_tools)
# Crie um agente com capacidades do Gmail
email_agent = Agent(
role="Gerente de Email",
goal="Gerenciar e organizar comunicações por email",
backstory="Assistente de IA especializado em gestão de emails",
tools=enterprise_tools
apps=['gmail', 'gmail/send_email'] # Usando nome canônico 'gmail'
)
email_task = Task(
@@ -92,19 +103,14 @@ Ferramentas & Integrações é o hub central para conectar aplicações de terce
### Filtrando ferramentas
```python
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
actions_list=["gmail_find_email"]
)
gmail_tool = enterprise_tools["gmail_find_email"]
from crewai import Agent, Task, Crew
# Crie agente com ações específicas do Gmail apenas
gmail_agent = Agent(
role="Gerente de Gmail",
goal="Gerenciar comunicações e notificações no Gmail",
backstory="Assistente de IA para coordenação de emails",
tools=[gmail_tool]
apps=['gmail/fetch_emails'] # Usando nome canônico com ação específica
)
notification_task = Task(

View File

@@ -116,19 +116,49 @@ Antes de ativar em produção, confirme que você:
- Decidiu se usará `allow_crewai_trigger_context` para injetar contexto automaticamente
- Configurou monitoramento (webhooks, históricos da CrewAI, alertas externos)
### Repositório de Payloads e Crews de Exemplo
### Testando Triggers Localmente com CLI
| Integração | Quando dispara | Amostras de payload | Crews de exemplo |
| :-- | :-- | :-- | :-- |
| Gmail | Novas mensagens, atualização de threads | [Payloads de alertas e threads](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/gmail) | [`new-email-crew.py`, `gmail-alert-crew.py`](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/gmail) |
| Google Calendar | Evento criado/atualizado/iniciado/encerrado/cancelado | [Payloads de eventos](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_calendar) | [`calendar-event-crew.py`, `calendar-meeting-crew.py`, `calendar-working-location-crew.py`](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_calendar) |
| Google Drive | Arquivo criado/atualizado/excluído | [Payloads de arquivos](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_drive) | [`drive-file-crew.py`, `drive-file-deletion-crew.py`](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_drive) |
| Outlook | Novo email, evento removido | [Payloads do Outlook](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/outlook) | [`outlook-message-crew.py`, `outlook-event-removal-crew.py`](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/outlook) |
| OneDrive | Operações de arquivo (criar, atualizar, compartilhar, excluir) | [Payloads do OneDrive](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/onedrive) | [`onedrive-file-crew.py`](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/onedrive) |
| HubSpot | Registros criados/atualizados (contatos, empresas, negócios) | [Payloads do HubSpot](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/hubspot) | [`hubspot-company-crew.py`, `hubspot-contact-crew.py`, `hubspot-record-crew.py`](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/hubspot) |
| Microsoft Teams | Chat criado | [Payload do Teams](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/microsoft-teams) | [`teams-chat-created-crew.py`](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/microsoft-teams) |
A CLI da CrewAI fornece comandos poderosos para ajudá-lo a desenvolver e testar automações orientadas por triggers sem fazer deploy para produção.
Use essas amostras para ajustar o parsing, copiar a crew correspondente e substituir o payload de teste pelo dado real.
#### Listar Triggers Disponíveis
Visualize todos os triggers disponíveis para suas integrações conectadas:
```bash
crewai triggers list
```
Este comando exibe todos os triggers disponíveis baseados nas suas integrações conectadas, mostrando:
- Nome da integração e status de conexão
- Tipos de triggers disponíveis
- Nomes e descrições dos triggers
#### Simular Execução de Trigger
Teste sua crew com payloads realistas de triggers antes do deployment:
```bash
crewai triggers run <nome_do_trigger>
```
Por exemplo:
```bash
crewai triggers run microsoft_onedrive/file_changed
```
Este comando:
- Executa sua crew localmente
- Passa um payload de trigger completo e realista
- Simula exatamente como sua crew será chamada em produção
<Warning>
**Notas Importantes de Desenvolvimento:**
- Use `crewai triggers run <trigger>` para simular execução de trigger durante o desenvolvimento
- Usar `crewai run` NÃO simulará chamadas de trigger e não passará o payload do trigger
- Após o deployment, sua crew será executada com o payload real do trigger
- Se sua crew espera parâmetros que não estão no payload do trigger, a execução pode falhar
</Warning>
### Triggers com Crews
@@ -203,17 +233,20 @@ def delegar_para_crew(self, crewai_trigger_payload: dict = None):
## Solução de Problemas
**Trigger não dispara:**
- Verifique se está habilitado
- Confira o status da conexão
- Verifique se o trigger está habilitado na aba Triggers do seu deployment
- Confira o status da conexão em Tools & Integrations
- Garanta que todas as variáveis de ambiente necessárias estão configuradas
**Falhas de execução:**
- Consulte os logs para entender o erro
- Durante o desenvolvimento, garanta que `crewai_trigger_payload` está presente com o payload correto
- Consulte os logs de execução para detalhes do erro
- Use `crewai triggers run <nome_do_trigger>` para testar localmente e ver a estrutura exata do payload
- Verifique se sua crew pode processar o parâmetro `crewai_trigger_payload`
- Garanta que sua crew não espera parâmetros que não estão incluídos no payload do trigger
**Problemas de desenvolvimento:**
- Sempre teste com `crewai triggers run <trigger>` antes de fazer deploy para ver o payload completo
- Lembre-se que `crewai run` NÃO simula chamadas de trigger—use `crewai triggers run` em vez disso
- Use `crewai triggers list` para verificar quais triggers estão disponíveis para suas integrações conectadas
- Após o deployment, sua crew receberá o payload real do trigger, então teste minuciosamente localmente primeiro
Os triggers transformam suas implantações CrewAI em sistemas orientados por eventos, integrando-se perfeitamente aos processos e ferramentas já usados pelo seu time.
<Callout icon="github" title="Exemplos na prática">
<a href="https://github.com/crewAIInc/crewai-enterprise-trigger-examples">
Repositório CrewAI AMP Trigger Examples
</a>
</Callout>

View File

@@ -51,16 +51,25 @@ class GmailProcessingCrew:
)
```
The Gmail payload will be available via the standard context mechanisms. See the payload samples repository for structure and fields.
The Gmail payload will be available via the standard context mechanisms.
### Sample payloads & crews
### Testando Localmente
The [CrewAI AMP Trigger Examples repository](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/gmail) includes:
Teste sua integração de trigger do Gmail localmente usando a CLI da CrewAI:
- `new-email-payload-1.json` / `new-email-payload-2.json` — production-style new message alerts with matching crews in `new-email-crew.py`
- `thread-updated-sample-1.json` — follow-up messages on an existing thread, processed by `gmail-alert-crew.py`
```bash
# Visualize todos os triggers disponíveis
crewai triggers list
Use these samples to validate your parsing logic locally before wiring the trigger to your live Gmail accounts.
# Simule um trigger do Gmail com payload realista
crewai triggers run gmail/new_email
```
O comando `crewai triggers run` executará sua crew com um payload completo do Gmail, permitindo que você teste sua lógica de parsing antes do deployment.
<Warning>
Use `crewai triggers run gmail/new_email` (não `crewai run`) para simular execução de trigger durante o desenvolvimento. Após o deployment, sua crew receberá automaticamente o payload do trigger.
</Warning>
## Monitoring Executions
@@ -70,16 +79,10 @@ Track history and performance of triggered runs:
<img src="/images/enterprise/list-executions.png" alt="List of executions triggered by automation" />
</Frame>
## Payload Reference
See the sample payloads and field descriptions:
<Card title="Gmail samples in Trigger Examples Repo" href="https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/gmail" icon="envelopes-bulk">
Gmail samples in Trigger Examples Repo
</Card>
## Troubleshooting
- Ensure Gmail is connected in Tools & Integrations
- Verify the Gmail Trigger is enabled on the Triggers tab
- Teste localmente com `crewai triggers run gmail/new_email` para ver a estrutura exata do payload
- Check the execution logs and confirm the payload is passed as `crewai_trigger_payload`
- Lembre-se: use `crewai triggers run` (não `crewai run`) para simular execução de trigger

View File

@@ -39,16 +39,23 @@ print(result.raw)
Use `crewai_trigger_payload` exactly as it is delivered by the trigger so the crew can extract the proper fields.
## Sample payloads & crews
## Testando Localmente
The [Google Calendar examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_calendar) show how to handle multiple event types:
Teste sua integração de trigger do Google Calendar localmente usando a CLI da CrewAI:
- `new-event.json` → standard event creation handled by `calendar-event-crew.py`
- `event-updated.json` / `event-started.json` / `event-ended.json` → in-flight updates processed by `calendar-meeting-crew.py`
- `event-canceled.json` → cancellation workflow that alerts attendees via `calendar-meeting-crew.py`
- Working location events use `calendar-working-location-crew.py` to extract on-site schedules
```bash
# Visualize todos os triggers disponíveis
crewai triggers list
Each crew transforms raw event metadata (attendees, rooms, working locations) into the summaries your teams need.
# Simule um trigger do Google Calendar com payload realista
crewai triggers run google_calendar/event_changed
```
O comando `crewai triggers run` executará sua crew com um payload completo do Calendar, permitindo que você teste sua lógica de parsing antes do deployment.
<Warning>
Use `crewai triggers run google_calendar/event_changed` (não `crewai run`) para simular execução de trigger durante o desenvolvimento. Após o deployment, sua crew receberá automaticamente o payload do trigger.
</Warning>
## Monitoring Executions
@@ -61,5 +68,7 @@ The **Executions** list in the deployment dashboard tracks every triggered run a
## Troubleshooting
- Ensure the correct Google account is connected and the trigger is enabled
- Teste localmente com `crewai triggers run google_calendar/event_changed` para ver a estrutura exata do payload
- Confirm your workflow handles all-day events (payloads use `start.date` and `end.date` instead of timestamps)
- Check execution logs if reminders or attendee arrays are missing—calendar permissions can limit fields in the payload
- Lembre-se: use `crewai triggers run` (não `crewai run`) para simular execução de trigger

View File

@@ -36,15 +36,23 @@ crew.kickoff({
})
```
## Sample payloads & crews
## Testando Localmente
Explore the [Google Drive examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_drive) to cover different operations:
Teste sua integração de trigger do Google Drive localmente usando a CLI da CrewAI:
- `new-file.json` → new uploads processed by `drive-file-crew.py`
- `updated-file.json` → file edits and metadata changes handled by `drive-file-crew.py`
- `deleted-file.json` → deletion events routed through `drive-file-deletion-crew.py`
```bash
# Visualize todos os triggers disponíveis
crewai triggers list
Each crew highlights the file name, operation type, owner, permissions, and security considerations so downstream systems can respond appropriately.
# Simule um trigger do Google Drive com payload realista
crewai triggers run google_drive/file_changed
```
O comando `crewai triggers run` executará sua crew com um payload completo do Drive, permitindo que você teste sua lógica de parsing antes do deployment.
<Warning>
Use `crewai triggers run google_drive/file_changed` (não `crewai run`) para simular execução de trigger durante o desenvolvimento. Após o deployment, sua crew receberá automaticamente o payload do trigger.
</Warning>
## Monitoring Executions
@@ -57,5 +65,7 @@ Track history and performance of triggered runs with the **Executions** list in
## Troubleshooting
- Verify Google Drive is connected and the trigger toggle is enabled
- Teste localmente com `crewai triggers run google_drive/file_changed` para ver a estrutura exata do payload
- If a payload is missing permission data, ensure the connected account has access to the file or folder
- The trigger sends file IDs only; use the Drive API if you need to fetch binary content during the crew run
- Lembre-se: use `crewai triggers run` (não `crewai run`) para simular execução de trigger

View File

@@ -37,16 +37,28 @@ print(result.raw)
The crew parses thread metadata (subject, created time, roster) and generates an action plan for the receiving team.
## Sample payloads & crews
## Testando Localmente
The [Microsoft Teams examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/microsoft-teams) include:
Teste sua integração de trigger do Microsoft Teams localmente usando a CLI da CrewAI:
- `chat-created.json` → chat creation payload processed by `teams-chat-created-crew.py`
```bash
# Visualize todos os triggers disponíveis
crewai triggers list
The crew demonstrates how to extract participants, initial messages, tenant information, and compliance metadata from the Microsoft Graph webhook payload.
# Simule um trigger do Microsoft Teams com payload realista
crewai triggers run microsoft_teams/teams_message_created
```
O comando `crewai triggers run` executará sua crew com um payload completo do Teams, permitindo que você teste sua lógica de parsing antes do deployment.
<Warning>
Use `crewai triggers run microsoft_teams/teams_message_created` (não `crewai run`) para simular execução de trigger durante o desenvolvimento. Após o deployment, sua crew receberá automaticamente o payload do trigger.
</Warning>
## Troubleshooting
- Ensure the Teams connection is active; it must be refreshed if the tenant revokes permissions
- Teste localmente com `crewai triggers run microsoft_teams/teams_message_created` para ver a estrutura exata do payload
- Confirm the webhook subscription in Microsoft 365 is still valid if payloads stop arriving
- Review execution logs for payload shape mismatches—Graph notifications may omit fields when a chat is private or restricted
- Lembre-se: use `crewai triggers run` (não `crewai run`) para simular execução de trigger

View File

@@ -36,18 +36,28 @@ crew.kickoff({
The crew inspects file metadata, user activity, and permission changes to produce a compliance-friendly summary.
## Sample payloads & crews
## Testando Localmente
The [OneDrive examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/onedrive) showcase how to:
Teste sua integração de trigger do OneDrive localmente usando a CLI da CrewAI:
- Parse file metadata, size, and folder paths
- Track who created and last modified the file
- Highlight permission and external sharing changes
```bash
# Visualize todos os triggers disponíveis
crewai triggers list
`onedrive-file-crew.py` bundles the analysis and summarization tasks so you can add remediation steps as needed.
# Simule um trigger do OneDrive com payload realista
crewai triggers run microsoft_onedrive/file_changed
```
O comando `crewai triggers run` executará sua crew com um payload completo do OneDrive, permitindo que você teste sua lógica de parsing antes do deployment.
<Warning>
Use `crewai triggers run microsoft_onedrive/file_changed` (não `crewai run`) para simular execução de trigger durante o desenvolvimento. Após o deployment, sua crew receberá automaticamente o payload do trigger.
</Warning>
## Troubleshooting
- Ensure the connected account has permission to read the file metadata included in the webhook
- Teste localmente com `crewai triggers run microsoft_onedrive/file_changed` para ver a estrutura exata do payload
- If the trigger fires but the payload is missing `permissions`, confirm the site-level sharing settings allow Graph to return this field
- For large tenants, filter notifications upstream so the crew only runs on relevant directories
- Lembre-se: use `crewai triggers run` (não `crewai run`) para simular execução de trigger

View File

@@ -36,17 +36,28 @@ crew.kickoff({
The crew extracts sender details, subject, body preview, and attachments before generating a structured response.
## Sample payloads & crews
## Testando Localmente
Review the [Outlook examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/outlook) for two common scenarios:
Teste sua integração de trigger do Outlook localmente usando a CLI da CrewAI:
- `new-message.json` → new mail notifications parsed by `outlook-message-crew.py`
- `event-removed.json` → calendar cleanup handled by `outlook-event-removal-crew.py`
```bash
# Visualize todos os triggers disponíveis
crewai triggers list
Each crew demonstrates how to handle Microsoft Graph payloads, normalize headers, and keep humans in-the-loop with concise summaries.
# Simule um trigger do Outlook com payload realista
crewai triggers run microsoft_outlook/email_received
```
O comando `crewai triggers run` executará sua crew com um payload completo do Outlook, permitindo que você teste sua lógica de parsing antes do deployment.
<Warning>
Use `crewai triggers run microsoft_outlook/email_received` (não `crewai run`) para simular execução de trigger durante o desenvolvimento. Após o deployment, sua crew receberá automaticamente o payload do trigger.
</Warning>
## Troubleshooting
- Verify the Outlook connector is still authorized; the subscription must be renewed periodically
- Teste localmente com `crewai triggers run microsoft_outlook/email_received` para ver a estrutura exata do payload
- If attachments are missing, confirm the webhook subscription includes the `includeResourceData` flag
- Review execution logs when events fail to match—cancellation payloads lack attendee lists by design and the crew should account for that
- Lembre-se: use `crewai triggers run` (não `crewai run`) para simular execução de trigger

View File

@@ -25,7 +25,7 @@ Antes de usar a integração com o Asana, assegure-se de ter:
2. Encontre **Asana** na seção Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para gerenciamento de tarefas e projetos
5. Copie seu Token Enterprise em [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="ASANA_CREATE_COMMENT">
<Accordion title="asana/create_comment">
**Descrição:** Cria um comentário no Asana.
**Parâmetros:**
@@ -44,7 +44,7 @@ uv add crewai-tools
- `text` (string, obrigatório): Texto (exemplo: "Este é um comentário.").
</Accordion>
<Accordion title="ASANA_CREATE_PROJECT">
<Accordion title="asana/create_project">
**Descrição:** Cria um projeto no Asana.
**Parâmetros:**
@@ -54,7 +54,7 @@ uv add crewai-tools
- `notes` (string, opcional): Notas (exemplo: "Esses são itens que precisamos comprar.").
</Accordion>
<Accordion title="ASANA_GET_PROJECTS">
<Accordion title="asana/get_projects">
**Descrição:** Obtém uma lista de projetos do Asana.
**Parâmetros:**
@@ -62,14 +62,14 @@ uv add crewai-tools
- Opções: `default`, `true`, `false`
</Accordion>
<Accordion title="ASANA_GET_PROJECT_BY_ID">
<Accordion title="asana/get_project_by_id">
**Descrição:** Obtém um projeto pelo ID no Asana.
**Parâmetros:**
- `projectFilterId` (string, obrigatório): ID do Projeto.
</Accordion>
<Accordion title="ASANA_CREATE_TASK">
<Accordion title="asana/create_task">
**Descrição:** Cria uma tarefa no Asana.
**Parâmetros:**
@@ -83,7 +83,7 @@ uv add crewai-tools
- `gid` (string, opcional): ID Externo - Um ID da sua aplicação para associar esta tarefa. Você pode usar este ID para sincronizar atualizações com esta tarefa posteriormente.
</Accordion>
<Accordion title="ASANA_UPDATE_TASK">
<Accordion title="asana/update_task">
**Descrição:** Atualiza uma tarefa no Asana.
**Parâmetros:**
@@ -98,7 +98,7 @@ uv add crewai-tools
- `gid` (string, opcional): ID Externo - Um ID da sua aplicação para associar a tarefa. Você pode usar este ID para sincronizar atualizações posteriormente.
</Accordion>
<Accordion title="ASANA_GET_TASKS">
<Accordion title="asana/get_tasks">
**Descrição:** Obtém uma lista de tarefas no Asana.
**Parâmetros:**
@@ -108,21 +108,21 @@ uv add crewai-tools
- `completedSince` (string, opcional): Concluída desde - Retorna apenas tarefas que estejam incompletas ou que tenham sido concluídas desde este horário (timestamp ISO ou Unix). (exemplo: "2014-04-25T16:15:47-04:00").
</Accordion>
<Accordion title="ASANA_GET_TASKS_BY_ID">
<Accordion title="asana/get_tasks_by_id">
**Descrição:** Obtém uma lista de tarefas pelo ID no Asana.
**Parâmetros:**
- `taskId` (string, obrigatório): ID da Tarefa.
</Accordion>
<Accordion title="ASANA_GET_TASK_BY_EXTERNAL_ID">
<Accordion title="asana/get_task_by_external_id">
**Descrição:** Obtém uma tarefa pelo ID externo no Asana.
**Parâmetros:**
- `gid` (string, obrigatório): ID Externo - O ID que esta tarefa está associada ou sincronizada, de sua aplicação.
</Accordion>
<Accordion title="ASANA_ADD_TASK_TO_SECTION">
<Accordion title="asana/add_task_to_section">
**Descrição:** Adiciona uma tarefa a uma seção no Asana.
**Parâmetros:**
@@ -132,14 +132,14 @@ uv add crewai-tools
- `afterTaskId` (string, opcional): Após a Tarefa - O ID de uma tarefa nesta seção após a qual esta tarefa será inserida. Não pode ser usada junto com Before Task ID. (exemplo: "1204619611402340").
</Accordion>
<Accordion title="ASANA_GET_TEAMS">
<Accordion title="asana/get_teams">
**Descrição:** Obtém uma lista de equipes no Asana.
**Parâmetros:**
- `workspace` (string, obrigatório): Área de trabalho - Retorna as equipes nesta área de trabalho visíveis para o usuário autorizado.
</Accordion>
<Accordion title="ASANA_GET_WORKSPACES">
<Accordion title="asana/get_workspaces">
**Descrição:** Obtém uma lista de áreas de trabalho do Asana.
**Parâmetros:** Nenhum obrigatório.
@@ -152,19 +152,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Asana tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Asana capabilities
asana_agent = Agent(
role="Project Manager",
goal="Manage tasks and projects in Asana efficiently",
backstory="An AI assistant specialized in project management and task coordination.",
tools=[enterprise_tools]
apps=['asana']
)
# Task to create a new project
@@ -186,19 +180,12 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Asana
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Asana tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["asana_create_task", "asana_update_task", "asana_get_tasks"]
)
task_manager_agent = Agent(
role="Task Manager",
goal="Create and manage tasks efficiently",
backstory="An AI assistant that focuses on task creation and management.",
tools=enterprise_tools
apps=['asana']
)
# Task to create and assign a task
@@ -220,17 +207,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
project_coordinator = Agent(
role="Project Coordinator",
goal="Coordinate project activities and track progress",
backstory="An experienced project coordinator who ensures projects run smoothly.",
tools=[enterprise_tools]
apps=['asana']
)
# Complex task involving multiple Asana operations

View File

@@ -25,7 +25,7 @@ Antes de utilizar a integração com o Box, assegure-se de que você possui:
2. Encontre **Box** na seção de Integrações de Autenticação
3. Clique em **Conectar** e conclua o fluxo de OAuth
4. Conceda as permissões necessárias para gerenciamento de arquivos e pastas
5. Copie seu Token Enterprise em [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o pacote necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="BOX_SAVE_FILE">
<Accordion title="box/save_file">
**Descrição:** Salva um arquivo a partir de uma URL no Box.
**Parâmetros:**
@@ -52,7 +52,7 @@ uv add crewai-tools
- `file` (string, obrigatório): URL do arquivo - Os arquivos devem ter menos de 50MB. (exemplo: "https://picsum.photos/200/300").
</Accordion>
<Accordion title="BOX_SAVE_FILE_FROM_OBJECT">
<Accordion title="box/save_file_from_object">
**Descrição:** Salva um arquivo no Box.
**Parâmetros:**
@@ -61,14 +61,14 @@ uv add crewai-tools
- `folder` (string, opcional): Pasta - Use as configurações de workflow do Connect Portal para permitir que usuários escolham o destino da pasta. Caso em branco, o padrão é a pasta raiz do usuário.
</Accordion>
<Accordion title="BOX_GET_FILE_BY_ID">
<Accordion title="box/get_file_by_id">
**Descrição:** Obtém um arquivo pelo ID no Box.
**Parâmetros:**
- `fileId` (string, obrigatório): ID do arquivo - Identificador único que representa um arquivo. (exemplo: "12345").
</Accordion>
<Accordion title="BOX_LIST_FILES">
<Accordion title="box/list_files">
**Descrição:** Lista arquivos no Box.
**Parâmetros:**
@@ -93,7 +93,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_CREATE_FOLDER">
<Accordion title="box/create_folder">
**Descrição:** Cria uma pasta no Box.
**Parâmetros:**
@@ -106,7 +106,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_MOVE_FOLDER">
<Accordion title="box/move_folder">
**Descrição:** Move uma pasta no Box.
**Parâmetros:**
@@ -120,14 +120,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_GET_FOLDER_BY_ID">
<Accordion title="box/get_folder_by_id">
**Descrição:** Obtém uma pasta pelo ID no Box.
**Parâmetros:**
- `folderId` (string, obrigatório): ID da pasta - Identificador único que representa uma pasta. (exemplo: "0").
</Accordion>
<Accordion title="BOX_SEARCH_FOLDERS">
<Accordion title="box/search_folders">
**Descrição:** Pesquisa pastas no Box.
**Parâmetros:**
@@ -152,7 +152,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_DELETE_FOLDER">
<Accordion title="box/delete_folder">
**Descrição:** Exclui uma pasta no Box.
**Parâmetros:**
@@ -167,19 +167,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Box tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Box capabilities
box_agent = Agent(
role="Document Manager",
goal="Manage files and folders in Box efficiently",
backstory="An AI assistant specialized in document management and file organization.",
tools=[enterprise_tools]
apps=['box']
)
# Task to create a folder structure
@@ -201,19 +195,12 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Box
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Box tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["box_create_folder", "box_save_file", "box_list_files"]
)
file_organizer_agent = Agent(
role="File Organizer",
goal="Organize and manage file storage efficiently",
backstory="An AI assistant that focuses on file organization and storage management.",
tools=enterprise_tools
apps=['box']
)
# Task to organize files
@@ -235,17 +222,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
file_manager = Agent(
role="File Manager",
goal="Maintain organized file structure and manage document lifecycle",
backstory="An experienced file manager who ensures documents are properly organized and accessible.",
tools=[enterprise_tools]
apps=['box']
)
# Complex task involving multiple Box operations

View File

@@ -25,7 +25,7 @@ Antes de utilizar a integração com o ClickUp, certifique-se de que você possu
2. Encontre **ClickUp** na seção Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para gerenciamento de tarefas e projetos
5. Copie seu Token Enterprise das [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="CLICKUP_SEARCH_TASKS">
<Accordion title="clickup/search_tasks">
**Descrição:** Busque tarefas no ClickUp utilizando filtros avançados.
**Parâmetros:**
@@ -61,7 +61,7 @@ uv add crewai-tools
Campos disponíveis: `space_ids%5B%5D`, `project_ids%5B%5D`, `list_ids%5B%5D`, `statuses%5B%5D`, `include_closed`, `assignees%5B%5D`, `tags%5B%5D`, `due_date_gt`, `due_date_lt`, `date_created_gt`, `date_created_lt`, `date_updated_gt`, `date_updated_lt`
</Accordion>
<Accordion title="CLICKUP_GET_TASK_IN_LIST">
<Accordion title="clickup/get_task_in_list">
**Descrição:** Obtenha tarefas em uma lista específica do ClickUp.
**Parâmetros:**
@@ -69,7 +69,7 @@ uv add crewai-tools
- `taskFilterFormula` (string, opcional): Busque tarefas que correspondam aos filtros especificados. Por exemplo: name=task1.
</Accordion>
<Accordion title="CLICKUP_CREATE_TASK">
<Accordion title="clickup/create_task">
**Descrição:** Crie uma tarefa no ClickUp.
**Parâmetros:**
@@ -82,7 +82,7 @@ uv add crewai-tools
- `additionalFields` (string, opcional): Campos Adicionais - Especifique campos adicionais para incluir nesta tarefa em formato JSON.
</Accordion>
<Accordion title="CLICKUP_UPDATE_TASK">
<Accordion title="clickup/update_task">
**Descrição:** Atualize uma tarefa no ClickUp.
**Parâmetros:**
@@ -96,49 +96,49 @@ uv add crewai-tools
- `additionalFields` (string, opcional): Campos Adicionais - Especifique campos adicionais para incluir nesta tarefa em formato JSON.
</Accordion>
<Accordion title="CLICKUP_DELETE_TASK">
<Accordion title="clickup/delete_task">
**Descrição:** Exclua uma tarefa no ClickUp.
**Parâmetros:**
- `taskId` (string, obrigatório): ID da tarefa - O ID da tarefa a ser excluída.
</Accordion>
<Accordion title="CLICKUP_GET_LIST">
<Accordion title="clickup/get_list">
**Descrição:** Obtenha informações da Lista no ClickUp.
**Parâmetros:**
- `spaceId` (string, obrigatório): ID do Espaço - O ID do espaço que contém as listas.
</Accordion>
<Accordion title="CLICKUP_GET_CUSTOM_FIELDS_IN_LIST">
<Accordion title="clickup/get_custom_fields_in_list">
**Descrição:** Obtenha Campos Personalizados em uma Lista no ClickUp.
**Parâmetros:**
- `listId` (string, obrigatório): ID da Lista - O ID da lista da qual obter os campos personalizados.
</Accordion>
<Accordion title="CLICKUP_GET_ALL_FIELDS_IN_LIST">
<Accordion title="clickup/get_all_fields_in_list">
**Descrição:** Obtenha Todos os Campos em uma Lista no ClickUp.
**Parâmetros:**
- `listId` (string, obrigatório): ID da Lista - O ID da lista da qual obter todos os campos.
</Accordion>
<Accordion title="CLICKUP_GET_SPACE">
<Accordion title="clickup/get_space">
**Descrição:** Obtenha informações do Espaço no ClickUp.
**Parâmetros:**
- `spaceId` (string, opcional): ID do Espaço - O ID do espaço a ser recuperado.
</Accordion>
<Accordion title="CLICKUP_GET_FOLDERS">
<Accordion title="clickup/get_folders">
**Descrição:** Obtenha Pastas no ClickUp.
**Parâmetros:**
- `spaceId` (string, obrigatório): ID do Espaço - O ID do espaço que contém as pastas.
</Accordion>
<Accordion title="CLICKUP_GET_MEMBER">
<Accordion title="clickup/get_member">
**Descrição:** Obtenha informações de Membro no ClickUp.
**Parâmetros:** Nenhum obrigatório.
@@ -151,19 +151,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (ClickUp tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with ClickUp capabilities
clickup_agent = Agent(
role="Task Manager",
goal="Manage tasks and projects in ClickUp efficiently",
backstory="An AI assistant specialized in task management and productivity coordination.",
tools=[enterprise_tools]
apps=['clickup']
)
# Task to create a new task
@@ -185,19 +179,12 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do ClickUp
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific ClickUp tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["clickup_create_task", "clickup_update_task", "clickup_search_tasks"]
)
task_coordinator = Agent(
role="Task Coordinator",
goal="Create and manage tasks efficiently",
backstory="An AI assistant that focuses on task creation and status management.",
tools=enterprise_tools
apps=['clickup']
)
# Task to manage task workflow
@@ -219,17 +206,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
project_manager = Agent(
role="Project Manager",
goal="Coordinate project activities and track team productivity",
backstory="An experienced project manager who ensures projects are delivered on time.",
tools=[enterprise_tools]
apps=['clickup']
)
# Complex task involving multiple ClickUp operations
@@ -256,17 +238,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
task_analyst = Agent(
role="Task Analyst",
goal="Analyze task patterns and optimize team productivity",
backstory="An AI assistant that analyzes task data to improve team efficiency.",
tools=[enterprise_tools]
apps=['clickup']
)
# Task to analyze and optimize task distribution

View File

@@ -25,7 +25,7 @@ Antes de usar a integração do GitHub, assegure-se de ter:
2. Encontre **GitHub** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para gerenciamento de repositório e issues
5. Copie seu Token Enterprise nas [Configurações de Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o pacote necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="GITHUB_CREATE_ISSUE">
<Accordion title="github/create_issue">
**Descrição:** Cria uma issue no GitHub.
**Parâmetros:**
@@ -47,7 +47,7 @@ uv add crewai-tools
- `assignees` (string, opcional): Responsáveis - Especifique o login dos responsáveis no GitHub como um array de strings para esta issue. (exemplo: `["octocat"]`).
</Accordion>
<Accordion title="GITHUB_UPDATE_ISSUE">
<Accordion title="github/update_issue">
**Descrição:** Atualiza uma issue no GitHub.
**Parâmetros:**
@@ -61,7 +61,7 @@ uv add crewai-tools
- Opções: `open`, `closed`
</Accordion>
<Accordion title="GITHUB_GET_ISSUE_BY_NUMBER">
<Accordion title="github/get_issue_by_number">
**Descrição:** Obtém uma issue pelo número no GitHub.
**Parâmetros:**
@@ -70,7 +70,7 @@ uv add crewai-tools
- `issue_number` (string, obrigatório): Número da Issue - Especifique o número da issue a ser buscada.
</Accordion>
<Accordion title="GITHUB_LOCK_ISSUE">
<Accordion title="github/lock_issue">
**Descrição:** Bloqueia uma issue no GitHub.
**Parâmetros:**
@@ -81,7 +81,7 @@ uv add crewai-tools
- Opções: `off-topic`, `too heated`, `resolved`, `spam`
</Accordion>
<Accordion title="GITHUB_SEARCH_ISSUE">
<Accordion title="github/search_issue">
**Descrição:** Busca por issues no GitHub.
**Parâmetros:**
@@ -108,7 +108,7 @@ uv add crewai-tools
Campos disponíveis: `assignee`, `creator`, `mentioned`, `labels`
</Accordion>
<Accordion title="GITHUB_CREATE_RELEASE">
<Accordion title="github/create_release">
**Descrição:** Cria um release no GitHub.
**Parâmetros:**
@@ -126,7 +126,7 @@ uv add crewai-tools
- Opções: `true`, `false`
</Accordion>
<Accordion title="GITHUB_UPDATE_RELEASE">
<Accordion title="github/update_release">
**Descrição:** Atualiza um release no GitHub.
**Parâmetros:**
@@ -145,7 +145,7 @@ uv add crewai-tools
- Opções: `true`, `false`
</Accordion>
<Accordion title="GITHUB_GET_RELEASE_BY_ID">
<Accordion title="github/get_release_by_id">
**Descrição:** Obtém um release por ID no GitHub.
**Parâmetros:**
@@ -154,7 +154,7 @@ uv add crewai-tools
- `id` (string, obrigatório): ID do Release - Especifique o ID do release a ser recuperado.
</Accordion>
<Accordion title="GITHUB_GET_RELEASE_BY_TAG_NAME">
<Accordion title="github/get_release_by_tag_name">
**Descrição:** Obtém um release pelo nome da tag no GitHub.
**Parâmetros:**
@@ -163,7 +163,7 @@ uv add crewai-tools
- `tag_name` (string, obrigatório): Nome - Especifique o nome da tag do release a ser recuperado. (exemplo: "v1.0.0").
</Accordion>
<Accordion title="GITHUB_DELETE_RELEASE">
<Accordion title="github/delete_release">
**Descrição:** Exclui um release no GitHub.
**Parâmetros:**
@@ -179,19 +179,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (GitHub tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with GitHub capabilities
github_agent = Agent(
role="Repository Manager",
goal="Manage GitHub repositories, issues, and releases efficiently",
backstory="An AI assistant specialized in repository management and issue tracking.",
tools=[enterprise_tools]
apps=['github']
)
# Task to create a new issue
@@ -213,19 +207,12 @@ crew.kickoff()
### Filtrando Ferramentas GitHub Específicas
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific GitHub tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["github_create_issue", "github_update_issue", "github_search_issue"]
)
issue_manager = Agent(
role="Issue Manager",
goal="Create and manage GitHub issues efficiently",
backstory="An AI assistant that focuses on issue tracking and management.",
tools=enterprise_tools
apps=['github']
)
# Task to manage issue workflow
@@ -247,17 +234,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
release_manager = Agent(
role="Release Manager",
goal="Manage software releases and versioning",
backstory="An experienced release manager who handles version control and release processes.",
tools=[enterprise_tools]
apps=['github']
)
# Task to create a new release
@@ -284,17 +266,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
project_coordinator = Agent(
role="Project Coordinator",
goal="Track and coordinate project issues and development progress",
backstory="An AI assistant that helps coordinate development work and track project progress.",
tools=[enterprise_tools]
apps=['github']
)
# Complex task involving multiple GitHub operations

View File

@@ -25,7 +25,7 @@ Antes de usar a integração com o Gmail, certifique-se de que você possui:
2. Encontre **Gmail** na seção de Integrações de Autenticação
3. Clique em **Conectar** e conclua o fluxo OAuth
4. Conceda as permissões necessárias para o gerenciamento de e-mail e contato
5. Copie seu Token Empresarial em [Configurações de Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Empresarial em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="GMAIL_SEND_EMAIL">
<Accordion title="gmail/send_email">
**Descrição:** Envia um e-mail pelo Gmail.
**Parâmetros:**
@@ -59,7 +59,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GMAIL_GET_EMAIL_BY_ID">
<Accordion title="gmail/get_email_by_id">
**Descrição:** Obtém um e-mail pelo ID no Gmail.
**Parâmetros:**
@@ -67,7 +67,7 @@ uv add crewai-tools
- `messageId` (string, obrigatório): ID da Mensagem - Especifique o ID da mensagem a ser recuperada.
</Accordion>
<Accordion title="GMAIL_SEARCH_FOR_EMAIL">
<Accordion title="gmail/fetch_emails">
**Descrição:** Pesquisa e-mails no Gmail usando filtros avançados.
**Parâmetros:**
@@ -98,7 +98,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GMAIL_DELETE_EMAIL">
<Accordion title="gmail/delete_email">
**Descrição:** Exclui um e-mail no Gmail.
**Parâmetros:**
@@ -106,7 +106,7 @@ uv add crewai-tools
- `messageId` (string, obrigatório): ID da Mensagem - Especifique o ID da mensagem para enviar para a lixeira.
</Accordion>
<Accordion title="GMAIL_CREATE_A_CONTACT">
<Accordion title="gmail/create_a_contact">
**Descrição:** Cria um contato no Gmail.
**Parâmetros:**
@@ -126,28 +126,28 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GMAIL_GET_CONTACT_BY_RESOURCE_NAME">
<Accordion title="gmail/get_contact_by_resource_name">
**Descrição:** Obtém um contato pelo nome do recurso no Gmail.
**Parâmetros:**
- `resourceName` (string, obrigatório): Nome do Recurso - Especifique o nome do recurso do contato a ser buscado.
</Accordion>
<Accordion title="GMAIL_SEARCH_FOR_CONTACT">
<Accordion title="gmail/search_for_contact">
**Descrição:** Pesquisa um contato no Gmail.
**Parâmetros:**
- `searchTerm` (string, obrigatório): Termo - Especifique um termo para buscar correspondências aproximadas ou exatas nos campos nome, apelido, endereços de e-mail, números de telefone ou organizações do contato.
</Accordion>
<Accordion title="GMAIL_DELETE_CONTACT">
<Accordion title="gmail/delete_contact">
**Descrição:** Exclui um contato no Gmail.
**Parâmetros:**
- `resourceName` (string, obrigatório): Nome do Recurso - Especifique o nome do recurso do contato a ser excluído.
</Accordion>
<Accordion title="GMAIL_CREATE_DRAFT">
<Accordion title="gmail/create_draft">
**Descrição:** Cria um rascunho no Gmail.
**Parâmetros:**
@@ -177,19 +177,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Gmail tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Gmail capabilities
gmail_agent = Agent(
role="Email Manager",
goal="Manage email communications and contacts efficiently",
backstory="An AI assistant specialized in email management and communication.",
tools=[enterprise_tools]
apps=['gmail']
)
# Task to send a follow-up email
@@ -211,19 +205,12 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Gmail
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Gmail tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["gmail_send_email", "gmail_search_for_email", "gmail_create_draft"]
)
email_coordinator = Agent(
role="Email Coordinator",
goal="Coordinate email communications and manage drafts",
backstory="An AI assistant that focuses on email coordination and draft management.",
tools=enterprise_tools
apps=['gmail']
)
# Task to prepare and send emails
@@ -245,17 +232,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
contact_manager = Agent(
role="Contact Manager",
goal="Manage and organize email contacts efficiently",
backstory="An experienced contact manager who maintains organized contact databases.",
tools=[enterprise_tools]
apps=['gmail']
)
# Task to manage contacts
@@ -281,17 +263,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
email_analyst = Agent(
role="Email Analyst",
goal="Analyze email patterns and provide insights",
backstory="An AI assistant that analyzes email data to provide actionable insights.",
tools=[enterprise_tools]
apps=['gmail']
)
# Task to analyze email patterns
@@ -317,17 +294,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
workflow_manager = Agent(
role="Email Workflow Manager",
goal="Automate email workflows and responses",
backstory="An AI assistant that manages automated email workflows and responses.",
tools=[enterprise_tools]
apps=['gmail']
)
# Complex task involving multiple Gmail operations

View File

@@ -25,7 +25,7 @@ Antes de usar a integração com o Google Calendar, certifique-se de ter:
2. Encontre **Google Calendar** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso ao calendário e contatos
5. Copie seu Token Enterprise nas [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="GOOGLE_CALENDAR_CREATE_EVENT">
<Accordion title="google_calendar/create_event">
**Descrição:** Cria um evento no Google Calendar.
**Parâmetros:**
@@ -51,7 +51,7 @@ uv add crewai-tools
- `includeMeetLink` (boolean, opcional): Incluir link do Google Meet? Cria automaticamente um link para conferência Google Meet para este evento.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_UPDATE_EVENT">
<Accordion title="google_calendar/update_event">
**Descrição:** Atualiza um evento existente no Google Calendar.
**Parâmetros:**
@@ -65,7 +65,7 @@ uv add crewai-tools
- `eventDescription` (string, opcional): Descrição do evento.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_LIST_EVENTS">
<Accordion title="google_calendar/view_events">
**Descrição:** Lista eventos do Google Calendar.
**Parâmetros:**
@@ -74,7 +74,7 @@ uv add crewai-tools
- `before` (string, opcional): Antes Filtra eventos que terminam antes da data fornecida (Unix em milissegundos ou timestamp ISO). (exemplo: "2025-04-12T10:00:00Z ou 1712908800000").
</Accordion>
<Accordion title="GOOGLE_CALENDAR_GET_EVENT_BY_ID">
<Accordion title="google_calendar/get_event_by_id">
**Descrição:** Obtém um evento específico pelo ID no Google Calendar.
**Parâmetros:**
@@ -82,7 +82,7 @@ uv add crewai-tools
- `calendar` (string, opcional): Calendário Use as Configurações de Workflow do Connect Portal para permitir que o usuário selecione em qual calendário o evento será adicionado. Padrão para o calendário principal do usuário se deixado em branco.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_DELETE_EVENT">
<Accordion title="google_calendar/delete_event">
**Descrição:** Exclui um evento do Google Calendar.
**Parâmetros:**
@@ -90,7 +90,7 @@ uv add crewai-tools
- `calendar` (string, opcional): Calendário Use as Configurações de Workflow do Connect Portal para permitir que o usuário selecione em qual calendário o evento será adicionado. Padrão para o calendário principal do usuário se deixado em branco.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_GET_CONTACTS">
<Accordion title="google_calendar/get_contacts">
**Descrição:** Obtém contatos do Google Calendar.
**Parâmetros:**
@@ -102,14 +102,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_SEARCH_CONTACTS">
<Accordion title="google_calendar/search_contacts">
**Descrição:** Pesquisa contatos no Google Calendar.
**Parâmetros:**
- `query` (string, opcional): Termo de pesquisa para buscar contatos.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_LIST_DIRECTORY_PEOPLE">
<Accordion title="google_calendar/list_directory_people">
**Descrição:** Lista pessoas do diretório.
**Parâmetros:**
@@ -121,7 +121,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_SEARCH_DIRECTORY_PEOPLE">
<Accordion title="google_calendar/search_directory_people">
**Descrição:** Pesquisa pessoas no diretório.
**Parâmetros:**
@@ -134,7 +134,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_LIST_OTHER_CONTACTS">
<Accordion title="google_calendar/list_other_contacts">
**Descrição:** Lista outros contatos.
**Parâmetros:**
@@ -146,14 +146,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_SEARCH_OTHER_CONTACTS">
<Accordion title="google_calendar/search_other_contacts">
**Descrição:** Pesquisa outros contatos.
**Parâmetros:**
- `query` (string, opcional): Termo de pesquisa para buscar contatos.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_GET_AVAILABILITY">
<Accordion title="google_calendar/get_availability">
**Descrição:** Obtém informações de disponibilidade para calendários.
**Parâmetros:**
@@ -180,19 +180,15 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Obter ferramentas empresariais (as ferramentas do Google Calendar serão incluídas)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Criar um agente com capacidades do Google Calendar
calendar_agent = Agent(
role="Schedule Manager",
goal="Gerenciar eventos de calendário e agendamento de maneira eficiente",
backstory="Um assistente de IA especializado em gerenciamento de agendas e coordenação de horários.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Tarefa de criação de reunião
@@ -214,19 +210,16 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Calendário
```python
from crewai_tools import CrewaiEnterpriseTools
# Obter apenas ferramentas específicas do Google Calendar
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["google_calendar_create_event", "google_calendar_list_events", "google_calendar_get_availability"]
actions_list=["google_calendar/create_event", "google_calendar/view_events", "google_calendar/get_availability"]
)
meeting_coordinator = Agent(
role="Meeting Coordinator",
goal="Coordenar reuniões e verificar disponibilidade",
backstory="Um assistente de IA que foca em agendamento de reuniões e gerenciamento de disponibilidade.",
tools=enterprise_tools
apps=['google_calendar']
)
# Tarefa para agendar reunião com verificação de disponibilidade
@@ -248,17 +241,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
event_manager = Agent(
role="Event Manager",
goal="Gerenciar e atualizar eventos de calendário de forma eficiente",
backstory="Um experiente gestor de eventos responsável pela logística e atualizações dos eventos.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Tarefa para gerenciar atualizações de eventos
@@ -284,17 +272,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
availability_coordinator = Agent(
role="Availability Coordinator",
goal="Coordenar disponibilidade e gerenciar contatos para agendamento",
backstory="Um assistente de IA que se especializa em gerenciamento de disponibilidade e coordenação de contatos.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Tarefa de coordenação de disponibilidade
@@ -321,17 +304,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
scheduling_automator = Agent(
role="Scheduling Automator",
goal="Automatizar workflows de agendamento e gerenciamento de calendários",
backstory="Um assistente de IA que automatiza cenários complexos de agendamento e workflows de agenda.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Tarefa de automação de agendamento complexo

View File

@@ -0,0 +1,286 @@
---
title: Integração Google Contacts
description: "Gerenciamento de contatos e diretório com integração Google Contacts para CrewAI."
icon: "address-book"
mode: "wide"
---
## Visão Geral
Permita que seus agentes gerenciem informações de contatos e diretório através do Google Contacts. Acesse contatos pessoais, pesquise pessoas no diretório, crie e atualize informações de contato, e gerencie grupos de contatos com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Google Contacts, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Google com acesso ao Google Contacts
- Conectado sua conta Google através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Google Contacts
### 1. Conecte sua Conta Google
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Google Contacts** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a contatos e diretório
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="google_contacts/get_contacts">
**Descrição:** Recuperar contatos do usuário do Google Contacts.
**Parâmetros:**
- `pageSize` (integer, opcional): Número de contatos a retornar (máx 1000). Mínimo: 1, Máximo: 1000
- `pageToken` (string, opcional): O token da página a recuperar.
- `personFields` (string, opcional): Campos a incluir (ex: 'names,emailAddresses,phoneNumbers'). Padrão: names,emailAddresses,phoneNumbers
- `requestSyncToken` (boolean, opcional): Se a resposta deve incluir um token de sincronização. Padrão: false
- `sortOrder` (string, opcional): A ordem na qual as conexões devem ser classificadas. Opções: LAST_MODIFIED_ASCENDING, LAST_MODIFIED_DESCENDING, FIRST_NAME_ASCENDING, LAST_NAME_ASCENDING
</Accordion>
<Accordion title="google_contacts/search_contacts">
**Descrição:** Pesquisar por contatos usando uma string de consulta.
**Parâmetros:**
- `query` (string, obrigatório): String de consulta de pesquisa
- `readMask` (string, obrigatório): Campos a ler (ex: 'names,emailAddresses,phoneNumbers')
- `pageSize` (integer, opcional): Número de resultados a retornar. Mínimo: 1, Máximo: 30
- `pageToken` (string, opcional): Token especificando qual página de resultado retornar.
- `sources` (array, opcional): As fontes para pesquisar. Opções: READ_SOURCE_TYPE_CONTACT, READ_SOURCE_TYPE_PROFILE. Padrão: READ_SOURCE_TYPE_CONTACT
</Accordion>
<Accordion title="google_contacts/list_directory_people">
**Descrição:** Listar pessoas no diretório do usuário autenticado.
**Parâmetros:**
- `sources` (array, obrigatório): Fontes de diretório para pesquisar. Opções: DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE, DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT. Padrão: DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE
- `pageSize` (integer, opcional): Número de pessoas a retornar. Mínimo: 1, Máximo: 1000
- `pageToken` (string, opcional): Token especificando qual página de resultado retornar.
- `readMask` (string, opcional): Campos a ler (ex: 'names,emailAddresses')
- `requestSyncToken` (boolean, opcional): Se a resposta deve incluir um token de sincronização. Padrão: false
- `mergeSources` (array, opcional): Dados adicionais para mesclar nas respostas de pessoas do diretório. Opções: CONTACT
</Accordion>
<Accordion title="google_contacts/search_directory_people">
**Descrição:** Pesquisar por pessoas no diretório.
**Parâmetros:**
- `query` (string, obrigatório): Consulta de pesquisa
- `sources` (string, obrigatório): Fontes de diretório (use 'DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE')
- `pageSize` (integer, opcional): Número de resultados a retornar
- `readMask` (string, opcional): Campos a ler
</Accordion>
<Accordion title="google_contacts/list_other_contacts">
**Descrição:** Listar outros contatos (não nos contatos pessoais do usuário).
**Parâmetros:**
- `pageSize` (integer, opcional): Número de contatos a retornar. Mínimo: 1, Máximo: 1000
- `pageToken` (string, opcional): Token especificando qual página de resultado retornar.
- `readMask` (string, opcional): Campos a ler
- `requestSyncToken` (boolean, opcional): Se a resposta deve incluir um token de sincronização. Padrão: false
</Accordion>
<Accordion title="google_contacts/search_other_contacts">
**Descrição:** Pesquisar outros contatos.
**Parâmetros:**
- `query` (string, obrigatório): Consulta de pesquisa
- `readMask` (string, obrigatório): Campos a ler (ex: 'names,emailAddresses')
- `pageSize` (integer, opcional): Número de resultados
</Accordion>
<Accordion title="google_contacts/get_person">
**Descrição:** Obter informações de contato de uma única pessoa por nome do recurso.
**Parâmetros:**
- `resourceName` (string, obrigatório): O nome do recurso da pessoa a obter (ex: 'people/c123456789')
- `personFields` (string, opcional): Campos a incluir (ex: 'names,emailAddresses,phoneNumbers'). Padrão: names,emailAddresses,phoneNumbers
</Accordion>
<Accordion title="google_contacts/create_contact">
**Descrição:** Criar um novo contato no catálogo de endereços do usuário.
**Parâmetros:**
- `names` (array, opcional): Nomes da pessoa. Cada item é um objeto com `givenName` (string), `familyName` (string), `displayName` (string).
- `emailAddresses` (array, opcional): Endereços de email. Cada item é um objeto com `value` (string, endereço de email) e `type` (string, 'home', 'work', 'other', padrão 'other').
- `phoneNumbers` (array, opcional): Números de telefone. Cada item é um objeto com `value` (string, número de telefone) e `type` (string, 'home', 'work', 'mobile', 'other', padrão 'other').
- `addresses` (array, opcional): Endereços postais. Cada item é um objeto com `formattedValue` (string, endereço formatado) e `type` (string, 'home', 'work', 'other', padrão 'other').
- `organizations` (array, opcional): Organizações/empresas. Cada item é um objeto com `name` (string, nome da organização), `title` (string, cargo) e `type` (string, 'work', 'other', padrão 'work').
</Accordion>
<Accordion title="google_contacts/update_contact">
**Descrição:** Atualizar informações de um contato existente.
**Parâmetros:**
- `resourceName` (string, obrigatório): O nome do recurso da pessoa a atualizar (ex: 'people/c123456789').
- `updatePersonFields` (string, obrigatório): Campos a atualizar (ex: 'names,emailAddresses,phoneNumbers').
- `names` (array, opcional): Nomes da pessoa. Cada item é um objeto com `givenName` (string), `familyName` (string), `displayName` (string).
- `emailAddresses` (array, opcional): Endereços de email. Cada item é um objeto com `value` (string, endereço de email) e `type` (string, 'home', 'work', 'other').
- `phoneNumbers` (array, opcional): Números de telefone. Cada item é um objeto com `value` (string, número de telefone) e `type` (string, 'home', 'work', 'mobile', 'other').
</Accordion>
<Accordion title="google_contacts/delete_contact">
**Descrição:** Excluir um contato do catálogo de endereços do usuário.
**Parâmetros:**
- `resourceName` (string, obrigatório): O nome do recurso da pessoa a excluir (ex: 'people/c123456789').
</Accordion>
<Accordion title="google_contacts/batch_get_people">
**Descrição:** Obter informações sobre várias pessoas em uma única solicitação.
**Parâmetros:**
- `resourceNames` (array, obrigatório): Nomes de recursos das pessoas a obter (máx 200 itens).
- `personFields` (string, opcional): Campos a incluir (ex: 'names,emailAddresses,phoneNumbers'). Padrão: names,emailAddresses,phoneNumbers
</Accordion>
<Accordion title="google_contacts/list_contact_groups">
**Descrição:** Listar os grupos de contatos (rótulos) do usuário.
**Parâmetros:**
- `pageSize` (integer, opcional): Número de grupos de contatos a retornar. Mínimo: 1, Máximo: 1000
- `pageToken` (string, opcional): Token especificando qual página de resultado retornar.
- `groupFields` (string, opcional): Campos a incluir (ex: 'name,memberCount,clientData'). Padrão: name,memberCount
</Accordion>
<Accordion title="google_contacts/get_contact_group">
**Descrição:** Obter um grupo de contatos específico por nome do recurso.
**Parâmetros:**
- `resourceName` (string, obrigatório): O nome do recurso do grupo de contatos (ex: 'contactGroups/myContactGroup').
- `maxMembers` (integer, opcional): Número máximo de membros a incluir. Mínimo: 0, Máximo: 20000
- `groupFields` (string, opcional): Campos a incluir (ex: 'name,memberCount,clientData'). Padrão: name,memberCount
</Accordion>
<Accordion title="google_contacts/create_contact_group">
**Descrição:** Criar um novo grupo de contatos (rótulo).
**Parâmetros:**
- `name` (string, obrigatório): O nome do grupo de contatos.
- `clientData` (array, opcional): Dados específicos do cliente. Cada item é um objeto com `key` (string) e `value` (string).
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Google Contacts
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Google Contacts
contacts_agent = Agent(
role="Gerenciador de Contatos",
goal="Gerenciar Google Contacts de forma eficiente",
backstory="Um assistente IA especializado em gerenciamento e organização de contatos.",
apps=['google_contacts'] # Todas as ações do Google Contacts estarão disponíveis
)
# Tarefa para criar um novo contato
create_contact_task = Task(
description="Criar um novo contato chamado 'João Silva' com email 'joao.silva@exemplo.com' e telefone '11-98765-4321'",
agent=contacts_agent,
expected_output="Novo contato criado com sucesso"
)
# Execute a tarefa
crew = Crew(
agents=[contacts_agent],
tasks=[create_contact_task]
)
crew.kickoff()
```
### Pesquisando e Listando Contatos
```python
from crewai import Agent, Task, Crew
# Crie um agente focado em pesquisar contatos
search_agent = Agent(
role="Pesquisador de Contatos",
goal="Encontrar e recuperar informações de contato",
backstory="Um assistente IA habilidoso em pesquisar e listar contatos.",
apps=['google_contacts/search_contacts', 'google_contacts/get_contacts']
)
# Tarefa para pesquisar contatos
search_task = Task(
description="Pesquisar por contatos chamados 'Maria' e listar seus endereços de email e números de telefone.",
agent=search_agent,
expected_output="Lista de contatos correspondentes a 'Maria' com seus detalhes de email e telefone."
)
crew = Crew(
agents=[search_agent],
tasks=[search_task]
)
crew.kickoff()
```
### Gerenciando Grupos de Contatos
```python
from crewai import Agent, Task, Crew
# Crie um agente para gerenciar grupos de contatos
group_manager = Agent(
role="Organizador de Grupos de Contatos",
goal="Organizar contatos em grupos e gerenciar membros dos grupos",
backstory="Um assistente IA especializado em criar e gerenciar grupos do Google Contacts.",
apps=['google_contacts/create_contact_group', 'google_contacts/list_contact_groups']
)
# Tarefa para criar um novo grupo de contatos
create_group_task = Task(
description="Criar um novo grupo de contatos chamado 'Equipe de Marketing' e listar todos os grupos existentes.",
agent=group_manager,
expected_output="Novo grupo de contatos 'Equipe de Marketing' criado e lista de todos os grupos retornada."
)
crew = Crew(
agents=[group_manager],
tasks=[create_group_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Google tenha as permissões necessárias para acesso a contatos e diretório.
- Verifique se a conexão OAuth inclui todos os escopos necessários para a API Google People.
**Problemas de Criação/Atualização de Contatos**
- Certifique-se de que campos obrigatórios como `email` sejam fornecidos para criação de contatos.
- Verifique se o `resourceName` está correto ao atualizar ou excluir contatos.
- Confirme se o formato dos dados para `names`, `emailAddresses`, `phoneNumbers`, etc., corresponde às especificações da API.
**Problemas de Pesquisa e Filtro**
- Certifique-se de que os parâmetros de `query` e `readMask` estejam especificados corretamente para `search_contacts` e `search_other_contacts`.
- Para pesquisas de diretório, certifique-se de que `sources` esteja definido corretamente (ex: 'DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE').
**Gerenciamento de Grupos de Contatos**
- Ao criar um grupo de contatos, certifique-se de que o `name` seja fornecido.
- Para `get_contact_group`, certifique-se de que o `resourceName` esteja correto.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Google Contacts.
</Card>

View File

@@ -0,0 +1,228 @@
---
title: Integração Google Docs
description: "Criação e edição de documentos com integração Google Docs para CrewAI."
icon: "file-lines"
mode: "wide"
---
## Visão Geral
Permita que seus agentes criem, editem e gerenciem documentos do Google Docs com manipulação de texto e formatação. Automatize a criação de documentos, insira e substitua texto, gerencie intervalos de conteúdo e simplifique seus fluxos de trabalho de documentos com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Google Docs, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Google com acesso ao Google Docs
- Conectado sua conta Google através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Google Docs
### 1. Conecte sua Conta Google
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Google Docs** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a documentos
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="google_docs/create_document">
**Descrição:** Criar um novo documento do Google.
**Parâmetros:**
- `title` (string, opcional): O título para o novo documento.
</Accordion>
<Accordion title="google_docs/get_document">
**Descrição:** Obter o conteúdo e metadados de um documento do Google.
**Parâmetros:**
- `documentId` (string, obrigatório): O ID do documento a recuperar.
- `includeTabsContent` (boolean, opcional): Se deve incluir conteúdo de abas. Padrão: false
- `suggestionsViewMode` (string, opcional): O modo de visualização de sugestões a aplicar ao documento. Opções: DEFAULT_FOR_CURRENT_ACCESS, PREVIEW_SUGGESTIONS_ACCEPTED, PREVIEW_WITHOUT_SUGGESTIONS. Padrão: DEFAULT_FOR_CURRENT_ACCESS
</Accordion>
<Accordion title="google_docs/batch_update">
**Descrição:** Aplicar uma ou mais atualizações a um documento do Google.
**Parâmetros:**
- `documentId` (string, obrigatório): O ID do documento a atualizar.
- `requests` (array, obrigatório): Uma lista de atualizações a aplicar ao documento. Cada item é um objeto representando uma solicitação.
- `writeControl` (object, opcional): Fornece controle sobre como as solicitações de escrita são executadas. Contém `requiredRevisionId` (string) e `targetRevisionId` (string).
</Accordion>
<Accordion title="google_docs/insert_text">
**Descrição:** Inserir texto em um documento do Google em um local específico.
**Parâmetros:**
- `documentId` (string, obrigatório): O ID do documento a atualizar.
- `text` (string, obrigatório): O texto a inserir.
- `index` (integer, opcional): O índice baseado em zero onde inserir o texto. Padrão: 1
</Accordion>
<Accordion title="google_docs/replace_text">
**Descrição:** Substituir todas as instâncias de texto em um documento do Google.
**Parâmetros:**
- `documentId` (string, obrigatório): O ID do documento a atualizar.
- `containsText` (string, obrigatório): O texto a encontrar e substituir.
- `replaceText` (string, obrigatório): O texto para substituir.
- `matchCase` (boolean, opcional): Se a pesquisa deve respeitar maiúsculas e minúsculas. Padrão: false
</Accordion>
<Accordion title="google_docs/delete_content_range">
**Descrição:** Excluir conteúdo de um intervalo específico em um documento do Google.
**Parâmetros:**
- `documentId` (string, obrigatório): O ID do documento a atualizar.
- `startIndex` (integer, obrigatório): O índice inicial do intervalo a excluir.
- `endIndex` (integer, obrigatório): O índice final do intervalo a excluir.
</Accordion>
<Accordion title="google_docs/insert_page_break">
**Descrição:** Inserir uma quebra de página em um local específico em um documento do Google.
**Parâmetros:**
- `documentId` (string, obrigatório): O ID do documento a atualizar.
- `index` (integer, opcional): O índice baseado em zero onde inserir a quebra de página. Padrão: 1
</Accordion>
<Accordion title="google_docs/create_named_range">
**Descrição:** Criar um intervalo nomeado em um documento do Google.
**Parâmetros:**
- `documentId` (string, obrigatório): O ID do documento a atualizar.
- `name` (string, obrigatório): O nome para o intervalo nomeado.
- `startIndex` (integer, obrigatório): O índice inicial do intervalo.
- `endIndex` (integer, obrigatório): O índice final do intervalo.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Google Docs
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Google Docs
docs_agent = Agent(
role="Criador de Documentos",
goal="Criar e gerenciar documentos do Google Docs de forma eficiente",
backstory="Um assistente IA especializado em criação e edição de documentos do Google Docs.",
apps=['google_docs'] # Todas as ações do Google Docs estarão disponíveis
)
# Tarefa para criar um novo documento
create_doc_task = Task(
description="Criar um novo documento do Google intitulado 'Relatório de Status do Projeto'",
agent=docs_agent,
expected_output="Novo documento do Google 'Relatório de Status do Projeto' criado com sucesso"
)
# Execute a tarefa
crew = Crew(
agents=[docs_agent],
tasks=[create_doc_task]
)
crew.kickoff()
```
### Edição de Texto e Gerenciamento de Conteúdo
```python
from crewai import Agent, Task, Crew
# Crie um agente focado em edição de texto
text_editor = Agent(
role="Editor de Documentos",
goal="Editar e atualizar conteúdo em documentos do Google Docs",
backstory="Um assistente IA habilidoso em edição precisa de texto e gerenciamento de conteúdo.",
apps=['google_docs/insert_text', 'google_docs/replace_text', 'google_docs/delete_content_range']
)
# Tarefa para editar conteúdo do documento
edit_content_task = Task(
description="No documento 'your_document_id', inserir o texto 'Resumo Executivo: ' no início, depois substituir todas as instâncias de 'TODO' por 'CONCLUÍDO'.",
agent=text_editor,
expected_output="Documento atualizado com novo texto inserido e itens TODO substituídos."
)
crew = Crew(
agents=[text_editor],
tasks=[edit_content_task]
)
crew.kickoff()
```
### Operações Avançadas de Documentos
```python
from crewai import Agent, Task, Crew
# Crie um agente para operações avançadas de documentos
document_formatter = Agent(
role="Formatador de Documentos",
goal="Aplicar formatação avançada e estrutura a documentos do Google",
backstory="Um assistente IA que lida com formatação complexa de documentos e organização.",
apps=['google_docs/batch_update', 'google_docs/insert_page_break', 'google_docs/create_named_range']
)
# Tarefa para formatar documento
format_doc_task = Task(
description="No documento 'your_document_id', inserir uma quebra de página na posição 100, criar um intervalo nomeado chamado 'Introdução' para caracteres 1-50, e aplicar atualizações de formatação em lote.",
agent=document_formatter,
expected_output="Documento formatado com quebra de página, intervalo nomeado e estilo aplicado."
)
crew = Crew(
agents=[document_formatter],
tasks=[format_doc_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Google tenha as permissões necessárias para acesso ao Google Docs.
- Verifique se a conexão OAuth inclui todos os escopos necessários (`https://www.googleapis.com/auth/documents`).
**Problemas de ID do Documento**
- Verifique novamente os IDs dos documentos para correção.
- Certifique-se de que o documento existe e está acessível à sua conta.
- IDs de documentos podem ser encontrados na URL do Google Docs.
**Inserção de Texto e Operações de Intervalo**
- Ao usar `insert_text` ou `delete_content_range`, certifique-se de que as posições de índice sejam válidas.
- Lembre-se de que o Google Docs usa indexação baseada em zero.
- O documento deve ter conteúdo nas posições de índice especificadas.
**Formatação de Solicitação de Atualização em Lote**
- Ao usar `batch_update`, certifique-se de que o array `requests` esteja formatado corretamente de acordo com a documentação da API do Google Docs.
- Atualizações complexas requerem estruturas JSON específicas para cada tipo de solicitação.
**Operações de Substituição de Texto**
- Para `replace_text`, certifique-se de que o parâmetro `containsText` corresponda exatamente ao texto que você deseja substituir.
- Use o parâmetro `matchCase` para controlar a sensibilidade a maiúsculas e minúsculas.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Google Docs.
</Card>

View File

@@ -0,0 +1,51 @@
---
title: Integração Google Drive
description: "Gerenciamento de arquivos e pastas com integração Google Drive para CrewAI."
icon: "google"
mode: "wide"
---
## Visão Geral
Permita que seus agentes acessem e gerenciem arquivos e pastas no Google Drive. Faça upload, download, organize conteúdo, crie links de compartilhamento e simplifique seus fluxos de trabalho de armazenamento em nuvem com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Google Drive, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Google com acesso ao Google Drive
- Conectado sua conta Google através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Google Drive
### 1. Conecte sua Conta Google
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Google Drive** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a arquivos
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
Para informações detalhadas sobre parâmetros e uso, consulte a [documentação em inglês](../../../en/enterprise/integrations/google_drive).
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Google tenha as permissões necessárias para acesso ao Google Drive.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Google Drive.
</Card>

View File

@@ -26,7 +26,7 @@ Antes de utilizar a integração com o Google Sheets, certifique-se de que você
2. Localize **Google Sheets** na seção Integrações de Autenticação
3. Clique em **Conectar** e conclua o fluxo OAuth
4. Conceda as permissões necessárias para acesso à planilha
5. Copie seu Token Enterprise em [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -37,7 +37,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="GOOGLE_SHEETS_GET_ROW">
<Accordion title="google_sheets/get_values">
**Descrição:** Obtém linhas de uma planilha Google Sheets.
**Parâmetros:**
@@ -45,7 +45,7 @@ uv add crewai-tools
- `limit` (string, opcional): Limite de linhas - Limita o número máximo de linhas retornadas.
</Accordion>
<Accordion title="GOOGLE_SHEETS_CREATE_ROW">
<Accordion title="google_sheets/append_values">
**Descrição:** Cria uma nova linha em uma planilha Google Sheets.
**Parâmetros:**
@@ -62,7 +62,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_SHEETS_UPDATE_ROW">
<Accordion title="google_sheets/update_values">
**Descrição:** Atualiza linhas existentes em uma planilha Google Sheets.
**Parâmetros:**
@@ -105,19 +105,15 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Obtenha as ferramentas enterprise (ferramentas Google Sheets incluídas)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Crie um agente com capacidades para Google Sheets
sheets_agent = Agent(
role="Data Manager",
goal="Gerenciar dados de planilha e rastrear informações de maneira eficiente",
backstory="Um assistente de IA especializado em gestão de dados e operações em planilhas.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Tarefa para adicionar novos dados a uma planilha
@@ -139,19 +135,16 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Google Sheets
```python
from crewai_tools import CrewaiEnterpriseTools
# Obtenha apenas ferramentas específicas do Google Sheets
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["google_sheets_get_row", "google_sheets_create_row"]
actions_list=["google_sheets/get_values", "google_sheets/update_values"]
)
data_collector = Agent(
role="Data Collector",
goal="Coletar e organizar dados em planilhas",
backstory="Um assistente de IA dedicado à coleta e organização de dados.",
tools=enterprise_tools
apps=['google_sheets']
)
# Tarefa para coletar e organizar dados
@@ -173,17 +166,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
data_analyst = Agent(
role="Data Analyst",
goal="Analisar dados de planilhas e gerar insights",
backstory="Um analista de dados experiente que extrai insights dos dados de planilhas.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Tarefa para analisar dados e criar relatórios
@@ -209,17 +197,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
data_updater = Agent(
role="Data Updater",
goal="Atualizar e manter dados de planilhas automaticamente",
backstory="Um assistente de IA que mantém a precisão dos dados e atualiza registros automaticamente.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Tarefa para atualizar dados com base em condições
@@ -246,17 +229,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
workflow_manager = Agent(
role="Data Workflow Manager",
goal="Gerenciar fluxos de dados complexos entre várias planilhas",
backstory="Um assistente de IA que orquestra operações complexas de dados entre várias planilhas.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Tarefa de workflow complexa

View File

@@ -0,0 +1,232 @@
---
title: Integração Google Slides
description: "Criação e gerenciamento de apresentações com integração Google Slides para CrewAI."
icon: "chart-bar"
mode: "wide"
---
## Visão Geral
Permita que seus agentes criem, editem e gerenciem apresentações do Google Slides. Crie apresentações, atualize conteúdo, importe dados do Google Sheets, gerencie páginas e miniaturas, e simplifique seus fluxos de trabalho de apresentações com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Google Slides, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Google com acesso ao Google Slides
- Conectado sua conta Google através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Google Slides
### 1. Conecte sua Conta Google
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Google Slides** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a apresentações, planilhas e drive
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="google_slides/create_blank_presentation">
**Descrição:** Cria uma apresentação em branco sem conteúdo.
**Parâmetros:**
- `title` (string, obrigatório): O título da apresentação.
</Accordion>
<Accordion title="google_slides/get_presentation">
**Descrição:** Recupera uma apresentação por ID.
**Parâmetros:**
- `presentationId` (string, obrigatório): O ID da apresentação a ser recuperada.
- `fields` (string, opcional): Os campos a incluir na resposta. Use isso para melhorar o desempenho retornando apenas os dados necessários.
</Accordion>
<Accordion title="google_slides/batch_update_presentation">
**Descrição:** Aplica atualizações, adiciona conteúdo ou remove conteúdo de uma apresentação.
**Parâmetros:**
- `presentationId` (string, obrigatório): O ID da apresentação a ser atualizada.
- `requests` (array, obrigatório): Uma lista de atualizações a aplicar à apresentação. Cada item é um objeto representando uma solicitação.
- `writeControl` (object, opcional): Fornece controle sobre como as solicitações de escrita são executadas. Contém `requiredRevisionId` (string).
</Accordion>
<Accordion title="google_slides/get_page">
**Descrição:** Recupera uma página específica por seu ID.
**Parâmetros:**
- `presentationId` (string, obrigatório): O ID da apresentação.
- `pageObjectId` (string, obrigatório): O ID da página a ser recuperada.
</Accordion>
<Accordion title="google_slides/get_thumbnail">
**Descrição:** Gera uma miniatura da página.
**Parâmetros:**
- `presentationId` (string, obrigatório): O ID da apresentação.
- `pageObjectId` (string, obrigatório): O ID da página para geração de miniatura.
</Accordion>
<Accordion title="google_slides/import_data_from_sheet">
**Descrição:** Importa dados de uma planilha do Google para uma apresentação.
**Parâmetros:**
- `presentationId` (string, obrigatório): O ID da apresentação.
- `sheetId` (string, obrigatório): O ID da planilha do Google para importar.
- `dataRange` (string, obrigatório): O intervalo de dados a importar da planilha.
</Accordion>
<Accordion title="google_slides/upload_file_to_drive">
**Descrição:** Faz upload de um arquivo para o Google Drive associado à apresentação.
**Parâmetros:**
- `file` (string, obrigatório): Os dados do arquivo a fazer upload.
- `presentationId` (string, obrigatório): O ID da apresentação para vincular o arquivo carregado.
</Accordion>
<Accordion title="google_slides/link_file_to_presentation">
**Descrição:** Vincula um arquivo no Google Drive a uma apresentação.
**Parâmetros:**
- `presentationId` (string, obrigatório): O ID da apresentação.
- `fileId` (string, obrigatório): O ID do arquivo a vincular.
</Accordion>
<Accordion title="google_slides/get_all_presentations">
**Descrição:** Lista todas as apresentações acessíveis ao usuário.
**Parâmetros:**
- `pageSize` (integer, opcional): O número de apresentações a retornar por página.
- `pageToken` (string, opcional): Um token para paginação.
</Accordion>
<Accordion title="google_slides/delete_presentation">
**Descrição:** Exclui uma apresentação por ID.
**Parâmetros:**
- `presentationId` (string, obrigatório): O ID da apresentação a ser excluída.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Google Slides
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Google Slides
slides_agent = Agent(
role="Criador de Apresentações",
goal="Criar e gerenciar apresentações do Google Slides de forma eficiente",
backstory="Um assistente IA especializado em design de apresentações e gerenciamento de conteúdo.",
apps=['google_slides'] # Todas as ações do Google Slides estarão disponíveis
)
# Tarefa para criar uma nova apresentação
create_presentation_task = Task(
description="Criar uma nova apresentação em branco intitulada 'Relatório de Vendas Trimestral'",
agent=slides_agent,
expected_output="Nova apresentação 'Relatório de Vendas Trimestral' criada com sucesso"
)
# Execute a tarefa
crew = Crew(
agents=[slides_agent],
tasks=[create_presentation_task]
)
crew.kickoff()
```
### Atualizando Conteúdo da Apresentação
```python
from crewai import Agent, Task, Crew
# Crie um agente focado em atualizar apresentações
updater_agent = Agent(
role="Atualizador de Apresentações",
goal="Atualizar e modificar apresentações existentes do Google Slides",
backstory="Um assistente IA habilidoso em fazer atualizações precisas no conteúdo de apresentações.",
apps=['google_slides/batch_update_presentation']
)
# Tarefa para atualizar uma apresentação
update_presentation_task = Task(
description="Atualizar a apresentação com ID 'your_presentation_id' para adicionar uma nova caixa de texto no primeiro slide com o conteúdo 'Destaques Principais'.",
agent=updater_agent,
expected_output="Apresentação atualizada com novo conteúdo."
)
crew = Crew(
agents=[updater_agent],
tasks=[update_presentation_task]
)
crew.kickoff()
```
### Importando Dados e Gerenciando Arquivos
```python
from crewai import Agent, Task, Crew
# Crie um agente para importação de dados e gerenciamento de arquivos
data_presenter = Agent(
role="Apresentador de Dados",
goal="Importar dados para apresentações e gerenciar arquivos vinculados",
backstory="Um assistente IA que integra dados de várias fontes em apresentações.",
apps=['google_slides/import_data_from_sheet', 'google_slides/upload_file_to_drive']
)
# Tarefa para importar dados de uma planilha
import_data_task = Task(
description="Importar dados da planilha do Google 'your_sheet_id' intervalo 'A1:C10' para a apresentação 'your_presentation_id'.",
agent=data_presenter,
expected_output="Dados importados da planilha do Google para a apresentação."
)
crew = Crew(
agents=[data_presenter],
tasks=[import_data_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Google tenha as permissões necessárias para acesso ao Google Slides e Google Drive.
- Verifique se a conexão OAuth inclui todos os escopos necessários.
**Problemas de ID de Apresentação/Página**
- Verifique novamente os IDs de apresentação e IDs de objeto de página para correção.
- Certifique-se de que a apresentação ou página existe e está acessível.
**Formatação de Solicitação de Atualização em Lote**
- Ao usar `batch_update_presentation`, certifique-se de que o array `requests` esteja formatado corretamente de acordo com a documentação da API do Google Slides.
- Atualizações complexas frequentemente requerem estruturas JSON específicas para cada tipo de solicitação (ex: `createText`, `insertShape`).
**Problemas de Upload/Vinculação de Arquivos**
- Certifique-se de que o conteúdo do `file` esteja fornecido corretamente para `upload_file_to_drive`.
- Verifique se o `fileId` está correto ao vincular arquivos a uma apresentação.
- Verifique as permissões do Google Drive para acesso a arquivos.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Google Slides.
</Card>

View File

@@ -25,7 +25,7 @@ Antes de utilizar a integração com o HubSpot, certifique-se de que você possu
2. Encontre **HubSpot** na seção de Integrações de Autenticação.
3. Clique em **Conectar** e complete o fluxo OAuth.
4. Conceda as permissões necessárias para gerenciamento de empresas e contatos.
5. Copie o seu Token Enterprise nas [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account).
5. Copie o seu Token Enterprise nas [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="HUBSPOT_CREATE_RECORD_COMPANIES">
<Accordion title="hubspot/create_company">
**Descrição:** Crie um novo registro de empresa no HubSpot.
**Parâmetros:**
@@ -101,7 +101,7 @@ uv add crewai-tools
- `founded_year` (string, opcional): Ano de fundação.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_CONTACTS">
<Accordion title="hubspot/create_contact">
**Descrição:** Crie um novo registro de contato no HubSpot.
**Parâmetros:**
@@ -200,7 +200,7 @@ uv add crewai-tools
- `hs_googleplusid` (string, opcional): googleplus ID.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_DEALS">
<Accordion title="hubspot/create_deal">
**Descrição:** Crie um novo registro de negócio (deal) no HubSpot.
**Parâmetros:**
@@ -215,7 +215,7 @@ uv add crewai-tools
- `hs_priority` (string, opcional): Prioridade do negócio. Valores disponíveis: `low`, `medium`, `high`.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_ENGAGEMENTS">
<Accordion title="hubspot/create_record_engagements">
**Descrição:** Crie um novo engajamento (ex: nota, e-mail, ligação, reunião, tarefa) no HubSpot.
**Parâmetros:**
@@ -232,7 +232,7 @@ uv add crewai-tools
- `hs_meeting_end_time` (string, opcional): Horário de término da reunião. (Utilizado para `MEETING`)
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_COMPANIES">
<Accordion title="hubspot/update_company">
**Descrição:** Atualize um registro de empresa existente no HubSpot.
**Parâmetros:**
@@ -249,7 +249,7 @@ uv add crewai-tools
- `description` (string, opcional): Descrição.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_ANY">
<Accordion title="hubspot/create_record_any">
**Descrição:** Crie um registro para um tipo de objeto especificado no HubSpot.
**Parâmetros:**
@@ -257,7 +257,7 @@ uv add crewai-tools
- Parâmetros adicionais dependem do esquema do objeto personalizado.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_CONTACTS">
<Accordion title="hubspot/update_contact">
**Descrição:** Atualize um registro de contato existente no HubSpot.
**Parâmetros:**
@@ -271,7 +271,7 @@ uv add crewai-tools
- `lifecyclestage` (string, opcional): Estágio no ciclo de vida.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_DEALS">
<Accordion title="hubspot/update_deal">
**Descrição:** Atualize um registro de negócio existente no HubSpot.
**Parâmetros:**
@@ -284,7 +284,7 @@ uv add crewai-tools
- `dealtype` (string, opcional): Tipo de negócio.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_ENGAGEMENTS">
<Accordion title="hubspot/update_record_engagements">
**Descrição:** Atualize um engajamento existente no HubSpot.
**Parâmetros:**
@@ -295,7 +295,7 @@ uv add crewai-tools
- `hs_task_status` (string, opcional): Status da tarefa.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_ANY">
<Accordion title="hubspot/update_record_any">
**Descrição:** Atualize um registro para um tipo de objeto especificado no HubSpot.
**Parâmetros:**
@@ -304,28 +304,28 @@ uv add crewai-tools
- Parâmetros adicionais dependem do esquema do objeto personalizado.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_COMPANIES">
<Accordion title="hubspot/list_companies">
**Descrição:** Obtenha uma lista de registros de empresas do HubSpot.
**Parâmetros:**
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_CONTACTS">
<Accordion title="hubspot/list_contacts">
**Descrição:** Obtenha uma lista de registros de contatos do HubSpot.
**Parâmetros:**
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_DEALS">
<Accordion title="hubspot/list_deals">
**Descrição:** Obtenha uma lista de registros de negócios do HubSpot.
**Parâmetros:**
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_ENGAGEMENTS">
<Accordion title="hubspot/get_records_engagements">
**Descrição:** Obtenha uma lista de registros de engajamentos do HubSpot.
**Parâmetros:**
@@ -333,7 +333,7 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_ANY">
<Accordion title="hubspot/get_records_any">
**Descrição:** Obtenha uma lista de registros de qualquer tipo de objeto no HubSpot.
**Parâmetros:**
@@ -341,35 +341,35 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_COMPANIES">
<Accordion title="hubspot/get_company">
**Descrição:** Obtenha um registro de empresa pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID da empresa a ser consultada.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_CONTACTS">
<Accordion title="hubspot/get_contact">
**Descrição:** Obtenha um registro de contato pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do contato a ser consultado.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_DEALS">
<Accordion title="hubspot/get_deal">
**Descrição:** Obtenha um registro de negócio pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do negócio a ser consultado.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_ENGAGEMENTS">
<Accordion title="hubspot/get_record_by_id_engagements">
**Descrição:** Obtenha um registro de engajamento pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do engajamento a ser consultado.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_ANY">
<Accordion title="hubspot/get_record_by_id_any">
**Descrição:** Obtenha um registro de qualquer tipo de objeto especificado pelo seu ID.
**Parâmetros:**
@@ -377,7 +377,7 @@ uv add crewai-tools
- `recordId` (string, obrigatório): ID do registro a ser consultado.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_COMPANIES">
<Accordion title="hubspot/search_companies">
**Descrição:** Pesquise registros de empresas no HubSpot utilizando uma fórmula de filtro.
**Parâmetros:**
@@ -385,7 +385,7 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_CONTACTS">
<Accordion title="hubspot/search_contacts">
**Descrição:** Pesquise registros de contatos no HubSpot utilizando uma fórmula de filtro.
**Parâmetros:**
@@ -393,7 +393,7 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_DEALS">
<Accordion title="hubspot/search_deals">
**Descrição:** Pesquise registros de negócios no HubSpot utilizando uma fórmula de filtro.
**Parâmetros:**
@@ -401,7 +401,7 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_ENGAGEMENTS">
<Accordion title="hubspot/search_records_engagements">
**Descrição:** Pesquise registros de engajamento no HubSpot utilizando uma fórmula de filtro.
**Parâmetros:**
@@ -409,7 +409,7 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_ANY">
<Accordion title="hubspot/search_records_any">
**Descrição:** Pesquise registros de qualquer tipo de objeto no HubSpot.
**Parâmetros:**
@@ -418,35 +418,35 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para buscar páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_COMPANIES">
<Accordion title="hubspot/delete_record_companies">
**Descrição:** Exclua um registro de empresa pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID da empresa a ser excluída.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_CONTACTS">
<Accordion title="hubspot/delete_record_contacts">
**Descrição:** Exclua um registro de contato pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do contato a ser excluído.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_DEALS">
<Accordion title="hubspot/delete_record_deals">
**Descrição:** Exclua um registro de negócio pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do negócio a ser excluído.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_ENGAGEMENTS">
<Accordion title="hubspot/delete_record_engagements">
**Descrição:** Exclua um registro de engajamento pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do engajamento a ser excluído.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_ANY">
<Accordion title="hubspot/delete_record_any">
**Descrição:** Exclua um registro de qualquer tipo de objeto especificado pelo seu ID.
**Parâmetros:**
@@ -454,7 +454,7 @@ uv add crewai-tools
- `recordId` (string, obrigatório): ID do registro a ser excluído.
</Accordion>
<Accordion title="HUBSPOT_GET_CONTACTS_BY_LIST_ID">
<Accordion title="hubspot/get_contacts_by_list_id">
**Descrição:** Obtenha contatos de uma lista específica pelo seu ID.
**Parâmetros:**
@@ -462,7 +462,7 @@ uv add crewai-tools
- `paginationParameters` (object, opcional): Use `pageCursor` para páginas subsequentes.
</Accordion>
<Accordion title="HUBSPOT_DESCRIBE_ACTION_SCHEMA">
<Accordion title="hubspot/describe_action_schema">
**Descrição:** Obtenha o esquema esperado para um dado tipo de objeto e operação.
**Parâmetros:**
@@ -477,19 +477,15 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Obtenha as ferramentas enterprise (ferramentas HubSpot incluídas)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Crie um agente com capacidades HubSpot
hubspot_agent = Agent(
role="CRM Manager",
goal="Manage company and contact records in HubSpot",
backstory="An AI assistant specialized in CRM management.",
tools=[enterprise_tools]
apps=['hubspot']
)
# Task para criar nova empresa
@@ -511,19 +507,16 @@ crew.kickoff()
### Filtrando Ferramentas HubSpot Específicas
```python
from crewai_tools import CrewaiEnterpriseTools
# Obtenha somente a ferramenta para criar contatos
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["hubspot_create_record_contacts"]
actions_list=["hubspot/create_contact"]
)
contact_creator = Agent(
role="Contact Creator",
goal="Create new contacts in HubSpot",
backstory="An AI assistant that focuses on creating new contact entries in the CRM.",
tools=[enterprise_tools]
apps=['hubspot']
)
# Task para criar contato
@@ -545,17 +538,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
crm_manager = Agent(
role="CRM Manager",
goal="Manage and organize HubSpot contacts efficiently.",
backstory="An experienced CRM manager who maintains an organized contact database.",
tools=[enterprise_tools]
apps=['hubspot']
)
# Task para gerenciar contatos

View File

@@ -25,7 +25,7 @@ Antes de usar a integração com o Jira, certifique-se de ter:
2. Encontre **Jira** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo do OAuth
4. Conceda as permissões necessárias para gestão de issues e projetos
5. Copie seu Token Enterprise em [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instalar o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="JIRA_CREATE_ISSUE">
<Accordion title="jira/create_issue">
**Descrição:** Cria uma issue no Jira.
**Parâmetros:**
@@ -56,7 +56,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="JIRA_UPDATE_ISSUE">
<Accordion title="jira/update_issue">
**Descrição:** Atualiza uma issue no Jira.
**Parâmetros:**
@@ -71,14 +71,14 @@ uv add crewai-tools
- `additionalFields` (string, opcional): Campos Adicionais - Especifique outros campos em formato JSON.
</Accordion>
<Accordion title="JIRA_GET_ISSUE_BY_KEY">
<Accordion title="jira/get_issue_by_key">
**Descrição:** Obtém uma issue pelo identificador no Jira.
**Parâmetros:**
- `issueKey` (string, obrigatório): Chave da Issue (exemplo: "TEST-1234").
</Accordion>
<Accordion title="JIRA_FILTER_ISSUES">
<Accordion title="jira/filter_issues">
**Descrição:** Busca issues no Jira usando filtros.
**Parâmetros:**
@@ -104,7 +104,7 @@ uv add crewai-tools
- `limit` (string, opcional): Limitar resultados - Limite máximo de issues retornados. Padrão para 10 se estiver em branco.
</Accordion>
<Accordion title="JIRA_SEARCH_BY_JQL">
<Accordion title="jira/search_by_jql">
**Descrição:** Busca issues no Jira utilizando JQL.
**Parâmetros:**
@@ -117,13 +117,13 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="JIRA_UPDATE_ISSUE_ANY">
<Accordion title="jira/update_issue_any">
**Descrição:** Atualiza qualquer issue no Jira. Use DESCRIBE_ACTION_SCHEMA para obter o schema de propriedades dessa função.
**Parâmetros:** Nenhum parâmetro específico - use JIRA_DESCRIBE_ACTION_SCHEMA primeiro para obter o schema esperado.
</Accordion>
<Accordion title="JIRA_DESCRIBE_ACTION_SCHEMA">
<Accordion title="jira/describe_action_schema">
**Descrição:** Obtém o schema esperado para um tipo de issue. Use esta função caso nenhuma outra função atenda ao tipo de issue que deseja operar.
**Parâmetros:**
@@ -132,7 +132,7 @@ uv add crewai-tools
- `operation` (string, obrigatório): Tipo de Operação, por exemplo CREATE_ISSUE ou UPDATE_ISSUE.
</Accordion>
<Accordion title="JIRA_GET_PROJECTS">
<Accordion title="jira/get_projects">
**Descrição:** Obtém os projetos no Jira.
**Parâmetros:**
@@ -144,27 +144,27 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="JIRA_GET_ISSUE_TYPES_BY_PROJECT">
<Accordion title="jira/get_issue_types_by_project">
**Descrição:** Obtém os tipos de issues por projeto no Jira.
**Parâmetros:**
- `project` (string, obrigatório): Chave do projeto.
</Accordion>
<Accordion title="JIRA_GET_ISSUE_TYPES">
<Accordion title="jira/get_issue_types">
**Descrição:** Obtém todos os tipos de issues no Jira.
**Parâmetros:** Nenhum obrigatório.
</Accordion>
<Accordion title="JIRA_GET_ISSUE_STATUS_BY_PROJECT">
<Accordion title="jira/get_issue_status_by_project">
**Descrição:** Obtém os status das issues de um projeto específico.
**Parâmetros:**
- `project` (string, obrigatório): Chave do projeto.
</Accordion>
<Accordion title="JIRA_GET_ALL_ASSIGNEES_BY_PROJECT">
<Accordion title="jira/get_all_assignees_by_project">
**Descrição:** Obtém os responsáveis por um projeto específico.
**Parâmetros:**
@@ -178,19 +178,15 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Obtenha as ferramentas enterprise (incluirá ferramentas do Jira)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Criação de um agente com capacidades Jira
jira_agent = Agent(
role="Issue Manager",
goal="Gerenciar issues do Jira e acompanhar o progresso do projeto de forma eficiente",
backstory="Um assistente de IA especializado em rastreamento de issues e gestão de projetos.",
tools=[enterprise_tools]
apps=['jira']
)
# Tarefa para criar um relatório de bug
@@ -212,19 +208,16 @@ crew.kickoff()
### Filtrando Ferramentas Jira Específicas
```python
from crewai_tools import CrewaiEnterpriseTools
# Obtenha apenas ferramentas Jira específicas
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["jira_create_issue", "jira_update_issue", "jira_search_by_jql"]
actions_list=["jira/create_issue", "jira/update_issue", "jira/search_by_jql"]
)
issue_coordinator = Agent(
role="Issue Coordinator",
goal="Criar e gerenciar issues Jira de forma eficiente",
backstory="Um assistente de IA focado na criação e gestão de issues.",
tools=enterprise_tools
apps=['jira']
)
# Tarefa para gerenciar workflow de issues
@@ -246,17 +239,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
project_analyst = Agent(
role="Project Analyst",
goal="Analisar dados de projetos e gerar insights a partir do Jira",
backstory="Um analista de projetos experiente que extrai insights de dados de gestão de projetos.",
tools=[enterprise_tools]
apps=['jira']
)
# Tarefa para analisar status do projeto
@@ -283,17 +271,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
automation_manager = Agent(
role="Automation Manager",
goal="Automatizar gestão de issues e processos de workflow",
backstory="Um assistente de IA que automatiza tarefas repetitivas de gestão de issues.",
tools=[enterprise_tools]
apps=['jira']
)
# Tarefa para automatizar gestão de issues
@@ -321,17 +304,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
schema_specialist = Agent(
role="Schema Specialist",
goal="Executar operações complexas no Jira usando schemas dinâmicos",
backstory="Um assistente de IA que manipula schemas dinâmicos e tipos de issues customizadas do Jira.",
tools=[enterprise_tools]
apps=['jira']
)
# Tarefa usando operações baseadas em schema

View File

@@ -25,7 +25,7 @@ Antes de utilizar a integração com o Linear, certifique-se de que você possui
2. Encontre **Linear** na seção Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para gerenciamento de issues e projetos
5. Copie seu Token Empresarial em [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Empresarial em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="LINEAR_CREATE_ISSUE">
<Accordion title="linear/create_issue">
**Descrição:** Crie uma nova issue no Linear.
**Parâmetros:**
@@ -56,7 +56,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_UPDATE_ISSUE">
<Accordion title="linear/update_issue">
**Descrição:** Atualize uma issue no Linear.
**Parâmetros:**
@@ -76,21 +76,21 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_GET_ISSUE_BY_ID">
<Accordion title="linear/get_issue_by_id">
**Descrição:** Obtenha uma issue pelo ID no Linear.
**Parâmetros:**
- `issueId` (string, obrigatório): ID da Issue - Especifique o ID do registro da issue a ser buscada. (exemplo: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
</Accordion>
<Accordion title="LINEAR_GET_ISSUE_BY_ISSUE_IDENTIFIER">
<Accordion title="linear/get_issue_by_issue_identifier">
**Descrição:** Obtenha uma issue através do identificador da issue no Linear.
**Parâmetros:**
- `externalId` (string, obrigatório): ID Externo - Especifique o identificador legível da issue a ser buscada. (exemplo: "ABC-1").
</Accordion>
<Accordion title="LINEAR_SEARCH_ISSUE">
<Accordion title="linear/search_issue">
**Descrição:** Pesquise issues no Linear.
**Parâmetros:**
@@ -117,21 +117,21 @@ uv add crewai-tools
Operadores disponíveis: `$stringExactlyMatches`, `$stringDoesNotExactlyMatch`, `$stringIsIn`, `$stringIsNotIn`, `$stringStartsWith`, `$stringDoesNotStartWith`, `$stringEndsWith`, `$stringDoesNotEndWith`, `$stringContains`, `$stringDoesNotContain`, `$stringGreaterThan`, `$stringLessThan`, `$numberGreaterThanOrEqualTo`, `$numberLessThanOrEqualTo`, `$numberGreaterThan`, `$numberLessThan`, `$dateTimeAfter`, `$dateTimeBefore`
</Accordion>
<Accordion title="LINEAR_DELETE_ISSUE">
<Accordion title="linear/delete_issue">
**Descrição:** Exclua uma issue no Linear.
**Parâmetros:**
- `issueId` (string, obrigatório): ID da Issue - Especifique o ID do registro da issue a ser excluída. (exemplo: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
</Accordion>
<Accordion title="LINEAR_ARCHIVE_ISSUE">
<Accordion title="linear/archive_issue">
**Descrição:** Arquive uma issue no Linear.
**Parâmetros:**
- `issueId` (string, obrigatório): ID da Issue - Especifique o ID do registro da issue a ser arquivada. (exemplo: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
</Accordion>
<Accordion title="LINEAR_CREATE_SUB_ISSUE">
<Accordion title="linear/create_sub_issue">
**Descrição:** Crie uma sub-issue no Linear.
**Parâmetros:**
@@ -147,7 +147,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_CREATE_PROJECT">
<Accordion title="linear/create_project">
**Descrição:** Crie um novo projeto no Linear.
**Parâmetros:**
@@ -169,7 +169,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_UPDATE_PROJECT">
<Accordion title="linear/update_project">
**Descrição:** Atualize um projeto no Linear.
**Parâmetros:**
@@ -185,21 +185,21 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_GET_PROJECT_BY_ID">
<Accordion title="linear/get_project_by_id">
**Descrição:** Obtenha um projeto pelo ID no Linear.
**Parâmetros:**
- `projectId` (string, obrigatório): ID do Projeto - Especifique o ID do projeto a ser buscado. (exemplo: "a6634484-6061-4ac7-9739-7dc5e52c796b").
</Accordion>
<Accordion title="LINEAR_DELETE_PROJECT">
<Accordion title="linear/delete_project">
**Descrição:** Exclua um projeto no Linear.
**Parâmetros:**
- `projectId` (string, obrigatório): ID do Projeto - Especifique o ID do projeto a ser excluído. (exemplo: "a6634484-6061-4ac7-9739-7dc5e52c796b").
</Accordion>
<Accordion title="LINEAR_SEARCH_TEAMS">
<Accordion title="linear/search_teams">
**Descrição:** Pesquise equipes no Linear.
**Parâmetros:**
@@ -231,19 +231,15 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Obtenha ferramentas empresariais (ferramentas do Linear serão incluídas)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Crie um agente com funcionalidades do Linear
linear_agent = Agent(
role="Development Manager",
goal="Gerenciar issues do Linear e acompanhar o progresso do desenvolvimento de forma eficiente",
backstory="Um assistente de IA especializado em gerenciamento de projetos de desenvolvimento de software.",
tools=[enterprise_tools]
apps=['linear']
)
# Tarefa para criar um relatório de bug
@@ -265,19 +261,16 @@ crew.kickoff()
### Filtrando Ferramentas Lineares Específicas
```python
from crewai_tools import CrewaiEnterpriseTools
# Obtenha apenas ferramentas lineares específicas
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["linear_create_issue", "linear_update_issue", "linear_search_issue"]
actions_list=["linear/create_issue", "linear/update_issue", "linear/search_issue"]
)
issue_manager = Agent(
role="Issue Manager",
goal="Criar e gerenciar issues no Linear de forma eficiente",
backstory="Um assistente de IA focado na criação e no gerenciamento do ciclo de vida de issues.",
tools=enterprise_tools
apps=['linear']
)
# Tarefa para gerenciar fluxo de issues
@@ -299,17 +292,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
project_coordinator = Agent(
role="Project Coordinator",
goal="Coordenar projetos e equipes no Linear de forma eficiente",
backstory="Um coordenador de projetos experiente que gerencia ciclos de desenvolvimento e fluxos de trabalho de equipe.",
tools=[enterprise_tools]
apps=['linear']
)
# Tarefa para coordenar a configuração de projeto
@@ -336,17 +324,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
task_organizer = Agent(
role="Task Organizer",
goal="Organizar issues complexas em sub-tarefas gerenciáveis",
backstory="Um assistente de IA que divide trabalhos de desenvolvimento complexos em sub-tarefas organizadas.",
tools=[enterprise_tools]
apps=['linear']
)
# Tarefa para criar hierarquia de issues
@@ -373,17 +356,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
workflow_automator = Agent(
role="Workflow Automator",
goal="Automatizar processos de fluxo de trabalho de desenvolvimento no Linear",
backstory="Um assistente de IA que automatiza tarefas repetitivas de fluxo de trabalho de desenvolvimento.",
tools=[enterprise_tools]
apps=['linear']
)
# Tarefa de automação de workflow complexa

View File

@@ -0,0 +1,234 @@
---
title: Integração Microsoft Excel
description: "Gerenciamento de pastas de trabalho e dados com integração Microsoft Excel para CrewAI."
icon: "table"
mode: "wide"
---
## Visão Geral
Permita que seus agentes criem e gerenciem pastas de trabalho, planilhas, tabelas e gráficos do Excel no OneDrive ou SharePoint. Manipule intervalos de dados, crie visualizações, gerencie tabelas e simplifique seus fluxos de trabalho de planilhas com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Microsoft Excel, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Microsoft 365 com acesso ao Excel e OneDrive/SharePoint
- Conectado sua conta Microsoft através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Microsoft Excel
### 1. Conecte sua Conta Microsoft
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Microsoft Excel** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a arquivos e pastas de trabalho do Excel
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="microsoft_excel/create_workbook">
**Descrição:** Criar uma nova pasta de trabalho do Excel no OneDrive ou SharePoint.
**Parâmetros:**
- `file_path` (string, obrigatório): Caminho onde criar a pasta de trabalho (ex: 'MinhaPastaDeTrabalho.xlsx')
- `worksheets` (array, opcional): Planilhas iniciais para criar. Cada item é um objeto com `name` (string, nome da planilha).
</Accordion>
<Accordion title="microsoft_excel/get_workbooks">
**Descrição:** Obter todas as pastas de trabalho do Excel do OneDrive ou SharePoint.
**Parâmetros:**
- `select` (string, opcional): Selecionar propriedades específicas para retornar.
- `filter` (string, opcional): Filtrar resultados usando sintaxe OData.
- `expand` (string, opcional): Expandir recursos relacionados inline.
- `top` (integer, opcional): Número de itens a retornar (mín 1, máx 999).
- `orderby` (string, opcional): Ordenar resultados por propriedades especificadas.
</Accordion>
<Accordion title="microsoft_excel/get_worksheets">
**Descrição:** Obter todas as planilhas em uma pasta de trabalho do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `select` (string, opcional): Selecionar propriedades específicas para retornar (ex: 'id,name,position').
- `filter` (string, opcional): Filtrar resultados usando sintaxe OData.
- `expand` (string, opcional): Expandir recursos relacionados inline.
- `top` (integer, opcional): Número de itens a retornar (mín 1, máx 999).
- `orderby` (string, opcional): Ordenar resultados por propriedades especificadas.
</Accordion>
<Accordion title="microsoft_excel/create_worksheet">
**Descrição:** Criar uma nova planilha em uma pasta de trabalho do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `name` (string, obrigatório): Nome da nova planilha.
</Accordion>
<Accordion title="microsoft_excel/get_range_data">
**Descrição:** Obter dados de um intervalo específico em uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
- `range` (string, obrigatório): Endereço do intervalo (ex: 'A1:C10').
</Accordion>
<Accordion title="microsoft_excel/update_range_data">
**Descrição:** Atualizar dados em um intervalo específico em uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
- `range` (string, obrigatório): Endereço do intervalo (ex: 'A1:C10').
- `values` (array, obrigatório): Array 2D de valores para definir no intervalo. Cada array interno representa uma linha, e elementos podem ser string, number ou integer.
</Accordion>
<Accordion title="microsoft_excel/add_table">
**Descrição:** Criar uma tabela em uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
- `range` (string, obrigatório): Intervalo para a tabela (ex: 'A1:D10').
- `has_headers` (boolean, opcional): Se a primeira linha contém cabeçalhos. Padrão: true.
</Accordion>
<Accordion title="microsoft_excel/get_tables">
**Descrição:** Obter todas as tabelas em uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
</Accordion>
<Accordion title="microsoft_excel/add_table_row">
**Descrição:** Adicionar uma nova linha a uma tabela do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
- `table_name` (string, obrigatório): Nome da tabela.
- `values` (array, obrigatório): Array de valores para a nova linha. Elementos podem ser string, number ou integer.
</Accordion>
<Accordion title="microsoft_excel/create_chart">
**Descrição:** Criar um gráfico em uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
- `chart_type` (string, obrigatório): Tipo de gráfico (ex: 'ColumnClustered', 'Line', 'Pie').
- `source_data` (string, obrigatório): Intervalo de dados para o gráfico (ex: 'A1:B10').
- `series_by` (string, opcional): Como interpretar os dados ('Auto', 'Columns' ou 'Rows'). Padrão: 'Auto'.
</Accordion>
<Accordion title="microsoft_excel/get_cell">
**Descrição:** Obter o valor de uma única célula em uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
- `row` (integer, obrigatório): Número da linha (baseado em 0).
- `column` (integer, obrigatório): Número da coluna (baseado em 0).
</Accordion>
<Accordion title="microsoft_excel/get_used_range">
**Descrição:** Obter o intervalo usado de uma planilha do Excel (contém todos os dados).
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
</Accordion>
<Accordion title="microsoft_excel/list_charts">
**Descrição:** Obter todos os gráficos em uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
</Accordion>
<Accordion title="microsoft_excel/delete_worksheet">
**Descrição:** Excluir uma planilha de uma pasta de trabalho do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha a excluir.
</Accordion>
<Accordion title="microsoft_excel/delete_table">
**Descrição:** Excluir uma tabela de uma planilha do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
- `worksheet_name` (string, obrigatório): Nome da planilha.
- `table_name` (string, obrigatório): Nome da tabela a excluir.
</Accordion>
<Accordion title="microsoft_excel/list_names">
**Descrição:** Obter todos os intervalos nomeados em uma pasta de trabalho do Excel.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do arquivo Excel.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Microsoft Excel
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Microsoft Excel
excel_agent = Agent(
role="Gerenciador de Dados Excel",
goal="Gerenciar pastas de trabalho e dados do Excel de forma eficiente",
backstory="Um assistente IA especializado em operações do Microsoft Excel e manipulação de dados.",
apps=['microsoft_excel'] # Todas as ações do Excel estarão disponíveis
)
# Tarefa para criar uma nova pasta de trabalho
create_workbook_task = Task(
description="Criar uma nova pasta de trabalho do Excel chamada 'RelatorioMensal.xlsx' com uma planilha inicial chamada 'DadosVendas'.",
agent=excel_agent,
expected_output="Nova pasta de trabalho 'RelatorioMensal.xlsx' criada com planilha 'DadosVendas'."
)
# Execute a tarefa
crew = Crew(
agents=[excel_agent],
tasks=[create_workbook_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Microsoft tenha as permissões necessárias para acesso a arquivos (ex: `Files.Read.All`, `Files.ReadWrite.All`).
- Verifique se a conexão OAuth inclui todos os escopos necessários.
**Problemas de Criação de Arquivos**
- Ao criar pastas de trabalho, certifique-se de que o `file_path` termine com extensão `.xlsx`.
- Verifique se você tem permissões de escrita no local de destino (OneDrive/SharePoint).
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Microsoft Excel.
</Card>

View File

@@ -0,0 +1,175 @@
---
title: Integração Microsoft OneDrive
description: "Gerenciamento de arquivos e pastas com integração Microsoft OneDrive para CrewAI."
icon: "cloud"
mode: "wide"
---
## Visão Geral
Permita que seus agentes façam upload, download e gerenciem arquivos e pastas no Microsoft OneDrive. Automatize operações de arquivos, organize conteúdo, crie links de compartilhamento e simplifique seus fluxos de trabalho de armazenamento em nuvem com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Microsoft OneDrive, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Microsoft com acesso ao OneDrive
- Conectado sua conta Microsoft através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Microsoft OneDrive
### 1. Conecte sua Conta Microsoft
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Microsoft OneDrive** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a arquivos
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="microsoft_onedrive/list_files">
**Descrição:** Listar arquivos e pastas no OneDrive.
**Parâmetros:**
- `top` (integer, opcional): Número de itens a recuperar (máx 1000). Padrão: 50.
- `orderby` (string, opcional): Ordenar por campo (ex: "name asc", "lastModifiedDateTime desc"). Padrão: "name asc".
- `filter` (string, opcional): Expressão de filtro OData.
</Accordion>
<Accordion title="microsoft_onedrive/get_file_info">
**Descrição:** Obter informações sobre um arquivo ou pasta específica.
**Parâmetros:**
- `item_id` (string, obrigatório): O ID do arquivo ou pasta.
</Accordion>
<Accordion title="microsoft_onedrive/download_file">
**Descrição:** Baixar um arquivo do OneDrive.
**Parâmetros:**
- `item_id` (string, obrigatório): O ID do arquivo a baixar.
</Accordion>
<Accordion title="microsoft_onedrive/upload_file">
**Descrição:** Fazer upload de um arquivo para o OneDrive.
**Parâmetros:**
- `file_name` (string, obrigatório): Nome do arquivo a fazer upload.
- `content` (string, obrigatório): Conteúdo do arquivo codificado em Base64.
</Accordion>
<Accordion title="microsoft_onedrive/create_folder">
**Descrição:** Criar uma nova pasta no OneDrive.
**Parâmetros:**
- `folder_name` (string, obrigatório): Nome da pasta a criar.
</Accordion>
<Accordion title="microsoft_onedrive/delete_item">
**Descrição:** Excluir um arquivo ou pasta do OneDrive.
**Parâmetros:**
- `item_id` (string, obrigatório): O ID do arquivo ou pasta a excluir.
</Accordion>
<Accordion title="microsoft_onedrive/copy_item">
**Descrição:** Copiar um arquivo ou pasta no OneDrive.
**Parâmetros:**
- `item_id` (string, obrigatório): O ID do arquivo ou pasta a copiar.
- `parent_id` (string, opcional): O ID da pasta de destino (opcional, padrão para raiz).
- `new_name` (string, opcional): Novo nome para o item copiado (opcional).
</Accordion>
<Accordion title="microsoft_onedrive/move_item">
**Descrição:** Mover um arquivo ou pasta no OneDrive.
**Parâmetros:**
- `item_id` (string, obrigatório): O ID do arquivo ou pasta a mover.
- `parent_id` (string, obrigatório): O ID da pasta de destino.
- `new_name` (string, opcional): Novo nome para o item (opcional).
</Accordion>
<Accordion title="microsoft_onedrive/search_files">
**Descrição:** Pesquisar arquivos e pastas no OneDrive.
**Parâmetros:**
- `query` (string, obrigatório): String de consulta de pesquisa.
- `top` (integer, opcional): Número de resultados a retornar (máx 1000). Padrão: 50.
</Accordion>
<Accordion title="microsoft_onedrive/share_item">
**Descrição:** Criar um link de compartilhamento para um arquivo ou pasta.
**Parâmetros:**
- `item_id` (string, obrigatório): O ID do arquivo ou pasta a compartilhar.
- `type` (string, opcional): Tipo de link de compartilhamento. Opções: view, edit, embed. Padrão: view.
- `scope` (string, opcional): Escopo do link de compartilhamento. Opções: anonymous, organization. Padrão: anonymous.
</Accordion>
<Accordion title="microsoft_onedrive/get_thumbnails">
**Descrição:** Obter miniaturas para um arquivo.
**Parâmetros:**
- `item_id` (string, obrigatório): O ID do arquivo.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Microsoft OneDrive
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Microsoft OneDrive
onedrive_agent = Agent(
role="Gerenciador de Arquivos",
goal="Gerenciar arquivos e pastas no OneDrive de forma eficiente",
backstory="Um assistente IA especializado em operações de arquivos do Microsoft OneDrive e organização.",
apps=['microsoft_onedrive'] # Todas as ações do OneDrive estarão disponíveis
)
# Tarefa para listar arquivos e criar pasta
organize_files_task = Task(
description="Listar todos os arquivos no diretório raiz do meu OneDrive e criar uma nova pasta chamada 'Documentos do Projeto'.",
agent=onedrive_agent,
expected_output="Lista de arquivos exibida e nova pasta 'Documentos do Projeto' criada."
)
# Execute a tarefa
crew = Crew(
agents=[onedrive_agent],
tasks=[organize_files_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Microsoft tenha as permissões necessárias para acesso a arquivos (ex: `Files.Read`, `Files.ReadWrite`).
- Verifique se a conexão OAuth inclui todos os escopos necessários.
**Problemas de Upload de Arquivos**
- Certifique-se de que `file_name` e `content` sejam fornecidos para uploads de arquivos.
- O conteúdo deve ser codificado em Base64 para arquivos binários.
- Verifique se você tem permissões de escrita no OneDrive.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Microsoft OneDrive.
</Card>

View File

@@ -0,0 +1,161 @@
---
title: Integração Microsoft Outlook
description: "Gerenciamento de email, calendário e contatos com integração Microsoft Outlook para CrewAI."
icon: "envelope"
mode: "wide"
---
## Visão Geral
Permita que seus agentes acessem e gerenciem emails, eventos de calendário e contatos do Outlook. Envie emails, recupere mensagens, gerencie eventos de calendário e organize contatos com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Microsoft Outlook, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Microsoft com acesso ao Outlook
- Conectado sua conta Microsoft através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Microsoft Outlook
### 1. Conecte sua Conta Microsoft
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Microsoft Outlook** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a email, calendário e contatos
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="microsoft_outlook/get_messages">
**Descrição:** Obter mensagens de email da caixa de correio do usuário.
**Parâmetros:**
- `top` (integer, opcional): Número de mensagens a recuperar (máx 1000). Padrão: 10.
- `filter` (string, opcional): Expressão de filtro OData (ex: "isRead eq false").
- `search` (string, opcional): String de consulta de pesquisa.
- `orderby` (string, opcional): Ordenar por campo (ex: "receivedDateTime desc"). Padrão: "receivedDateTime desc".
- `select` (string, opcional): Selecionar propriedades específicas para retornar.
- `expand` (string, opcional): Expandir recursos relacionados inline.
</Accordion>
<Accordion title="microsoft_outlook/send_email">
**Descrição:** Enviar uma mensagem de email.
**Parâmetros:**
- `to_recipients` (array, obrigatório): Array de endereços de email dos destinatários.
- `cc_recipients` (array, opcional): Array de endereços de email dos destinatários em cópia.
- `bcc_recipients` (array, opcional): Array de endereços de email dos destinatários em cópia oculta.
- `subject` (string, obrigatório): Assunto do email.
- `body` (string, obrigatório): Conteúdo do corpo do email.
- `body_type` (string, opcional): Tipo de conteúdo do corpo. Opções: Text, HTML. Padrão: HTML.
- `importance` (string, opcional): Nível de importância da mensagem. Opções: low, normal, high. Padrão: normal.
- `reply_to` (array, opcional): Array de endereços de email para resposta.
- `save_to_sent_items` (boolean, opcional): Se deve salvar a mensagem na pasta Itens Enviados. Padrão: true.
</Accordion>
<Accordion title="microsoft_outlook/get_calendar_events">
**Descrição:** Obter eventos de calendário do calendário do usuário.
**Parâmetros:**
- `top` (integer, opcional): Número de eventos a recuperar (máx 1000). Padrão: 10.
- `skip` (integer, opcional): Número de eventos a pular. Padrão: 0.
- `filter` (string, opcional): Expressão de filtro OData (ex: "start/dateTime ge '2024-01-01T00:00:00Z'").
- `orderby` (string, opcional): Ordenar por campo (ex: "start/dateTime asc"). Padrão: "start/dateTime asc".
</Accordion>
<Accordion title="microsoft_outlook/create_calendar_event">
**Descrição:** Criar um novo evento de calendário.
**Parâmetros:**
- `subject` (string, obrigatório): Assunto/título do evento.
- `body` (string, opcional): Corpo/descrição do evento.
- `start_datetime` (string, obrigatório): Data e hora de início no formato ISO 8601 (ex: '2024-01-20T10:00:00').
- `end_datetime` (string, obrigatório): Data e hora de término no formato ISO 8601.
- `timezone` (string, opcional): Fuso horário (ex: 'Pacific Standard Time'). Padrão: UTC.
- `location` (string, opcional): Local do evento.
- `attendees` (array, opcional): Array de endereços de email dos participantes.
</Accordion>
<Accordion title="microsoft_outlook/get_contacts">
**Descrição:** Obter contatos do catálogo de endereços do usuário.
**Parâmetros:**
- `top` (integer, opcional): Número de contatos a recuperar (máx 1000). Padrão: 10.
- `skip` (integer, opcional): Número de contatos a pular. Padrão: 0.
- `filter` (string, opcional): Expressão de filtro OData.
- `orderby` (string, opcional): Ordenar por campo (ex: "displayName asc"). Padrão: "displayName asc".
</Accordion>
<Accordion title="microsoft_outlook/create_contact">
**Descrição:** Criar um novo contato no catálogo de endereços do usuário.
**Parâmetros:**
- `displayName` (string, obrigatório): Nome de exibição do contato.
- `givenName` (string, opcional): Primeiro nome do contato.
- `surname` (string, opcional): Sobrenome do contato.
- `emailAddresses` (array, opcional): Array de endereços de email. Cada item é um objeto com `address` (string) e `name` (string).
- `businessPhones` (array, opcional): Array de números de telefone comerciais.
- `homePhones` (array, opcional): Array de números de telefone residenciais.
- `jobTitle` (string, opcional): Cargo do contato.
- `companyName` (string, opcional): Nome da empresa do contato.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Microsoft Outlook
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Microsoft Outlook
outlook_agent = Agent(
role="Assistente de Email",
goal="Gerenciar emails, eventos de calendário e contatos de forma eficiente",
backstory="Um assistente IA especializado em operações do Microsoft Outlook e gerenciamento de comunicação.",
apps=['microsoft_outlook'] # Todas as ações do Outlook estarão disponíveis
)
# Tarefa para enviar um email
send_email_task = Task(
description="Enviar um email para 'colega@exemplo.com' com assunto 'Atualização do Projeto' e corpo 'Olá, aqui está a última atualização do projeto. Atenciosamente.'",
agent=outlook_agent,
expected_output="Email enviado com sucesso para colega@exemplo.com"
)
# Execute a tarefa
crew = Crew(
agents=[outlook_agent],
tasks=[send_email_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Microsoft tenha as permissões necessárias para acesso a email, calendário e contatos.
- Escopos necessários incluem: `Mail.Read`, `Mail.Send`, `Calendars.Read`, `Calendars.ReadWrite`, `Contacts.Read`, `Contacts.ReadWrite`.
**Problemas de Envio de Email**
- Certifique-se de que `to_recipients`, `subject` e `body` sejam fornecidos para `send_email`.
- Verifique se os endereços de email estão formatados corretamente.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Microsoft Outlook.
</Card>

View File

@@ -0,0 +1,185 @@
---
title: Integração Microsoft SharePoint
description: "Gerenciamento de sites, listas e documentos com integração Microsoft SharePoint para CrewAI."
icon: "folder-tree"
mode: "wide"
---
## Visão Geral
Permita que seus agentes acessem e gerenciem sites, listas e bibliotecas de documentos do SharePoint. Recupere informações do site, gerencie itens de lista, faça upload e organize arquivos, e simplifique seus fluxos de trabalho do SharePoint com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Microsoft SharePoint, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Microsoft com acesso ao SharePoint
- Conectado sua conta Microsoft através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Microsoft SharePoint
### 1. Conecte sua Conta Microsoft
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Microsoft SharePoint** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a sites e arquivos do SharePoint
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="microsoft_sharepoint/get_sites">
**Descrição:** Obter todos os sites do SharePoint aos quais o usuário tem acesso.
**Parâmetros:**
- `search` (string, opcional): Consulta de pesquisa para filtrar sites.
- `select` (string, opcional): Selecionar propriedades específicas para retornar (ex: 'displayName,id,webUrl').
- `filter` (string, opcional): Filtrar resultados usando sintaxe OData.
- `expand` (string, opcional): Expandir recursos relacionados inline.
- `top` (integer, opcional): Número de itens a retornar (mín 1, máx 999).
- `skip` (integer, opcional): Número de itens a pular (mín 0).
- `orderby` (string, opcional): Ordenar resultados por propriedades especificadas (ex: 'displayName desc').
</Accordion>
<Accordion title="microsoft_sharepoint/get_site">
**Descrição:** Obter informações sobre um site específico do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `select` (string, opcional): Selecionar propriedades específicas para retornar (ex: 'displayName,id,webUrl,drives').
- `expand` (string, opcional): Expandir recursos relacionados inline (ex: 'drives,lists').
</Accordion>
<Accordion title="microsoft_sharepoint/get_site_lists">
**Descrição:** Obter todas as listas em um site do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
</Accordion>
<Accordion title="microsoft_sharepoint/get_list">
**Descrição:** Obter informações sobre uma lista específica.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `list_id` (string, obrigatório): O ID da lista.
</Accordion>
<Accordion title="microsoft_sharepoint/get_list_items">
**Descrição:** Obter itens de uma lista do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `list_id` (string, obrigatório): O ID da lista.
- `expand` (string, opcional): Expandir dados relacionados (ex: 'fields').
</Accordion>
<Accordion title="microsoft_sharepoint/create_list_item">
**Descrição:** Criar um novo item em uma lista do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `list_id` (string, obrigatório): O ID da lista.
- `fields` (object, obrigatório): Os valores de campo para o novo item.
</Accordion>
<Accordion title="microsoft_sharepoint/update_list_item">
**Descrição:** Atualizar um item em uma lista do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `list_id` (string, obrigatório): O ID da lista.
- `item_id` (string, obrigatório): O ID do item a atualizar.
- `fields` (object, obrigatório): Os valores de campo a atualizar.
</Accordion>
<Accordion title="microsoft_sharepoint/delete_list_item">
**Descrição:** Excluir um item de uma lista do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `list_id` (string, obrigatório): O ID da lista.
- `item_id` (string, obrigatório): O ID do item a excluir.
</Accordion>
<Accordion title="microsoft_sharepoint/upload_file_to_library">
**Descrição:** Fazer upload de um arquivo para uma biblioteca de documentos do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `file_path` (string, obrigatório): O caminho onde fazer upload do arquivo (ex: 'pasta/nomeDoArquivo.txt').
- `content` (string, obrigatório): O conteúdo do arquivo a fazer upload.
</Accordion>
<Accordion title="microsoft_sharepoint/get_drive_items">
**Descrição:** Obter arquivos e pastas de uma biblioteca de documentos do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
</Accordion>
<Accordion title="microsoft_sharepoint/delete_drive_item">
**Descrição:** Excluir um arquivo ou pasta da biblioteca de documentos do SharePoint.
**Parâmetros:**
- `site_id` (string, obrigatório): O ID do site do SharePoint.
- `item_id` (string, obrigatório): O ID do arquivo ou pasta a excluir.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Microsoft SharePoint
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Microsoft SharePoint
sharepoint_agent = Agent(
role="Gerenciador SharePoint",
goal="Gerenciar sites, listas e documentos do SharePoint de forma eficiente",
backstory="Um assistente IA especializado em administração do Microsoft SharePoint e gerenciamento de conteúdo.",
apps=['microsoft_sharepoint'] # Todas as ações do SharePoint estarão disponíveis
)
# Tarefa para obter todos os sites
get_sites_task = Task(
description="Listar todos os sites do SharePoint aos quais tenho acesso.",
agent=sharepoint_agent,
expected_output="Uma lista de sites do SharePoint com seus nomes de exibição e URLs."
)
# Execute a tarefa
crew = Crew(
agents=[sharepoint_agent],
tasks=[get_sites_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Microsoft tenha as permissões necessárias para acesso ao SharePoint (ex: `Sites.Read.All`, `Sites.ReadWrite.All`).
- Verifique se a conexão OAuth inclui todos os escopos necessários.
**Problemas de ID de Site/Lista/Item**
- Verifique novamente os IDs de site, lista e item para correção.
- Certifique-se de que os recursos referenciados existem e estão acessíveis.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Microsoft SharePoint.
</Card>

View File

@@ -0,0 +1,136 @@
---
title: Integração Microsoft Teams
description: "Colaboração em equipe e comunicação com integração Microsoft Teams para CrewAI."
icon: "users"
mode: "wide"
---
## Visão Geral
Permita que seus agentes acessem dados do Teams, enviem mensagens, criem reuniões e gerenciem canais. Automatize a comunicação da equipe, agende reuniões, recupere mensagens e simplifique seus fluxos de trabalho de colaboração com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Microsoft Teams, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Microsoft com acesso ao Teams
- Conectado sua conta Microsoft através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Microsoft Teams
### 1. Conecte sua Conta Microsoft
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Microsoft Teams** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso ao Teams
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="microsoft_teams/get_teams">
**Descrição:** Obter todas as equipes das quais o usuário é membro.
**Parâmetros:**
- Nenhum parâmetro necessário.
</Accordion>
<Accordion title="microsoft_teams/get_channels">
**Descrição:** Obter canais em uma equipe específica.
**Parâmetros:**
- `team_id` (string, obrigatório): O ID da equipe.
</Accordion>
<Accordion title="microsoft_teams/send_message">
**Descrição:** Enviar uma mensagem para um canal do Teams.
**Parâmetros:**
- `team_id` (string, obrigatório): O ID da equipe.
- `channel_id` (string, obrigatório): O ID do canal.
- `message` (string, obrigatório): O conteúdo da mensagem.
- `content_type` (string, opcional): Tipo de conteúdo (html ou text). Opções: html, text. Padrão: text.
</Accordion>
<Accordion title="microsoft_teams/get_messages">
**Descrição:** Obter mensagens de um canal do Teams.
**Parâmetros:**
- `team_id` (string, obrigatório): O ID da equipe.
- `channel_id` (string, obrigatório): O ID do canal.
- `top` (integer, opcional): Número de mensagens a recuperar (máx 50). Padrão: 20.
</Accordion>
<Accordion title="microsoft_teams/create_meeting">
**Descrição:** Criar uma reunião do Teams.
**Parâmetros:**
- `subject` (string, obrigatório): Assunto/título da reunião.
- `startDateTime` (string, obrigatório): Hora de início da reunião (formato ISO 8601 com fuso horário).
- `endDateTime` (string, obrigatório): Hora de término da reunião (formato ISO 8601 com fuso horário).
</Accordion>
<Accordion title="microsoft_teams/search_online_meetings_by_join_url">
**Descrição:** Pesquisar reuniões online por URL de participação na web.
**Parâmetros:**
- `join_web_url` (string, obrigatório): A URL de participação na web da reunião a pesquisar.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Microsoft Teams
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Microsoft Teams
teams_agent = Agent(
role="Coordenador do Teams",
goal="Gerenciar comunicação e reuniões do Teams de forma eficiente",
backstory="Um assistente IA especializado em operações do Microsoft Teams e colaboração em equipe.",
apps=['microsoft_teams'] # Todas as ações do Teams estarão disponíveis
)
# Tarefa para listar equipes e canais
explore_teams_task = Task(
description="Listar todas as equipes das quais sou membro e depois obter os canais da primeira equipe.",
agent=teams_agent,
expected_output="Lista de equipes e canais exibida."
)
# Execute a tarefa
crew = Crew(
agents=[teams_agent],
tasks=[explore_teams_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Microsoft tenha as permissões necessárias para acesso ao Teams.
- Escopos necessários incluem: `Team.ReadBasic.All`, `Channel.ReadBasic.All`, `ChannelMessage.Send`, `ChannelMessage.Read.All`, `OnlineMeetings.ReadWrite`, `OnlineMeetings.Read`.
**Acesso a Equipes e Canais**
- Certifique-se de que você é membro das equipes que está tentando acessar.
- Verifique novamente os IDs de equipe e canal para correção.
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Microsoft Teams.
</Card>

View File

@@ -0,0 +1,127 @@
---
title: Integração Microsoft Word
description: "Criação e gerenciamento de documentos com integração Microsoft Word para CrewAI."
icon: "file-word"
mode: "wide"
---
## Visão Geral
Permita que seus agentes criem, leiam e gerenciem documentos do Word e arquivos de texto no OneDrive ou SharePoint. Automatize a criação de documentos, recupere conteúdo, gerencie propriedades de documentos e simplifique seus fluxos de trabalho de documentos com automação alimentada por IA.
## Pré-requisitos
Antes de usar a integração Microsoft Word, certifique-se de ter:
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Microsoft com acesso ao Word e OneDrive/SharePoint
- Conectado sua conta Microsoft através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
## Configurando a Integração Microsoft Word
### 1. Conecte sua Conta Microsoft
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Microsoft Word** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para acesso a arquivos
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
```bash
uv add crewai-tools
```
## Ações Disponíveis
<AccordionGroup>
<Accordion title="microsoft_word/get_documents">
**Descrição:** Obter todos os documentos do Word do OneDrive ou SharePoint.
**Parâmetros:**
- `select` (string, opcional): Selecionar propriedades específicas para retornar.
- `filter` (string, opcional): Filtrar resultados usando sintaxe OData.
- `expand` (string, opcional): Expandir recursos relacionados inline.
- `top` (integer, opcional): Número de itens a retornar (mín 1, máx 999).
- `orderby` (string, opcional): Ordenar resultados por propriedades especificadas.
</Accordion>
<Accordion title="microsoft_word/create_text_document">
**Descrição:** Criar um documento de texto (.txt) com conteúdo. RECOMENDADO para criação de conteúdo programático que precisa ser legível e editável.
**Parâmetros:**
- `file_name` (string, obrigatório): Nome do documento de texto (deve terminar com .txt).
- `content` (string, opcional): Conteúdo de texto para o documento. Padrão: "Este é um novo documento de texto criado via API."
</Accordion>
<Accordion title="microsoft_word/get_document_content">
**Descrição:** Obter o conteúdo de um documento (funciona melhor com arquivos de texto).
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do documento.
</Accordion>
<Accordion title="microsoft_word/get_document_properties">
**Descrição:** Obter propriedades e metadados de um documento.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do documento.
</Accordion>
<Accordion title="microsoft_word/delete_document">
**Descrição:** Excluir um documento.
**Parâmetros:**
- `file_id` (string, obrigatório): O ID do documento a excluir.
</Accordion>
</AccordionGroup>
## Exemplos de Uso
### Configuração Básica do Agente Microsoft Word
```python
from crewai import Agent, Task, Crew
# Crie um agente com capacidades do Microsoft Word
word_agent = Agent(
role="Gerenciador de Documentos",
goal="Gerenciar documentos do Word e arquivos de texto de forma eficiente",
backstory="Um assistente IA especializado em operações de documentos do Microsoft Word e gerenciamento de conteúdo.",
apps=['microsoft_word'] # Todas as ações do Word estarão disponíveis
)
# Tarefa para criar um novo documento de texto
create_doc_task = Task(
description="Criar um novo documento de texto chamado 'notas_reuniao.txt' com conteúdo 'Notas da Reunião de Janeiro de 2024: Pontos-chave de discussão e itens de ação.'",
agent=word_agent,
expected_output="Novo documento de texto 'notas_reuniao.txt' criado com sucesso."
)
# Execute a tarefa
crew = Crew(
agents=[word_agent],
tasks=[create_doc_task]
)
crew.kickoff()
```
## Solução de Problemas
### Problemas Comuns
**Erros de Autenticação**
- Certifique-se de que sua conta Microsoft tenha as permissões necessárias para acesso a arquivos (ex: `Files.Read.All`, `Files.ReadWrite.All`).
- Verifique se a conexão OAuth inclui todos os escopos necessários.
**Problemas de Criação de Arquivos**
- Ao criar documentos de texto, certifique-se de que o `file_name` termine com extensão `.txt`.
- Verifique se você tem permissões de escrita no local de destino (OneDrive/SharePoint).
### Obtendo Ajuda
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Microsoft Word.
</Card>

View File

@@ -25,7 +25,7 @@ Antes de usar a integração com o Notion, certifique-se de que você tem:
2. Procure por **Notion** na seção de Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo de OAuth
4. Conceda as permissões necessárias para gerenciamento de páginas e bancos de dados
5. Copie seu Token Enterprise em [Configurações da Conta](https://app.crewai.com/crewai_plus/settings/account)
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
### 2. Instale o Pacote Necessário
@@ -36,7 +36,7 @@ uv add crewai-tools
## Ações Disponíveis
<AccordionGroup>
<Accordion title="NOTION_CREATE_PAGE">
<Accordion title="notion/create_page">
**Descrição:** Cria uma página no Notion.
**Parâmetros:**
@@ -93,7 +93,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="NOTION_UPDATE_PAGE">
<Accordion title="notion/update_page">
**Descrição:** Atualiza uma página no Notion.
**Parâmetros:**
@@ -127,21 +127,21 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="NOTION_GET_PAGE_BY_ID">
<Accordion title="notion/get_page_by_id">
**Descrição:** Busca uma página pelo ID no Notion.
**Parâmetros:**
- `pageId` (string, obrigatório): Page ID - Especifique o ID da Página a ser buscada. (exemplo: "59833787-2cf9-4fdf-8782-e53db20768a5").
</Accordion>
<Accordion title="NOTION_ARCHIVE_PAGE">
<Accordion title="notion/archive_page">
**Descrição:** Arquiva uma página no Notion.
**Parâmetros:**
- `pageId` (string, obrigatório): Page ID - Especifique o ID da Página a ser arquivada. (exemplo: "59833787-2cf9-4fdf-8782-e53db20768a5").
</Accordion>
<Accordion title="NOTION_SEARCH_PAGES">
<Accordion title="notion/search_pages">
**Descrição:** Pesquisa páginas no Notion utilizando filtros.
**Parâmetros:**
@@ -166,14 +166,14 @@ uv add crewai-tools
Campos disponíveis: `query`, `filter.value`, `direction`, `page_size`
</Accordion>
<Accordion title="NOTION_GET_PAGE_CONTENT">
<Accordion title="notion/get_page_content">
**Descrição:** Obtém o conteúdo (blocos) de uma página no Notion.
**Parâmetros:**
- `blockId` (string, obrigatório): Page ID - Especifique o ID de um Bloco ou Página para receber todos os seus blocos filhos na ordem correta. (exemplo: "59833787-2cf9-4fdf-8782-e53db20768a5").
</Accordion>
<Accordion title="NOTION_UPDATE_BLOCK">
<Accordion title="notion/update_block">
**Descrição:** Atualiza um bloco no Notion.
**Parâmetros:**
@@ -260,14 +260,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="NOTION_GET_BLOCK_BY_ID">
<Accordion title="notion/get_block_by_id">
**Descrição:** Busca um bloco pelo ID no Notion.
**Parâmetros:**
- `blockId` (string, obrigatório): Block ID - Especifique o ID do Bloco a ser buscado. (exemplo: "9bc30ad4-9373-46a5-84ab-0a7845ee52e6").
</Accordion>
<Accordion title="NOTION_DELETE_BLOCK">
<Accordion title="notion/delete_block">
**Descrição:** Exclui um bloco no Notion.
**Parâmetros:**
@@ -281,19 +281,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Notion tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Notion capabilities
notion_agent = Agent(
role="Documentation Manager",
goal="Manage documentation and knowledge base in Notion efficiently",
backstory="An AI assistant specialized in content management and documentation.",
tools=[enterprise_tools]
apps=['notion']
)
# Task to create a meeting notes page
@@ -315,19 +309,12 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Notion
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Notion tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["notion_create_page", "notion_update_block", "notion_search_pages"]
)
content_manager = Agent(
role="Content Manager",
goal="Create and manage content pages efficiently",
backstory="An AI assistant that focuses on content creation and management.",
tools=enterprise_tools
apps=['notion']
)
# Task to manage content workflow
@@ -349,17 +336,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
knowledge_curator = Agent(
role="Knowledge Curator",
goal="Curate and organize knowledge base content in Notion",
backstory="An experienced knowledge manager who organizes and maintains comprehensive documentation.",
tools=[enterprise_tools]
apps=['notion']
)
# Task to curate knowledge base
@@ -386,17 +368,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
content_organizer = Agent(
role="Content Organizer",
goal="Organize and structure content blocks for optimal readability",
backstory="An AI assistant that specializes in content structure and user experience.",
tools=[enterprise_tools]
apps=['notion']
)
# Task to organize content structure
@@ -424,17 +401,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
doc_automator = Agent(
role="Documentation Automator",
goal="Automate documentation workflows and maintenance",
backstory="An AI assistant that automates repetitive documentation tasks.",
tools=[enterprise_tools]
apps=['notion']
)
# Complex documentation automation task

View File

@@ -22,7 +22,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
### **Gerenciamento de Registros**
<AccordionGroup>
<Accordion title="SALESFORCE_CREATE_RECORD_CONTACT">
<Accordion title="salesforce/create_record_contact">
**Descrição:** Crie um novo registro de Contato no Salesforce.
**Parâmetros:**
@@ -35,7 +35,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Contato
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_LEAD">
<Accordion title="salesforce/create_record_lead">
**Descrição:** Crie um novo registro de Lead no Salesforce.
**Parâmetros:**
@@ -51,7 +51,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Lead
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_OPPORTUNITY">
<Accordion title="salesforce/create_record_opportunity">
**Descrição:** Crie um novo registro de Oportunidade no Salesforce.
**Parâmetros:**
@@ -66,7 +66,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Oportunidade
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_TASK">
<Accordion title="salesforce/create_record_task">
**Descrição:** Crie um novo registro de Tarefa no Salesforce.
**Parâmetros:**
@@ -84,7 +84,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Tarefa
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_ACCOUNT">
<Accordion title="salesforce/create_record_account">
**Descrição:** Crie um novo registro de Conta no Salesforce.
**Parâmetros:**
@@ -96,7 +96,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Conta
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_ANY">
<Accordion title="salesforce/create_record_any">
**Descrição:** Crie um registro de qualquer tipo de objeto no Salesforce.
**Nota:** Esta é uma ferramenta flexível para criar registros de tipos de objetos personalizados ou desconhecidos.
@@ -106,7 +106,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
### **Atualização de Registros**
<AccordionGroup>
<Accordion title="SALESFORCE_UPDATE_RECORD_CONTACT">
<Accordion title="salesforce/update_record_contact">
**Descrição:** Atualize um registro de Contato existente no Salesforce.
**Parâmetros:**
@@ -120,7 +120,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Contato
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_LEAD">
<Accordion title="salesforce/update_record_lead">
**Descrição:** Atualize um registro de Lead existente no Salesforce.
**Parâmetros:**
@@ -137,7 +137,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Lead
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_OPPORTUNITY">
<Accordion title="salesforce/update_record_opportunity">
**Descrição:** Atualize um registro de Oportunidade existente no Salesforce.
**Parâmetros:**
@@ -153,7 +153,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Oportunidade
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_TASK">
<Accordion title="salesforce/update_record_task">
**Descrição:** Atualize um registro de Tarefa existente no Salesforce.
**Parâmetros:**
@@ -171,7 +171,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Tarefa
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_ACCOUNT">
<Accordion title="salesforce/update_record_account">
**Descrição:** Atualize um registro de Conta existente no Salesforce.
**Parâmetros:**
@@ -184,7 +184,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Conta
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_ANY">
<Accordion title="salesforce/update_record_any">
**Descrição:** Atualize um registro de qualquer tipo de objeto no Salesforce.
**Nota:** Esta é uma ferramenta flexível para atualizar registros de tipos de objetos personalizados ou desconhecidos.
@@ -194,42 +194,42 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
### **Recuperação de Registros**
<AccordionGroup>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_CONTACT">
<Accordion title="salesforce/get_record_by_id_contact">
**Descrição:** Obtenha um registro de Contato pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do registro do Contato
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_LEAD">
<Accordion title="salesforce/get_record_by_id_lead">
**Descrição:** Obtenha um registro de Lead pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do registro do Lead
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_OPPORTUNITY">
<Accordion title="salesforce/get_record_by_id_opportunity">
**Descrição:** Obtenha um registro de Oportunidade pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do registro da Oportunidade
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_TASK">
<Accordion title="salesforce/get_record_by_id_task">
**Descrição:** Obtenha um registro de Tarefa pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do registro da Tarefa
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_ACCOUNT">
<Accordion title="salesforce/get_record_by_id_account">
**Descrição:** Obtenha um registro de Conta pelo seu ID.
**Parâmetros:**
- `recordId` (string, obrigatório): ID do registro da Conta
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_ANY">
<Accordion title="salesforce/get_record_by_id_any">
**Descrição:** Obtenha um registro de qualquer tipo de objeto pelo seu ID.
**Parâmetros:**
@@ -241,7 +241,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
### **Busca de Registros**
<AccordionGroup>
<Accordion title="SALESFORCE_SEARCH_RECORDS_CONTACT">
<Accordion title="salesforce/search_records_contact">
**Descrição:** Pesquise registros de Contato com filtragem avançada.
**Parâmetros:**
@@ -252,7 +252,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_LEAD">
<Accordion title="salesforce/search_records_lead">
**Descrição:** Pesquise registros de Lead com filtragem avançada.
**Parâmetros:**
@@ -263,7 +263,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_OPPORTUNITY">
<Accordion title="salesforce/search_records_opportunity">
**Descrição:** Pesquise registros de Oportunidade com filtragem avançada.
**Parâmetros:**
@@ -274,7 +274,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_TASK">
<Accordion title="salesforce/search_records_task">
**Descrição:** Pesquise registros de Tarefa com filtragem avançada.
**Parâmetros:**
@@ -285,7 +285,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_ACCOUNT">
<Accordion title="salesforce/search_records_account">
**Descrição:** Pesquise registros de Conta com filtragem avançada.
**Parâmetros:**
@@ -296,7 +296,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_ANY">
<Accordion title="salesforce/search_records_any">
**Descrição:** Pesquise registros de qualquer tipo de objeto.
**Parâmetros:**
@@ -310,7 +310,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
### **Recuperação por List View**
<AccordionGroup>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_CONTACT">
<Accordion title="salesforce/get_record_by_view_id_contact">
**Descrição:** Obtenha registros de Contato de um List View específico.
**Parâmetros:**
@@ -318,7 +318,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_LEAD">
<Accordion title="salesforce/get_record_by_view_id_lead">
**Descrição:** Obtenha registros de Lead de um List View específico.
**Parâmetros:**
@@ -326,7 +326,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_OPPORTUNITY">
<Accordion title="salesforce/get_record_by_view_id_opportunity">
**Descrição:** Obtenha registros de Oportunidade de um List View específico.
**Parâmetros:**
@@ -334,7 +334,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_TASK">
<Accordion title="salesforce/get_record_by_view_id_task">
**Descrição:** Obtenha registros de Tarefa de um List View específico.
**Parâmetros:**
@@ -342,7 +342,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_ACCOUNT">
<Accordion title="salesforce/get_record_by_view_id_account">
**Descrição:** Obtenha registros de Conta de um List View específico.
**Parâmetros:**
@@ -350,7 +350,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `paginationParameters` (object, opcional): Configurações de paginação com pageCursor
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_ANY">
<Accordion title="salesforce/get_record_by_view_id_any">
**Descrição:** Obtenha registros de qualquer tipo de objeto a partir de um List View específico.
**Parâmetros:**
@@ -363,7 +363,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
### **Campos Personalizados**
<AccordionGroup>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_CONTACT">
<Accordion title="salesforce/create_custom_field_contact">
**Descrição:** Crie campos personalizados para objetos de Contato.
**Parâmetros:**
@@ -379,7 +379,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `defaultFieldValue` (string, opcional): Valor padrão do campo
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_LEAD">
<Accordion title="salesforce/create_custom_field_lead">
**Descrição:** Crie campos personalizados para objetos de Lead.
**Parâmetros:**
@@ -395,7 +395,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `defaultFieldValue` (string, opcional): Valor padrão do campo
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_OPPORTUNITY">
<Accordion title="salesforce/create_custom_field_opportunity">
**Descrição:** Crie campos personalizados para objetos de Oportunidade.
**Parâmetros:**
@@ -411,7 +411,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `defaultFieldValue` (string, opcional): Valor padrão do campo
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_TASK">
<Accordion title="salesforce/create_custom_field_task">
**Descrição:** Crie campos personalizados para objetos de Tarefa.
**Parâmetros:**
@@ -427,7 +427,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `defaultFieldValue` (string, opcional): Valor padrão do campo
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_ACCOUNT">
<Accordion title="salesforce/create_custom_field_account">
**Descrição:** Crie campos personalizados para objetos de Conta.
**Parâmetros:**
@@ -443,7 +443,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `defaultFieldValue` (string, opcional): Valor padrão do campo
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_ANY">
<Accordion title="salesforce/create_custom_field_any">
**Descrição:** Crie campos personalizados para qualquer tipo de objeto.
**Nota:** Esta é uma ferramenta flexível para criar campos personalizados para tipos de objetos personalizados ou desconhecidos.
@@ -453,14 +453,14 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
### **Operações Avançadas**
<AccordionGroup>
<Accordion title="SALESFORCE_WRITE_SOQL_QUERY">
<Accordion title="salesforce/write_soql_query">
**Descrição:** Execute consultas SOQL personalizadas em seus dados do Salesforce.
**Parâmetros:**
- `query` (string, obrigatório): Consulta SOQL (ex.: "SELECT Id, Name FROM Account WHERE Name = 'Exemplo'")
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_OBJECT">
<Accordion title="salesforce/create_custom_object">
**Descrição:** Crie um novo objeto personalizado no Salesforce.
**Parâmetros:**
@@ -470,7 +470,7 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
- `recordName` (string, obrigatório): Nome do registro exibido em layouts e buscas (ex.: "Nome da Conta")
</Accordion>
<Accordion title="SALESFORCE_DESCRIBE_ACTION_SCHEMA">
<Accordion title="salesforce/describe_action_schema">
**Descrição:** Obtenha o schema esperado para operações em tipos de objetos específicos.
**Parâmetros:**
@@ -487,19 +487,15 @@ Antes de usar a integração Salesforce, certifique-se de que você possui:
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Obtenha ferramentas enterprise (ferramentas Salesforce serão incluídas)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Crie um agente com capacidades Salesforce
salesforce_agent = Agent(
role="CRM Manager",
goal="Manage customer relationships and sales processes efficiently",
backstory="An AI assistant specialized in CRM operations and sales automation.",
tools=[enterprise_tools]
apps=['salesforce']
)
# Task to create a new lead
@@ -521,19 +517,16 @@ crew.kickoff()
### Filtrando Ferramentas Salesforce Específicas
```python
from crewai_tools import CrewaiEnterpriseTools
# Obtenha apenas ferramentas Salesforce específicas
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["salesforce_create_record_lead", "salesforce_update_record_opportunity", "salesforce_search_records_contact"]
actions_list=["salesforce/create_record_lead", "salesforce/update_record_opportunity", "salesforce/search_records_contact"]
)
sales_manager = Agent(
role="Sales Manager",
goal="Manage leads and opportunities in the sales pipeline",
backstory="An experienced sales manager who handles lead qualification and opportunity management.",
tools=enterprise_tools
apps=['salesforce']
)
# Task to manage sales pipeline
@@ -555,17 +548,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
account_manager = Agent(
role="Account Manager",
goal="Manage customer accounts and maintain strong relationships",
backstory="An AI assistant that specializes in account management and customer relationship building.",
tools=[enterprise_tools]
apps=['salesforce']
)
# Task to manage customer accounts
@@ -591,17 +579,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
data_analyst = Agent(
role="Sales Data Analyst",
goal="Generate insights from Salesforce data using SOQL queries",
backstory="An analytical AI that excels at extracting meaningful insights from CRM data.",
tools=[enterprise_tools]
apps=['salesforce']
)
# Complex task involving SOQL queries and data analysis

View File

@@ -22,7 +22,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
### **Gerenciamento de Clientes**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_CUSTOMERS">
<Accordion title="shopify/get_customers">
**Descrição:** Recupera uma lista de clientes da sua loja Shopify.
**Parâmetros:**
@@ -34,7 +34,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `limit` (string, opcional): Número máximo de clientes a retornar (padrão 250)
</Accordion>
<Accordion title="SHOPIFY_SEARCH_CUSTOMERS">
<Accordion title="shopify/search_customers">
**Descrição:** Pesquise por clientes usando critérios de filtragem avançados.
**Parâmetros:**
@@ -42,7 +42,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `limit` (string, opcional): Número máximo de clientes a retornar (padrão 250)
</Accordion>
<Accordion title="SHOPIFY_CREATE_CUSTOMER">
<Accordion title="shopify/create_customer">
**Descrição:** Crie um novo cliente em sua loja Shopify.
**Parâmetros:**
@@ -63,7 +63,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `metafields` (object, opcional): Metacampos adicionais em formato JSON
</Accordion>
<Accordion title="SHOPIFY_UPDATE_CUSTOMER">
<Accordion title="shopify/update_customer">
**Descrição:** Atualize um cliente existente em sua loja Shopify.
**Parâmetros:**
@@ -89,7 +89,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
### **Gestão de Pedidos**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_ORDERS">
<Accordion title="shopify/get_orders">
**Descrição:** Recupera uma lista de pedidos da sua loja Shopify.
**Parâmetros:**
@@ -101,7 +101,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `limit` (string, opcional): Número máximo de pedidos a retornar (padrão 250)
</Accordion>
<Accordion title="SHOPIFY_CREATE_ORDER">
<Accordion title="shopify/create_order">
**Descrição:** Crie um novo pedido em sua loja Shopify.
**Parâmetros:**
@@ -114,7 +114,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `note` (string, opcional): Observação do pedido
</Accordion>
<Accordion title="SHOPIFY_UPDATE_ORDER">
<Accordion title="shopify/update_order">
**Descrição:** Atualize um pedido existente em sua loja Shopify.
**Parâmetros:**
@@ -128,7 +128,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `note` (string, opcional): Observação do pedido
</Accordion>
<Accordion title="SHOPIFY_GET_ABANDONED_CARTS">
<Accordion title="shopify/get_abandoned_carts">
**Descrição:** Recupera carrinhos abandonados da sua loja Shopify.
**Parâmetros:**
@@ -144,7 +144,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
### **Gestão de Produtos (REST API)**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_PRODUCTS">
<Accordion title="shopify/get_products">
**Descrição:** Recupera uma lista de produtos da sua loja Shopify utilizando a REST API.
**Parâmetros:**
@@ -160,7 +160,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `limit` (string, opcional): Número máximo de produtos a retornar (padrão 250)
</Accordion>
<Accordion title="SHOPIFY_CREATE_PRODUCT">
<Accordion title="shopify/create_product">
**Descrição:** Crie um novo produto em sua loja Shopify utilizando a REST API.
**Parâmetros:**
@@ -176,7 +176,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `publishToPointToSale` (boolean, opcional): Se deve publicar no ponto de venda
</Accordion>
<Accordion title="SHOPIFY_UPDATE_PRODUCT">
<Accordion title="shopify/update_product">
**Descrição:** Atualize um produto existente em sua loja Shopify utilizando a REST API.
**Parâmetros:**
@@ -197,14 +197,14 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
### **Gestão de Produtos (GraphQL)**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_PRODUCTS_GRAPHQL">
<Accordion title="shopify/get_products_graphql">
**Descrição:** Recupere produtos utilizando filtros avançados do GraphQL.
**Parâmetros:**
- `productFilterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com suporte a campos como id, title, vendor, status, handle, tag, created_at, updated_at, published_at
</Accordion>
<Accordion title="SHOPIFY_CREATE_PRODUCT_GRAPHQL">
<Accordion title="shopify/create_product_graphql">
**Descrição:** Crie um novo produto utilizando a API GraphQL com suporte aprimorado a mídias.
**Parâmetros:**
@@ -217,7 +217,7 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
- `additionalFields` (object, opcional): Campos adicionais do produto como status, requiresSellingPlan, giftCard
</Accordion>
<Accordion title="SHOPIFY_UPDATE_PRODUCT_GRAPHQL">
<Accordion title="shopify/update_product_graphql">
**Descrição:** Atualize um produto existente utilizando a API GraphQL com suporte aprimorado a mídias.
**Parâmetros:**
@@ -238,19 +238,13 @@ Antes de utilizar a integração com o Shopify, certifique-se de que você possu
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Shopify tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Shopify capabilities
shopify_agent = Agent(
role="E-commerce Manager",
goal="Manage online store operations and customer relationships efficiently",
backstory="An AI assistant specialized in e-commerce operations and online store management.",
tools=[enterprise_tools]
apps=['shopify']
)
# Task to create a new customer
@@ -272,19 +266,12 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Shopify
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Shopify tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["shopify_create_customer", "shopify_create_order", "shopify_get_products"]
)
store_manager = Agent(
role="Store Manager",
goal="Manage customer orders and product catalog",
backstory="An experienced store manager who handles customer relationships and inventory management.",
tools=enterprise_tools
apps=['shopify']
)
# Task to manage store operations
@@ -306,17 +293,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
product_manager = Agent(
role="Product Manager",
goal="Manage product catalog and inventory with advanced GraphQL capabilities",
backstory="An AI assistant that specializes in product management and catalog optimization.",
tools=[enterprise_tools]
apps=['shopify']
)
# Task to manage product catalog
@@ -343,17 +325,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
analytics_agent = Agent(
role="E-commerce Analyst",
goal="Analyze customer behavior and order patterns to optimize store performance",
backstory="An analytical AI that excels at extracting insights from e-commerce data.",
tools=[enterprise_tools]
apps=['shopify']
)
# Complex task involving multiple operations

View File

@@ -22,21 +22,21 @@ Antes de usar a integração com o Slack, certifique-se de que você tenha:
### **Gerenciamento de Usuários**
<AccordionGroup>
<Accordion title="SLACK_LIST_MEMBERS">
<Accordion title="slack/list_members">
**Descrição:** Lista todos os membros de um canal do Slack.
**Parâmetros:**
- Nenhum parâmetro necessário recupera todos os membros do canal
</Accordion>
<Accordion title="SLACK_GET_USER_BY_EMAIL">
<Accordion title="slack/get_user_by_email">
**Descrição:** Encontre um usuário no seu workspace do Slack pelo endereço de e-mail.
**Parâmetros:**
- `email` (string, obrigatório): O endereço de e-mail de um usuário do workspace
</Accordion>
<Accordion title="SLACK_GET_USERS_BY_NAME">
<Accordion title="slack/get_users_by_name">
**Descrição:** Pesquise usuários pelo nome ou nome de exibição.
**Parâmetros:**
@@ -50,7 +50,7 @@ Antes de usar a integração com o Slack, certifique-se de que você tenha:
### **Gerenciamento de Canais**
<AccordionGroup>
<Accordion title="SLACK_LIST_CHANNELS">
<Accordion title="slack/list_channels">
**Descrição:** Lista todos os canais do seu workspace no Slack.
**Parâmetros:**
@@ -61,7 +61,7 @@ Antes de usar a integração com o Slack, certifique-se de que você tenha:
### **Mensagens**
<AccordionGroup>
<Accordion title="SLACK_SEND_MESSAGE">
<Accordion title="slack/send_message">
**Descrição:** Envie uma mensagem para um canal do Slack.
**Parâmetros:**
@@ -73,7 +73,7 @@ Antes de usar a integração com o Slack, certifique-se de que você tenha:
- `authenticatedUser` (boolean, opcional): Se verdadeiro, a mensagem aparecerá como enviada pelo seu usuário autenticado do Slack ao invés do aplicativo (por padrão é falso)
</Accordion>
<Accordion title="SLACK_SEND_DIRECT_MESSAGE">
<Accordion title="slack/send_direct_message">
**Descrição:** Envie uma mensagem direta para um usuário específico no Slack.
**Parâmetros:**
@@ -89,7 +89,7 @@ Antes de usar a integração com o Slack, certifique-se de que você tenha:
### **Pesquisa & Descoberta**
<AccordionGroup>
<Accordion title="SLACK_SEARCH_MESSAGES">
<Accordion title="slack/search_messages">
**Descrição:** Procure por mensagens em todo o seu workspace do Slack.
**Parâmetros:**
@@ -150,19 +150,13 @@ O Block Kit do Slack permite criar mensagens ricas e interativas. Veja alguns ex
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Slack tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Slack capabilities
slack_agent = Agent(
role="Team Communication Manager",
goal="Facilitate team communication and coordinate collaboration efficiently",
backstory="An AI assistant specialized in team communication and workspace coordination.",
tools=[enterprise_tools]
apps=['slack']
)
# Task to send project updates
@@ -184,19 +178,12 @@ crew.kickoff()
### Filtrando Ferramentas Específicas do Slack
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Slack tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["slack_send_message", "slack_send_direct_message", "slack_search_messages"]
)
communication_manager = Agent(
role="Communication Coordinator",
goal="Manage team communications and ensure important messages reach the right people",
backstory="An experienced communication coordinator who handles team messaging and notifications.",
tools=enterprise_tools
apps=['slack']
)
# Task to coordinate team communication
@@ -218,17 +205,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
notification_agent = Agent(
role="Notification Manager",
goal="Create rich, interactive notifications and manage workspace communication",
backstory="An AI assistant that specializes in creating engaging team notifications and updates.",
tools=[enterprise_tools]
apps=['slack']
)
# Task to send rich notifications
@@ -254,17 +236,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
analytics_agent = Agent(
role="Communication Analyst",
goal="Analyze team communication patterns and extract insights from conversations",
backstory="An analytical AI that excels at understanding team dynamics through communication data.",
tools=[enterprise_tools]
apps=['slack']
)
# Complex task involving search and analysis

View File

@@ -22,7 +22,7 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
### **Gerenciamento de Clientes**
<AccordionGroup>
<Accordion title="STRIPE_CREATE_CUSTOMER">
<Accordion title="stripe/create_customer">
**Descrição:** Crie um novo cliente em sua conta Stripe.
**Parâmetros:**
@@ -32,14 +32,14 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
- `metadataCreateCustomer` (objeto, opcional): Metadados adicionais como pares chave-valor (exemplo: `{"field1": 1, "field2": 2}`)
</Accordion>
<Accordion title="STRIPE_GET_CUSTOMER_BY_ID">
<Accordion title="stripe/get_customer_by_id">
**Descrição:** Recupera um cliente específico pelo ID do cliente Stripe.
**Parâmetros:**
- `idGetCustomer` (string, obrigatório): O ID do cliente Stripe a ser recuperado
</Accordion>
<Accordion title="STRIPE_GET_CUSTOMERS">
<Accordion title="stripe/get_customers">
**Descrição:** Recupera uma lista de clientes com filtragem opcional.
**Parâmetros:**
@@ -49,7 +49,7 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
- `limitGetCustomers` (string, opcional): Número máximo de clientes a retornar (padrão: 10)
</Accordion>
<Accordion title="STRIPE_UPDATE_CUSTOMER">
<Accordion title="stripe/update_customer">
**Descrição:** Atualiza as informações de um cliente existente.
**Parâmetros:**
@@ -64,7 +64,7 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
### **Gerenciamento de Assinaturas**
<AccordionGroup>
<Accordion title="STRIPE_CREATE_SUBSCRIPTION">
<Accordion title="stripe/create_subscription">
**Descrição:** Cria uma nova assinatura para um cliente.
**Parâmetros:**
@@ -73,7 +73,7 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
- `metadataCreateSubscription` (objeto, opcional): Metadados adicionais para a assinatura
</Accordion>
<Accordion title="STRIPE_GET_SUBSCRIPTIONS">
<Accordion title="stripe/get_subscriptions">
**Descrição:** Recupera assinaturas com filtragem opcional.
**Parâmetros:**
@@ -86,7 +86,7 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
### **Gerenciamento de Produtos**
<AccordionGroup>
<Accordion title="STRIPE_CREATE_PRODUCT">
<Accordion title="stripe/create_product">
**Descrição:** Cria um novo produto no seu catálogo Stripe.
**Parâmetros:**
@@ -95,14 +95,14 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
- `metadataProduct` (objeto, opcional): Metadados adicionais do produto como pares chave-valor
</Accordion>
<Accordion title="STRIPE_GET_PRODUCT_BY_ID">
<Accordion title="stripe/get_product_by_id">
**Descrição:** Recupera um produto específico pelo ID do produto Stripe.
**Parâmetros:**
- `productId` (string, obrigatório): O ID do produto Stripe a ser recuperado
</Accordion>
<Accordion title="STRIPE_GET_PRODUCTS">
<Accordion title="stripe/get_products">
**Descrição:** Recupera uma lista de produtos com filtragem opcional.
**Parâmetros:**
@@ -115,7 +115,7 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
### **Operações Financeiras**
<AccordionGroup>
<Accordion title="STRIPE_GET_BALANCE_TRANSACTIONS">
<Accordion title="stripe/get_balance_transactions">
**Descrição:** Recupera transações de saldo da sua conta Stripe.
**Parâmetros:**
@@ -124,7 +124,7 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
- `pageCursor` (string, opcional): Cursor da página para paginação
</Accordion>
<Accordion title="STRIPE_GET_PLANS">
<Accordion title="stripe/get_plans">
**Descrição:** Recupera planos de assinatura da sua conta Stripe.
**Parâmetros:**
@@ -140,19 +140,13 @@ Antes de usar a integração com o Stripe, certifique-se de que você tem:
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Stripe tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Stripe capabilities
stripe_agent = Agent(
role="Payment Manager",
goal="Manage customer payments, subscriptions, and billing operations efficiently",
backstory="An AI assistant specialized in payment processing and subscription management.",
tools=[enterprise_tools]
apps=['stripe']
)
# Task to create a new customer
@@ -174,19 +168,12 @@ crew.kickoff()
### Filtrando Ferramentas Stripe Específicas
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Stripe tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["stripe_create_customer", "stripe_create_subscription", "stripe_get_balance_transactions"]
)
billing_manager = Agent(
role="Billing Manager",
goal="Handle customer billing, subscriptions, and payment processing",
backstory="An experienced billing manager who handles subscription lifecycle and payment operations.",
tools=enterprise_tools
apps=['stripe']
)
# Task to manage billing operations
@@ -208,17 +195,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
subscription_manager = Agent(
role="Subscription Manager",
goal="Manage customer subscriptions and optimize recurring revenue",
backstory="An AI assistant that specializes in subscription lifecycle management and customer retention.",
tools=[enterprise_tools]
apps=['stripe']
)
# Task to manage subscription operations
@@ -245,17 +227,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
financial_analyst = Agent(
role="Financial Analyst",
goal="Analyze payment data and generate financial insights",
backstory="An analytical AI that excels at extracting insights from payment and subscription data.",
tools=[enterprise_tools]
apps=['stripe']
)
# Complex task involving financial analysis

View File

@@ -22,7 +22,7 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
### **Gerenciamento de Tickets**
<AccordionGroup>
<Accordion title="ZENDESK_CREATE_TICKET">
<Accordion title="zendesk/create_ticket">
**Descrição:** Crie um novo ticket de suporte no Zendesk.
**Parâmetros:**
@@ -40,7 +40,7 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
- `ticketCustomFields` (object, opcional): Valores de campos personalizados em formato JSON
</Accordion>
<Accordion title="ZENDESK_UPDATE_TICKET">
<Accordion title="zendesk/update_ticket">
**Descrição:** Atualize um ticket de suporte existente no Zendesk.
**Parâmetros:**
@@ -58,14 +58,14 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
- `ticketCustomFields` (object, opcional): Valores atualizados dos campos personalizados
</Accordion>
<Accordion title="ZENDESK_GET_TICKET_BY_ID">
<Accordion title="zendesk/get_ticket_by_id">
**Descrição:** Recupere um ticket específico pelo ID.
**Parâmetros:**
- `ticketId` (string, obrigatório): ID do ticket a ser recuperado (ex.: "35436")
</Accordion>
<Accordion title="ZENDESK_ADD_COMMENT_TO_TICKET">
<Accordion title="zendesk/add_comment_to_ticket">
**Descrição:** Adicione um comentário ou nota interna a um ticket existente.
**Parâmetros:**
@@ -75,7 +75,7 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
- `isPublic` (boolean, opcional): Verdadeiro para comentários públicos, falso para notas internas
</Accordion>
<Accordion title="ZENDESK_SEARCH_TICKETS">
<Accordion title="zendesk/search_tickets">
**Descrição:** Busque tickets usando diversos filtros e critérios.
**Parâmetros:**
@@ -100,7 +100,7 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
### **Gerenciamento de Usuários**
<AccordionGroup>
<Accordion title="ZENDESK_CREATE_USER">
<Accordion title="zendesk/create_user">
**Descrição:** Crie um novo usuário no Zendesk.
**Parâmetros:**
@@ -113,7 +113,7 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
- `notes` (string, opcional): Notas internas sobre o usuário
</Accordion>
<Accordion title="ZENDESK_UPDATE_USER">
<Accordion title="zendesk/update_user">
**Descrição:** Atualize informações de um usuário existente.
**Parâmetros:**
@@ -127,14 +127,14 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
- `notes` (string, opcional): Novas notas internas
</Accordion>
<Accordion title="ZENDESK_GET_USER_BY_ID">
<Accordion title="zendesk/get_user_by_id">
**Descrição:** Recupere um usuário específico pelo ID.
**Parâmetros:**
- `userId` (string, obrigatório): ID do usuário a ser recuperado
</Accordion>
<Accordion title="ZENDESK_SEARCH_USERS">
<Accordion title="zendesk/search_users">
**Descrição:** Busque usuários utilizando vários critérios.
**Parâmetros:**
@@ -150,7 +150,7 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
### **Ferramentas Administrativas**
<AccordionGroup>
<Accordion title="ZENDESK_GET_TICKET_FIELDS">
<Accordion title="zendesk/get_ticket_fields">
**Descrição:** Recupere todos os campos padrão e personalizados disponíveis para tickets.
**Parâmetros:**
@@ -158,7 +158,7 @@ Antes de usar a integração com o Zendesk, certifique-se de que você possui:
- `pageCursor` (string, opcional): Cursor de página para paginação
</Accordion>
<Accordion title="ZENDESK_GET_TICKET_AUDITS">
<Accordion title="zendesk/get_ticket_audits">
**Descrição:** Obtenha registros de auditoria (histórico somente leitura) dos tickets.
**Parâmetros:**
@@ -205,19 +205,15 @@ Progresso padrão de status dos tickets:
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Obtenha as ferramentas enterprise (as ferramentas Zendesk serão incluídas)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Crie um agente com capacidades Zendesk
zendesk_agent = Agent(
role="Gerente de Suporte",
goal="Gerenciar tickets de suporte ao cliente e oferecer excelente atendimento",
backstory="Um assistente de IA especializado em operações de suporte ao cliente e gerenciamento de tickets.",
tools=[enterprise_tools]
apps=['zendesk']
)
# Tarefa para criar um novo ticket de suporte
@@ -239,19 +235,16 @@ crew.kickoff()
### Filtrando Ferramentas Zendesk Específicas
```python
from crewai_tools import CrewaiEnterpriseTools
# Obtenha apenas ferramentas Zendesk específicas
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["zendesk_create_ticket", "zendesk_update_ticket", "zendesk_add_comment_to_ticket"]
actions_list=["zendesk/create_ticket", "zendesk/update_ticket", "zendesk/add_comment_to_ticket"]
)
support_agent = Agent(
role="Agente de Suporte ao Cliente",
goal="Atender consultas de clientes e resolver issues de suporte de forma eficiente",
backstory="Um agente de suporte experiente que se especializa em resolução de tickets e comunicação com clientes.",
tools=enterprise_tools
apps=['zendesk']
)
# Tarefa para gerenciar o fluxo de suporte
@@ -273,17 +266,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
ticket_manager = Agent(
role="Gerente de Tickets",
goal="Gerenciar fluxos de tickets de suporte e garantir resolução tempestiva",
backstory="Um assistente de IA que se especializa em triagem de tickets de suporte e otimização de fluxos de trabalho.",
tools=[enterprise_tools]
apps=['zendesk']
)
# Tarefa para gerenciar o ciclo de vida do ticket
@@ -310,17 +298,12 @@ crew.kickoff()
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
support_analyst = Agent(
role="Analista de Suporte",
goal="Analisar métricas de suporte e gerar insights para desempenho da equipe",
backstory="Um IA analítico que se destaca na extração de insights a partir de dados de suporte e padrões de tickets.",
tools=[enterprise_tools]
apps=['zendesk']
)
# Tarefa complexa envolvendo análise e geração de relatórios

View File

@@ -0,0 +1,232 @@
---
title: Integração DSL MCP
description: Aprenda a usar a sintaxe DSL simples do CrewAI para integrar servidores MCP diretamente com seus agentes usando o campo mcps.
icon: code
mode: "wide"
---
## Visão Geral
A integração DSL (Domain Specific Language) MCP do CrewAI oferece a **forma mais simples** de conectar seus agentes aos servidores MCP (Model Context Protocol). Basta adicionar um campo `mcps` ao seu agente e o CrewAI cuida de toda a complexidade automaticamente.
<Info>
Esta é a **abordagem recomendada** para a maioria dos casos de uso de MCP. Para cenários avançados que requerem gerenciamento manual de conexão, veja [MCPServerAdapter](/pt-BR/mcp/overview#advanced-mcpserveradapter).
</Info>
## Uso Básico
Adicione servidores MCP ao seu agente usando o campo `mcps`:
```python
from crewai import Agent
agent = Agent(
role="Assistente de Pesquisa",
goal="Ajudar com tarefas de pesquisa e análise",
backstory="Assistente especialista com acesso a ferramentas avançadas de pesquisa",
mcps=[
"https://mcp.exa.ai/mcp?api_key=sua_chave&profile=pesquisa"
]
)
# As ferramentas MCP agora estão automaticamente disponíveis!
# Não é necessário gerenciamento manual de conexão ou configuração de ferramentas
```
## Formatos de Referência Suportados
### Servidores MCP Remotos Externos
```python
# Servidor HTTPS básico
"https://api.example.com/mcp"
# Servidor com autenticação
"https://mcp.exa.ai/mcp?api_key=sua_chave&profile=seu_perfil"
# Servidor com caminho personalizado
"https://services.company.com/api/v1/mcp"
```
### Seleção de Ferramentas Específicas
Use a sintaxe `#` para selecionar ferramentas específicas de um servidor:
```python
# Obter apenas a ferramenta de previsão do servidor meteorológico
"https://weather.api.com/mcp#get_forecast"
# Obter apenas a ferramenta de busca do Exa
"https://mcp.exa.ai/mcp?api_key=sua_chave#web_search_exa"
```
### Marketplace CrewAI AMP
Acesse ferramentas do marketplace CrewAI AMP:
```python
# Serviço completo com todas as ferramentas
"crewai-amp:financial-data"
# Ferramenta específica do serviço AMP
"crewai-amp:research-tools#pubmed_search"
# Múltiplos serviços AMP
mcps=[
"crewai-amp:weather-insights",
"crewai-amp:market-analysis",
"crewai-amp:social-media-monitoring"
]
```
## Exemplo Completo
Aqui está um exemplo completo usando múltiplos servidores MCP:
```python
from crewai import Agent, Task, Crew, Process
# Criar agente com múltiplas fontes MCP
agente_multi_fonte = Agent(
role="Analista de Pesquisa Multi-Fonte",
goal="Conduzir pesquisa abrangente usando múltiplas fontes de dados",
backstory="""Pesquisador especialista com acesso a busca web, dados meteorológicos,
informações financeiras e ferramentas de pesquisa acadêmica""",
mcps=[
# Servidores MCP externos
"https://mcp.exa.ai/mcp?api_key=sua_chave_exa&profile=pesquisa",
"https://weather.api.com/mcp#get_current_conditions",
# Marketplace CrewAI AMP
"crewai-amp:financial-insights",
"crewai-amp:academic-research#pubmed_search",
"crewai-amp:market-intelligence#competitor_analysis"
]
)
# Criar tarefa de pesquisa abrangente
tarefa_pesquisa = Task(
description="""Pesquisar o impacto dos agentes de IA na produtividade empresarial.
Incluir impactos climáticos atuais no trabalho remoto, tendências do mercado financeiro,
e publicações acadêmicas recentes sobre frameworks de agentes de IA.""",
expected_output="""Relatório abrangente cobrindo:
1. Análise do impacto dos agentes de IA nos negócios
2. Considerações climáticas para trabalho remoto
3. Tendências do mercado financeiro relacionadas à IA
4. Citações e insights de pesquisa acadêmica
5. Análise do cenário competitivo""",
agent=agente_multi_fonte
)
# Criar e executar crew
crew_pesquisa = Crew(
agents=[agente_multi_fonte],
tasks=[tarefa_pesquisa],
process=Process.sequential,
verbose=True
)
resultado = crew_pesquisa.kickoff()
print(f"Pesquisa concluída com {len(agente_multi_fonte.mcps)} fontes de dados MCP")
```
## Recursos Principais
- 🔄 **Descoberta Automática de Ferramentas**: Ferramentas são descobertas e integradas automaticamente
- 🏷️ **Prevenção de Colisão de Nomes**: Nomes de servidor são prefixados aos nomes das ferramentas
- ⚡ **Otimizado para Performance**: Conexões sob demanda com cache de esquemas
- 🛡️ **Resiliência a Erros**: Tratamento gracioso de servidores indisponíveis
- ⏱️ **Proteção por Timeout**: Timeouts integrados previnem conexões travadas
- 📊 **Integração Transparente**: Funciona perfeitamente com recursos existentes do CrewAI
## Tratamento de Erros
A integração DSL MCP é projetada para ser resiliente:
```python
agente = Agent(
role="Agente Resiliente",
goal="Continuar trabalhando apesar de problemas no servidor",
backstory="Agente que lida graciosamente com falhas",
mcps=[
"https://servidor-confiavel.com/mcp", # Vai funcionar
"https://servidor-inalcancavel.com/mcp", # Será ignorado graciosamente
"https://servidor-lento.com/mcp", # Timeout gracioso
"crewai-amp:servico-funcionando" # Vai funcionar
]
)
# O agente usará ferramentas de servidores funcionais e registrará avisos para os que falharem
```
## Recursos de Performance
### Cache Automático
Esquemas de ferramentas são cacheados por 5 minutos para melhorar a performance:
```python
# Primeira criação de agente - descobre ferramentas do servidor
agente1 = Agent(role="Primeiro", goal="Teste", backstory="Teste",
mcps=["https://api.example.com/mcp"])
# Segunda criação de agente (dentro de 5 minutos) - usa esquemas cacheados
agente2 = Agent(role="Segundo", goal="Teste", backstory="Teste",
mcps=["https://api.example.com/mcp"]) # Muito mais rápido!
```
### Conexões Sob Demanda
Conexões de ferramentas são estabelecidas apenas quando as ferramentas são realmente usadas:
```python
# Criação do agente é rápida - nenhuma conexão MCP feita ainda
agente = Agent(
role="Agente Sob Demanda",
goal="Usar ferramentas eficientemente",
backstory="Agente eficiente que conecta apenas quando necessário",
mcps=["https://api.example.com/mcp"]
)
# Conexão MCP é feita apenas quando uma ferramenta é realmente executada
# Isso minimiza o overhead de conexão e melhora a performance de inicialização
```
## Melhores Práticas
### 1. Use Ferramentas Específicas Quando Possível
```python
# Bom - obter apenas as ferramentas necessárias
mcps=["https://weather.api.com/mcp#get_forecast"]
# Menos eficiente - obter todas as ferramentas do servidor
mcps=["https://weather.api.com/mcp"]
```
### 2. Lidar com Autenticação de Forma Segura
```python
import os
# Armazenar chaves API em variáveis de ambiente
exa_key = os.getenv("EXA_API_KEY")
exa_profile = os.getenv("EXA_PROFILE")
agente = Agent(
role="Agente Seguro",
goal="Usar ferramentas MCP com segurança",
backstory="Agente consciente da segurança",
mcps=[f"https://mcp.exa.ai/mcp?api_key={exa_key}&profile={exa_profile}"]
)
```
### 3. Planejar para Falhas de Servidor
```python
# Sempre incluir opções de backup
mcps=[
"https://api-principal.com/mcp", # Escolha principal
"https://api-backup.com/mcp", # Opção de backup
"crewai-amp:servico-confiavel" # Fallback AMP
]
```

View File

@@ -8,12 +8,37 @@ mode: "wide"
## Visão Geral
O [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) fornece uma maneira padronizada para agentes de IA fornecerem contexto para LLMs comunicando-se com serviços externos, conhecidos como Servidores MCP.
A biblioteca `crewai-tools` expande as capacidades do CrewAI permitindo que você integre facilmente ferramentas desses servidores MCP em seus agentes.
Isso oferece às suas crews acesso a um vasto ecossistema de funcionalidades.
O CrewAI oferece **duas abordagens** para integração MCP:
### 🚀 **Novo: Integração DSL Simples** (Recomendado)
Use o campo `mcps` diretamente nos agentes para integração perfeita de ferramentas MCP:
```python
from crewai import Agent
agent = Agent(
role="Analista de Pesquisa",
goal="Pesquisar e analisar informações",
backstory="Pesquisador especialista com acesso a ferramentas externas",
mcps=[
"https://mcp.exa.ai/mcp?api_key=sua_chave", # Servidor MCP externo
"https://api.weather.com/mcp#get_forecast", # Ferramenta específica do servidor
"crewai-amp:financial-data", # Marketplace CrewAI AMP
"crewai-amp:research-tools#pubmed_search" # Ferramenta AMP específica
]
)
# Ferramentas MCP agora estão automaticamente disponíveis para seu agente!
```
### 🔧 **Avançado: MCPServerAdapter** (Para Cenários Complexos)
Para casos de uso avançados que requerem gerenciamento manual de conexão, a biblioteca `crewai-tools` fornece a classe `MCPServerAdapter`.
Atualmente, suportamos os seguintes mecanismos de transporte:
- **Stdio**: para servidores locais (comunicação via entrada/saída padrão entre processos na mesma máquina)
- **HTTPS**: para servidores remotos (comunicação segura via HTTPS)
- **Server-Sent Events (SSE)**: para servidores remotos (transmissão de dados unidirecional em tempo real do servidor para o cliente via HTTP)
- **Streamable HTTP**: para servidores remotos (comunicação flexível e potencialmente bidirecional via HTTP, geralmente utilizando SSE para streams do servidor para o cliente)