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 @@ mode: "wide"
1. <Link href="https://app.crewai.com/crewai_plus/connectors">Integrations</Link>로 이동
2. 원하는 서비스에서 <b>Connect</b> 클릭
3. OAuth 플로우 완료 및 스코프 승인
4. <b>Integration</b> 탭에서 Enterprise Token 복사
4. <Link href="https://app.crewai.com/crewai_plus/settings/integrations">통합 설정</Link>에서 Enterprise Token 복사
<Frame>
![Enterprise Token](/images/enterprise/enterprise_action_auth_token.png)
@@ -57,26 +57,37 @@ mode: "wide"
uv add crewai-tools
```
### 환경 변수 설정
<Note>
`Agent(apps=[])`와 함께 통합을 사용하려면 Enterprise Token으로 `CREWAI_PLATFORM_INTEGRATION_TOKEN` 환경 변수를 설정해야 합니다.
</Note>
```bash
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"
```
또는 `.env` 파일에 추가하세요:
```
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
```
### 사용 예시
<Tip>
인증된 모든 서비스는 도구로 제공됩니다. 에이전트에 `CrewaiEnterpriseTools`를 추가하세요.
새로운 간소화된 접근 방식을 사용하여 엔터프라이즈 앱을 통합하세요. Agent 구성에서 앱과 해당 액션을 직접 지정하기만 하면 됩니다.
</Tip>
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
print(enterprise_tools)
# Gmail 기능을 가진 에이전트 생성
email_agent = Agent(
role="이메일 매니저",
goal="이메일 커뮤니케이션 관리",
backstory="이메일 관리에 특화된 AI 어시스턴트",
tools=enterprise_tools
apps=['gmail', 'gmail/send_email'] # 정식 이름 'gmail' 사용
)
email_task = Task(
@@ -92,19 +103,14 @@ mode: "wide"
### 도구 필터링
```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
# 특정 Gmail 액션만 사용하는 에이전트 생성
gmail_agent = Agent(
role="Gmail 매니저",
goal="Gmail 커뮤니케이션 및 알림 관리",
backstory="Gmail 커뮤니케이션 조율 AI 어시스턴트",
tools=[gmail_tool]
apps=['gmail/fetch_emails'] # 정식 이름과 특정 액션 사용
)
notification_task = Task(

View File

@@ -110,19 +110,49 @@ CrewAI AMP 트리거는 팀이 이미 사용하고 있는 도구의 실시간
- `allow_crewai_trigger_context` 옵션으로 컨텍스트 자동 주입 여부를 결정했나요?
- 웹훅 로그, CrewAI 실행 기록, 외부 알림 등 모니터링을 준비했나요?
### Payload & Crew 예제 저장소
### CLI로 로컬에서 트리거 테스트
| 통합 | 동작 시점 | Payload 예제 | Crew 예제 |
| :-- | :-- | :-- | :-- |
| Gmail | 신규 메일, 스레드 업데이트 | [Gmail payload](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 | 이벤트 생성/수정/시작/종료/취소 | [Calendar payload](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 | 파일 생성/수정/삭제 | [Drive payload](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 | 새 이메일, 이벤트 제거 | [Outlook payload](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 | 파일 작업(생성, 수정, 공유, 삭제) | [OneDrive payload](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 | 레코드 생성/업데이트(연락처, 회사, 딜) | [HubSpot payload](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 | 채팅 생성 | [Teams payload](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) |
CrewAI CLI는 프로덕션에 배포하기 전에 트리거 기반 자동화를 개발하고 테스트할 수 있는 강력한 명령을 제공합니다.
예제 payload를 참고해 파싱 로직을 검증하고, 제공되는 crew를 복사해 실제 데이터로 교체하세요.
#### 사용 가능한 트리거 목록 보기
연결된 통합에 사용 가능한 모든 트리거를 확인하세요:
```bash
crewai triggers list
```
이 명령은 연결된 통합을 기반으로 사용 가능한 모든 트리거를 표시합니다:
- 통합 이름 및 연결 상태
- 사용 가능한 트리거 유형
- 트리거 이름 및 설명
#### 트리거 실행 시뮬레이션
배포 전에 실제 트리거 payload로 크루를 테스트하세요:
```bash
crewai triggers run <트리거_이름>
```
예시:
```bash
crewai triggers run microsoft_onedrive/file_changed
```
이 명령은:
- 로컬에서 크루를 실행합니다
- 완전하고 실제적인 트리거 payload를 전달합니다
- 프로덕션에서 크루가 호출되는 방식을 정확히 시뮬레이션합니다
<Warning>
**중요한 개발 노트:**
- 개발 중 트리거 실행을 시뮬레이션하려면 `crewai triggers run <trigger>`를 사용하세요
- `crewai run`을 사용하면 트리거 호출을 시뮬레이션하지 않으며 트리거 payload를 전달하지 않습니다
- 배포 후에는 실제 트리거 payload로 크루가 실행됩니다
- 크루가 트리거 payload에 없는 매개변수를 기대하면 실행이 실패할 수 있습니다
</Warning>
### 트리거와 Crew 연동
@@ -191,17 +221,20 @@ def delegate_to_crew(self, crewai_trigger_payload: dict = None):
## 문제 해결
**트리거가 실행되지 않나요?**
- 트리거가 활성 상태인지 확인하세요.
- 통합 연결 상태를 확인하세요.
- 배포의 Triggers 탭에서 트리거가 활성화되어 있는지 확인하세요
- Tools & Integrations에서 통합 연결 상태를 확인하세요
- 필요한 모든 환경 변수가 올바르게 구성되어 있는지 확인하세요
**실행 중 오류가 발생하나요?**
- 실행 로그에서 오류 메시지를 확인하세요.
- 개발 중이라면 `crewai_trigger_payload`가 올바른 데이터로 전달되고 있는지 확인하세요.
- 실행 로그에서 오류 세부 정보를 확인하세요
- `crewai triggers run <트리거_이름>`을 사용하여 로컬에서 테스트하고 정확한 payload 구조를 확인하세요
- 크루가 `crewai_trigger_payload` 매개변수를 처리할 수 있는지 확인하세요
- 크루가 트리거 payload에 포함되지 않은 매개변수를 기대하지 않는지 확인하세요
**개발 문제:**
- 배포하기 전에 항상 `crewai triggers run <trigger>`로 테스트하여 전체 payload를 확인하세요
- `crewai run`은 트리거 호출을 시뮬레이션하지 않으므로 `crewai triggers run`을 대신 사용하세요
- `crewai triggers list`를 사용하여 연결된 통합에 사용 가능한 트리거를 확인하세요
- 배포 후 크루는 실제 트리거 payload를 받으므로 먼저 로컬에서 철저히 테스트하세요
트리거를 활용하면 CrewAI 자동화를 이벤트 기반 시스템으로 전환하여 기존 비즈니스 프로세스와 도구에 자연스럽게 녹여낼 수 있습니다.
<Callout icon="github" title="예제 저장소">
<a href="https://github.com/crewAIInc/crewai-enterprise-trigger-examples">
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
### 로컬에서 테스트
The [CrewAI AMP Trigger Examples repository](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/gmail) includes:
CrewAI CLI를 사용하여 Gmail 트리거 통합을 로컬에서 테스트하세요:
- `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
# 사용 가능한 모든 트리거 보기
crewai triggers list
Use these samples to validate your parsing logic locally before wiring the trigger to your live Gmail accounts.
# 실제 payload로 Gmail 트리거 시뮬레이션
crewai triggers run gmail/new_email
```
`crewai triggers run` 명령은 완전한 Gmail payload로 크루를 실행하여 배포 전에 파싱 로직을 테스트할 수 있게 해줍니다.
<Warning>
개발 중에는 `crewai triggers run gmail/new_email`을 사용하세요 (`crewai run`이 아님). 배포 후에는 크루가 자동으로 트리거 payload를 받습니다.
</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
- `crewai triggers run gmail/new_email`로 로컬 테스트하여 정확한 payload 구조를 확인하세요
- Check the execution logs and confirm the payload is passed as `crewai_trigger_payload`
- 주의: 트리거 실행을 시뮬레이션하려면 `crewai triggers run`을 사용하세요 (`crewai run`이 아님)

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
## 로컬에서 테스트
The [Google Calendar examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_calendar) show how to handle multiple event types:
CrewAI CLI를 사용하여 Google Calendar 트리거 통합을 로컬에서 테스트하세요:
- `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
# 사용 가능한 모든 트리거 보기
crewai triggers list
Each crew transforms raw event metadata (attendees, rooms, working locations) into the summaries your teams need.
# 실제 payload로 Google Calendar 트리거 시뮬레이션
crewai triggers run google_calendar/event_changed
```
`crewai triggers run` 명령은 완전한 Calendar payload로 크루를 실행하여 배포 전에 파싱 로직을 테스트할 수 있게 해줍니다.
<Warning>
개발 중에는 `crewai triggers run google_calendar/event_changed`를 사용하세요 (`crewai run`이 아님). 배포 후에는 크루가 자동으로 트리거 payload를 받습니다.
</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
- `crewai triggers run google_calendar/event_changed`로 로컬 테스트하여 정확한 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
- 주의: 트리거 실행을 시뮬레이션하려면 `crewai triggers run`을 사용하세요 (`crewai run`이 아님)

View File

@@ -36,15 +36,23 @@ crew.kickoff({
})
```
## Sample payloads & crews
## 로컬에서 테스트
Explore the [Google Drive examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/google_drive) to cover different operations:
CrewAI CLI를 사용하여 Google Drive 트리거 통합을 로컬에서 테스트하세요:
- `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
# 사용 가능한 모든 트리거 보기
crewai triggers list
Each crew highlights the file name, operation type, owner, permissions, and security considerations so downstream systems can respond appropriately.
# 실제 payload로 Google Drive 트리거 시뮬레이션
crewai triggers run google_drive/file_changed
```
`crewai triggers run` 명령은 완전한 Drive payload로 크루를 실행하여 배포 전에 파싱 로직을 테스트할 수 있게 해줍니다.
<Warning>
개발 중에는 `crewai triggers run google_drive/file_changed`를 사용하세요 (`crewai run`이 아님). 배포 후에는 크루가 자동으로 트리거 payload를 받습니다.
</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
- `crewai triggers run google_drive/file_changed`로 로컬 테스트하여 정확한 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
- 주의: 트리거 실행을 시뮬레이션하려면 `crewai triggers run`을 사용하세요 (`crewai run`이 아님)

View File

@@ -49,6 +49,4 @@ mode: "wide"
</Step>
</Steps>
## 추가 자료
사용 가능한 작업과 사용자 지정 옵션에 대한 자세한 정보는 [HubSpot 워크플로우 문서](https://knowledge.hubspot.com/workflows/create-workflows)를 참고하세요.

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
## 로컬에서 테스트
The [Microsoft Teams examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/microsoft-teams) include:
CrewAI CLI를 사용하여 Microsoft Teams 트리거 통합을 로컬에서 테스트하세요:
- `chat-created.json` → chat creation payload processed by `teams-chat-created-crew.py`
```bash
# 사용 가능한 모든 트리거 보기
crewai triggers list
The crew demonstrates how to extract participants, initial messages, tenant information, and compliance metadata from the Microsoft Graph webhook payload.
# 실제 payload로 Microsoft Teams 트리거 시뮬레이션
crewai triggers run microsoft_teams/teams_message_created
```
`crewai triggers run` 명령은 완전한 Teams payload로 크루를 실행하여 배포 전에 파싱 로직을 테스트할 수 있게 해줍니다.
<Warning>
개발 중에는 `crewai triggers run microsoft_teams/teams_message_created`를 사용하세요 (`crewai run`이 아님). 배포 후에는 크루가 자동으로 트리거 payload를 받습니다.
</Warning>
## Troubleshooting
- Ensure the Teams connection is active; it must be refreshed if the tenant revokes permissions
- `crewai triggers run microsoft_teams/teams_message_created`로 로컬 테스트하여 정확한 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
- 주의: 트리거 실행을 시뮬레이션하려면 `crewai triggers run`을 사용하세요 (`crewai run`이 아님)

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
## 로컬에서 테스트
The [OneDrive examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/onedrive) showcase how to:
CrewAI CLI를 사용하여 OneDrive 트리거 통합을 로컬에서 테스트하세요:
- Parse file metadata, size, and folder paths
- Track who created and last modified the file
- Highlight permission and external sharing changes
```bash
# 사용 가능한 모든 트리거 보기
crewai triggers list
`onedrive-file-crew.py` bundles the analysis and summarization tasks so you can add remediation steps as needed.
# 실제 payload로 OneDrive 트리거 시뮬레이션
crewai triggers run microsoft_onedrive/file_changed
```
`crewai triggers run` 명령은 완전한 OneDrive payload로 크루를 실행하여 배포 전에 파싱 로직을 테스트할 수 있게 해줍니다.
<Warning>
개발 중에는 `crewai triggers run microsoft_onedrive/file_changed`를 사용하세요 (`crewai run`이 아님). 배포 후에는 크루가 자동으로 트리거 payload를 받습니다.
</Warning>
## Troubleshooting
- Ensure the connected account has permission to read the file metadata included in the webhook
- `crewai triggers run microsoft_onedrive/file_changed`로 로컬 테스트하여 정확한 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
- 주의: 트리거 실행을 시뮬레이션하려면 `crewai triggers run`을 사용하세요 (`crewai run`이 아님)

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
## 로컬에서 테스트
Review the [Outlook examples](https://github.com/crewAIInc/crewai-enterprise-trigger-examples/tree/main/outlook) for two common scenarios:
CrewAI CLI를 사용하여 Outlook 트리거 통합을 로컬에서 테스트하세요:
- `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
# 사용 가능한 모든 트리거 보기
crewai triggers list
Each crew demonstrates how to handle Microsoft Graph payloads, normalize headers, and keep humans in-the-loop with concise summaries.
# 실제 payload로 Outlook 트리거 시뮬레이션
crewai triggers run microsoft_outlook/email_received
```
`crewai triggers run` 명령은 완전한 Outlook payload로 크루를 실행하여 배포 전에 파싱 로직을 테스트할 수 있게 해줍니다.
<Warning>
개발 중에는 `crewai triggers run microsoft_outlook/email_received`를 사용하세요 (`crewai run`이 아님). 배포 후에는 크루가 자동으로 트리거 payload를 받습니다.
</Warning>
## Troubleshooting
- Verify the Outlook connector is still authorized; the subscription must be renewed periodically
- `crewai triggers run microsoft_outlook/email_received`로 로컬 테스트하여 정확한 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
- 주의: 트리거 실행을 시뮬레이션하려면 `crewai triggers run`을 사용하세요 (`crewai run`이 아님)

View File

@@ -25,7 +25,7 @@ Asana 연동을 사용하기 전에 다음을 확인하세요:
2. 인증 통합 섹션에서 **Asana**를 찾습니다.
3. **Connect**를 클릭하고 OAuth 플로우를 완료합니다.
4. 작업 및 프로젝트 관리를 위한 필요한 권한을 부여합니다.
5. [계정 설정](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="ASANA_CREATE_COMMENT">
<Accordion title="asana/create_comment">
**설명:** Asana에 댓글을 생성합니다.
**매개변수:**
@@ -44,7 +44,7 @@ uv add crewai-tools
- `text` (string, 필수): 텍스트 (예: "This is a comment.").
</Accordion>
<Accordion title="ASANA_CREATE_PROJECT">
<Accordion title="asana/create_project">
**설명:** Asana에 프로젝트를 생성합니다.
**매개변수:**
@@ -54,7 +54,7 @@ uv add crewai-tools
- `notes` (string, 선택): 노트 (예: "These are things we need to purchase.").
</Accordion>
<Accordion title="ASANA_GET_PROJECTS">
<Accordion title="asana/get_projects">
**설명:** Asana의 프로젝트 목록을 가져옵니다.
**매개변수:**
@@ -62,14 +62,14 @@ uv add crewai-tools
- 옵션: `default`, `true`, `false`
</Accordion>
<Accordion title="ASANA_GET_PROJECT_BY_ID">
<Accordion title="asana/get_project_by_id">
**설명:** Asana에서 ID로 프로젝트를 가져옵니다.
**매개변수:**
- `projectFilterId` (string, 필수): 프로젝트 ID.
</Accordion>
<Accordion title="ASANA_CREATE_TASK">
<Accordion title="asana/create_task">
**설명:** Asana에 작업을 생성합니다.
**매개변수:**
@@ -83,7 +83,7 @@ uv add crewai-tools
- `gid` (string, 선택): 외부 ID - 이 작업과 연결할 애플리케이션의 ID입니다. 이 ID를 사용하여 이후 작업 업데이트를 동기화할 수 있습니다.
</Accordion>
<Accordion title="ASANA_UPDATE_TASK">
<Accordion title="asana/update_task">
**설명:** Asana의 작업을 업데이트합니다.
**매개변수:**
@@ -98,7 +98,7 @@ uv add crewai-tools
- `gid` (string, 선택): 외부 ID - 이 작업과 연결할 애플리케이션의 ID입니다. 이 ID를 사용하여 이후 작업 업데이트를 동기화할 수 있습니다.
</Accordion>
<Accordion title="ASANA_GET_TASKS">
<Accordion title="asana/get_tasks">
**설명:** Asana의 작업 목록을 가져옵니다.
**매개변수:**
@@ -108,21 +108,21 @@ uv add crewai-tools
- `completedSince` (string, 선택): 이후 완료됨 - 미완료이거나 해당 시간(ISO 또는 Unix 타임스탬프) 이후에 완료된 작업만 반환합니다. (예: "2014-04-25T16:15:47-04:00").
</Accordion>
<Accordion title="ASANA_GET_TASKS_BY_ID">
<Accordion title="asana/get_tasks_by_id">
**설명:** Asana에서 ID로 작업 목록을 가져옵니다.
**매개변수:**
- `taskId` (string, 필수): 작업 ID.
</Accordion>
<Accordion title="ASANA_GET_TASK_BY_EXTERNAL_ID">
<Accordion title="asana/get_task_by_external_id">
**설명:** Asana에서 외부 ID로 작업을 가져옵니다.
**매개변수:**
- `gid` (string, 필수): 외부 ID - 이 작업이 애플리케이션과 연동(또는 동기화)된 ID입니다.
</Accordion>
<Accordion title="ASANA_ADD_TASK_TO_SECTION">
<Accordion title="asana/add_task_to_section">
**설명:** Asana에서 섹션에 작업을 추가합니다.
**매개변수:**
@@ -132,14 +132,14 @@ uv add crewai-tools
- `afterTaskId` (string, 선택): 이후 작업 ID - 이 작업이 삽입될 섹션 내의 작업 ID입니다. 이전 작업 ID와 함께 사용할 수 없습니다. (예: "1204619611402340").
</Accordion>
<Accordion title="ASANA_GET_TEAMS">
<Accordion title="asana/get_teams">
**설명:** Asana에서 팀 목록을 가져옵니다.
**매개변수:**
- `workspace` (string, 필수): 워크스페이스 - 인증된 사용자가 볼 수 있는 이 워크스페이스 내의 팀을 반환합니다.
</Accordion>
<Accordion title="ASANA_GET_WORKSPACES">
<Accordion title="asana/get_workspaces">
**설명:** Asana에서 워크스페이스 목록을 가져옵니다.
**매개변수:** 필요 없음.
@@ -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()
### 특정 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 @@ Box 통합을 사용하기 전에 다음을 확인하세요:
2. 인증 통합 섹션에서 **Box**를 찾습니다.
3. **Connect**를 클릭하고 OAuth 흐름을 완료합니다.
4. 파일 및 폴더 관리를 위한 필요한 권한을 부여합니다.
5. [Account Settings](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 액션
<AccordionGroup>
<Accordion title="BOX_SAVE_FILE">
<Accordion title="box/save_file">
**설명:** Box에서 URL로부터 파일을 저장합니다.
**파라미터:**
@@ -52,7 +52,7 @@ uv add crewai-tools
- `file` (string, 필수): 파일 URL - 파일 크기는 50MB 미만이어야 합니다. (예시: "https://picsum.photos/200/300").
</Accordion>
<Accordion title="BOX_SAVE_FILE_FROM_OBJECT">
<Accordion title="box/save_file_from_object">
**설명:** Box에 파일을 저장합니다.
**파라미터:**
@@ -61,14 +61,14 @@ uv add crewai-tools
- `folder` (string, 선택): 폴더 - Connect Portal Workflow Settings를 사용하여 사용자가 파일의 폴더 목적지를 선택할 수 있도록 합니다. 비워두면 기본적으로 사용자의 루트 폴더에 저장됩니다.
</Accordion>
<Accordion title="BOX_GET_FILE_BY_ID">
<Accordion title="box/get_file_by_id">
**설명:** Box에서 ID로 파일을 가져옵니다.
**파라미터:**
- `fileId` (string, 필수): 파일 ID - 파일을 나타내는 고유 식별자. (예시: "12345").
</Accordion>
<Accordion title="BOX_LIST_FILES">
<Accordion title="box/list_files">
**설명:** Box에서 파일 목록을 조회합니다.
**파라미터:**
@@ -93,7 +93,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_CREATE_FOLDER">
<Accordion title="box/create_folder">
**설명:** Box에 폴더를 생성합니다.
**파라미터:**
@@ -106,7 +106,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_MOVE_FOLDER">
<Accordion title="box/move_folder">
**설명:** Box에서 폴더를 이동합니다.
**파라미터:**
@@ -120,14 +120,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_GET_FOLDER_BY_ID">
<Accordion title="box/get_folder_by_id">
**설명:** Box에서 ID로 폴더를 가져옵니다.
**파라미터:**
- `folderId` (string, 필수): 폴더 ID - 폴더를 나타내는 고유 식별자. (예시: "0").
</Accordion>
<Accordion title="BOX_SEARCH_FOLDERS">
<Accordion title="box/search_folders">
**설명:** Box에서 폴더를 검색합니다.
**파라미터:**
@@ -152,7 +152,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="BOX_DELETE_FOLDER">
<Accordion title="box/delete_folder">
**설명:** Box에서 폴더를 삭제합니다.
**파라미터:**
@@ -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()
### 특정 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 @@ ClickUp 통합을 사용하기 전에 다음을 준비해야 합니다:
2. 인증 통합 섹션에서 **ClickUp**을 찾습니다.
3. **Connect**를 클릭하고 OAuth 과정을 완료합니다.
4. 작업 및 프로젝트 관리에 필요한 권한을 부여합니다.
5. [계정 설정](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 동작
<AccordionGroup>
<Accordion title="CLICKUP_SEARCH_TASKS">
<Accordion title="clickup/search_tasks">
**설명:** 고급 필터를 사용하여 ClickUp에서 작업을 검색합니다.
**파라미터:**
@@ -61,7 +61,7 @@ uv add crewai-tools
사용 가능한 필드: `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">
**설명:** ClickUp의 특정 목록에서 작업을 가져옵니다.
**파라미터:**
@@ -69,7 +69,7 @@ uv add crewai-tools
- `taskFilterFormula` (string, 선택): 지정된 필터와 일치하는 작업을 검색합니다. 예: name=task1.
</Accordion>
<Accordion title="CLICKUP_CREATE_TASK">
<Accordion title="clickup/create_task">
**설명:** ClickUp에 작업을 생성합니다.
**파라미터:**
@@ -82,7 +82,7 @@ uv add crewai-tools
- `additionalFields` (string, 선택): 추가 필드 - 이 작업에 포함할 추가 필드를 JSON으로 지정합니다.
</Accordion>
<Accordion title="CLICKUP_UPDATE_TASK">
<Accordion title="clickup/update_task">
**설명:** ClickUp의 작업을 업데이트합니다.
**파라미터:**
@@ -96,49 +96,49 @@ uv add crewai-tools
- `additionalFields` (string, 선택): 추가 필드 - 이 작업에 포함할 추가 필드를 JSON으로 지정합니다.
</Accordion>
<Accordion title="CLICKUP_DELETE_TASK">
<Accordion title="clickup/delete_task">
**설명:** ClickUp에서 작업을 삭제합니다.
**파라미터:**
- `taskId` (string, 필수): 작업 ID - 삭제할 작업의 ID입니다.
</Accordion>
<Accordion title="CLICKUP_GET_LIST">
<Accordion title="clickup/get_list">
**설명:** ClickUp에서 목록 정보를 가져옵니다.
**파라미터:**
- `spaceId` (string, 필수): 스페이스 ID - 목록이 포함된 스페이스의 ID입니다.
</Accordion>
<Accordion title="CLICKUP_GET_CUSTOM_FIELDS_IN_LIST">
<Accordion title="clickup/get_custom_fields_in_list">
**설명:** ClickUp에서 목록의 사용자 정의 필드를 가져옵니다.
**파라미터:**
- `listId` (string, 필수): 목록 ID - 사용자 정의 필드를 가져올 목록의 ID입니다.
</Accordion>
<Accordion title="CLICKUP_GET_ALL_FIELDS_IN_LIST">
<Accordion title="clickup/get_all_fields_in_list">
**설명:** ClickUp에서 목록의 모든 필드를 가져옵니다.
**파라미터:**
- `listId` (string, 필수): 목록 ID - 모든 필드를 가져올 목록의 ID입니다.
</Accordion>
<Accordion title="CLICKUP_GET_SPACE">
<Accordion title="clickup/get_space">
**설명:** ClickUp에서 스페이스 정보를 가져옵니다.
**파라미터:**
- `spaceId` (string, 선택): 스페이스 ID - 조회할 스페이스의 ID입니다.
</Accordion>
<Accordion title="CLICKUP_GET_FOLDERS">
<Accordion title="clickup/get_folders">
**설명:** ClickUp에서 폴더를 가져옵니다.
**파라미터:**
- `spaceId` (string, 필수): 스페이스 ID - 폴더가 포함된 스페이스의 ID입니다.
</Accordion>
<Accordion title="CLICKUP_GET_MEMBER">
<Accordion title="clickup/get_member">
**설명:** ClickUp에서 멤버 정보를 가져옵니다.
**파라미터:** 필요 없음.
@@ -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()
### 특정 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 @@ GitHub 통합을 사용하기 전에 다음을 확인하세요:
2. 인증 통합 섹션에서 **GitHub**을 찾습니다.
3. **Connect**를 클릭하고 OAuth 흐름을 완료합니다.
4. 리포지토리 및 이슈 관리를 위한 필수 권한을 부여합니다.
5. [계정 설정](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="GITHUB_CREATE_ISSUE">
<Accordion title="github/create_issue">
**설명:** GitHub에 이슈를 생성합니다.
**파라미터:**
@@ -47,7 +47,7 @@ uv add crewai-tools
- `assignees` (string, 선택): 담당자 - 이 이슈의 담당자 GitHub 로그인을 문자열 배열로 지정합니다. (예시: `["octocat"]`).
</Accordion>
<Accordion title="GITHUB_UPDATE_ISSUE">
<Accordion title="github/update_issue">
**설명:** GitHub에서 이슈를 업데이트합니다.
**파라미터:**
@@ -61,7 +61,7 @@ uv add crewai-tools
- 옵션: `open`, `closed`
</Accordion>
<Accordion title="GITHUB_GET_ISSUE_BY_NUMBER">
<Accordion title="github/get_issue_by_number">
**설명:** GitHub에서 번호로 이슈를 조회합니다.
**파라미터:**
@@ -70,7 +70,7 @@ uv add crewai-tools
- `issue_number` (string, 필수): 이슈 번호 - 가져올 이슈의 번호를 지정합니다.
</Accordion>
<Accordion title="GITHUB_LOCK_ISSUE">
<Accordion title="github/lock_issue">
**설명:** GitHub에서 이슈를 잠급니다.
**파라미터:**
@@ -81,7 +81,7 @@ uv add crewai-tools
- 옵션: `off-topic`, `too heated`, `resolved`, `spam`
</Accordion>
<Accordion title="GITHUB_SEARCH_ISSUE">
<Accordion title="github/search_issue">
**설명:** GitHub에서 이슈를 검색합니다.
**파라미터:**
@@ -108,7 +108,7 @@ uv add crewai-tools
사용 가능한 필드: `assignee`, `creator`, `mentioned`, `labels`
</Accordion>
<Accordion title="GITHUB_CREATE_RELEASE">
<Accordion title="github/create_release">
**설명:** GitHub에 릴리스를 생성합니다.
**파라미터:**
@@ -126,7 +126,7 @@ uv add crewai-tools
- 옵션: `true`, `false`
</Accordion>
<Accordion title="GITHUB_UPDATE_RELEASE">
<Accordion title="github/update_release">
**설명:** GitHub에서 릴리스를 업데이트합니다.
**파라미터:**
@@ -145,7 +145,7 @@ uv add crewai-tools
- 옵션: `true`, `false`
</Accordion>
<Accordion title="GITHUB_GET_RELEASE_BY_ID">
<Accordion title="github/get_release_by_id">
**설명:** GitHub에서 ID로 릴리스를 조회합니다.
**파라미터:**
@@ -154,7 +154,7 @@ uv add crewai-tools
- `id` (string, 필수): 릴리스 ID - 조회할 릴리스의 ID를 지정합니다.
</Accordion>
<Accordion title="GITHUB_GET_RELEASE_BY_TAG_NAME">
<Accordion title="github/get_release_by_tag_name">
**설명:** GitHub에서 태그 이름으로 릴리스를 조회합니다.
**파라미터:**
@@ -163,7 +163,7 @@ uv add crewai-tools
- `tag_name` (string, 필수): 이름 - 가져올 릴리스의 태그를 지정합니다. (예시: "v1.0.0").
</Accordion>
<Accordion title="GITHUB_DELETE_RELEASE">
<Accordion title="github/delete_release">
**설명:** GitHub에서 릴리스를 삭제합니다.
**파라미터:**
@@ -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()
### 특정 GitHub 도구 필터링
```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 @@ Gmail 통합을 사용하기 전에 다음을 확인하세요:
2. 인증 통합 섹션에서 **Gmail**을 찾습니다.
3. **Connect**를 클릭하고 OAuth 흐름을 완료합니다.
4. 이메일 및 연락처 관리를 위한 필요한 권한을 부여합니다.
5. [Account Settings](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="GMAIL_SEND_EMAIL">
<Accordion title="gmail/send_email">
**설명:** Gmail에서 이메일을 보냅니다.
**파라미터:**
@@ -59,7 +59,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GMAIL_GET_EMAIL_BY_ID">
<Accordion title="gmail/get_email_by_id">
**설명:** Gmail에서 ID로 이메일을 조회합니다.
**파라미터:**
@@ -67,7 +67,7 @@ uv add crewai-tools
- `messageId` (string, 필수): 메시지 ID - 조회할 메시지의 ID를 지정합니다.
</Accordion>
<Accordion title="GMAIL_SEARCH_FOR_EMAIL">
<Accordion title="gmail/fetch_emails">
**설명:** 고급 필터를 사용하여 Gmail에서 이메일을 검색합니다.
**파라미터:**
@@ -98,7 +98,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GMAIL_DELETE_EMAIL">
<Accordion title="gmail/delete_email">
**설명:** Gmail에서 이메일을 삭제합니다.
**파라미터:**
@@ -106,7 +106,7 @@ uv add crewai-tools
- `messageId` (string, 필수): 메시지 ID - 휴지통으로 보낼 메시지의 ID를 지정합니다.
</Accordion>
<Accordion title="GMAIL_CREATE_A_CONTACT">
<Accordion title="gmail/create_a_contact">
**설명:** Gmail에서 연락처를 생성합니다.
**파라미터:**
@@ -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">
**설명:** Gmail에서 리소스 이름으로 연락처를 조회합니다.
**파라미터:**
- `resourceName` (string, 필수): 리소스 이름 - 조회할 연락처의 리소스 이름을 지정합니다.
</Accordion>
<Accordion title="GMAIL_SEARCH_FOR_CONTACT">
<Accordion title="gmail/search_for_contact">
**설명:** Gmail에서 연락처를 검색합니다.
**파라미터:**
- `searchTerm` (string, 필수): 검색어 - 이름, 닉네임, 이메일 주소, 전화번호 또는 조직 연락처 속성에서 유사하거나 정확히 일치하는 항목을 검색할 검색어를 지정합니다.
</Accordion>
<Accordion title="GMAIL_DELETE_CONTACT">
<Accordion title="gmail/delete_contact">
**설명:** Gmail에서 연락처를 삭제합니다.
**파라미터:**
- `resourceName` (string, 필수): 리소스 이름 - 삭제할 연락처의 리소스 이름을 지정합니다.
</Accordion>
<Accordion title="GMAIL_CREATE_DRAFT">
<Accordion title="gmail/create_draft">
**설명:** Gmail에서 임시 저장 메일을 만듭니다.
**파라미터:**
@@ -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()
### 특정 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 @@ Google Calendar 통합을 사용하기 전에 다음을 준비해야 합니다:
2. 인증 통합 섹션에서 **Google Calendar**를 찾습니다.
3. **Connect**를 클릭하고 OAuth 과정을 완료합니다.
4. 캘린더 및 연락처 접근 권한을 허용합니다.
5. [Account Settings](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="GOOGLE_CALENDAR_CREATE_EVENT">
<Accordion title="google_calendar/create_event">
**설명:** Google 캘린더에 이벤트를 생성합니다.
**파라미터:**
@@ -51,7 +51,7 @@ uv add crewai-tools
- `includeMeetLink` (boolean, 선택): Google Meet 링크 포함 여부? - 이 이벤트에 대해 Google Meet 컨퍼런스 링크를 자동으로 생성합니다.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_UPDATE_EVENT">
<Accordion title="google_calendar/update_event">
**설명:** Google 캘린더에서 기존 이벤트를 업데이트합니다.
**파라미터:**
@@ -65,7 +65,7 @@ uv add crewai-tools
- `eventDescription` (string, 선택): 이벤트 설명.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_LIST_EVENTS">
<Accordion title="google_calendar/view_events">
**설명:** Google 캘린더에서 이벤트 목록을 가져옵니다.
**파라미터:**
@@ -74,7 +74,7 @@ uv add crewai-tools
- `before` (string, 선택): 이전 - 제공된 날짜 이전에 종료되는 이벤트를 필터링합니다 (밀리초 단위의 Unix 또는 ISO 타임스탬프). (예시: "2025-04-12T10:00:00Z 또는 1712908800000").
</Accordion>
<Accordion title="GOOGLE_CALENDAR_GET_EVENT_BY_ID">
<Accordion title="google_calendar/get_event_by_id">
**설명:** Google 캘린더에서 ID로 특정 이벤트를 가져옵니다.
**파라미터:**
@@ -82,7 +82,7 @@ uv add crewai-tools
- `calendar` (string, 선택): 캘린더 - Connect Portal Workflow Settings를 사용하여 사용자가 이벤트를 추가할 캘린더를 선택할 수 있도록 합니다. 비워두면 사용자의 기본 캘린더로 기본 설정됩니다.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_DELETE_EVENT">
<Accordion title="google_calendar/delete_event">
**설명:** Google 캘린더에서 이벤트를 삭제합니다.
**파라미터:**
@@ -90,7 +90,7 @@ uv add crewai-tools
- `calendar` (string, 선택): 캘린더 - Connect Portal Workflow Settings를 사용하여 사용자가 이벤트를 추가할 캘린더를 선택할 수 있도록 합니다. 비워두면 사용자의 기본 캘린더로 기본 설정됩니다.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_GET_CONTACTS">
<Accordion title="google_calendar/get_contacts">
**설명:** Google 캘린더에서 연락처를 가져옵니다.
**파라미터:**
@@ -102,14 +102,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_SEARCH_CONTACTS">
<Accordion title="google_calendar/search_contacts">
**설명:** Google 캘린더에서 연락처를 검색합니다.
**파라미터:**
- `query` (string, 선택): 연락처를 검색할 검색 쿼리.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_LIST_DIRECTORY_PEOPLE">
<Accordion title="google_calendar/list_directory_people">
**설명:** 디렉토리 구성원 목록을 가져옵니다.
**파라미터:**
@@ -121,7 +121,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_SEARCH_DIRECTORY_PEOPLE">
<Accordion title="google_calendar/search_directory_people">
**설명:** 디렉토리 구성원을 검색합니다.
**파라미터:**
@@ -134,7 +134,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_LIST_OTHER_CONTACTS">
<Accordion title="google_calendar/list_other_contacts">
**설명:** 기타 연락처 목록을 가져옵니다.
**파라미터:**
@@ -146,14 +146,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_CALENDAR_SEARCH_OTHER_CONTACTS">
<Accordion title="google_calendar/search_other_contacts">
**설명:** 기타 연락처를 검색합니다.
**파라미터:**
- `query` (string, 선택): 연락처를 검색할 검색 쿼리.
</Accordion>
<Accordion title="GOOGLE_CALENDAR_GET_AVAILABILITY">
<Accordion title="google_calendar/get_availability">
**설명:** 캘린더의 가용성 정보를 가져옵니다.
**파라미터:**
@@ -180,19 +180,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Google Calendar tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Google Calendar capabilities
calendar_agent = Agent(
role="Schedule Manager",
goal="Manage calendar events and scheduling efficiently",
backstory="An AI assistant specialized in calendar management and scheduling coordination.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Task to create a meeting
@@ -214,19 +208,12 @@ crew.kickoff()
### 특정 캘린더 도구 필터링
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Google Calendar tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["google_calendar_create_event", "google_calendar_list_events", "google_calendar_get_availability"]
)
meeting_coordinator = Agent(
role="Meeting Coordinator",
goal="Coordinate meetings and check availability",
backstory="An AI assistant that focuses on meeting scheduling and availability management.",
tools=enterprise_tools
apps=['google_calendar']
)
# Task to schedule a meeting with availability check
@@ -248,17 +235,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="Manage and update calendar events efficiently",
backstory="An experienced event manager who handles event logistics and updates.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Task to manage event updates
@@ -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"
)
availability_coordinator = Agent(
role="Availability Coordinator",
goal="Coordinate availability and manage contacts for scheduling",
backstory="An AI assistant that specializes in availability management and contact coordination.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Task to coordinate availability
@@ -321,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"
)
scheduling_automator = Agent(
role="Scheduling Automator",
goal="Automate scheduling workflows and calendar management",
backstory="An AI assistant that automates complex scheduling scenarios and calendar workflows.",
tools=[enterprise_tools]
apps=['google_calendar']
)
# Complex scheduling automation task

View File

@@ -0,0 +1,221 @@
---
title: Google Contacts 통합
description: "CrewAI를 위한 Google Contacts 통합으로 연락처 및 디렉토리 관리."
icon: "address-book"
mode: "wide"
---
## 개요
에이전트가 Google Contacts를 통해 연락처와 디렉토리 정보를 관리할 수 있도록 합니다. 개인 연락처에 액세스하고, 디렉토리 사람들을 검색하고, 연락처 정보를 생성 및 업데이트하고, AI 기반 자동화로 연락처 그룹을 관리합니다.
## 전제 조건
Google Contacts 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Google Contacts 액세스 권한이 있는 Google 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Google 계정 연결
## Google Contacts 통합 설정
### 1. Google 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Google Contacts** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 연락처 및 디렉토리 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="google_contacts/get_contacts">
**설명:** Google Contacts에서 사용자의 연락처를 검색합니다.
**매개변수:**
- `pageSize` (integer, 선택사항): 반환할 연락처 수 (최대 1000). 최소: 1, 최대: 1000
- `pageToken` (string, 선택사항): 검색할 페이지의 토큰.
- `personFields` (string, 선택사항): 포함할 필드 (예: 'names,emailAddresses,phoneNumbers'). 기본값: names,emailAddresses,phoneNumbers
- `requestSyncToken` (boolean, 선택사항): 응답에 동기화 토큰을 포함할지 여부. 기본값: false
- `sortOrder` (string, 선택사항): 연결을 정렬할 순서. 옵션: LAST_MODIFIED_ASCENDING, LAST_MODIFIED_DESCENDING, FIRST_NAME_ASCENDING, LAST_NAME_ASCENDING
</Accordion>
<Accordion title="google_contacts/search_contacts">
**설명:** 쿼리 문자열을 사용하여 연락처를 검색합니다.
**매개변수:**
- `query` (string, 필수): 검색 쿼리 문자열
- `readMask` (string, 필수): 읽을 필드 (예: 'names,emailAddresses,phoneNumbers')
- `pageSize` (integer, 선택사항): 반환할 결과 수. 최소: 1, 최대: 30
- `pageToken` (string, 선택사항): 반환할 결과 페이지를 지정하는 토큰.
- `sources` (array, 선택사항): 검색할 소스. 옵션: READ_SOURCE_TYPE_CONTACT, READ_SOURCE_TYPE_PROFILE. 기본값: READ_SOURCE_TYPE_CONTACT
</Accordion>
<Accordion title="google_contacts/list_directory_people">
**설명:** 인증된 사용자의 디렉토리에 있는 사람들을 나열합니다.
**매개변수:**
- `sources` (array, 필수): 검색할 디렉토리 소스. 옵션: DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE, DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT. 기본값: DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE
- `pageSize` (integer, 선택사항): 반환할 사람 수. 최소: 1, 최대: 1000
- `pageToken` (string, 선택사항): 반환할 결과 페이지를 지정하는 토큰.
- `readMask` (string, 선택사항): 읽을 필드 (예: 'names,emailAddresses')
- `requestSyncToken` (boolean, 선택사항): 응답에 동기화 토큰을 포함할지 여부. 기본값: false
- `mergeSources` (array, 선택사항): 디렉토리 사람 응답에 병합할 추가 데이터. 옵션: CONTACT
</Accordion>
<Accordion title="google_contacts/search_directory_people">
**설명:** 디렉토리에서 사람을 검색합니다.
**매개변수:**
- `query` (string, 필수): 검색 쿼리
- `sources` (string, 필수): 디렉토리 소스 ('DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE' 사용)
- `pageSize` (integer, 선택사항): 반환할 결과 수
- `readMask` (string, 선택사항): 읽을 필드
</Accordion>
<Accordion title="google_contacts/list_other_contacts">
**설명:** 기타 연락처를 나열합니다 (사용자의 개인 연락처에 없는).
**매개변수:**
- `pageSize` (integer, 선택사항): 반환할 연락처 수. 최소: 1, 최대: 1000
- `pageToken` (string, 선택사항): 반환할 결과 페이지를 지정하는 토큰.
- `readMask` (string, 선택사항): 읽을 필드
- `requestSyncToken` (boolean, 선택사항): 응답에 동기화 토큰을 포함할지 여부. 기본값: false
</Accordion>
<Accordion title="google_contacts/search_other_contacts">
**설명:** 기타 연락처를 검색합니다.
**매개변수:**
- `query` (string, 필수): 검색 쿼리
- `readMask` (string, 필수): 읽을 필드 (예: 'names,emailAddresses')
- `pageSize` (integer, 선택사항): 결과 수
</Accordion>
<Accordion title="google_contacts/get_person">
**설명:** 리소스 이름으로 한 사람의 연락처 정보를 가져옵니다.
**매개변수:**
- `resourceName` (string, 필수): 가져올 사람의 리소스 이름 (예: 'people/c123456789')
- `personFields` (string, 선택사항): 포함할 필드 (예: 'names,emailAddresses,phoneNumbers'). 기본값: names,emailAddresses,phoneNumbers
</Accordion>
<Accordion title="google_contacts/create_contact">
**설명:** 사용자의 주소록에 새 연락처를 만듭니다.
**매개변수:**
- `names` (array, 선택사항): 사람의 이름들. 각 항목은 `givenName` (string), `familyName` (string), `displayName` (string)이 있는 객체.
- `emailAddresses` (array, 선택사항): 이메일 주소들. 각 항목은 `value` (string, 이메일 주소)와 `type` (string, 'home', 'work', 'other', 기본값 'other')이 있는 객체.
- `phoneNumbers` (array, 선택사항): 전화번호들. 각 항목은 `value` (string, 전화번호)와 `type` (string, 'home', 'work', 'mobile', 'other', 기본값 'other')이 있는 객체.
- `addresses` (array, 선택사항): 우편 주소들. 각 항목은 `formattedValue` (string, 형식화된 주소)와 `type` (string, 'home', 'work', 'other', 기본값 'other')이 있는 객체.
- `organizations` (array, 선택사항): 조직/회사들. 각 항목은 `name` (string, 조직 이름), `title` (string, 직책), `type` (string, 'work', 'other', 기본값 'work')이 있는 객체.
</Accordion>
<Accordion title="google_contacts/update_contact">
**설명:** 기존 연락처의 정보를 업데이트합니다.
**매개변수:**
- `resourceName` (string, 필수): 업데이트할 사람의 리소스 이름 (예: 'people/c123456789').
- `updatePersonFields` (string, 필수): 업데이트할 필드 (예: 'names,emailAddresses,phoneNumbers').
- `names` (array, 선택사항): 사람의 이름들. 각 항목은 `givenName` (string), `familyName` (string), `displayName` (string)이 있는 객체.
- `emailAddresses` (array, 선택사항): 이메일 주소들. 각 항목은 `value` (string, 이메일 주소)와 `type` (string, 'home', 'work', 'other')이 있는 객체.
- `phoneNumbers` (array, 선택사항): 전화번호들. 각 항목은 `value` (string, 전화번호)와 `type` (string, 'home', 'work', 'mobile', 'other')이 있는 객체.
</Accordion>
<Accordion title="google_contacts/delete_contact">
**설명:** 사용자의 주소록에서 연락처를 삭제합니다.
**매개변수:**
- `resourceName` (string, 필수): 삭제할 사람의 리소스 이름 (예: 'people/c123456789').
</Accordion>
<Accordion title="google_contacts/batch_get_people">
**설명:** 한 번의 요청으로 여러 사람에 대한 정보를 가져옵니다.
**매개변수:**
- `resourceNames` (array, 필수): 가져올 사람들의 리소스 이름 (최대 200개 항목).
- `personFields` (string, 선택사항): 포함할 필드 (예: 'names,emailAddresses,phoneNumbers'). 기본값: names,emailAddresses,phoneNumbers
</Accordion>
<Accordion title="google_contacts/list_contact_groups">
**설명:** 사용자의 연락처 그룹(라벨)을 나열합니다.
**매개변수:**
- `pageSize` (integer, 선택사항): 반환할 연락처 그룹 수. 최소: 1, 최대: 1000
- `pageToken` (string, 선택사항): 반환할 결과 페이지를 지정하는 토큰.
- `groupFields` (string, 선택사항): 포함할 필드 (예: 'name,memberCount,clientData'). 기본값: name,memberCount
</Accordion>
<Accordion title="google_contacts/get_contact_group">
**설명:** 리소스 이름으로 특정 연락처 그룹을 가져옵니다.
**매개변수:**
- `resourceName` (string, 필수): 연락처 그룹의 리소스 이름 (예: 'contactGroups/myContactGroup').
- `maxMembers` (integer, 선택사항): 포함할 최대 멤버 수. 최소: 0, 최대: 20000
- `groupFields` (string, 선택사항): 포함할 필드 (예: 'name,memberCount,clientData'). 기본값: name,memberCount
</Accordion>
<Accordion title="google_contacts/create_contact_group">
**설명:** 새 연락처 그룹(라벨)을 만듭니다.
**매개변수:**
- `name` (string, 필수): 연락처 그룹의 이름.
- `clientData` (array, 선택사항): 클라이언트별 데이터. 각 항목은 `key` (string)와 `value` (string)가 있는 객체.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Google Contacts 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Google Contacts 기능을 가진 에이전트 생성
contacts_agent = Agent(
role="연락처 관리자",
goal="Google Contacts를 효율적으로 관리",
backstory="연락처 관리 및 조직 전문 AI 어시스턴트.",
apps=['google_contacts'] # 모든 Google Contacts 작업을 사용할 수 있습니다
)
# 새 연락처 생성 작업
create_contact_task = Task(
description="'김철수'라는 이름으로 이메일 'kim.chulsoo@example.com'과 전화번호 '010-1234-5678'로 새 연락처를 만드세요",
agent=contacts_agent,
expected_output="새 연락처가 성공적으로 생성됨"
)
# 작업 실행
crew = Crew(
agents=[contacts_agent],
tasks=[create_contact_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Google 계정이 연락처 및 디렉토리 액세스에 필요한 권한을 가지고 있는지 확인하세요.
- OAuth 연결이 Google People API에 필요한 모든 범위를 포함하는지 확인하세요.
**연락처 생성/업데이트 문제**
- 연락처 생성 시 `email`과 같은 필수 필드가 제공되는지 확인하세요.
- 연락처를 업데이트하거나 삭제할 때 `resourceName`이 올바른지 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Google Contacts 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -0,0 +1,158 @@
---
title: Google Docs 통합
description: "CrewAI를 위한 Google Docs 통합으로 문서 생성 및 편집."
icon: "file-lines"
mode: "wide"
---
## 개요
에이전트가 텍스트 조작 및 서식을 사용하여 Google Docs 문서를 생성, 편집 및 관리할 수 있도록 합니다. AI 기반 자동화로 문서 생성을 자동화하고, 텍스트를 삽입 및 교체하고, 콘텐츠 범위를 관리하며, 문서 워크플로를 간소화합니다.
## 전제 조건
Google Docs 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Google Docs 액세스 권한이 있는 Google 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Google 계정 연결
## Google Docs 통합 설정
### 1. Google 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Google Docs** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 문서 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="google_docs/create_document">
**설명:** 새 Google 문서를 만듭니다.
**매개변수:**
- `title` (string, 선택사항): 새 문서의 제목.
</Accordion>
<Accordion title="google_docs/get_document">
**설명:** Google 문서의 내용과 메타데이터를 가져옵니다.
**매개변수:**
- `documentId` (string, 필수): 검색할 문서의 ID.
- `includeTabsContent` (boolean, 선택사항): 탭 내용을 포함할지 여부. 기본값: false
- `suggestionsViewMode` (string, 선택사항): 문서에 적용할 제안 보기 모드. 옵션: DEFAULT_FOR_CURRENT_ACCESS, PREVIEW_SUGGESTIONS_ACCEPTED, PREVIEW_WITHOUT_SUGGESTIONS. 기본값: DEFAULT_FOR_CURRENT_ACCESS
</Accordion>
<Accordion title="google_docs/batch_update">
**설명:** Google 문서에 하나 이상의 업데이트를 적용합니다.
**매개변수:**
- `documentId` (string, 필수): 업데이트할 문서의 ID.
- `requests` (array, 필수): 문서에 적용할 업데이트 목록. 각 항목은 요청을 나타내는 객체.
- `writeControl` (object, 선택사항): 쓰기 요청이 실행되는 방식을 제어합니다. `requiredRevisionId` (string)와 `targetRevisionId` (string)를 포함.
</Accordion>
<Accordion title="google_docs/insert_text">
**설명:** Google 문서의 특정 위치에 텍스트를 삽입합니다.
**매개변수:**
- `documentId` (string, 필수): 업데이트할 문서의 ID.
- `text` (string, 필수): 삽입할 텍스트.
- `index` (integer, 선택사항): 텍스트를 삽입할 0 기반 인덱스. 기본값: 1
</Accordion>
<Accordion title="google_docs/replace_text">
**설명:** Google 문서에서 텍스트의 모든 인스턴스를 교체합니다.
**매개변수:**
- `documentId` (string, 필수): 업데이트할 문서의 ID.
- `containsText` (string, 필수): 찾아서 교체할 텍스트.
- `replaceText` (string, 필수): 교체할 텍스트.
- `matchCase` (boolean, 선택사항): 검색이 대소문자를 구분할지 여부. 기본값: false
</Accordion>
<Accordion title="google_docs/delete_content_range">
**설명:** Google 문서의 특정 범위에서 내용을 삭제합니다.
**매개변수:**
- `documentId` (string, 필수): 업데이트할 문서의 ID.
- `startIndex` (integer, 필수): 삭제할 범위의 시작 인덱스.
- `endIndex` (integer, 필수): 삭제할 범위의 끝 인덱스.
</Accordion>
<Accordion title="google_docs/insert_page_break">
**설명:** Google 문서의 특정 위치에 페이지 나누기를 삽입합니다.
**매개변수:**
- `documentId` (string, 필수): 업데이트할 문서의 ID.
- `index` (integer, 선택사항): 페이지 나누기를 삽입할 0 기반 인덱스. 기본값: 1
</Accordion>
<Accordion title="google_docs/create_named_range">
**설명:** Google 문서에 명명된 범위를 만듭니다.
**매개변수:**
- `documentId` (string, 필수): 업데이트할 문서의 ID.
- `name` (string, 필수): 명명된 범위의 이름.
- `startIndex` (integer, 필수): 범위의 시작 인덱스.
- `endIndex` (integer, 필수): 범위의 끝 인덱스.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Google Docs 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Google Docs 기능을 가진 에이전트 생성
docs_agent = Agent(
role="문서 작성자",
goal="Google Docs 문서를 효율적으로 생성하고 관리",
backstory="Google Docs 문서 생성 및 편집 전문 AI 어시스턴트.",
apps=['google_docs'] # 모든 Google Docs 작업을 사용할 수 있습니다
)
# 새 문서 생성 작업
create_doc_task = Task(
description="'프로젝트 상태 보고서'라는 제목으로 새 Google 문서를 만드세요",
agent=docs_agent,
expected_output="새 Google 문서 '프로젝트 상태 보고서'가 성공적으로 생성됨"
)
# 작업 실행
crew = Crew(
agents=[docs_agent],
tasks=[create_doc_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Google 계정이 Google Docs 액세스에 필요한 권한을 가지고 있는지 확인하세요.
- OAuth 연결이 필요한 모든 범위(`https://www.googleapis.com/auth/documents`)를 포함하는지 확인하세요.
**문서 ID 문제**
- 문서 ID가 올바른지 다시 확인하세요.
- 문서가 존재하고 계정에서 액세스할 수 있는지 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Google Docs 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -0,0 +1,30 @@
---
title: Google Drive 통합
description: "CrewAI를 위한 Google Drive 통합으로 파일 및 폴더 관리."
icon: "google"
mode: "wide"
---
## 개요
에이전트가 Google Drive의 파일과 폴더에 액세스하고 관리할 수 있도록 합니다. AI 기반 자동화로 파일을 업로드, 다운로드, 콘텐츠 구성, 공유 링크 생성 및 클라우드 스토리지 워크플로를 간소화합니다.
## 전제 조건
Google Drive 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Google Drive 액세스 권한이 있는 Google 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Google 계정 연결
## 사용 가능한 작업
자세한 매개변수 및 사용법은 [영어 문서](../../../en/enterprise/integrations/google_drive)를 참조하세요.
## 문제 해결
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Google Drive 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -26,7 +26,7 @@ Google Sheets 통합을 사용하기 전에 다음을 확인하세요:
2. 인증 통합 섹션에서 **Google Sheets**를 찾습니다.
3. **Connect**를 클릭하고 OAuth 흐름을 완료합니다.
4. 스프레드시트 접근에 필요한 권한을 허용합니다.
5. [Account Settings](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -37,7 +37,7 @@ uv add crewai-tools
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="GOOGLE_SHEETS_GET_ROW">
<Accordion title="google_sheets/get_values">
**설명:** Google Sheets 스프레드시트에서 행을 가져옵니다.
**매개변수:**
@@ -45,7 +45,7 @@ uv add crewai-tools
- `limit` (string, 선택): 행 제한 - 반환할 최대 행 수를 제한합니다.
</Accordion>
<Accordion title="GOOGLE_SHEETS_CREATE_ROW">
<Accordion title="google_sheets/append_values">
**설명:** Google Sheets 스프레드시트에 새로운 행을 만듭니다.
**매개변수:**
@@ -62,7 +62,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="GOOGLE_SHEETS_UPDATE_ROW">
<Accordion title="google_sheets/update_values">
**설명:** Google Sheets 스프레드시트의 기존 행을 업데이트합니다.
**매개변수:**
@@ -105,19 +105,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Google Sheets tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Google Sheets capabilities
sheets_agent = Agent(
role="Data Manager",
goal="Manage spreadsheet data and track information efficiently",
backstory="An AI assistant specialized in data management and spreadsheet operations.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Task to add new data to a spreadsheet
@@ -139,19 +133,12 @@ crew.kickoff()
### 특정 Google Sheets 도구 필터링
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Google Sheets tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["google_sheets_get_row", "google_sheets_create_row"]
)
data_collector = Agent(
role="Data Collector",
goal="Collect and organize data in spreadsheets",
backstory="An AI assistant that focuses on data collection and organization.",
tools=enterprise_tools
apps=['google_sheets']
)
# Task to collect and organize data
@@ -173,17 +160,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="Analyze spreadsheet data and generate insights",
backstory="An experienced data analyst who extracts insights from spreadsheet data.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Task to analyze data and create reports
@@ -209,17 +191,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="Automatically update and maintain spreadsheet data",
backstory="An AI assistant that maintains data accuracy and updates records automatically.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Task to update data based on conditions
@@ -246,17 +223,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="Manage complex data workflows across multiple spreadsheets",
backstory="An AI assistant that orchestrates complex data operations across multiple spreadsheets.",
tools=[enterprise_tools]
apps=['google_sheets']
)
# Complex workflow task

View File

@@ -0,0 +1,167 @@
---
title: Google Slides 통합
description: "CrewAI를 위한 Google Slides 통합으로 프레젠테이션 생성 및 관리."
icon: "chart-bar"
mode: "wide"
---
## 개요
에이전트가 Google Slides 프레젠테이션을 생성, 편집 및 관리할 수 있도록 합니다. AI 기반 자동화로 프레젠테이션 생성을 자동화하고, 콘텐츠를 업데이트하고, Google Sheets에서 데이터를 가져오며, 프레젠테이션 워크플로를 간소화합니다.
## 전제 조건
Google Slides 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Google Slides 액세스 권한이 있는 Google 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Google 계정 연결
## Google Slides 통합 설정
### 1. Google 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Google Slides** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 프레젠테이션, 스프레드시트 및 드라이브 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="google_slides/create_blank_presentation">
**설명:** 내용이 없는 빈 프레젠테이션을 만듭니다.
**매개변수:**
- `title` (string, 필수): 프레젠테이션의 제목.
</Accordion>
<Accordion title="google_slides/get_presentation">
**설명:** ID로 프레젠테이션을 검색합니다.
**매개변수:**
- `presentationId` (string, 필수): 검색할 프레젠테이션의 ID.
- `fields` (string, 선택사항): 응답에 포함할 필드. 성능 향상을 위해 필요한 데이터만 반환하는 데 사용.
</Accordion>
<Accordion title="google_slides/batch_update_presentation">
**설명:** 프레젠테이션에 업데이트를 적용하거나 콘텐츠를 추가하거나 제거합니다.
**매개변수:**
- `presentationId` (string, 필수): 업데이트할 프레젠테이션의 ID.
- `requests` (array, 필수): 프레젠테이션에 적용할 업데이트 목록. 각 항목은 요청을 나타내는 객체.
- `writeControl` (object, 선택사항): 쓰기 요청이 실행되는 방식을 제어합니다. `requiredRevisionId` (string)를 포함.
</Accordion>
<Accordion title="google_slides/get_page">
**설명:** ID로 특정 페이지를 검색합니다.
**매개변수:**
- `presentationId` (string, 필수): 프레젠테이션의 ID.
- `pageObjectId` (string, 필수): 검색할 페이지의 ID.
</Accordion>
<Accordion title="google_slides/get_thumbnail">
**설명:** 페이지 썸네일을 생성합니다.
**매개변수:**
- `presentationId` (string, 필수): 프레젠테이션의 ID.
- `pageObjectId` (string, 필수): 썸네일 생성을 위한 페이지의 ID.
</Accordion>
<Accordion title="google_slides/import_data_from_sheet">
**설명:** Google 시트에서 프레젠테이션으로 데이터를 가져옵니다.
**매개변수:**
- `presentationId` (string, 필수): 프레젠테이션의 ID.
- `sheetId` (string, 필수): 가져올 Google 시트의 ID.
- `dataRange` (string, 필수): 시트에서 가져올 데이터 범위.
</Accordion>
<Accordion title="google_slides/upload_file_to_drive">
**설명:** 프레젠테이션과 연결된 Google 드라이브에 파일을 업로드합니다.
**매개변수:**
- `file` (string, 필수): 업로드할 파일 데이터.
- `presentationId` (string, 필수): 업로드된 파일을 연결할 프레젠테이션의 ID.
</Accordion>
<Accordion title="google_slides/link_file_to_presentation">
**설명:** Google 드라이브의 파일을 프레젠테이션에 연결합니다.
**매개변수:**
- `presentationId` (string, 필수): 프레젠테이션의 ID.
- `fileId` (string, 필수): 연결할 파일의 ID.
</Accordion>
<Accordion title="google_slides/get_all_presentations">
**설명:** 사용자가 액세스할 수 있는 모든 프레젠테이션을 나열합니다.
**매개변수:**
- `pageSize` (integer, 선택사항): 페이지당 반환할 프레젠테이션 수.
- `pageToken` (string, 선택사항): 페이지네이션을 위한 토큰.
</Accordion>
<Accordion title="google_slides/delete_presentation">
**설명:** ID로 프레젠테이션을 삭제합니다.
**매개변수:**
- `presentationId` (string, 필수): 삭제할 프레젠테이션의 ID.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Google Slides 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Google Slides 기능을 가진 에이전트 생성
slides_agent = Agent(
role="프레젠테이션 작성자",
goal="Google Slides 프레젠테이션을 효율적으로 생성하고 관리",
backstory="프레젠테이션 디자인 및 콘텐츠 관리 전문 AI 어시스턴트.",
apps=['google_slides'] # 모든 Google Slides 작업을 사용할 수 있습니다
)
# 새 프레젠테이션 생성 작업
create_presentation_task = Task(
description="'분기별 매출 보고서'라는 제목으로 새 빈 프레젠테이션을 만드세요",
agent=slides_agent,
expected_output="새 프레젠테이션 '분기별 매출 보고서'가 성공적으로 생성됨"
)
# 작업 실행
crew = Crew(
agents=[slides_agent],
tasks=[create_presentation_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Google 계정이 Google Slides 및 Google Drive 액세스에 필요한 권한을 가지고 있는지 확인하세요.
- OAuth 연결이 필요한 모든 범위를 포함하는지 확인하세요.
**프레젠테이션/페이지 ID 문제**
- 프레젠테이션 ID와 페이지 객체 ID가 올바른지 다시 확인하세요.
- 프레젠테이션이나 페이지가 존재하고 액세스할 수 있는지 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Google Slides 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -25,7 +25,7 @@ HubSpot 통합을 사용하기 전에 다음을 확인하세요.
2. 인증 통합 섹션에서 **HubSpot**을 찾습니다.
3. **Connect**를 클릭하고 OAuth 플로우를 완료합니다.
4. 회사 및 연락처 관리를 위한 필요한 권한을 부여합니다.
5. [계정 설정](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 액션
<AccordionGroup>
<Accordion title="HUBSPOT_CREATE_RECORD_COMPANIES">
<Accordion title="hubspot/create_company">
**설명:** HubSpot에서 새로운 회사 레코드를 생성합니다.
**파라미터:**
@@ -101,7 +101,7 @@ uv add crewai-tools
- `founded_year` (string, 선택): 설립 연도.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_CONTACTS">
<Accordion title="hubspot/create_contact">
**설명:** HubSpot에서 새로운 연락처 레코드를 생성합니다.
**파라미터:**
@@ -200,7 +200,7 @@ uv add crewai-tools
- `hs_googleplusid` (string, 선택): googleplus ID.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_DEALS">
<Accordion title="hubspot/create_deal">
**설명:** HubSpot에서 새로운 거래(deal) 레코드를 생성합니다.
**파라미터:**
@@ -215,7 +215,7 @@ uv add crewai-tools
- `hs_priority` (string, 선택): 거래 우선순위. 사용 가능한 값: `low`, `medium`, `high`.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_ENGAGEMENTS">
<Accordion title="hubspot/create_record_engagements">
**설명:** HubSpot에서 새로운 참여(예: 노트, 이메일, 통화, 미팅, 작업)를 생성합니다.
**파라미터:**
@@ -232,7 +232,7 @@ uv add crewai-tools
- `hs_meeting_end_time` (string, 선택): 미팅 종료 시간. (`MEETING`에서 사용)
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_COMPANIES">
<Accordion title="hubspot/update_company">
**설명:** HubSpot에서 기존 회사 레코드를 업데이트합니다.
**파라미터:**
@@ -249,7 +249,7 @@ uv add crewai-tools
- `description` (string, 선택): 설명.
</Accordion>
<Accordion title="HUBSPOT_CREATE_RECORD_ANY">
<Accordion title="hubspot/create_record_any">
**설명:** HubSpot에서 지정된 오브젝트 타입의 레코드를 생성합니다.
**파라미터:**
@@ -257,7 +257,7 @@ uv add crewai-tools
- 추가 파라미터는 커스텀 오브젝트의 스키마에 따라 다릅니다.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_CONTACTS">
<Accordion title="hubspot/update_contact">
**설명:** HubSpot에서 기존 연락처 레코드를 업데이트합니다.
**파라미터:**
@@ -271,7 +271,7 @@ uv add crewai-tools
- `lifecyclestage` (string, 선택): 라이프사이클 단계.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_DEALS">
<Accordion title="hubspot/update_deal">
**설명:** HubSpot에서 기존 거래 레코드를 업데이트합니다.
**파라미터:**
@@ -284,7 +284,7 @@ uv add crewai-tools
- `dealtype` (string, 선택): 거래 유형.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_ENGAGEMENTS">
<Accordion title="hubspot/update_record_engagements">
**설명:** HubSpot에서 기존 참여(engagement)를 업데이트합니다.
**파라미터:**
@@ -295,7 +295,7 @@ uv add crewai-tools
- `hs_task_status` (string, 선택): 작업 상태.
</Accordion>
<Accordion title="HUBSPOT_UPDATE_RECORD_ANY">
<Accordion title="hubspot/update_record_any">
**설명:** HubSpot에서 지정된 오브젝트 타입의 레코드를 업데이트합니다.
**파라미터:**
@@ -304,28 +304,28 @@ uv add crewai-tools
- 추가 파라미터는 커스텀 오브젝트의 스키마에 따라 다릅니다.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_COMPANIES">
<Accordion title="hubspot/list_companies">
**설명:** HubSpot에서 회사 레코드 목록을 가져옵니다.
**파라미터:**
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_CONTACTS">
<Accordion title="hubspot/list_contacts">
**설명:** HubSpot에서 연락처 레코드 목록을 가져옵니다.
**파라미터:**
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_DEALS">
<Accordion title="hubspot/list_deals">
**설명:** HubSpot에서 거래 레코드 목록을 가져옵니다.
**파라미터:**
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_ENGAGEMENTS">
<Accordion title="hubspot/get_records_engagements">
**설명:** HubSpot에서 참여(engagement) 레코드 목록을 가져옵니다.
**파라미터:**
@@ -333,7 +333,7 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORDS_ANY">
<Accordion title="hubspot/get_records_any">
**설명:** HubSpot에서 지정된 오브젝트 타입의 레코드 목록을 가져옵니다.
**파라미터:**
@@ -341,35 +341,35 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_COMPANIES">
<Accordion title="hubspot/get_company">
**설명:** ID로 단일 회사 레코드를 가져옵니다.
**파라미터:**
- `recordId` (string, 필수): 가져올 회사의 ID.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_CONTACTS">
<Accordion title="hubspot/get_contact">
**설명:** ID로 단일 연락처 레코드를 가져옵니다.
**파라미터:**
- `recordId` (string, 필수): 가져올 연락처의 ID.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_DEALS">
<Accordion title="hubspot/get_deal">
**설명:** ID로 단일 거래 레코드를 가져옵니다.
**파라미터:**
- `recordId` (string, 필수): 가져올 거래의 ID.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_ENGAGEMENTS">
<Accordion title="hubspot/get_record_by_id_engagements">
**설명:** ID로 단일 참여(engagement) 레코드를 가져옵니다.
**파라미터:**
- `recordId` (string, 필수): 가져올 참여의 ID.
</Accordion>
<Accordion title="HUBSPOT_GET_RECORD_BY_ID_ANY">
<Accordion title="hubspot/get_record_by_id_any">
**설명:** 지정된 오브젝트 타입의 단일 레코드를 ID로 가져옵니다.
**파라미터:**
@@ -377,7 +377,7 @@ uv add crewai-tools
- `recordId` (string, 필수): 가져올 레코드의 ID.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_COMPANIES">
<Accordion title="hubspot/search_companies">
**설명:** 필터 수식을 사용해 HubSpot에서 회사 레코드를 검색합니다.
**파라미터:**
@@ -385,7 +385,7 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_CONTACTS">
<Accordion title="hubspot/search_contacts">
**설명:** 필터 수식을 사용해 HubSpot에서 연락처 레코드를 검색합니다.
**파라미터:**
@@ -393,7 +393,7 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_DEALS">
<Accordion title="hubspot/search_deals">
**설명:** 필터 수식을 사용해 HubSpot에서 거래 레코드를 검색합니다.
**파라미터:**
@@ -401,7 +401,7 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_ENGAGEMENTS">
<Accordion title="hubspot/search_records_engagements">
**설명:** 필터 수식을 사용해 HubSpot에서 참여(engagement) 레코드를 검색합니다.
**파라미터:**
@@ -409,7 +409,7 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_SEARCH_RECORDS_ANY">
<Accordion title="hubspot/search_records_any">
**설명:** HubSpot에서 지정된 오브젝트 타입의 레코드를 검색합니다.
**파라미터:**
@@ -418,35 +418,35 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 다음 페이지를 가져오려면 `pageCursor`를 사용하세요.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_COMPANIES">
<Accordion title="hubspot/delete_record_companies">
**설명:** ID로 회사 레코드를 삭제합니다.
**파라미터:**
- `recordId` (string, 필수): 삭제할 회사의 ID.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_CONTACTS">
<Accordion title="hubspot/delete_record_contacts">
**설명:** ID로 연락처 레코드를 삭제합니다.
**파라미터:**
- `recordId` (string, 필수): 삭제할 연락처의 ID.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_DEALS">
<Accordion title="hubspot/delete_record_deals">
**설명:** ID로 거래 레코드를 삭제합니다.
**파라미터:**
- `recordId` (string, 필수): 삭제할 거래의 ID.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_ENGAGEMENTS">
<Accordion title="hubspot/delete_record_engagements">
**설명:** ID로 참여(engagement) 레코드를 삭제합니다.
**파라미터:**
- `recordId` (string, 필수): 삭제할 참여의 ID.
</Accordion>
<Accordion title="HUBSPOT_DELETE_RECORD_ANY">
<Accordion title="hubspot/delete_record_any">
**설명:** 지정된 오브젝트 타입의 레코드를 ID로 삭제합니다.
**파라미터:**
@@ -454,7 +454,7 @@ uv add crewai-tools
- `recordId` (string, 필수): 삭제할 레코드의 ID.
</Accordion>
<Accordion title="HUBSPOT_GET_CONTACTS_BY_LIST_ID">
<Accordion title="hubspot/get_contacts_by_list_id">
**설명:** 지정된 리스트 ID로부터 연락처 목록을 가져옵니다.
**파라미터:**
@@ -462,7 +462,7 @@ uv add crewai-tools
- `paginationParameters` (object, 선택): 이후 페이지를 위해 `pageCursor` 사용.
</Accordion>
<Accordion title="HUBSPOT_DESCRIBE_ACTION_SCHEMA">
<Accordion title="hubspot/describe_action_schema">
**설명:** 특정 오브젝트 타입 및 작업에 대한 예상 스키마를 가져옵니다.
**파라미터:**
@@ -477,19 +477,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (HubSpot tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with HubSpot capabilities
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 to create a new company
@@ -511,19 +505,16 @@ crew.kickoff()
### 특정 HubSpot 도구 필터링
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only the tool to create contacts
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 to create a contact
@@ -545,17 +536,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 to manage contacts

View File

@@ -25,7 +25,7 @@ Jira 통합을 사용하기 전에 다음을 준비하세요:
2. **Jira**를 인증 통합 섹션에서 찾습니다.
3. **Connect**를 클릭하고 OAuth 절차를 완료합니다.
4. 이슈 및 프로젝트 관리를 위한 필요한 권한을 부여합니다.
5. [Account Settings](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="JIRA_CREATE_ISSUE">
<Accordion title="jira/create_issue">
**설명:** Jira에서 이슈를 생성합니다.
**파라미터:**
@@ -56,7 +56,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="JIRA_UPDATE_ISSUE">
<Accordion title="jira/update_issue">
**설명:** Jira에서 이슈를 업데이트합니다.
**파라미터:**
@@ -71,14 +71,14 @@ uv add crewai-tools
- `additionalFields` (string, 선택): 추가 필드 - 포함해야 하는 다른 필드를 JSON 형식으로 지정하세요.
</Accordion>
<Accordion title="JIRA_GET_ISSUE_BY_KEY">
<Accordion title="jira/get_issue_by_key">
**설명:** Jira에서 키로 이슈를 조회합니다.
**파라미터:**
- `issueKey` (string, 필수): 이슈 키 (예시: "TEST-1234").
</Accordion>
<Accordion title="JIRA_FILTER_ISSUES">
<Accordion title="jira/filter_issues">
**설명:** 필터를 사용하여 Jira에서 이슈를 검색합니다.
**파라미터:**
@@ -104,7 +104,7 @@ uv add crewai-tools
- `limit` (string, 선택): 결과 제한 - 반환되는 최대 이슈 수를 제한합니다. 입력하지 않으면 기본값은 10입니다.
</Accordion>
<Accordion title="JIRA_SEARCH_BY_JQL">
<Accordion title="jira/search_by_jql">
**설명:** Jira에서 JQL로 이슈를 검색합니다.
**파라미터:**
@@ -117,13 +117,13 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="JIRA_UPDATE_ISSUE_ANY">
<Accordion title="jira/update_issue_any">
**설명:** Jira에서 임의의 이슈를 업데이트합니다. 이 기능의 속성 스키마를 얻으려면 DESCRIBE_ACTION_SCHEMA를 사용하세요.
**파라미터:** 특정 파라미터 없음 - 예상 스키마를 먼저 확인하려면 JIRA_DESCRIBE_ACTION_SCHEMA를 사용하세요.
</Accordion>
<Accordion title="JIRA_DESCRIBE_ACTION_SCHEMA">
<Accordion title="jira/describe_action_schema">
**설명:** 이슈 유형에 대한 예상 스키마를 가져옵니다. 사용하려는 이슈 유형과 일치하는 다른 기능이 없을 경우 먼저 이 기능을 사용하세요.
**파라미터:**
@@ -132,7 +132,7 @@ uv add crewai-tools
- `operation` (string, 필수): 작업 유형 값(예: CREATE_ISSUE 또는 UPDATE_ISSUE).
</Accordion>
<Accordion title="JIRA_GET_PROJECTS">
<Accordion title="jira/get_projects">
**설명:** Jira에서 프로젝트를 가져옵니다.
**파라미터:**
@@ -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">
**설명:** Jira에서 프로젝트별 이슈 유형을 조회합니다.
**파라미터:**
- `project` (string, 필수): 프로젝트 키.
</Accordion>
<Accordion title="JIRA_GET_ISSUE_TYPES">
<Accordion title="jira/get_issue_types">
**설명:** Jira에서 모든 이슈 유형을 조회합니다.
**파라미터:** 필요 없음.
</Accordion>
<Accordion title="JIRA_GET_ISSUE_STATUS_BY_PROJECT">
<Accordion title="jira/get_issue_status_by_project">
**설명:** 주어진 프로젝트의 이슈 상태를 조회합니다.
**파라미터:**
- `project` (string, 필수): 프로젝트 키.
</Accordion>
<Accordion title="JIRA_GET_ALL_ASSIGNEES_BY_PROJECT">
<Accordion title="jira/get_all_assignees_by_project">
**설명:** 주어진 프로젝트의 담당자 목록을 조회합니다.
**파라미터:**
@@ -178,19 +178,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Jira tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Jira capabilities
jira_agent = Agent(
role="Issue Manager",
goal="Manage Jira issues and track project progress efficiently",
backstory="An AI assistant specialized in issue tracking and project management.",
tools=[enterprise_tools]
apps=['jira']
)
# Task to create a bug report
@@ -212,19 +206,12 @@ crew.kickoff()
### 특정 Jira 도구 필터링
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Jira tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["jira_create_issue", "jira_update_issue", "jira_search_by_jql"]
)
issue_coordinator = Agent(
role="Issue Coordinator",
goal="Create and manage Jira issues efficiently",
backstory="An AI assistant that focuses on issue creation and management.",
tools=enterprise_tools
apps=['jira']
)
# Task to manage issue workflow
@@ -246,17 +233,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="Analyze project data and generate insights from Jira",
backstory="An experienced project analyst who extracts insights from project management data.",
tools=[enterprise_tools]
apps=['jira']
)
# Task to analyze project status
@@ -283,17 +265,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="Automate issue management and workflow processes",
backstory="An AI assistant that automates repetitive issue management tasks.",
tools=[enterprise_tools]
apps=['jira']
)
# Task to automate issue management
@@ -321,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"
)
schema_specialist = Agent(
role="Schema Specialist",
goal="Handle complex Jira operations using dynamic schemas",
backstory="An AI assistant that can work with dynamic Jira schemas and custom issue types.",
tools=[enterprise_tools]
apps=['jira']
)
# Task using schema-based operations

View File

@@ -25,7 +25,7 @@ Linear 통합을 사용하기 전에 다음을 확인하세요:
2. 인증 통합( Authentication Integrations ) 섹션에서 **Linear**를 찾습니다.
3. **Connect**를 클릭하고 OAuth 절차를 완료합니다.
4. 이슈 및 프로젝트 관리를 위한 필수 권한을 부여합니다.
5. [계정 설정](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="LINEAR_CREATE_ISSUE">
<Accordion title="linear/create_issue">
**설명:** Linear에서 새로운 이슈를 생성합니다.
**파라미터:**
@@ -56,7 +56,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_UPDATE_ISSUE">
<Accordion title="linear/update_issue">
**설명:** Linear에서 이슈를 업데이트합니다.
**파라미터:**
@@ -76,21 +76,21 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_GET_ISSUE_BY_ID">
<Accordion title="linear/get_issue_by_id">
**설명:** Linear에서 ID로 이슈를 가져옵니다.
**파라미터:**
- `issueId` (string, 필수): 이슈 ID - 가져올 이슈의 레코드 ID를 지정합니다. (예: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
</Accordion>
<Accordion title="LINEAR_GET_ISSUE_BY_ISSUE_IDENTIFIER">
<Accordion title="linear/get_issue_by_issue_identifier">
**설명:** Linear에서 이슈 식별자로 이슈를 가져옵니다.
**파라미터:**
- `externalId` (string, 필수): 외부 ID - 가져올 이슈의 사람이 읽을 수 있는 이슈 식별자를 지정합니다. (예: "ABC-1").
</Accordion>
<Accordion title="LINEAR_SEARCH_ISSUE">
<Accordion title="linear/search_issue">
**설명:** Linear에서 이슈를 검색합니다.
**파라미터:**
@@ -117,21 +117,21 @@ uv add crewai-tools
사용 가능한 연산자: `$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">
**설명:** Linear에서 이슈를 삭제합니다.
**파라미터:**
- `issueId` (string, 필수): 이슈 ID - 삭제할 이슈의 레코드 ID를 지정합니다. (예: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
</Accordion>
<Accordion title="LINEAR_ARCHIVE_ISSUE">
<Accordion title="linear/archive_issue">
**설명:** Linear에서 이슈를 아카이브합니다.
**파라미터:**
- `issueId` (string, 필수): 이슈 ID - 아카이브할 이슈의 레코드 ID를 지정합니다. (예: "90fbc706-18cd-42c9-ae66-6bd344cc8977").
</Accordion>
<Accordion title="LINEAR_CREATE_SUB_ISSUE">
<Accordion title="linear/create_sub_issue">
**설명:** Linear에서 하위 이슈를 생성합니다.
**파라미터:**
@@ -147,7 +147,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_CREATE_PROJECT">
<Accordion title="linear/create_project">
**설명:** Linear에서 새로운 프로젝트를 생성합니다.
**파라미터:**
@@ -169,7 +169,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_UPDATE_PROJECT">
<Accordion title="linear/update_project">
**설명:** Linear에서 프로젝트를 업데이트합니다.
**파라미터:**
@@ -185,21 +185,21 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="LINEAR_GET_PROJECT_BY_ID">
<Accordion title="linear/get_project_by_id">
**설명:** Linear에서 ID로 프로젝트를 가져옵니다.
**파라미터:**
- `projectId` (string, 필수): 프로젝트 ID - 가져올 프로젝트의 프로젝트 ID를 지정합니다. (예: "a6634484-6061-4ac7-9739-7dc5e52c796b").
</Accordion>
<Accordion title="LINEAR_DELETE_PROJECT">
<Accordion title="linear/delete_project">
**설명:** Linear에서 프로젝트를 삭제합니다.
**파라미터:**
- `projectId` (string, 필수): 프로젝트 ID - 삭제할 프로젝트의 프로젝트 ID를 지정합니다. (예: "a6634484-6061-4ac7-9739-7dc5e52c796b").
</Accordion>
<Accordion title="LINEAR_SEARCH_TEAMS">
<Accordion title="linear/search_teams">
**설명:** Linear에서 팀을 검색합니다.
**파라미터:**
@@ -231,19 +231,13 @@ uv add crewai-tools
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Linear tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Linear capabilities
linear_agent = Agent(
role="Development Manager",
goal="Manage Linear issues and track development progress efficiently",
backstory="An AI assistant specialized in software development project management.",
tools=[enterprise_tools]
apps=['linear']
)
# Task to create a bug report
@@ -265,19 +259,12 @@ crew.kickoff()
### 특정 Linear 도구 필터링
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Linear tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["linear_create_issue", "linear_update_issue", "linear_search_issue"]
)
issue_manager = Agent(
role="Issue Manager",
goal="Create and manage Linear issues efficiently",
backstory="An AI assistant that focuses on issue creation and lifecycle management.",
tools=enterprise_tools
apps=['linear']
)
# Task to manage issue workflow
@@ -299,17 +286,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 projects and teams in Linear efficiently",
backstory="An experienced project coordinator who manages development cycles and team workflows.",
tools=[enterprise_tools]
apps=['linear']
)
# Task to coordinate project setup
@@ -336,17 +318,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="Organize complex issues into manageable sub-tasks",
backstory="An AI assistant that breaks down complex development work into organized sub-tasks.",
tools=[enterprise_tools]
apps=['linear']
)
# Task to create issue hierarchy
@@ -373,17 +350,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="Automate development workflow processes in Linear",
backstory="An AI assistant that automates repetitive development workflow tasks.",
tools=[enterprise_tools]
apps=['linear']
)
# Complex workflow automation task

View File

@@ -0,0 +1,234 @@
---
title: Microsoft Excel 통합
description: "CrewAI를 위한 Microsoft Excel 통합으로 통합 문서 및 데이터 관리."
icon: "table"
mode: "wide"
---
## 개요
에이전트가 OneDrive 또는 SharePoint에서 Excel 통합 문서, 워크시트, 테이블 및 차트를 생성하고 관리할 수 있도록 합니다. AI 기반 자동화로 데이터 범위를 조작하고, 시각화를 생성하고, 테이블을 관리하며, 스프레드시트 워크플로를 간소화합니다.
## 전제 조건
Microsoft Excel 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Excel 및 OneDrive/SharePoint 액세스 권한이 있는 Microsoft 365 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결
## Microsoft Excel 통합 설정
### 1. Microsoft 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Microsoft Excel** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 파일 및 Excel 통합 문서 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="microsoft_excel/create_workbook">
**설명:** OneDrive 또는 SharePoint에 새 Excel 통합 문서를 만듭니다.
**매개변수:**
- `file_path` (string, 필수): 통합 문서를 만들 경로 (예: 'MyWorkbook.xlsx')
- `worksheets` (array, 선택사항): 만들 초기 워크시트들. 각 항목은 `name` (string, 워크시트 이름)이 있는 객체.
</Accordion>
<Accordion title="microsoft_excel/get_workbooks">
**설명:** OneDrive 또는 SharePoint에서 모든 Excel 통합 문서를 가져옵니다.
**매개변수:**
- `select` (string, 선택사항): 반환할 특정 속성 선택.
- `filter` (string, 선택사항): OData 구문을 사용하여 결과 필터링.
- `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장.
- `top` (integer, 선택사항): 반환할 항목 수 (최소 1, 최대 999).
- `orderby` (string, 선택사항): 지정된 속성으로 결과 정렬.
</Accordion>
<Accordion title="microsoft_excel/get_worksheets">
**설명:** Excel 통합 문서의 모든 워크시트를 가져옵니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `select` (string, 선택사항): 반환할 특정 속성 선택 (예: 'id,name,position').
- `filter` (string, 선택사항): OData 구문을 사용하여 결과 필터링.
- `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장.
- `top` (integer, 선택사항): 반환할 항목 수 (최소 1, 최대 999).
- `orderby` (string, 선택사항): 지정된 속성으로 결과 정렬.
</Accordion>
<Accordion title="microsoft_excel/create_worksheet">
**설명:** Excel 통합 문서에 새 워크시트를 만듭니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `name` (string, 필수): 새 워크시트의 이름.
</Accordion>
<Accordion title="microsoft_excel/get_range_data">
**설명:** Excel 워크시트의 특정 범위에서 데이터를 가져옵니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
- `range` (string, 필수): 범위 주소 (예: 'A1:C10').
</Accordion>
<Accordion title="microsoft_excel/update_range_data">
**설명:** Excel 워크시트의 특정 범위에서 데이터를 업데이트합니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
- `range` (string, 필수): 범위 주소 (예: 'A1:C10').
- `values` (array, 필수): 범위에 설정할 값들의 2D 배열. 각 내부 배열은 행을 나타내며, 요소는 string, number 또는 integer일 수 있음.
</Accordion>
<Accordion title="microsoft_excel/add_table">
**설명:** Excel 워크시트에 테이블을 만듭니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
- `range` (string, 필수): 테이블의 범위 (예: 'A1:D10').
- `has_headers` (boolean, 선택사항): 첫 번째 행이 헤더를 포함하는지 여부. 기본값: true.
</Accordion>
<Accordion title="microsoft_excel/get_tables">
**설명:** Excel 워크시트의 모든 테이블을 가져옵니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
</Accordion>
<Accordion title="microsoft_excel/add_table_row">
**설명:** Excel 테이블에 새 행을 추가합니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
- `table_name` (string, 필수): 테이블의 이름.
- `values` (array, 필수): 새 행의 값들 배열. 요소는 string, number 또는 integer일 수 있음.
</Accordion>
<Accordion title="microsoft_excel/create_chart">
**설명:** Excel 워크시트에 차트를 만듭니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
- `chart_type` (string, 필수): 차트 유형 (예: 'ColumnClustered', 'Line', 'Pie').
- `source_data` (string, 필수): 차트의 데이터 범위 (예: 'A1:B10').
- `series_by` (string, 선택사항): 데이터 해석 방법 ('Auto', 'Columns' 또는 'Rows'). 기본값: 'Auto'.
</Accordion>
<Accordion title="microsoft_excel/get_cell">
**설명:** Excel 워크시트의 단일 셀 값을 가져옵니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
- `row` (integer, 필수): 행 번호 (0 기반).
- `column` (integer, 필수): 열 번호 (0 기반).
</Accordion>
<Accordion title="microsoft_excel/get_used_range">
**설명:** Excel 워크시트의 사용된 범위를 가져옵니다 (모든 데이터를 포함).
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
</Accordion>
<Accordion title="microsoft_excel/list_charts">
**설명:** Excel 워크시트의 모든 차트를 가져옵니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
</Accordion>
<Accordion title="microsoft_excel/delete_worksheet">
**설명:** Excel 통합 문서에서 워크시트를 삭제합니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 삭제할 워크시트의 이름.
</Accordion>
<Accordion title="microsoft_excel/delete_table">
**설명:** Excel 워크시트에서 테이블을 삭제합니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
- `worksheet_name` (string, 필수): 워크시트의 이름.
- `table_name` (string, 필수): 삭제할 테이블의 이름.
</Accordion>
<Accordion title="microsoft_excel/list_names">
**설명:** Excel 통합 문서의 모든 명명된 범위를 가져옵니다.
**매개변수:**
- `file_id` (string, 필수): Excel 파일의 ID.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Microsoft Excel 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Microsoft Excel 기능을 가진 에이전트 생성
excel_agent = Agent(
role="Excel 데이터 관리자",
goal="Excel 통합 문서와 데이터를 효율적으로 관리",
backstory="Microsoft Excel 작업 및 데이터 조작 전문 AI 어시스턴트.",
apps=['microsoft_excel'] # 모든 Excel 작업을 사용할 수 있습니다
)
# 새 통합 문서 생성 작업
create_workbook_task = Task(
description="'월간보고서.xlsx'라는 이름으로 새 Excel 통합 문서를 만들고 '매출데이터'라는 초기 워크시트를 포함하세요.",
agent=excel_agent,
expected_output="새 통합 문서 '월간보고서.xlsx'가 '매출데이터' 워크시트와 함께 생성됨."
)
# 작업 실행
crew = Crew(
agents=[excel_agent],
tasks=[create_workbook_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Microsoft 계정이 파일 액세스에 필요한 권한을 가지고 있는지 확인하세요 (예: `Files.Read.All`, `Files.ReadWrite.All`).
- OAuth 연결이 필요한 모든 범위를 포함하는지 확인하세요.
**파일 생성 문제**
- 통합 문서를 만들 때 `file_path`가 `.xlsx` 확장자로 끝나는지 확인하세요.
- 대상 위치(OneDrive/SharePoint)에 쓰기 권한이 있는지 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Microsoft Excel 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -0,0 +1,174 @@
---
title: Microsoft OneDrive 통합
description: "CrewAI를 위한 Microsoft OneDrive 통합으로 파일 및 폴더 관리."
icon: "cloud"
mode: "wide"
---
## 개요
에이전트가 Microsoft OneDrive에서 파일과 폴더를 업로드, 다운로드 및 관리할 수 있도록 합니다. AI 기반 자동화로 파일 작업을 자동화하고, 콘텐츠를 구성하고, 공유 링크를 생성하며, 클라우드 스토리지 워크플로를 간소화합니다.
## 전제 조건
Microsoft OneDrive 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- OneDrive 액세스 권한이 있는 Microsoft 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결
## Microsoft OneDrive 통합 설정
### 1. Microsoft 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Microsoft OneDrive** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 파일 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="microsoft_onedrive/list_files">
**설명:** OneDrive의 파일과 폴더를 나열합니다.
**매개변수:**
- `top` (integer, 선택사항): 검색할 항목 수 (최대 1000). 기본값: 50.
- `orderby` (string, 선택사항): 필드별 정렬 (예: "name asc", "lastModifiedDateTime desc"). 기본값: "name asc".
- `filter` (string, 선택사항): OData 필터 표현식.
</Accordion>
<Accordion title="microsoft_onedrive/get_file_info">
**설명:** 특정 파일 또는 폴더에 대한 정보를 가져옵니다.
**매개변수:**
- `item_id` (string, 필수): 파일 또는 폴더의 ID.
</Accordion>
<Accordion title="microsoft_onedrive/download_file">
**설명:** OneDrive에서 파일을 다운로드합니다.
**매개변수:**
- `item_id` (string, 필수): 다운로드할 파일의 ID.
</Accordion>
<Accordion title="microsoft_onedrive/upload_file">
**설명:** OneDrive에 파일을 업로드합니다.
**매개변수:**
- `file_name` (string, 필수): 업로드할 파일의 이름.
- `content` (string, 필수): Base64로 인코딩된 파일 내용.
</Accordion>
<Accordion title="microsoft_onedrive/create_folder">
**설명:** OneDrive에 새 폴더를 만듭니다.
**매개변수:**
- `folder_name` (string, 필수): 만들 폴더의 이름.
</Accordion>
<Accordion title="microsoft_onedrive/delete_item">
**설명:** OneDrive에서 파일 또는 폴더를 삭제합니다.
**매개변수:**
- `item_id` (string, 필수): 삭제할 파일 또는 폴더의 ID.
</Accordion>
<Accordion title="microsoft_onedrive/copy_item">
**설명:** OneDrive에서 파일 또는 폴더를 복사합니다.
**매개변수:**
- `item_id` (string, 필수): 복사할 파일 또는 폴더의 ID.
- `parent_id` (string, 선택사항): 대상 폴더의 ID (선택사항, 기본값은 루트).
- `new_name` (string, 선택사항): 복사된 항목의 새 이름 (선택사항).
</Accordion>
<Accordion title="microsoft_onedrive/move_item">
**설명:** OneDrive에서 파일 또는 폴더를 이동합니다.
**매개변수:**
- `item_id` (string, 필수): 이동할 파일 또는 폴더의 ID.
- `parent_id` (string, 필수): 대상 폴더의 ID.
- `new_name` (string, 선택사항): 항목의 새 이름 (선택사항).
</Accordion>
<Accordion title="microsoft_onedrive/search_files">
**설명:** OneDrive에서 파일과 폴더를 검색합니다.
**매개변수:**
- `query` (string, 필수): 검색 쿼리 문자열.
- `top` (integer, 선택사항): 반환할 결과 수 (최대 1000). 기본값: 50.
</Accordion>
<Accordion title="microsoft_onedrive/share_item">
**설명:** 파일 또는 폴더의 공유 링크를 만듭니다.
**매개변수:**
- `item_id` (string, 필수): 공유할 파일 또는 폴더의 ID.
- `type` (string, 선택사항): 공유 링크 유형. 옵션: view, edit, embed. 기본값: view.
- `scope` (string, 선택사항): 공유 링크 범위. 옵션: anonymous, organization. 기본값: anonymous.
</Accordion>
<Accordion title="microsoft_onedrive/get_thumbnails">
**설명:** 파일의 썸네일을 가져옵니다.
**매개변수:**
- `item_id` (string, 필수): 파일의 ID.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Microsoft OneDrive 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Microsoft OneDrive 기능을 가진 에이전트 생성
onedrive_agent = Agent(
role="파일 관리자",
goal="OneDrive에서 파일과 폴더를 효율적으로 관리",
backstory="Microsoft OneDrive 파일 작업 및 구성 전문 AI 어시스턴트.",
apps=['microsoft_onedrive'] # 모든 OneDrive 작업을 사용할 수 있습니다
)
# 파일 나열 및 폴더 생성 작업
organize_files_task = Task(
description="OneDrive 루트 디렉토리의 모든 파일을 나열하고 '프로젝트 문서'라는 새 폴더를 만드세요.",
agent=onedrive_agent,
expected_output="파일 목록이 표시되고 새 폴더 '프로젝트 문서'가 생성됨."
)
# 작업 실행
crew = Crew(
agents=[onedrive_agent],
tasks=[organize_files_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Microsoft 계정이 파일 액세스에 필요한 권한을 가지고 있는지 확인하세요 (예: `Files.Read`, `Files.ReadWrite`).
- OAuth 연결이 필요한 모든 범위를 포함하는지 확인하세요.
**파일 업로드 문제**
- 파일 업로드 시 `file_name`과 `content`가 제공되는지 확인하세요.
- 바이너리 파일의 경우 내용이 Base64로 인코딩되어야 합니다.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Microsoft OneDrive 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -0,0 +1,161 @@
---
title: Microsoft Outlook 통합
description: "CrewAI를 위한 Microsoft Outlook 통합으로 이메일, 캘린더 및 연락처 관리."
icon: "envelope"
mode: "wide"
---
## 개요
에이전트가 Outlook 이메일, 캘린더 이벤트 및 연락처에 액세스하고 관리할 수 있도록 합니다. AI 기반 자동화로 이메일을 보내고, 메시지를 검색하고, 캘린더 이벤트를 관리하며, 연락처를 구성합니다.
## 전제 조건
Microsoft Outlook 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Outlook 액세스 권한이 있는 Microsoft 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결
## Microsoft Outlook 통합 설정
### 1. Microsoft 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Microsoft Outlook** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 이메일, 캘린더 및 연락처 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="microsoft_outlook/get_messages">
**설명:** 사용자의 사서함에서 이메일 메시지를 가져옵니다.
**매개변수:**
- `top` (integer, 선택사항): 검색할 메시지 수 (최대 1000). 기본값: 10.
- `filter` (string, 선택사항): OData 필터 표현식 (예: "isRead eq false").
- `search` (string, 선택사항): 검색 쿼리 문자열.
- `orderby` (string, 선택사항): 필드별 정렬 (예: "receivedDateTime desc"). 기본값: "receivedDateTime desc".
- `select` (string, 선택사항): 반환할 특정 속성 선택.
- `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장.
</Accordion>
<Accordion title="microsoft_outlook/send_email">
**설명:** 이메일 메시지를 보냅니다.
**매개변수:**
- `to_recipients` (array, 필수): 받는 사람의 이메일 주소 배열.
- `cc_recipients` (array, 선택사항): 참조 받는 사람의 이메일 주소 배열.
- `bcc_recipients` (array, 선택사항): 숨은 참조 받는 사람의 이메일 주소 배열.
- `subject` (string, 필수): 이메일 제목.
- `body` (string, 필수): 이메일 본문 내용.
- `body_type` (string, 선택사항): 본문 내용 유형. 옵션: Text, HTML. 기본값: HTML.
- `importance` (string, 선택사항): 메시지 중요도 수준. 옵션: low, normal, high. 기본값: normal.
- `reply_to` (array, 선택사항): 회신용 이메일 주소 배열.
- `save_to_sent_items` (boolean, 선택사항): 보낸 편지함 폴더에 메시지를 저장할지 여부. 기본값: true.
</Accordion>
<Accordion title="microsoft_outlook/get_calendar_events">
**설명:** 사용자의 캘린더에서 캘린더 이벤트를 가져옵니다.
**매개변수:**
- `top` (integer, 선택사항): 검색할 이벤트 수 (최대 1000). 기본값: 10.
- `skip` (integer, 선택사항): 건너뛸 이벤트 수. 기본값: 0.
- `filter` (string, 선택사항): OData 필터 표현식 (예: "start/dateTime ge '2024-01-01T00:00:00Z'").
- `orderby` (string, 선택사항): 필드별 정렬 (예: "start/dateTime asc"). 기본값: "start/dateTime asc".
</Accordion>
<Accordion title="microsoft_outlook/create_calendar_event">
**설명:** 새 캘린더 이벤트를 만듭니다.
**매개변수:**
- `subject` (string, 필수): 이벤트 제목/제목.
- `body` (string, 선택사항): 이벤트 본문/설명.
- `start_datetime` (string, 필수): ISO 8601 형식의 시작 날짜 및 시간 (예: '2024-01-20T10:00:00').
- `end_datetime` (string, 필수): ISO 8601 형식의 종료 날짜 및 시간.
- `timezone` (string, 선택사항): 시간대 (예: 'Pacific Standard Time'). 기본값: UTC.
- `location` (string, 선택사항): 이벤트 위치.
- `attendees` (array, 선택사항): 참석자의 이메일 주소 배열.
</Accordion>
<Accordion title="microsoft_outlook/get_contacts">
**설명:** 사용자의 주소록에서 연락처를 가져옵니다.
**매개변수:**
- `top` (integer, 선택사항): 검색할 연락처 수 (최대 1000). 기본값: 10.
- `skip` (integer, 선택사항): 건너뛸 연락처 수. 기본값: 0.
- `filter` (string, 선택사항): OData 필터 표현식.
- `orderby` (string, 선택사항): 필드별 정렬 (예: "displayName asc"). 기본값: "displayName asc".
</Accordion>
<Accordion title="microsoft_outlook/create_contact">
**설명:** 사용자의 주소록에 새 연락처를 만듭니다.
**매개변수:**
- `displayName` (string, 필수): 연락처의 표시 이름.
- `givenName` (string, 선택사항): 연락처의 이름.
- `surname` (string, 선택사항): 연락처의 성.
- `emailAddresses` (array, 선택사항): 이메일 주소 배열. 각 항목은 `address` (string)와 `name` (string)이 있는 객체.
- `businessPhones` (array, 선택사항): 사업용 전화번호 배열.
- `homePhones` (array, 선택사항): 집 전화번호 배열.
- `jobTitle` (string, 선택사항): 연락처의 직책.
- `companyName` (string, 선택사항): 연락처의 회사 이름.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Microsoft Outlook 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Microsoft Outlook 기능을 가진 에이전트 생성
outlook_agent = Agent(
role="이메일 어시스턴트",
goal="이메일, 캘린더 이벤트 및 연락처를 효율적으로 관리",
backstory="Microsoft Outlook 작업 및 커뮤니케이션 관리 전문 AI 어시스턴트.",
apps=['microsoft_outlook'] # 모든 Outlook 작업을 사용할 수 있습니다
)
# 이메일 보내기 작업
send_email_task = Task(
description="'colleague@example.com'에게 제목 '프로젝트 업데이트'와 본문 '안녕하세요, 프로젝트의 최신 업데이트입니다. 감사합니다.'로 이메일을 보내세요",
agent=outlook_agent,
expected_output="colleague@example.com에게 이메일이 성공적으로 전송됨"
)
# 작업 실행
crew = Crew(
agents=[outlook_agent],
tasks=[send_email_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Microsoft 계정이 이메일, 캘린더 및 연락처 액세스에 필요한 권한을 가지고 있는지 확인하세요.
- 필요한 범위: `Mail.Read`, `Mail.Send`, `Calendars.Read`, `Calendars.ReadWrite`, `Contacts.Read`, `Contacts.ReadWrite`.
**이메일 보내기 문제**
- `send_email`에 `to_recipients`, `subject`, `body`가 제공되는지 확인하세요.
- 이메일 주소가 올바르게 형식화되어 있는지 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Microsoft Outlook 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -0,0 +1,185 @@
---
title: Microsoft SharePoint 통합
description: "CrewAI를 위한 Microsoft SharePoint 통합으로 사이트, 목록 및 문서 관리."
icon: "folder-tree"
mode: "wide"
---
## 개요
에이전트가 SharePoint 사이트, 목록 및 문서 라이브러리에 액세스하고 관리할 수 있도록 합니다. AI 기반 자동화로 사이트 정보를 검색하고, 목록 항목을 관리하고, 파일을 업로드 및 구성하며, SharePoint 워크플로를 간소화합니다.
## 전제 조건
Microsoft SharePoint 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- SharePoint 액세스 권한이 있는 Microsoft 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결
## Microsoft SharePoint 통합 설정
### 1. Microsoft 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Microsoft SharePoint** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. SharePoint 사이트 및 파일 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="microsoft_sharepoint/get_sites">
**설명:** 사용자가 액세스할 수 있는 모든 SharePoint 사이트를 가져옵니다.
**매개변수:**
- `search` (string, 선택사항): 사이트를 필터링하기 위한 검색 쿼리.
- `select` (string, 선택사항): 반환할 특정 속성 선택 (예: 'displayName,id,webUrl').
- `filter` (string, 선택사항): OData 구문을 사용하여 결과 필터링.
- `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장.
- `top` (integer, 선택사항): 반환할 항목 수 (최소 1, 최대 999).
- `skip` (integer, 선택사항): 건너뛸 항목 수 (최소 0).
- `orderby` (string, 선택사항): 지정된 속성으로 결과 정렬 (예: 'displayName desc').
</Accordion>
<Accordion title="microsoft_sharepoint/get_site">
**설명:** 특정 SharePoint 사이트에 대한 정보를 가져옵니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `select` (string, 선택사항): 반환할 특정 속성 선택 (예: 'displayName,id,webUrl,drives').
- `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장 (예: 'drives,lists').
</Accordion>
<Accordion title="microsoft_sharepoint/get_site_lists">
**설명:** SharePoint 사이트의 모든 목록을 가져옵니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
</Accordion>
<Accordion title="microsoft_sharepoint/get_list">
**설명:** 특정 목록에 대한 정보를 가져옵니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `list_id` (string, 필수): 목록의 ID.
</Accordion>
<Accordion title="microsoft_sharepoint/get_list_items">
**설명:** SharePoint 목록에서 항목을 가져옵니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `list_id` (string, 필수): 목록의 ID.
- `expand` (string, 선택사항): 관련 데이터 확장 (예: 'fields').
</Accordion>
<Accordion title="microsoft_sharepoint/create_list_item">
**설명:** SharePoint 목록에 새 항목을 만듭니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `list_id` (string, 필수): 목록의 ID.
- `fields` (object, 필수): 새 항목의 필드 값.
</Accordion>
<Accordion title="microsoft_sharepoint/update_list_item">
**설명:** SharePoint 목록의 항목을 업데이트합니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `list_id` (string, 필수): 목록의 ID.
- `item_id` (string, 필수): 업데이트할 항목의 ID.
- `fields` (object, 필수): 업데이트할 필드 값.
</Accordion>
<Accordion title="microsoft_sharepoint/delete_list_item">
**설명:** SharePoint 목록에서 항목을 삭제합니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `list_id` (string, 필수): 목록의 ID.
- `item_id` (string, 필수): 삭제할 항목의 ID.
</Accordion>
<Accordion title="microsoft_sharepoint/upload_file_to_library">
**설명:** SharePoint 문서 라이브러리에 파일을 업로드합니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `file_path` (string, 필수): 파일을 업로드할 경로 (예: 'folder/fileName.txt').
- `content` (string, 필수): 업로드할 파일의 내용.
</Accordion>
<Accordion title="microsoft_sharepoint/get_drive_items">
**설명:** SharePoint 문서 라이브러리에서 파일과 폴더를 가져옵니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
</Accordion>
<Accordion title="microsoft_sharepoint/delete_drive_item">
**설명:** SharePoint 문서 라이브러리에서 파일 또는 폴더를 삭제합니다.
**매개변수:**
- `site_id` (string, 필수): SharePoint 사이트의 ID.
- `item_id` (string, 필수): 삭제할 파일 또는 폴더의 ID.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Microsoft SharePoint 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Microsoft SharePoint 기능을 가진 에이전트 생성
sharepoint_agent = Agent(
role="SharePoint 관리자",
goal="SharePoint 사이트, 목록 및 문서를 효율적으로 관리",
backstory="Microsoft SharePoint 관리 및 콘텐츠 관리 전문 AI 어시스턴트.",
apps=['microsoft_sharepoint'] # 모든 SharePoint 작업을 사용할 수 있습니다
)
# 모든 사이트 가져오기 작업
get_sites_task = Task(
description="액세스할 수 있는 모든 SharePoint 사이트를 나열하세요.",
agent=sharepoint_agent,
expected_output="표시 이름과 URL이 포함된 SharePoint 사이트 목록."
)
# 작업 실행
crew = Crew(
agents=[sharepoint_agent],
tasks=[get_sites_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Microsoft 계정이 SharePoint 액세스에 필요한 권한을 가지고 있는지 확인하세요 (예: `Sites.Read.All`, `Sites.ReadWrite.All`).
- OAuth 연결이 필요한 모든 범위를 포함하는지 확인하세요.
**사이트/목록/항목 ID 문제**
- 사이트, 목록, 항목 ID가 올바른지 다시 확인하세요.
- 참조된 리소스가 존재하고 액세스할 수 있는지 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Microsoft SharePoint 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -0,0 +1,136 @@
---
title: Microsoft Teams 통합
description: "CrewAI를 위한 Microsoft Teams 통합으로 팀 협업 및 커뮤니케이션."
icon: "users"
mode: "wide"
---
## 개요
에이전트가 Teams 데이터에 액세스하고, 메시지를 보내고, 회의를 만들고, 채널을 관리할 수 있도록 합니다. AI 기반 자동화로 팀 커뮤니케이션을 자동화하고, 회의를 예약하고, 메시지를 검색하며, 협업 워크플로를 간소화합니다.
## 전제 조건
Microsoft Teams 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Teams 액세스 권한이 있는 Microsoft 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결
## Microsoft Teams 통합 설정
### 1. Microsoft 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Microsoft Teams** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. Teams 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="microsoft_teams/get_teams">
**설명:** 사용자가 멤버인 모든 팀을 가져옵니다.
**매개변수:**
- 매개변수가 필요하지 않습니다.
</Accordion>
<Accordion title="microsoft_teams/get_channels">
**설명:** 특정 팀의 채널을 가져옵니다.
**매개변수:**
- `team_id` (string, 필수): 팀의 ID.
</Accordion>
<Accordion title="microsoft_teams/send_message">
**설명:** Teams 채널에 메시지를 보냅니다.
**매개변수:**
- `team_id` (string, 필수): 팀의 ID.
- `channel_id` (string, 필수): 채널의 ID.
- `message` (string, 필수): 메시지 내용.
- `content_type` (string, 선택사항): 콘텐츠 유형 (html 또는 text). 옵션: html, text. 기본값: text.
</Accordion>
<Accordion title="microsoft_teams/get_messages">
**설명:** Teams 채널에서 메시지를 가져옵니다.
**매개변수:**
- `team_id` (string, 필수): 팀의 ID.
- `channel_id` (string, 필수): 채널의 ID.
- `top` (integer, 선택사항): 검색할 메시지 수 (최대 50). 기본값: 20.
</Accordion>
<Accordion title="microsoft_teams/create_meeting">
**설명:** Teams 회의를 만듭니다.
**매개변수:**
- `subject` (string, 필수): 회의 제목/제목.
- `startDateTime` (string, 필수): 회의 시작 시간 (시간대가 포함된 ISO 8601 형식).
- `endDateTime` (string, 필수): 회의 종료 시간 (시간대가 포함된 ISO 8601 형식).
</Accordion>
<Accordion title="microsoft_teams/search_online_meetings_by_join_url">
**설명:** 웹 참가 URL로 온라인 회의를 검색합니다.
**매개변수:**
- `join_web_url` (string, 필수): 검색할 회의의 웹 참가 URL.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Microsoft Teams 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Microsoft Teams 기능을 가진 에이전트 생성
teams_agent = Agent(
role="Teams 코디네이터",
goal="Teams 커뮤니케이션 및 회의를 효율적으로 관리",
backstory="Microsoft Teams 작업 및 팀 협업 전문 AI 어시스턴트.",
apps=['microsoft_teams'] # 모든 Teams 작업을 사용할 수 있습니다
)
# 팀 및 채널 탐색 작업
explore_teams_task = Task(
description="내가 멤버인 모든 팀을 나열한 다음 첫 번째 팀의 채널을 가져오세요.",
agent=teams_agent,
expected_output="팀 및 채널 목록이 표시됨."
)
# 작업 실행
crew = Crew(
agents=[teams_agent],
tasks=[explore_teams_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Microsoft 계정이 Teams 액세스에 필요한 권한을 가지고 있는지 확인하세요.
- 필요한 범위: `Team.ReadBasic.All`, `Channel.ReadBasic.All`, `ChannelMessage.Send`, `ChannelMessage.Read.All`, `OnlineMeetings.ReadWrite`, `OnlineMeetings.Read`.
**팀 및 채널 액세스**
- 액세스하려는 팀의 멤버인지 확인하세요.
- 팀 및 채널 ID가 올바른지 다시 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Microsoft Teams 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -0,0 +1,127 @@
---
title: Microsoft Word 통합
description: "CrewAI를 위한 Microsoft Word 통합으로 문서 생성 및 관리."
icon: "file-word"
mode: "wide"
---
## 개요
에이전트가 OneDrive 또는 SharePoint에서 Word 문서와 텍스트 파일을 생성, 읽기 및 관리할 수 있도록 합니다. AI 기반 자동화로 문서 생성을 자동화하고, 콘텐츠를 검색하고, 문서 속성을 관리하며, 문서 워크플로를 간소화합니다.
## 전제 조건
Microsoft Word 통합을 사용하기 전에 다음 사항을 확인하세요:
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
- Word 및 OneDrive/SharePoint 액세스 권한이 있는 Microsoft 계정
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결
## Microsoft Word 통합 설정
### 1. Microsoft 계정 연결
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
2. 인증 통합 섹션에서 **Microsoft Word** 찾기
3. **연결**을 클릭하고 OAuth 플로우 완료
4. 파일 액세스에 필요한 권한 부여
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
### 2. 필요한 패키지 설치
```bash
uv add crewai-tools
```
## 사용 가능한 작업
<AccordionGroup>
<Accordion title="microsoft_word/get_documents">
**설명:** OneDrive 또는 SharePoint에서 모든 Word 문서를 가져옵니다.
**매개변수:**
- `select` (string, 선택사항): 반환할 특정 속성 선택.
- `filter` (string, 선택사항): OData 구문을 사용하여 결과 필터링.
- `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장.
- `top` (integer, 선택사항): 반환할 항목 수 (최소 1, 최대 999).
- `orderby` (string, 선택사항): 지정된 속성으로 결과 정렬.
</Accordion>
<Accordion title="microsoft_word/create_text_document">
**설명:** 내용이 있는 텍스트 문서(.txt)를 만듭니다. 읽기 가능하고 편집 가능해야 하는 프로그래밍 방식 콘텐츠 생성에 권장됩니다.
**매개변수:**
- `file_name` (string, 필수): 텍스트 문서의 이름 (.txt로 끝나야 함).
- `content` (string, 선택사항): 문서의 텍스트 내용. 기본값: "API를 통해 생성된 새 텍스트 문서입니다."
</Accordion>
<Accordion title="microsoft_word/get_document_content">
**설명:** 문서의 내용을 가져옵니다 (텍스트 파일에서 가장 잘 작동).
**매개변수:**
- `file_id` (string, 필수): 문서의 ID.
</Accordion>
<Accordion title="microsoft_word/get_document_properties">
**설명:** 문서의 속성과 메타데이터를 가져옵니다.
**매개변수:**
- `file_id` (string, 필수): 문서의 ID.
</Accordion>
<Accordion title="microsoft_word/delete_document">
**설명:** 문서를 삭제합니다.
**매개변수:**
- `file_id` (string, 필수): 삭제할 문서의 ID.
</Accordion>
</AccordionGroup>
## 사용 예제
### 기본 Microsoft Word 에이전트 설정
```python
from crewai import Agent, Task, Crew
# Microsoft Word 기능을 가진 에이전트 생성
word_agent = Agent(
role="문서 관리자",
goal="Word 문서와 텍스트 파일을 효율적으로 관리",
backstory="Microsoft Word 문서 작업 및 콘텐츠 관리 전문 AI 어시스턴트.",
apps=['microsoft_word'] # 모든 Word 작업을 사용할 수 있습니다
)
# 새 텍스트 문서 생성 작업
create_doc_task = Task(
description="'회의노트.txt'라는 새 텍스트 문서를 만들고 내용은 '2024년 1월 회의 노트: 주요 토론 사항 및 실행 항목.'으로 하세요",
agent=word_agent,
expected_output="새 텍스트 문서 '회의노트.txt'가 성공적으로 생성됨."
)
# 작업 실행
crew = Crew(
agents=[word_agent],
tasks=[create_doc_task]
)
crew.kickoff()
```
## 문제 해결
### 일반적인 문제
**인증 오류**
- Microsoft 계정이 파일 액세스에 필요한 권한을 가지고 있는지 확인하세요 (예: `Files.Read.All`, `Files.ReadWrite.All`).
- OAuth 연결이 필요한 모든 범위를 포함하는지 확인하세요.
**파일 생성 문제**
- 텍스트 문서를 만들 때 `file_name`이 `.txt` 확장자로 끝나는지 확인하세요.
- 대상 위치(OneDrive/SharePoint)에 쓰기 권한이 있는지 확인하세요.
### 도움 받기
<Card title="도움이 필요하신가요?" icon="headset" href="mailto:support@crewai.com">
Microsoft Word 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에 문의하세요.
</Card>

View File

@@ -25,7 +25,7 @@ Notion 통합을 사용하기 전에 다음을 확인하세요:
2. 인증 통합(Auhtentication Integrations) 섹션에서 **Notion**을(를) 찾습니다.
3. **Connect**를 클릭하고 OAuth 플로우를 완료합니다.
4. 페이지 및 데이터베이스 관리를 위한 필요한 권한을 부여합니다.
5. [Account Settings](https://app.crewai.com/crewai_plus/settings/account)에서 Enterprise Token을 복사합니다.
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token을 복사합니다.
### 2. 필수 패키지 설치
@@ -36,7 +36,7 @@ uv add crewai-tools
## 사용 가능한 액션
<AccordionGroup>
<Accordion title="NOTION_CREATE_PAGE">
<Accordion title="notion/create_page">
**설명:** Notion에서 페이지를 생성합니다.
**파라미터:**
@@ -93,7 +93,7 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="NOTION_UPDATE_PAGE">
<Accordion title="notion/update_page">
**설명:** Notion에서 페이지를 업데이트합니다.
**파라미터:**
@@ -127,21 +127,21 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="NOTION_GET_PAGE_BY_ID">
<Accordion title="notion/get_page_by_id">
**설명:** Notion에서 ID로 페이지를 가져옵니다.
**파라미터:**
- `pageId` (string, 필수): 페이지 ID - 가져올 페이지의 ID를 지정합니다. (예: "59833787-2cf9-4fdf-8782-e53db20768a5").
</Accordion>
<Accordion title="NOTION_ARCHIVE_PAGE">
<Accordion title="notion/archive_page">
**설명:** Notion에서 페이지를 보관합니다.
**파라미터:**
- `pageId` (string, 필수): 페이지 ID - 보관할 페이지의 ID를 지정합니다. (예: "59833787-2cf9-4fdf-8782-e53db20768a5").
</Accordion>
<Accordion title="NOTION_SEARCH_PAGES">
<Accordion title="notion/search_pages">
**설명:** 필터를 사용하여 Notion에서 페이지를 검색합니다.
**파라미터:**
@@ -166,14 +166,14 @@ uv add crewai-tools
사용 가능한 필드: `query`, `filter.value`, `direction`, `page_size`
</Accordion>
<Accordion title="NOTION_GET_PAGE_CONTENT">
<Accordion title="notion/get_page_content">
**설명:** Notion에서 페이지 콘텐츠(블록)를 가져옵니다.
**파라미터:**
- `blockId` (string, 필수): 페이지 ID - 해당 블록이나 페이지의 모든 자식 블록을 순서대로 가져오기 위해 Block 또는 Page ID를 지정합니다. (예: "59833787-2cf9-4fdf-8782-e53db20768a5").
</Accordion>
<Accordion title="NOTION_UPDATE_BLOCK">
<Accordion title="notion/update_block">
**설명:** Notion에서 블록을 업데이트합니다.
**파라미터:**
@@ -260,14 +260,14 @@ uv add crewai-tools
```
</Accordion>
<Accordion title="NOTION_GET_BLOCK_BY_ID">
<Accordion title="notion/get_block_by_id">
**설명:** Notion에서 ID로 블록을 가져옵니다.
**파라미터:**
- `blockId` (string, 필수): 블록 ID - 가져올 블록의 ID를 지정합니다. (예: "9bc30ad4-9373-46a5-84ab-0a7845ee52e6").
</Accordion>
<Accordion title="NOTION_DELETE_BLOCK">
<Accordion title="notion/delete_block">
**설명:** Notion에서 블록을 삭제합니다.
**파라미터:**
@@ -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()
### 특정 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 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
### **레코드 관리**
<AccordionGroup>
<Accordion title="SALESFORCE_CREATE_RECORD_CONTACT">
<Accordion title="salesforce/create_record_contact">
**설명:** Salesforce에서 새로운 Contact 레코드를 생성합니다.
**파라미터:**
@@ -35,7 +35,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 사용자 정의 Contact 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_LEAD">
<Accordion title="salesforce/create_record_lead">
**설명:** Salesforce에서 새로운 Lead 레코드를 생성합니다.
**파라미터:**
@@ -51,7 +51,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 사용자 정의 Lead 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_OPPORTUNITY">
<Accordion title="salesforce/create_record_opportunity">
**설명:** Salesforce에서 새로운 Opportunity 레코드를 생성합니다.
**파라미터:**
@@ -66,7 +66,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 사용자 정의 Opportunity 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_TASK">
<Accordion title="salesforce/create_record_task">
**설명:** Salesforce에서 새로운 Task 레코드를 생성합니다.
**파라미터:**
@@ -84,7 +84,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 사용자 정의 Task 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_ACCOUNT">
<Accordion title="salesforce/create_record_account">
**설명:** Salesforce에서 새로운 Account 레코드를 생성합니다.
**파라미터:**
@@ -96,7 +96,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 사용자 정의 Account 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_CREATE_RECORD_ANY">
<Accordion title="salesforce/create_record_any">
**설명:** Salesforce에서 모든 오브젝트 유형의 레코드를 생성합니다.
**참고:** 이 기능은 사용자 정의 또는 알려지지 않은 오브젝트 유형의 레코드를 생성할 때 유연하게 사용할 수 있습니다.
@@ -106,7 +106,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
### **레코드 업데이트**
<AccordionGroup>
<Accordion title="SALESFORCE_UPDATE_RECORD_CONTACT">
<Accordion title="salesforce/update_record_contact">
**설명:** Salesforce에서 기존 연락처(Contact) 레코드를 업데이트합니다.
**파라미터:**
@@ -120,7 +120,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 커스텀 연락처 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_LEAD">
<Accordion title="salesforce/update_record_lead">
**설명:** Salesforce에서 기존 리드(Lead) 레코드를 업데이트합니다.
**파라미터:**
@@ -137,7 +137,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 커스텀 리드 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_OPPORTUNITY">
<Accordion title="salesforce/update_record_opportunity">
**설명:** Salesforce에서 기존 기회(Opportunity) 레코드를 업데이트합니다.
**파라미터:**
@@ -153,7 +153,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 커스텀 기회 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_TASK">
<Accordion title="salesforce/update_record_task">
**설명:** Salesforce에서 기존 작업(Task) 레코드를 업데이트합니다.
**파라미터:**
@@ -171,7 +171,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 커스텀 작업 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_ACCOUNT">
<Accordion title="salesforce/update_record_account">
**설명:** Salesforce에서 기존 계정(Account) 레코드를 업데이트합니다.
**파라미터:**
@@ -184,7 +184,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): 커스텀 계정 필드를 위한 JSON 형식의 추가 필드
</Accordion>
<Accordion title="SALESFORCE_UPDATE_RECORD_ANY">
<Accordion title="salesforce/update_record_any">
**설명:** Salesforce에서 어떤 객체 유형이든 레코드를 업데이트합니다.
**참고:** 이는 커스텀 또는 미확인 객체 유형의 레코드 업데이트를 위한 유연한 도구입니다.
@@ -194,42 +194,42 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
### **레코드 조회**
<AccordionGroup>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_CONTACT">
<Accordion title="salesforce/get_record_by_id_contact">
**설명:** ID로 Contact 레코드를 조회합니다.
**파라미터:**
- `recordId` (string, 필수): Contact의 레코드 ID
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_LEAD">
<Accordion title="salesforce/get_record_by_id_lead">
**설명:** ID로 Lead 레코드를 조회합니다.
**파라미터:**
- `recordId` (string, 필수): Lead의 레코드 ID
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_OPPORTUNITY">
<Accordion title="salesforce/get_record_by_id_opportunity">
**설명:** ID로 Opportunity 레코드를 조회합니다.
**파라미터:**
- `recordId` (string, 필수): Opportunity의 레코드 ID
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_TASK">
<Accordion title="salesforce/get_record_by_id_task">
**설명:** ID로 Task 레코드를 조회합니다.
**파라미터:**
- `recordId` (string, 필수): Task의 레코드 ID
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_ACCOUNT">
<Accordion title="salesforce/get_record_by_id_account">
**설명:** ID로 Account 레코드를 조회합니다.
**파라미터:**
- `recordId` (string, 필수): Account의 레코드 ID
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_ID_ANY">
<Accordion title="salesforce/get_record_by_id_any">
**설명:** ID로 임의 객체 유형의 레코드를 조회합니다.
**파라미터:**
@@ -241,7 +241,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
### **레코드 검색**
<AccordionGroup>
<Accordion title="SALESFORCE_SEARCH_RECORDS_CONTACT">
<Accordion title="salesforce/search_records_contact">
**설명:** 고급 필터링으로 연락처(Contact) 레코드를 검색합니다.
**파라미터:**
@@ -252,7 +252,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor를 포함한 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_LEAD">
<Accordion title="salesforce/search_records_lead">
**설명:** 고급 필터링으로 리드(Lead) 레코드를 검색합니다.
**파라미터:**
@@ -263,7 +263,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor를 포함한 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_OPPORTUNITY">
<Accordion title="salesforce/search_records_opportunity">
**설명:** 고급 필터링으로 기회(Opportunity) 레코드를 검색합니다.
**파라미터:**
@@ -274,7 +274,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor를 포함한 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_TASK">
<Accordion title="salesforce/search_records_task">
**설명:** 고급 필터링으로 작업(Task) 레코드를 검색합니다.
**파라미터:**
@@ -285,7 +285,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor를 포함한 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_ACCOUNT">
<Accordion title="salesforce/search_records_account">
**설명:** 고급 필터링으로 계정(Account) 레코드를 검색합니다.
**파라미터:**
@@ -296,7 +296,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor를 포함한 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_SEARCH_RECORDS_ANY">
<Accordion title="salesforce/search_records_any">
**설명:** 모든 오브젝트 유형의 레코드를 검색합니다.
**파라미터:**
@@ -310,7 +310,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
### **리스트 뷰 조회**
<AccordionGroup>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_CONTACT">
<Accordion title="salesforce/get_record_by_view_id_contact">
**설명:** 특정 리스트 뷰에서 Contact 레코드를 가져옵니다.
**파라미터:**
@@ -318,7 +318,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor와 함께 사용하는 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_LEAD">
<Accordion title="salesforce/get_record_by_view_id_lead">
**설명:** 특정 리스트 뷰에서 Lead 레코드를 가져옵니다.
**파라미터:**
@@ -326,7 +326,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor와 함께 사용하는 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_OPPORTUNITY">
<Accordion title="salesforce/get_record_by_view_id_opportunity">
**설명:** 특정 리스트 뷰에서 Opportunity 레코드를 가져옵니다.
**파라미터:**
@@ -334,7 +334,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor와 함께 사용하는 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_TASK">
<Accordion title="salesforce/get_record_by_view_id_task">
**설명:** 특정 리스트 뷰에서 Task 레코드를 가져옵니다.
**파라미터:**
@@ -342,7 +342,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor와 함께 사용하는 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_ACCOUNT">
<Accordion title="salesforce/get_record_by_view_id_account">
**설명:** 특정 리스트 뷰에서 Account 레코드를 가져옵니다.
**파라미터:**
@@ -350,7 +350,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `paginationParameters` (object, 선택): pageCursor와 함께 사용하는 페이지네이션 설정
</Accordion>
<Accordion title="SALESFORCE_GET_RECORD_BY_VIEW_ID_ANY">
<Accordion title="salesforce/get_record_by_view_id_any">
**설명:** 특정 리스트 뷰에서 임의의 객체 유형의 레코드를 가져옵니다.
**파라미터:**
@@ -363,7 +363,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
### **커스텀 필드**
<AccordionGroup>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_CONTACT">
<Accordion title="salesforce/create_custom_field_contact">
**설명:** Contact 오브젝트에 대한 커스텀 필드를 배포합니다.
**파라미터:**
@@ -379,7 +379,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `defaultFieldValue` (string, 선택): 필드의 기본값
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_LEAD">
<Accordion title="salesforce/create_custom_field_lead">
**설명:** Lead 오브젝트에 대한 커스텀 필드를 배포합니다.
**파라미터:**
@@ -395,7 +395,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `defaultFieldValue` (string, 선택): 필드의 기본값
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_OPPORTUNITY">
<Accordion title="salesforce/create_custom_field_opportunity">
**설명:** Opportunity 오브젝트에 대한 커스텀 필드를 배포합니다.
**파라미터:**
@@ -411,7 +411,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `defaultFieldValue` (string, 선택): 필드의 기본값
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_TASK">
<Accordion title="salesforce/create_custom_field_task">
**설명:** Task 오브젝트에 대한 커스텀 필드를 배포합니다.
**파라미터:**
@@ -427,7 +427,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `defaultFieldValue` (string, 선택): 필드의 기본값
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_ACCOUNT">
<Accordion title="salesforce/create_custom_field_account">
**설명:** Account 오브젝트에 대한 커스텀 필드를 배포합니다.
**파라미터:**
@@ -443,7 +443,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `defaultFieldValue` (string, 선택): 필드의 기본값
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_FIELD_ANY">
<Accordion title="salesforce/create_custom_field_any">
**설명:** 모든 오브젝트 타입에 대한 커스텀 필드를 배포합니다.
**참고:** 커스텀 또는 미지의 오브젝트 타입에 커스텀 필드를 생성할 수 있는 유연한 도구입니다.
@@ -453,14 +453,14 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
### **고급 작업**
<AccordionGroup>
<Accordion title="SALESFORCE_WRITE_SOQL_QUERY">
<Accordion title="salesforce/write_soql_query">
**설명:** Salesforce 데이터에 대해 커스텀 SOQL 쿼리를 실행합니다.
**파라미터:**
- `query` (string, 필수): SOQL 쿼리 (예: "SELECT Id, Name FROM Account WHERE Name = 'Example'")
</Accordion>
<Accordion title="SALESFORCE_CREATE_CUSTOM_OBJECT">
<Accordion title="salesforce/create_custom_object">
**설명:** Salesforce에 새로운 커스텀 오브젝트를 배포합니다.
**파라미터:**
@@ -470,7 +470,7 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
- `recordName` (string, 필수): 레이아웃과 검색에 표시되는 레코드 이름 (예: "Account Name")
</Accordion>
<Accordion title="SALESFORCE_DESCRIBE_ACTION_SCHEMA">
<Accordion title="salesforce/describe_action_schema">
**설명:** 특정 오브젝트 타입에 대한 작업의 예상 스키마를 가져옵니다.
**파라미터:**
@@ -487,19 +487,13 @@ Salesforce 통합을 사용하기 전에 다음을 확인하세요:
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Salesforce tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Salesforce capabilities
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 +515,12 @@ crew.kickoff()
### 특정 Salesforce 도구 필터링
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Salesforce tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
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 +542,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 +573,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 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
### **고객 관리**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_CUSTOMERS">
<Accordion title="shopify/get_customers">
**설명:** Shopify 스토어에서 고객 목록을 조회합니다.
**파라미터:**
@@ -34,7 +34,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `limit` (string, 선택): 반환할 최대 고객 수 (기본값 250)
</Accordion>
<Accordion title="SHOPIFY_SEARCH_CUSTOMERS">
<Accordion title="shopify/search_customers">
**설명:** 고급 필터링 기준을 사용하여 고객을 검색합니다.
**파라미터:**
@@ -42,7 +42,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `limit` (string, 선택): 반환할 최대 고객 수 (기본값 250)
</Accordion>
<Accordion title="SHOPIFY_CREATE_CUSTOMER">
<Accordion title="shopify/create_customer">
**설명:** Shopify 스토어에 새로운 고객을 생성합니다.
**파라미터:**
@@ -63,7 +63,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `metafields` (object, 선택): 추가 메타필드(JSON 형식)
</Accordion>
<Accordion title="SHOPIFY_UPDATE_CUSTOMER">
<Accordion title="shopify/update_customer">
**설명:** Shopify 스토어에 기존 고객을 업데이트합니다.
**파라미터:**
@@ -89,7 +89,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
### **주문 관리**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_ORDERS">
<Accordion title="shopify/get_orders">
**설명:** Shopify 스토어에서 주문 목록을 조회합니다.
**파라미터:**
@@ -101,7 +101,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `limit` (string, optional): 반환할 주문의 최대 개수 (기본값: 250)
</Accordion>
<Accordion title="SHOPIFY_CREATE_ORDER">
<Accordion title="shopify/create_order">
**설명:** Shopify 스토어에 새 주문을 생성합니다.
**파라미터:**
@@ -114,7 +114,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `note` (string, optional): 주문 메모
</Accordion>
<Accordion title="SHOPIFY_UPDATE_ORDER">
<Accordion title="shopify/update_order">
**설명:** Shopify 스토어에서 기존 주문을 업데이트합니다.
**파라미터:**
@@ -128,7 +128,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `note` (string, optional): 주문 메모
</Accordion>
<Accordion title="SHOPIFY_GET_ABANDONED_CARTS">
<Accordion title="shopify/get_abandoned_carts">
**설명:** Shopify 스토어에서 방치된 장바구니를 조회합니다.
**파라미터:**
@@ -144,7 +144,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
### **제품 관리 (REST API)**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_PRODUCTS">
<Accordion title="shopify/get_products">
**설명:** REST API를 사용하여 Shopify 스토어에서 제품 목록을 조회합니다.
**파라미터:**
@@ -160,7 +160,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `limit` (string, optional): 반환할 최대 제품 수 (기본값: 250)
</Accordion>
<Accordion title="SHOPIFY_CREATE_PRODUCT">
<Accordion title="shopify/create_product">
**설명:** REST API를 사용하여 Shopify 스토어에 새로운 제품을 생성합니다.
**파라미터:**
@@ -176,7 +176,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `publishToPointToSale` (boolean, optional): 포인트 오브 세일(Point of Sale)에 공개 여부
</Accordion>
<Accordion title="SHOPIFY_UPDATE_PRODUCT">
<Accordion title="shopify/update_product">
**설명:** REST API를 사용하여 Shopify 스토어의 기존 제품을 업데이트합니다.
**파라미터:**
@@ -197,14 +197,14 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
### **제품 관리 (GraphQL)**
<AccordionGroup>
<Accordion title="SHOPIFY_GET_PRODUCTS_GRAPHQL">
<Accordion title="shopify/get_products_graphql">
**설명:** 고급 GraphQL 필터링 기능을 사용하여 제품을 조회합니다.
**파라미터:**
- `productFilterFormula` (object, 선택): id, title, vendor, status, handle, tag, created_at, updated_at, published_at와 같은 필드를 지원하는 불리언 정규합형(DNF) 기반의 고급 필터
</Accordion>
<Accordion title="SHOPIFY_CREATE_PRODUCT_GRAPHQL">
<Accordion title="shopify/create_product_graphql">
**설명:** 미디어 지원이 강화된 GraphQL API를 사용하여 새 제품을 생성합니다.
**파라미터:**
@@ -217,7 +217,7 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
- `additionalFields` (object, 선택): status, requiresSellingPlan, giftCard와 같은 추가 제품 필드
</Accordion>
<Accordion title="SHOPIFY_UPDATE_PRODUCT_GRAPHQL">
<Accordion title="shopify/update_product_graphql">
**설명:** 미디어 지원이 강화된 GraphQL API를 사용하여 기존 제품을 업데이트합니다.
**파라미터:**
@@ -238,19 +238,13 @@ Shopify 연동을 사용하기 전에 다음을 확인하세요:
```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()
### 특정 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 @@ Slack 통합을 사용하기 전에 다음을 확인하십시오:
### **사용자 관리**
<AccordionGroup>
<Accordion title="SLACK_LIST_MEMBERS">
<Accordion title="slack/list_members">
**설명:** Slack 채널의 모든 멤버를 나열합니다.
**파라미터:**
- 파라미터 없음 - 모든 채널 멤버를 조회합니다
</Accordion>
<Accordion title="SLACK_GET_USER_BY_EMAIL">
<Accordion title="slack/get_user_by_email">
**설명:** 이메일 주소로 Slack 워크스페이스에서 사용자를 찾습니다.
**파라미터:**
- `email` (string, 필수): 워크스페이스 내 사용자의 이메일 주소
</Accordion>
<Accordion title="SLACK_GET_USERS_BY_NAME">
<Accordion title="slack/get_users_by_name">
**설명:** 이름 또는 표시 이름으로 사용자를 검색합니다.
**파라미터:**
@@ -50,7 +50,7 @@ Slack 통합을 사용하기 전에 다음을 확인하십시오:
### **채널 관리**
<AccordionGroup>
<Accordion title="SLACK_LIST_CHANNELS">
<Accordion title="slack/list_channels">
**설명:** Slack 워크스페이스의 모든 채널을 나열합니다.
**파라미터:**
@@ -61,7 +61,7 @@ Slack 통합을 사용하기 전에 다음을 확인하십시오:
### **메시징**
<AccordionGroup>
<Accordion title="SLACK_SEND_MESSAGE">
<Accordion title="slack/send_message">
**설명:** Slack 채널에 메시지를 전송합니다.
**파라미터:**
@@ -73,7 +73,7 @@ Slack 통합을 사용하기 전에 다음을 확인하십시오:
- `authenticatedUser` (boolean, 선택): true이면 메시지가 애플리케이션이 아니라 인증된 Slack 사용자로부터 보낸 것처럼 표시됩니다(기본값은 false)
</Accordion>
<Accordion title="SLACK_SEND_DIRECT_MESSAGE">
<Accordion title="slack/send_direct_message">
**설명:** Slack에서 특정 사용자에게 다이렉트 메시지를 전송합니다.
**파라미터:**
@@ -89,7 +89,7 @@ Slack 통합을 사용하기 전에 다음을 확인하십시오:
### **검색 및 탐색**
<AccordionGroup>
<Accordion title="SLACK_SEARCH_MESSAGES">
<Accordion title="slack/search_messages">
**설명:** Slack 워크스페이스 전체에서 메시지를 검색합니다.
**매개변수:**
@@ -150,19 +150,13 @@ Slack의 Block Kit을 사용하면 풍부하고 상호작용이 가능한 메시
```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()
### 특정 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 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
### **고객 관리**
<AccordionGroup>
<Accordion title="STRIPE_CREATE_CUSTOMER">
<Accordion title="stripe/create_customer">
**설명:** Stripe 계정에 새로운 고객을 생성합니다.
**파라미터:**
@@ -32,14 +32,14 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
- `metadataCreateCustomer` (object, 선택): 추가 메타데이터를 key-value 쌍으로 입력 (예: `{"field1": 1, "field2": 2}`)
</Accordion>
<Accordion title="STRIPE_GET_CUSTOMER_BY_ID">
<Accordion title="stripe/get_customer_by_id">
**설명:** Stripe 고객 ID로 특정 고객을 조회합니다.
**파라미터:**
- `idGetCustomer` (string, 필수): 조회할 Stripe 고객 ID
</Accordion>
<Accordion title="STRIPE_GET_CUSTOMERS">
<Accordion title="stripe/get_customers">
**설명:** 필터링 옵션과 함께 고객 리스트를 조회합니다.
**파라미터:**
@@ -49,7 +49,7 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
- `limitGetCustomers` (string, 선택): 반환할 최대 고객 수 (기본값 10)
</Accordion>
<Accordion title="STRIPE_UPDATE_CUSTOMER">
<Accordion title="stripe/update_customer">
**설명:** 기존 고객의 정보를 업데이트합니다.
**파라미터:**
@@ -64,7 +64,7 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
### **구독 관리**
<AccordionGroup>
<Accordion title="STRIPE_CREATE_SUBSCRIPTION">
<Accordion title="stripe/create_subscription">
**설명:** 고객을 위한 새로운 구독을 생성합니다.
**파라미터:**
@@ -73,7 +73,7 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
- `metadataCreateSubscription` (object, 선택): 구독에 대한 추가 메타데이터
</Accordion>
<Accordion title="STRIPE_GET_SUBSCRIPTIONS">
<Accordion title="stripe/get_subscriptions">
**설명:** 선택적 필터링으로 구독을 조회합니다.
**파라미터:**
@@ -86,7 +86,7 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
### **제품 관리**
<AccordionGroup>
<Accordion title="STRIPE_CREATE_PRODUCT">
<Accordion title="stripe/create_product">
**설명:** Stripe 카탈로그에 새 제품을 생성합니다.
**파라미터:**
@@ -95,14 +95,14 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
- `metadataProduct` (object, 선택): 키-값 쌍으로 구성된 추가 제품 메타데이터
</Accordion>
<Accordion title="STRIPE_GET_PRODUCT_BY_ID">
<Accordion title="stripe/get_product_by_id">
**설명:** Stripe 제품 ID로 특정 제품을 조회합니다.
**파라미터:**
- `productId` (string, 필수): 조회할 Stripe 제품 ID
</Accordion>
<Accordion title="STRIPE_GET_PRODUCTS">
<Accordion title="stripe/get_products">
**설명:** 선택적 필터링을 통해 제품 목록을 조회합니다.
**파라미터:**
@@ -115,7 +115,7 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
### **금융 운영**
<AccordionGroup>
<Accordion title="STRIPE_GET_BALANCE_TRANSACTIONS">
<Accordion title="stripe/get_balance_transactions">
**설명:** Stripe 계정에서 잔액 거래를 조회합니다.
**매개변수:**
@@ -124,7 +124,7 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
- `pageCursor` (string, 선택 사항): 페이지네이션을 위한 페이지 커서
</Accordion>
<Accordion title="STRIPE_GET_PLANS">
<Accordion title="stripe/get_plans">
**설명:** Stripe 계정에서 구독 플랜을 조회합니다.
**매개변수:**
@@ -140,19 +140,13 @@ Stripe 통합을 사용하기 전에 다음 사항을 확인하세요:
```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()
### 특정 Stripe 도구 필터링
```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 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
### **티켓 관리**
<AccordionGroup>
<Accordion title="ZENDESK_CREATE_TICKET">
<Accordion title="zendesk/create_ticket">
**설명:** Zendesk에 새로운 지원 티켓을 생성합니다.
**매개변수:**
@@ -40,7 +40,7 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
- `ticketCustomFields` (object, 선택): JSON 형식의 사용자 정의 필드 값
</Accordion>
<Accordion title="ZENDESK_UPDATE_TICKET">
<Accordion title="zendesk/update_ticket">
**설명:** Zendesk의 기존 지원 티켓을 업데이트합니다.
**매개변수:**
@@ -58,14 +58,14 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
- `ticketCustomFields` (object, 선택): 업데이트된 사용자 정의 필드 값
</Accordion>
<Accordion title="ZENDESK_GET_TICKET_BY_ID">
<Accordion title="zendesk/get_ticket_by_id">
**설명:** ID로 특정 티켓을 조회합니다.
**매개변수:**
- `ticketId` (string, 필수): 조회할 티켓의 ID (예: "35436")
</Accordion>
<Accordion title="ZENDESK_ADD_COMMENT_TO_TICKET">
<Accordion title="zendesk/add_comment_to_ticket">
**설명:** 기존 티켓에 댓글이나 내부 노트를 추가합니다.
**매개변수:**
@@ -75,7 +75,7 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
- `isPublic` (boolean, 선택): 공개 댓글이면 true, 내부 노트이면 false
</Accordion>
<Accordion title="ZENDESK_SEARCH_TICKETS">
<Accordion title="zendesk/search_tickets">
**설명:** 다양한 필터 및 조건을 사용하여 티켓을 검색합니다.
**매개변수:**
@@ -100,7 +100,7 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
### **사용자 관리**
<AccordionGroup>
<Accordion title="ZENDESK_CREATE_USER">
<Accordion title="zendesk/create_user">
**설명:** Zendesk에서 새로운 사용자를 생성합니다.
**매개변수:**
@@ -113,7 +113,7 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
- `notes` (string, 선택): 사용자에 대한 내부 메모
</Accordion>
<Accordion title="ZENDESK_UPDATE_USER">
<Accordion title="zendesk/update_user">
**설명:** 기존 사용자의 정보를 업데이트합니다.
**매개변수:**
@@ -127,14 +127,14 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
- `notes` (string, 선택): 업데이트된 내부 메모
</Accordion>
<Accordion title="ZENDESK_GET_USER_BY_ID">
<Accordion title="zendesk/get_user_by_id">
**설명:** ID로 특정 사용자를 조회합니다.
**매개변수:**
- `userId` (string, 필수): 조회할 사용자 ID
</Accordion>
<Accordion title="ZENDESK_SEARCH_USERS">
<Accordion title="zendesk/search_users">
**설명:** 다양한 기준으로 사용자를 검색합니다.
**매개변수:**
@@ -150,7 +150,7 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
### **관리 도구**
<AccordionGroup>
<Accordion title="ZENDESK_GET_TICKET_FIELDS">
<Accordion title="zendesk/get_ticket_fields">
**설명:** 티켓에 사용할 수 있는 모든 표준 및 맞춤 필드를 검색합니다.
**파라미터:**
@@ -158,7 +158,7 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
- `pageCursor` (string, 선택 사항): 페이지네이션을 위한 페이지 커서
</Accordion>
<Accordion title="ZENDESK_GET_TICKET_AUDITS">
<Accordion title="zendesk/get_ticket_audits">
**설명:** 티켓의 감사 기록(읽기 전용 이력)을 가져옵니다.
**파라미터:**
@@ -205,19 +205,13 @@ Zendesk 통합을 사용하기 전에 다음을 확인하세요.
```python
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Zendesk tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Zendesk capabilities
zendesk_agent = Agent(
role="Support Manager",
goal="Manage customer support tickets and provide excellent customer service",
backstory="An AI assistant specialized in customer support operations and ticket management.",
tools=[enterprise_tools]
apps=['zendesk']
)
# Task to create a new support ticket
@@ -239,19 +233,12 @@ crew.kickoff()
### 특정 Zendesk 도구 필터링
```python
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Zendesk tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["zendesk_create_ticket", "zendesk_update_ticket", "zendesk_add_comment_to_ticket"]
)
support_agent = Agent(
role="Customer Support Agent",
goal="Handle customer inquiries and resolve support issues efficiently",
backstory="An experienced support agent who specializes in ticket resolution and customer communication.",
tools=enterprise_tools
apps=['zendesk']
)
# Task to manage support workflow
@@ -273,17 +260,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="Ticket Manager",
goal="Manage support ticket workflows and ensure timely resolution",
backstory="An AI assistant that specializes in support ticket triage and workflow optimization.",
tools=[enterprise_tools]
apps=['zendesk']
)
# Task to manage ticket lifecycle
@@ -310,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"
)
support_analyst = Agent(
role="Support Analyst",
goal="Analyze support metrics and generate insights for team performance",
backstory="An analytical AI that excels at extracting insights from support data and ticket patterns.",
tools=[enterprise_tools]
apps=['zendesk']
)
# Complex task involving analytics and reporting

View File

@@ -0,0 +1,232 @@
---
title: MCP DSL 통합
description: CrewAI의 간단한 DSL 구문을 사용하여 mcps 필드로 MCP 서버를 에이전트와 직접 통합하는 방법을 알아보세요.
icon: code
mode: "wide"
---
## 개요
CrewAI의 MCP DSL(Domain Specific Language) 통합은 에이전트를 MCP(Model Context Protocol) 서버에 연결하는 **가장 간단한 방법**을 제공합니다. 에이전트에 `mcps` 필드만 추가하면 CrewAI가 모든 복잡성을 자동으로 처리합니다.
<Info>
이는 대부분의 MCP 사용 사례에 **권장되는 접근 방식**입니다. 수동 연결 관리가 필요한 고급 시나리오의 경우 [MCPServerAdapter](/ko/mcp/overview#advanced-mcpserveradapter)를 참조하세요.
</Info>
## 기본 사용법
`mcps` 필드를 사용하여 에이전트에 MCP 서버를 추가하세요:
```python
from crewai import Agent
agent = Agent(
role="연구 보조원",
goal="연구 및 분석 업무 지원",
backstory="고급 연구 도구에 접근할 수 있는 전문가 보조원",
mcps=[
"https://mcp.exa.ai/mcp?api_key=your_key&profile=research"
]
)
# MCP 도구들이 이제 자동으로 사용 가능합니다!
# 수동 연결 관리나 도구 구성이 필요 없습니다
```
## 지원되는 참조 형식
### 외부 MCP 원격 서버
```python
# 기본 HTTPS 서버
"https://api.example.com/mcp"
# 인증이 포함된 서버
"https://mcp.exa.ai/mcp?api_key=your_key&profile=your_profile"
# 사용자 정의 경로가 있는 서버
"https://services.company.com/api/v1/mcp"
```
### 특정 도구 선택
`#` 구문을 사용하여 서버에서 특정 도구를 선택하세요:
```python
# 날씨 서버에서 예보 도구만 가져오기
"https://weather.api.com/mcp#get_forecast"
# Exa에서 검색 도구만 가져오기
"https://mcp.exa.ai/mcp?api_key=your_key#web_search_exa"
```
### CrewAI AMP 마켓플레이스
CrewAI AMP 마켓플레이스의 도구에 액세스하세요:
```python
# 모든 도구가 포함된 전체 서비스
"crewai-amp:financial-data"
# AMP 서비스의 특정 도구
"crewai-amp:research-tools#pubmed_search"
# 다중 AMP 서비스
mcps=[
"crewai-amp:weather-insights",
"crewai-amp:market-analysis",
"crewai-amp:social-media-monitoring"
]
```
## 완전한 예제
다음은 여러 MCP 서버를 사용하는 완전한 예제입니다:
```python
from crewai import Agent, Task, Crew, Process
# 다중 MCP 소스를 가진 에이전트 생성
multi_source_agent = Agent(
role="다중 소스 연구 분석가",
goal="다중 데이터 소스를 사용한 종합적인 연구 수행",
backstory="""웹 검색, 날씨 데이터, 금융 정보,
학술 연구 도구에 접근할 수 있는 전문가 연구원""",
mcps=[
# 외부 MCP 서버
"https://mcp.exa.ai/mcp?api_key=your_exa_key&profile=research",
"https://weather.api.com/mcp#get_current_conditions",
# CrewAI AMP 마켓플레이스
"crewai-amp:financial-insights",
"crewai-amp:academic-research#pubmed_search",
"crewai-amp:market-intelligence#competitor_analysis"
]
)
# 종합적인 연구 작업 생성
research_task = Task(
description="""AI 에이전트가 비즈니스 생산성에 미치는 영향을 연구하세요.
원격 근무에 대한 현재 날씨 영향, 금융 시장 트렌드,
AI 에이전트 프레임워크에 대한 최근 학술 발표를 포함하세요.""",
expected_output="""다음을 다루는 종합 보고서:
1. AI 에이전트 비즈니스 영향 분석
2. 원격 근무를 위한 날씨 고려사항
3. AI 관련 금융 시장 트렌드
4. 학술 연구 인용 및 통찰
5. 경쟁 환경 분석""",
agent=multi_source_agent
)
# crew 생성 및 실행
research_crew = Crew(
agents=[multi_source_agent],
tasks=[research_task],
process=Process.sequential,
verbose=True
)
result = research_crew.kickoff()
print(f"{len(multi_source_agent.mcps)}개의 MCP 데이터 소스로 연구 완료")
```
## 주요 기능
- 🔄 **자동 도구 발견**: 도구들이 자동으로 발견되고 통합됩니다
- 🏷️ **이름 충돌 방지**: 서버 이름이 도구 이름에 접두사로 붙습니다
- ⚡ **성능 최적화**: 스키마 캐싱과 온디맨드 연결
- 🛡️ **오류 복원력**: 사용할 수 없는 서버의 우아한 처리
- ⏱️ **타임아웃 보호**: 내장 타임아웃으로 연결 중단 방지
- 📊 **투명한 통합**: 기존 CrewAI 기능과 완벽한 연동
## 오류 처리
MCP DSL 통합은 복원력 있게 설계되었습니다:
```python
agent = Agent(
role="복원력 있는 에이전트",
goal="서버 문제에도 불구하고 작업 계속",
backstory="장애를 우아하게 처리하는 에이전트",
mcps=[
"https://reliable-server.com/mcp", # 작동할 것
"https://unreachable-server.com/mcp", # 우아하게 건너뛸 것
"https://slow-server.com/mcp", # 우아하게 타임아웃될 것
"crewai-amp:working-service" # 작동할 것
]
)
# 에이전트는 작동하는 서버의 도구를 사용하고 실패한 서버에 대한 경고를 로그에 남깁니다
```
## 성능 기능
### 자동 캐싱
도구 스키마는 성능 향상을 위해 5분간 캐시됩니다:
```python
# 첫 번째 에이전트 생성 - 서버에서 도구 발견
agent1 = Agent(role="첫 번째", goal="테스트", backstory="테스트",
mcps=["https://api.example.com/mcp"])
# 두 번째 에이전트 생성 (5분 이내) - 캐시된 도구 스키마 사용
agent2 = Agent(role="두 번째", goal="테스트", backstory="테스트",
mcps=["https://api.example.com/mcp"]) # 훨씬 빠릅니다!
```
### 온디맨드 연결
도구 연결은 실제로 사용될 때만 설정됩니다:
```python
# 에이전트 생성은 빠름 - 아직 MCP 연결을 만들지 않음
agent = Agent(
role="온디맨드 에이전트",
goal="도구를 효율적으로 사용",
backstory="필요할 때만 연결하는 효율적인 에이전트",
mcps=["https://api.example.com/mcp"]
)
# MCP 연결은 도구가 실제로 실행될 때만 만들어집니다
# 이는 연결 오버헤드를 최소화하고 시작 성능을 개선합니다
```
## 모범 사례
### 1. 가능하면 특정 도구 사용
```python
# 좋음 - 필요한 도구만 가져오기
mcps=["https://weather.api.com/mcp#get_forecast"]
# 덜 효율적 - 서버의 모든 도구 가져오기
mcps=["https://weather.api.com/mcp"]
```
### 2. 인증을 안전하게 처리
```python
import os
# 환경 변수에 API 키 저장
exa_key = os.getenv("EXA_API_KEY")
exa_profile = os.getenv("EXA_PROFILE")
agent = Agent(
role="안전한 에이전트",
goal="MCP 도구를 안전하게 사용",
backstory="보안을 고려하는 에이전트",
mcps=[f"https://mcp.exa.ai/mcp?api_key={exa_key}&profile={exa_profile}"]
)
```
### 3. 서버 장애 계획
```python
# 항상 백업 옵션 포함
mcps=[
"https://primary-api.com/mcp", # 주요 선택
"https://backup-api.com/mcp", # 백업 옵션
"crewai-amp:reliable-service" # AMP 폴백
]
```

View File

@@ -8,12 +8,37 @@ mode: "wide"
## 개요
[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP)는 AI 에이전트가 MCP 서버로 알려진 외부 서비스와 통신함으로써 LLM에 컨텍스트를 제공할 수 있도록 표준화된 방식을 제공합니다.
`crewai-tools` 라이브러리는 CrewAI의 기능을 확장하여, 이러한 MCP 서버에서 제공하는 툴을 에이전트에 원활하게 통합할 수 있도록 해줍니다.
이를 통해 여러분의 crew는 방대한 기능 에코시스템에 접근할 수 있습니다.
CrewAI는 MCP 통합을 위한 **두 가지 접근 방식**을 제공합니다:
### 🚀 **새로운 기능: 간단한 DSL 통합** (권장)
에이전트에 `mcps` 필드를 직접 사용하여 완벽한 MCP 도구 통합을 구현하세요:
```python
from crewai import Agent
agent = Agent(
role="연구 분석가",
goal="정보를 연구하고 분석",
backstory="외부 도구에 접근할 수 있는 전문가 연구원",
mcps=[
"https://mcp.exa.ai/mcp?api_key=your_key", # 외부 MCP 서버
"https://api.weather.com/mcp#get_forecast", # 서버의 특정 도구
"crewai-amp:financial-data", # CrewAI AMP 마켓플레이스
"crewai-amp:research-tools#pubmed_search" # 특정 AMP 도구
]
)
# MCP 도구들이 이제 자동으로 에이전트에서 사용 가능합니다!
```
### 🔧 **고급: MCPServerAdapter** (복잡한 시나리오용)
수동 연결 관리가 필요한 고급 사용 사례의 경우 `crewai-tools` 라이브러리는 `MCPServerAdapter` 클래스를 제공합니다.
현재 다음과 같은 전송 메커니즘을 지원합니다:
- **Stdio**: 로컬 서버용 (동일 머신 내 프로세스 간 표준 입력/출력을 통한 통신)
- **HTTPS**: 원격 서버용 (HTTPS를 통한 보안 통신)
- **Server-Sent Events (SSE)**: 원격 서버용 (서버에서 클라이언트로의 일방향, 실시간 데이터 스트리밍, HTTP 기반)
- **Streamable HTTP**: 원격 서버용 (유연하며 잠재적으로 양방향 통신이 가능, 주로 SSE를 활용한 서버-클라이언트 스트림 제공, HTTP 기반)