glean-agent-toolkit 0.4.0__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.cz.toml +1 -2
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.github/workflows/publish.yml +27 -8
- glean_agent_toolkit-0.6.0/CHANGELOG.md +68 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/CONTRIBUTING.md +1 -2
- glean_agent_toolkit-0.4.0/README.md → glean_agent_toolkit-0.6.0/PKG-INFO +161 -40
- glean_agent_toolkit-0.4.0/PKG-INFO → glean_agent_toolkit-0.6.0/README.md +111 -83
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/docs/prerequisites.md +5 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/pyproject.toml +18 -10
- glean_agent_toolkit-0.6.0/skills/glean-agent-toolkit-builder/SKILL.md +406 -0
- glean_agent_toolkit-0.6.0/skills/glean-agent-toolkit-guide/SKILL.md +294 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-01.py +4 -4
- glean_agent_toolkit-0.6.0/snippets/readme/snippet-03.bash +1 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-04.py +2 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/__init__.py +114 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/adapters/__init__.py +34 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/adapters/adk.py +262 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/adapters/base.py +120 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/adapters/crewai.py +35 -44
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/adapters/langchain.py +170 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/adapters/openai.py +67 -17
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/context.py +149 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/decorators.py +74 -3
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/registry.py +4 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/spec.py +3 -1
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/tools/__init__.py +5 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/tools/_common.py +200 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/tools/_compat.py +70 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/tools/calendar_search.py +21 -10
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/tools/chat.py +106 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/tools/code_search.py +21 -12
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/tools/employee_search.py +21 -18
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/tools/gmail_search.py +21 -9
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/tools/outlook_search.py +21 -9
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/tools/read_document.py +96 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/tools/search.py +117 -0
- glean_agent_toolkit-0.6.0/src/glean/agent_toolkit/tools/web_search.py +58 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/conftest.py +21 -5
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/test_adapters.py +17 -4
- glean_agent_toolkit-0.6.0/tests/test_adk_invocation.py +153 -0
- glean_agent_toolkit-0.6.0/tests/test_async.py +103 -0
- glean_agent_toolkit-0.6.0/tests/test_client_lifecycle.py +92 -0
- glean_agent_toolkit-0.6.0/tests/test_common.py +183 -0
- glean_agent_toolkit-0.6.0/tests/test_crewai_invocation.py +110 -0
- glean_agent_toolkit-0.6.0/tests/test_field_types.py +155 -0
- glean_agent_toolkit-0.6.0/tests/test_get_tools.py +86 -0
- glean_agent_toolkit-0.6.0/tests/test_langchain_invocation.py +101 -0
- glean_agent_toolkit-0.6.0/tests/test_openai_invocation.py +160 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_api_compat.py +70 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_calendar_search.py +61 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_chat.py +118 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_code_search.py +69 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_common.py +131 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_employee_search.py +61 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_gmail_search.py +79 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_outlook_search.py +61 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_read_document.py +107 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_search.py +103 -0
- glean_agent_toolkit-0.6.0/tests/tools/test_web_search.py +61 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/uv.lock +1587 -1471
- glean_agent_toolkit-0.4.0/CHANGELOG.md +0 -16
- glean_agent_toolkit-0.4.0/snippets/readme/snippet-03.bash +0 -1
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/__init__.py +0 -30
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/adapters/__init__.py +0 -24
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/adapters/adk.py +0 -82
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/adapters/base.py +0 -29
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/adapters/langchain.py +0 -159
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/tools/_common.py +0 -123
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/tools/read_document.py +0 -89
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/tools/search.py +0 -50
- glean_agent_toolkit-0.4.0/src/glean/agent_toolkit/tools/web_search.py +0 -58
- glean_agent_toolkit-0.4.0/tests/test_common.py +0 -205
- glean_agent_toolkit-0.4.0/tests/tools/test_calendar_search.py +0 -69
- glean_agent_toolkit-0.4.0/tests/tools/test_code_search.py +0 -64
- glean_agent_toolkit-0.4.0/tests/tools/test_employee_search.py +0 -71
- glean_agent_toolkit-0.4.0/tests/tools/test_gmail_search.py +0 -66
- glean_agent_toolkit-0.4.0/tests/tools/test_outlook_search.py +0 -62
- glean_agent_toolkit-0.4.0/tests/tools/test_read_document.py +0 -70
- glean_agent_toolkit-0.4.0/tests/tools/test_search.py +0 -29
- glean_agent_toolkit-0.4.0/tests/tools/test_web_search.py +0 -69
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.env.template +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.github/workflows/ci.yml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.gitignore +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.markdown-coderc.json +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.pre-commit-config.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/.vscode/settings.json +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/AGENTS.md +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/CODEOWNERS +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/COMMIT_LINTING.md +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/LICENSE +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/RELEASE.md +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/mise.toml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/pyrightconfig.json +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-01.bash +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-02.bash +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-02.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-03.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-04.bash +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-05.bash +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-05.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-06.bash +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-06.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-07.bash +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-07.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-08.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-09.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/snippets/readme/snippet-10.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/src/glean/agent_toolkit/py.typed +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/__init__.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_complex_query.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_no_results.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_various_queries[blockchain applications].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_various_queries[cloud computing trends].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_various_queries[cybersecurity best practices].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_various_queries[machine learning frameworks 2025].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_ai_web_search_various_queries[sustainable technology solutions].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_by_attendee.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_by_date_range.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_no_results.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_various_queries[client demo presentation].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_various_queries[conference room bookings].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_various_queries[one-on-one meetings].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_various_queries[quarterly business review].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_calendar_search_various_queries[sprint planning meeting].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_complex_query.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_empty_query.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_various_queries[API endpoint security].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_various_queries[class UserManager].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_various_queries[database connection pool].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_various_queries[error handling middleware].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_code_search_various_queries[function login validation].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_by_department.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_by_role.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_no_results.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_various_queries[Sarah Johnson product manager].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_various_queries[UX designer mobile apps].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_various_queries[data scientist machine learning].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_various_queries[frontend developer React].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_employee_search_various_queries[security engineer DevOps].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_glean_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_glean_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_no_emails_found.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_various_queries[invoice from vendor].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_various_queries[meeting invitations].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_various_queries[password reset emails].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_various_queries[security alerts].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_various_queries[urgent emails from manager].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_with_filters[before:2025/01/01].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_with_filters[from:boss@company.com].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_with_filters[has:attachment].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_with_filters[label:important].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_gmail_search_with_filters[subject:urgent].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_calendar_events.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_no_results.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_various_queries[all-hands meeting].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_various_queries[budget review meeting].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_various_queries[client presentation tomorrow].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_various_queries[project deadline reminder].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_outlook_search_various_queries[team standup calendar].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_api_error.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_news_query.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_no_results.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_specific_domain.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_success.yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_various_queries[API design patterns].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_various_queries[Docker container deployment].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_various_queries[JavaScript frameworks comparison].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_various_queries[database optimization techniques].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/cassettes/test_web_search_various_queries[mobile app development].yaml +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/test_decorators.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/test_enhanced_schemas.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/test_registry.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/test_schema_generation.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/test_toolspec.py +0 -0
- {glean_agent_toolkit-0.4.0 → glean_agent_toolkit-0.6.0}/tests/tools/__init__.py +0 -0
|
@@ -3,11 +3,30 @@ name: Publish to PyPI
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
5
|
tags:
|
|
6
|
-
- '
|
|
6
|
+
- '[0-9]*.[0-9]*.[0-9]*'
|
|
7
7
|
workflow_dispatch:
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
|
-
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Set up mise
|
|
16
|
+
uses: jdx/mise-action@v2
|
|
17
|
+
with:
|
|
18
|
+
cache: true
|
|
19
|
+
env:
|
|
20
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
21
|
+
|
|
22
|
+
- name: Initialize dev environment
|
|
23
|
+
run: mise run setup
|
|
24
|
+
|
|
25
|
+
- name: Run tests
|
|
26
|
+
run: mise run test
|
|
27
|
+
|
|
28
|
+
build-and-publish:
|
|
29
|
+
needs: test
|
|
11
30
|
runs-on: ubuntu-latest
|
|
12
31
|
environment: pypi
|
|
13
32
|
permissions:
|
|
@@ -18,14 +37,14 @@ jobs:
|
|
|
18
37
|
- uses: actions/checkout@v4
|
|
19
38
|
with:
|
|
20
39
|
fetch-depth: 0 # Needed for changelog generation
|
|
21
|
-
|
|
40
|
+
|
|
22
41
|
- name: Set up mise
|
|
23
42
|
uses: jdx/mise-action@v2
|
|
24
43
|
with:
|
|
25
44
|
cache: true
|
|
26
45
|
env:
|
|
27
46
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
28
|
-
|
|
47
|
+
|
|
29
48
|
- name: Build package
|
|
30
49
|
run: uv build
|
|
31
50
|
|
|
@@ -34,10 +53,10 @@ jobs:
|
|
|
34
53
|
run: |
|
|
35
54
|
# Get latest tag for both push and manual triggers
|
|
36
55
|
LATEST_TAG=$(git describe --tags --abbrev=0)
|
|
37
|
-
|
|
56
|
+
|
|
38
57
|
echo "LATEST_TAG=${LATEST_TAG}" >> $GITHUB_OUTPUT
|
|
39
58
|
echo "CHANGELOG<<EOF" >> $GITHUB_OUTPUT
|
|
40
|
-
|
|
59
|
+
|
|
41
60
|
# Try to get previous tag
|
|
42
61
|
if PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null); then
|
|
43
62
|
# If we have a previous tag, show changes between tags
|
|
@@ -47,12 +66,12 @@ jobs:
|
|
|
47
66
|
uvx --from commitizen cz changelog --dry-run >> $GITHUB_OUTPUT
|
|
48
67
|
fi
|
|
49
68
|
echo "EOF" >> $GITHUB_OUTPUT
|
|
50
|
-
|
|
69
|
+
|
|
51
70
|
- name: Create GitHub Release
|
|
52
71
|
uses: softprops/action-gh-release@v1
|
|
53
72
|
with:
|
|
54
73
|
tag_name: ${{ steps.CHANGELOG.outputs.LATEST_TAG }}
|
|
55
74
|
body: ${{ steps.CHANGELOG.outputs.CHANGELOG }}
|
|
56
|
-
|
|
75
|
+
|
|
57
76
|
- name: Publish package to PyPI
|
|
58
77
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
## 0.6.0 (2026-07-19)
|
|
2
|
+
|
|
3
|
+
### Fix
|
|
4
|
+
|
|
5
|
+
- **crewai**: pass args_schema to BaseTool so the LLM sees real parameters (#73)
|
|
6
|
+
- **adk**: expose real typed signatures so declarations and invocation work (#77)
|
|
7
|
+
- **openai**: sanitize strict schemas and isolate per-tool conversion failures (#76)
|
|
8
|
+
- **adapters**: map anyOf/union and array item types correctly in get_field_type (#75)
|
|
9
|
+
- **langchain**: use StructuredTool so converted tools are invocable (#74)
|
|
10
|
+
- **tools**: stop closing shared Glean client on every tool call (#72)
|
|
11
|
+
|
|
12
|
+
## 0.5.0 (2026-04-07)
|
|
13
|
+
|
|
14
|
+
### Feat
|
|
15
|
+
|
|
16
|
+
- add installable skills for SDK usage and tool building (#70)
|
|
17
|
+
- search API alignment, chat tool, deprecation path, get_tools, async support, import docs (#66)
|
|
18
|
+
- injectable GleanContext replaces hidden api_client() global (#62) (#65)
|
|
19
|
+
- **deps**: add [all] extra combining all framework adapters (CHK-001) (#27)
|
|
20
|
+
|
|
21
|
+
### Fix
|
|
22
|
+
|
|
23
|
+
- correct web search tool name from 'Web Browser' to 'Gemini Web Search' (#71)
|
|
24
|
+
- resolve remaining P2 eval items (CHK-111, CHK-115, CHK-118, CHK-119) (#68)
|
|
25
|
+
- resolve eval checklist items — dedup, dead code, error handling, imports (#67)
|
|
26
|
+
- namespace tool names and optimize descriptions for LLM consumption (#58)
|
|
27
|
+
- structured error results and consistent adapter return types (#55)
|
|
28
|
+
- depend on langchain-core instead of langchain to support LangGraph 1.x (#54)
|
|
29
|
+
- Regenerate lockfile
|
|
30
|
+
- align publish workflow tag trigger with commitizen tag format (#39)
|
|
31
|
+
- use is not None checks in read_document validation (#37)
|
|
32
|
+
- export Registry from top-level package (#36)
|
|
33
|
+
- remove pydantic BaseModel from adapters public API (#35)
|
|
34
|
+
- preserve float values in retry backoff config (CHK-002)
|
|
35
|
+
- **release**: correct broken version_files path in .cz.toml (CHK-006) (#31)
|
|
36
|
+
|
|
37
|
+
## 0.4.0 (2026-03-05)
|
|
38
|
+
|
|
39
|
+
### Feat
|
|
40
|
+
|
|
41
|
+
- support GLEAN_SERVER_URL with GLEAN_INSTANCE fallback (#26)
|
|
42
|
+
- **api**: Add retry configuration to API client with environment variable controls (#15)
|
|
43
|
+
- **dev**: adopt mise with full task parity and Node 22; move dev docs to CONTRIBUTING; README links to CONTRIBUTING (#12)
|
|
44
|
+
|
|
45
|
+
### Fix
|
|
46
|
+
|
|
47
|
+
- **adapters**: correct install hints to use glean-agent-toolkit extras
|
|
48
|
+
|
|
49
|
+
### Refactor
|
|
50
|
+
|
|
51
|
+
- rename glean_search to search across code, tests, docs, and snippets (#19)
|
|
52
|
+
|
|
53
|
+
## 0.3.0 (2025-07-21)
|
|
54
|
+
|
|
55
|
+
### Feat
|
|
56
|
+
|
|
57
|
+
- Add enhanced parameter schemas with Field metadata support
|
|
58
|
+
|
|
59
|
+
### Fix
|
|
60
|
+
|
|
61
|
+
- Adds newline to .cz.toml
|
|
62
|
+
- Fixes type errors during task:lint
|
|
63
|
+
|
|
64
|
+
## 0.2.0 (2025-06-05)
|
|
65
|
+
|
|
66
|
+
### Feat
|
|
67
|
+
|
|
68
|
+
- Implements Agent Builder tools as defaults
|
|
@@ -1,3 +1,53 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: glean-agent-toolkit
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Summary: AI Agent toolkit for adapting Glean's enterprise tools across multiple frameworks
|
|
5
|
+
Project-URL: Source Code, https://github.com/gleanwork/glean-agent-toolkit
|
|
6
|
+
Author-email: Steve Calvert <steve.calvert@glean.com>
|
|
7
|
+
License: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Requires-Python: <4.0,>=3.10
|
|
10
|
+
Requires-Dist: glean-api-client<1.0,>=0.6.0
|
|
11
|
+
Requires-Dist: pydantic<3.0,>=2.7
|
|
12
|
+
Provides-Extra: adk
|
|
13
|
+
Requires-Dist: google-adk<2.0,>=1.28.1; extra == 'adk'
|
|
14
|
+
Provides-Extra: all
|
|
15
|
+
Requires-Dist: crewai<1.0,>=0.100; extra == 'all'
|
|
16
|
+
Requires-Dist: google-adk<2.0,>=1.28.1; extra == 'all'
|
|
17
|
+
Requires-Dist: langchain-core<2.0,>=0.3; extra == 'all'
|
|
18
|
+
Requires-Dist: openai-agents<1.0,>=0.3; extra == 'all'
|
|
19
|
+
Requires-Dist: openai<2.0,>=1.0.0; extra == 'all'
|
|
20
|
+
Provides-Extra: codespell
|
|
21
|
+
Requires-Dist: codespell<3.0,>=2.2.6; extra == 'codespell'
|
|
22
|
+
Provides-Extra: crewai
|
|
23
|
+
Requires-Dist: crewai<1.0,>=0.100; extra == 'crewai'
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: commitizen<5.0,>=4.4.1; extra == 'dev'
|
|
26
|
+
Requires-Dist: pip-audit<3.0,>=2.6.0; extra == 'dev'
|
|
27
|
+
Requires-Dist: pre-commit<4.0,>=3.6.0; extra == 'dev'
|
|
28
|
+
Requires-Dist: vcrpy<7.0,>=6.0.2; extra == 'dev'
|
|
29
|
+
Provides-Extra: langchain
|
|
30
|
+
Requires-Dist: langchain-core<2.0,>=0.3; extra == 'langchain'
|
|
31
|
+
Provides-Extra: lint
|
|
32
|
+
Requires-Dist: ruff<1.0,>=0.5; extra == 'lint'
|
|
33
|
+
Provides-Extra: openai
|
|
34
|
+
Requires-Dist: openai-agents<1.0,>=0.3; extra == 'openai'
|
|
35
|
+
Requires-Dist: openai<2.0,>=1.0.0; extra == 'openai'
|
|
36
|
+
Provides-Extra: test
|
|
37
|
+
Requires-Dist: crewai<1.0,>=0.100; extra == 'test'
|
|
38
|
+
Requires-Dist: google-adk<2.0,>=1.28.1; extra == 'test'
|
|
39
|
+
Requires-Dist: langchain-core<2.0,>=0.3; extra == 'test'
|
|
40
|
+
Requires-Dist: openai-agents<1.0,>=0.3; extra == 'test'
|
|
41
|
+
Requires-Dist: openai<2.0,>=1.0.0; extra == 'test'
|
|
42
|
+
Requires-Dist: pytest-asyncio<1.0,>=0.23.2; extra == 'test'
|
|
43
|
+
Requires-Dist: pytest-cov<6.0,>=4.1.0; extra == 'test'
|
|
44
|
+
Requires-Dist: pytest-httpx<1.0,>=0.35.0; extra == 'test'
|
|
45
|
+
Requires-Dist: pytest<9.0,>=7.4.3; extra == 'test'
|
|
46
|
+
Requires-Dist: vcrpy<7.0,>=6.0.2; extra == 'test'
|
|
47
|
+
Provides-Extra: typing
|
|
48
|
+
Requires-Dist: pyright<2.0,>=1.1.370; extra == 'typing'
|
|
49
|
+
Description-Content-Type: text/markdown
|
|
50
|
+
|
|
1
51
|
# Glean Agent Toolkit
|
|
2
52
|
|
|
3
53
|
The Glean Agent Toolkit makes it easy to integrate Glean's powerful search and knowledge discovery capabilities into your AI agents. Use our pre-built tools with popular agent frameworks like OpenAI Assistants, LangChain, CrewAI, and Google's Agent Development Kit (ADK), or adapt your own custom tools for cross-framework use.
|
|
@@ -16,13 +66,12 @@ The Glean Agent Toolkit makes it easy to integrate Glean's powerful search and k
|
|
|
16
66
|
|
|
17
67
|
### Retry configuration (env vars)
|
|
18
68
|
|
|
19
|
-
| Variable
|
|
20
|
-
|
|
|
21
|
-
| `GLEAN_RETRY_INITIAL`
|
|
22
|
-
| `GLEAN_RETRY_MAX`
|
|
23
|
-
| `GLEAN_RETRY_MULTIPLIER`
|
|
24
|
-
| `
|
|
25
|
-
| `GLEAN_RETRY_ON_RATE_LIMIT` | `true` | Retry on HTTP 429 rate limits | `true` |
|
|
69
|
+
| Variable | Default | Description | Example |
|
|
70
|
+
| ------------------------- | ------- | -------------------------------------------------------- | ------- |
|
|
71
|
+
| `GLEAN_RETRY_INITIAL` | `1.0` | Initial backoff interval in seconds | `0.5` |
|
|
72
|
+
| `GLEAN_RETRY_MAX` | `50.0` | Maximum backoff interval in seconds | `8` |
|
|
73
|
+
| `GLEAN_RETRY_MULTIPLIER` | `1.1` | Backoff multiplier/exponent | `2.0` |
|
|
74
|
+
| `GLEAN_RETRY_MAX_ELAPSED` | `60.0` | Total time limit in seconds before giving up on retries | `30.0` |
|
|
26
75
|
|
|
27
76
|
Retries cover transient failures such as HTTP 429/5xx and connection timeouts. Set these before constructing any Glean client usage.
|
|
28
77
|
|
|
@@ -31,19 +80,32 @@ Retries cover transient failures such as HTTP 429/5xx and connection timeouts. S
|
|
|
31
80
|
export GLEAN_RETRY_INITIAL=0.5
|
|
32
81
|
export GLEAN_RETRY_MAX=8
|
|
33
82
|
export GLEAN_RETRY_MULTIPLIER=2.0
|
|
34
|
-
export
|
|
35
|
-
export GLEAN_RETRY_ON_RATE_LIMIT=true
|
|
83
|
+
export GLEAN_RETRY_MAX_ELAPSED=30.0
|
|
36
84
|
```
|
|
37
85
|
|
|
38
86
|
## Installation
|
|
39
87
|
|
|
40
|
-
Install
|
|
88
|
+
Install with all framework adapters (recommended):
|
|
89
|
+
|
|
90
|
+
```bash snippet=readme/snippet-03.bash
|
|
91
|
+
pip install "glean-agent-toolkit[all]"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Or install the base toolkit and add extras as needed:
|
|
41
95
|
|
|
42
96
|
```bash snippet=readme/snippet-01.bash
|
|
43
97
|
pip install glean-agent-toolkit
|
|
44
98
|
```
|
|
45
99
|
|
|
46
|
-
|
|
100
|
+
### Extras reference
|
|
101
|
+
|
|
102
|
+
| Extra | Installs | Use case |
|
|
103
|
+
| ------------ | ----------------------------- | -------------------------------- |
|
|
104
|
+
| `[openai]` | `openai`, `openai-agents` | OpenAI Agents SDK / Assistants |
|
|
105
|
+
| `[langchain]`| `langchain-core` | LangChain / LangGraph agents |
|
|
106
|
+
| `[crewai]` | `crewai` | CrewAI multi-agent workflows |
|
|
107
|
+
| `[adk]` | `google-adk` | Google Agent Development Kit |
|
|
108
|
+
| `[all]` | All of the above | Full framework support |
|
|
47
109
|
|
|
48
110
|
```bash snippet=readme/snippet-02.bash
|
|
49
111
|
pip install glean-agent-toolkit[openai]
|
|
@@ -52,12 +114,6 @@ pip install glean-agent-toolkit[langchain]
|
|
|
52
114
|
pip install glean-agent-toolkit[crewai]
|
|
53
115
|
```
|
|
54
116
|
|
|
55
|
-
You can also install all extras:
|
|
56
|
-
|
|
57
|
-
```bash snippet=readme/snippet-03.bash
|
|
58
|
-
pip install glean-agent-toolkit[all]
|
|
59
|
-
```
|
|
60
|
-
|
|
61
117
|
Note: The `[openai]` extra installs the standard `openai` Python library, used for direct API interactions like Chat Completions or the Assistants API. The example below for the "OpenAI Agents SDK" uses a separate library, `openai-agents`, which you'll need to install independently: `pip install openai-agents`.
|
|
62
118
|
|
|
63
119
|
## Prerequisites
|
|
@@ -82,9 +138,9 @@ Here's a complete example that demonstrates the power of the Glean Agent Toolkit
|
|
|
82
138
|
|
|
83
139
|
First, create the project structure:
|
|
84
140
|
|
|
85
|
-
```bash snippet=readme/snippet-
|
|
86
|
-
|
|
87
|
-
|
|
141
|
+
```bash snippet=readme/snippet-06.bash
|
|
142
|
+
mkdir company_assistant/
|
|
143
|
+
cd company_assistant/
|
|
88
144
|
```
|
|
89
145
|
|
|
90
146
|
### Step 2: Create the Agent File
|
|
@@ -124,10 +180,10 @@ root_agent = Agent(
|
|
|
124
180
|
instruction="""You are a helpful company assistant that helps employees find information,
|
|
125
181
|
people, and resources within the organization. You have access to:
|
|
126
182
|
|
|
127
|
-
- Company knowledge base and documents (use
|
|
128
|
-
- Employee directory and contact information (use
|
|
129
|
-
- Calendar and meeting information (use
|
|
130
|
-
- Email search capabilities (use
|
|
183
|
+
- Company knowledge base and documents (use glean_search)
|
|
184
|
+
- Employee directory and contact information (use glean_employee_search)
|
|
185
|
+
- Calendar and meeting information (use glean_calendar_search)
|
|
186
|
+
- Email search capabilities (use glean_gmail_search)
|
|
131
187
|
|
|
132
188
|
Always be helpful, professional, and respect privacy. When searching for people,
|
|
133
189
|
only share appropriate business contact information.""",
|
|
@@ -147,18 +203,26 @@ from . import agent
|
|
|
147
203
|
|
|
148
204
|
Create `company_assistant/.env` with your credentials:
|
|
149
205
|
|
|
150
|
-
```bash snippet=readme/snippet-
|
|
151
|
-
|
|
152
|
-
|
|
206
|
+
```bash snippet=readme/snippet-07.bash
|
|
207
|
+
# company_assistant/.env
|
|
208
|
+
|
|
209
|
+
# Authentication for Google ADK (choose one)
|
|
210
|
+
GOOGLE_API_KEY=your-google-ai-studio-api-key
|
|
211
|
+
# OR for Vertex AI:
|
|
212
|
+
# GOOGLE_CLOUD_PROJECT=your-project-id
|
|
213
|
+
# GOOGLE_CLOUD_LOCATION=us-central1
|
|
214
|
+
|
|
215
|
+
# Glean credentials
|
|
216
|
+
GLEAN_API_TOKEN=your-glean-api-token
|
|
217
|
+
GLEAN_SERVER_URL=https://your-company-be.glean.com
|
|
153
218
|
```
|
|
154
219
|
|
|
155
220
|
### Step 5: Run Your Agent
|
|
156
221
|
|
|
157
222
|
From the parent directory (outside `company_assistant/`), run your Company Assistant:
|
|
158
223
|
|
|
159
|
-
```bash
|
|
160
|
-
|
|
161
|
-
cd company_assistant/
|
|
224
|
+
```bash
|
|
225
|
+
adk web
|
|
162
226
|
```
|
|
163
227
|
|
|
164
228
|
### Real-World Queries You Can Handle
|
|
@@ -176,17 +240,46 @@ This type of assistant can dramatically improve employee productivity by making
|
|
|
176
240
|
|
|
177
241
|
## Available Tools
|
|
178
242
|
|
|
179
|
-
|
|
243
|
+
| Tool name | Import name | Description |
|
|
244
|
+
| ------------------------ | ------------------- | ---------------------------------------------- |
|
|
245
|
+
| `glean_search` | `search` | Search internal documents and knowledge bases |
|
|
246
|
+
| `glean_chat` | `glean_chat` | Conversational Q&A with Glean Assistant |
|
|
247
|
+
| `glean_read_document` | `read_document` | Read full document content by ID or URL |
|
|
248
|
+
| `glean_web_search` | `web_search` | Search the public web for external information |
|
|
249
|
+
| `glean_calendar_search` | `calendar_search` | Find meetings and calendar events |
|
|
250
|
+
| `glean_employee_search` | `employee_search` | Search employees by name, team, or department |
|
|
251
|
+
| `glean_code_search` | `code_search` | Search source code repositories |
|
|
252
|
+
| `glean_gmail_search` | `gmail_search` | Search Gmail messages and conversations |
|
|
253
|
+
| `glean_outlook_search` | `outlook_search` | Search Outlook mail and calendar items |
|
|
254
|
+
|
|
255
|
+
### Explicit imports
|
|
256
|
+
|
|
257
|
+
```python
|
|
258
|
+
from glean.agent_toolkit.tools import search, glean_chat, read_document
|
|
259
|
+
from glean.agent_toolkit.tools import web_search, calendar_search
|
|
260
|
+
from glean.agent_toolkit.tools import employee_search, code_search
|
|
261
|
+
from glean.agent_toolkit.tools import gmail_search, outlook_search
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Adapter methods
|
|
265
|
+
|
|
266
|
+
Each tool function exposes adapter methods for framework conversion:
|
|
267
|
+
|
|
268
|
+
| Method | Returns | Framework |
|
|
269
|
+
| --------------------- | -------------------------------- | ------------------- |
|
|
270
|
+
| `.as_openai_tool()` | `FunctionTool` or `dict` | OpenAI Agents SDK |
|
|
271
|
+
| `.as_langchain_tool()` | `langchain_core.tools.Tool` | LangChain / LangGraph |
|
|
272
|
+
| `.as_crewai_tool()` | `CrewAI BaseTool` | CrewAI |
|
|
273
|
+
| `.as_adk_tool()` | `google.adk FunctionTool` | Google ADK |
|
|
274
|
+
|
|
275
|
+
You can also use `get_tools()` to get all tools adapted for a framework at once:
|
|
180
276
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
- `code_search`: Search your company's source code repositories
|
|
188
|
-
- `gmail_search`: Search Gmail messages and conversations
|
|
189
|
-
- `outlook_search`: Search Outlook mail and calendar items
|
|
277
|
+
```python
|
|
278
|
+
from glean.agent_toolkit import get_tools
|
|
279
|
+
|
|
280
|
+
langchain_tools = get_tools("langchain")
|
|
281
|
+
openai_tools = get_tools("openai", include=["glean_search", "glean_chat"])
|
|
282
|
+
```
|
|
190
283
|
|
|
191
284
|
### Web Research with Context
|
|
192
285
|
|
|
@@ -238,6 +331,8 @@ print(f"Search results: {result.final_output}")
|
|
|
238
331
|
```python snippet=readme/snippet-04.py
|
|
239
332
|
import os
|
|
240
333
|
|
|
334
|
+
# NOTE: AgentExecutor requires the full `langchain` package (not just langchain-core).
|
|
335
|
+
# Install with: pip install langchain
|
|
241
336
|
from langchain.agents import AgentExecutor, create_react_agent
|
|
242
337
|
from langchain_core.prompts import ChatPromptTemplate
|
|
243
338
|
from langchain_openai import ChatOpenAI
|
|
@@ -412,6 +507,32 @@ langchain_weather = get_weather.as_langchain_tool()
|
|
|
412
507
|
crewai_weather = get_weather.as_crewai_tool()
|
|
413
508
|
```
|
|
414
509
|
|
|
510
|
+
## Agent Skills
|
|
511
|
+
|
|
512
|
+
The `skills/` directory contains [Agent Skills](https://agentskills.io) — structured instructions that teach AI coding agents how to use the Glean Agent Toolkit effectively. Skills are supported by Claude Code, Cursor, GitHub Copilot, VS Code, Gemini CLI, OpenAI Codex, Goose, Amp, Roo Code, Junie, and [many others](https://agentskills.io).
|
|
513
|
+
|
|
514
|
+
### Install
|
|
515
|
+
|
|
516
|
+
Use [`npx skills`](https://github.com/agentskills/agentskills) to install into your agent:
|
|
517
|
+
|
|
518
|
+
```bash
|
|
519
|
+
# Install all skills at once
|
|
520
|
+
npx skills add https://github.com/gleanwork/glean-agent-toolkit
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
```bash
|
|
524
|
+
# Or install individual skills
|
|
525
|
+
npx skills add https://github.com/gleanwork/glean-agent-toolkit/tree/main/skills/glean-agent-toolkit-guide
|
|
526
|
+
npx skills add https://github.com/gleanwork/glean-agent-toolkit/tree/main/skills/glean-agent-toolkit-builder
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
### Available Skills
|
|
530
|
+
|
|
531
|
+
| Skill | Description |
|
|
532
|
+
| --- | --- |
|
|
533
|
+
| `glean-agent-toolkit-guide` | How to use the SDK: `get_tools()`, `GleanContext`, adapters, error handling, async |
|
|
534
|
+
| `glean-agent-toolkit-builder` | How to create custom tools with `@tool_spec` |
|
|
535
|
+
|
|
415
536
|
## Contributing
|
|
416
537
|
|
|
417
538
|
Interested in contributing? Check out our [Contributing Guide](CONTRIBUTING.md) for instructions on setting up the development environment and submitting changes.
|