Skip to main content

A library for managing agents in Gen AI applications.

Project description

GLLM Agents

Description

A library for managing agents in Generative AI applications.

Installation

Prerequisites

1. Installation from Artifact Registry

Choose one of the following methods to install the package:

Using pip

pip install gllm-agents-binary

Using Poetry

poetry add gllm-agents-binary

2. Development Installation (Git)

For development purposes, you can install directly from the Git repository:

poetry add "git+ssh://git@github.com/GDP-ADMIN/gen-ai-internal.git#subdirectory=libs/gllm-agents"

Managing Dependencies

  1. Go to root folder of gllm-agents module, e.g. cd libs/gllm-agents.
  2. Run poetry shell to create a virtual environment.
  3. Run poetry lock to create a lock file if you haven't done it yet.
  4. Run poetry install to install the gllm-agents requirements for the first time.
  5. Run poetry update if you update any dependency module version at pyproject.toml.

Contributing

Please refer to this Python Style Guide to get information about code style, documentation standard, and SCA that you need to use when contributing to this project

  1. Activate pre-commit hooks using pre-commit install
  2. Run poetry shell to create a virtual environment.
  3. Run poetry lock to create a lock file if you haven't done it yet.
  4. Run poetry install to install the gllm-agents requirements for the first time.
  5. Run which python to get the path to be referenced at Visual Studio Code interpreter path (Ctrl+Shift+P or Cmd+Shift+P)
  6. Try running the unit test to see if it's working:
poetry run pytest -s tests/unit_tests/

Hello World Examples

Prerequisites

  • Python 3.11+
  • Install the binary package:
pip install gllm-agents-binary
  • For OpenAI: Set your API key in the environment:
export OPENAI_API_KEY=your-openai-key
  • For Google ADK: Set your API key in the environment:
export GOOGLE_API_KEY=your-google-api-key

Run the Hello World Examples

The example scripts are located in the gllm_agents/examples directory within the library. You can run them individually or use the run_all_examples.py script.

1. Running Individual Examples:

Navigate to the library's root directory (e.g., libs/gllm-agents if you cloned the repository).

LangGraph (OpenAI):

python gllm_agents/examples/hello_world_langgraph.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_langgraph

LangGraph Streaming (OpenAI):

python gllm_agents/examples/hello_world_langgraph_stream.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_langgraph_stream

Google ADK:

python gllm_agents/examples/hello_world_google_adk.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_google_adk

Google ADK Streaming:

python gllm_agents/examples/hello_world_google_adk_stream.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_google_adk_stream

2. Running Individual MCP Examples:

  • Navigate to the library's root directory (e.g., libs/gllm-agents if you cloned the repository).

  • Open a new terminal and navigate to the sample MCP servers directory libs/gllm-agents/gllm_agents/examples/mcp_servers

    Turn on the SSE MCP servers:

    python mcp_server_sse.py
    
  • Open a new terminal and navigate to the sample MCP servers directory libs/gllm-agents/gllm_agents/examples/mcp_servers

    Turn on the STDIO MCP servers:

    python mcp_server_stdio.py
    

LangGraph SSE Transport (OpenAI):

python gllm_agents/examples/hello_world_langgraph_mcp_sse.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_langgraph_mcp_sse

LangGraph Streaming SSE Transport (OpenAI):

python gllm_agents/examples/hello_world_langgraph_mcp_sse_stream.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_langgraph_mcp_sse_stream

LangGraph STDIO Transport (OpenAI):

python gllm_agents/examples/hello_world_langgraph_mcp_stdio.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_langgraph_mcp_stdio

LangGraph Streaming STDIO Transport (OpenAI):

python gllm_agents/examples/hello_world_langgraph_mcp_stdio_stream.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_langgraph_mcp_stdio_stream

Google ADK SSE Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_sse.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_google_adk_mcp_sse

Google ADK Streaming SSE Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_sse_stream.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_google_adk_mcp_sse_stream

Google ADK STDIO Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_stdio.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_google_adk_mcp_stdio

Google ADK Streaming STDIO Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_stdio_stream.py
# or, if your PYTHONPATH is set up or the package is installed:
# python -m gllm_agents.examples.hello_world_google_adk_mcp_stdio_stream

Architectural Notes

Agent Interface (AgentInterface)

The gllm_agents.agent.interface.AgentInterface class defines a standardized contract for all agent implementations within the GLLM Agents ecosystem. It ensures that different agent types (e.g., LangGraph-based, Google ADK-based) expose a consistent set of methods for core operations.

Key methods defined by AgentInterface typically include:

  • arun(): For asynchronous execution of the agent that returns a final consolidated response.
  • arun_stream(): For asynchronous execution that streams back partial responses or events from the agent.

By adhering to this interface, users can interact with various agents in a uniform way, making it easier to switch between or combine different agent technologies.

Inversion of Control (IoC) / Dependency Injection (DI)

The agent implementations (e.g., LangGraphAgent, GoogleADKAgent) utilize Dependency Injection. For instance, LangGraphAgent accepts an agent_executor (like one created by LangGraph's create_react_agent) in its constructor. Similarly, GoogleADKAgent accepts a native adk_native_agent. This allows the core execution logic to be provided externally, promoting flexibility and decoupling the agent wrapper from the specific instantiation details of its underlying engine.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gllm_agents_binary-0.2.6-cp313-cp313-win_amd64.whl (615.1 kB view details)

Uploaded CPython 3.13Windows x86-64

gllm_agents_binary-0.2.6-cp313-cp313-manylinux_2_31_x86_64.whl (895.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.2.6-cp313-cp313-macosx_14_0_arm64.whl (650.1 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

gllm_agents_binary-0.2.6-cp313-cp313-macosx_13_0_x86_64.whl (725.3 kB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

File details

Details for the file gllm_agents_binary-0.2.6-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.2.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e8e0c9e7ee021d0eb9c6c3d1e959703897c78c2991c4b23429429f7a4829a7a8
MD5 03364c5f26eec55396fb52c6f40450d9
BLAKE2b-256 ffe75a5a30e99fe2750d7f37fe4be28fb82a06e1b1f900dcd6d91f490502efdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.2.6-cp313-cp313-win_amd64.whl:

Publisher: build-binary.yml on GDP-ADMIN/gen-ai-internal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gllm_agents_binary-0.2.6-cp313-cp313-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.2.6-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 5bf789d1ec4492d37c7092779b7f7d583ac4915c23b9bf082874884886def548
MD5 149367b7fc208d5d3241512496fa2c8c
BLAKE2b-256 0bc9b82adba5595c8651cfa53728eb1d07fd742f569ad3d6311f9069dcad9e47

See more details on using hashes here.

File details

Details for the file gllm_agents_binary-0.2.6-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.2.6-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 27cc7b99e9f5350594d71f42abac6c3b5b6fca2874cee8bc1ccd64b95b1e74a2
MD5 139971de7a5a90b17f5f6b2725de5156
BLAKE2b-256 f172f01537bd47866fbc3818304557fb6c54a0a46540829e7da09b65ec4b00a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.2.6-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: build-binary.yml on GDP-ADMIN/gen-ai-internal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gllm_agents_binary-0.2.6-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.2.6-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 ea3e596defbdb9edc4227c2962d0cb673862cdeba48c7c53e3b85856270bab94
MD5 e071bec5b8df46d217c5bfcec985bf9a
BLAKE2b-256 c9eed0d66b43afb20f327332205117ca9e78c16e48dcf61ac34fabf0bdca6315

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.2.6-cp313-cp313-macosx_13_0_x86_64.whl:

Publisher: build-binary.yml on GDP-ADMIN/gen-ai-internal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page