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.13+
  • 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

LangGraph with BOSA Connector (OpenAI):

python gllm_agents/examples/hello_world_langgraph_bosa_twitter.py

LangGraph Streaming (OpenAI):

python gllm_agents/examples/hello_world_langgraph_stream.py

LangGraph Multi-Agent Coordinator (OpenAI):

python gllm_agents/examples/hello_world_multi_agent_coordinator.py

Google ADK:

python gllm_agents/examples/hello_world_google_adk.py

Google ADK Streaming:

python gllm_agents/examples/hello_world_google_adk_stream.py

LangChain (OpenAI):

python gllm_agents/examples/hello_world_langchain.py

LangChain Streaming (OpenAI):

python gllm_agents/examples/hello_world_langchain_stream.py

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

LangGraph Streaming SSE Transport (OpenAI):

python gllm_agents/examples/hello_world_langgraph_mcp_sse_stream.py

LangGraph STDIO Transport (OpenAI):

python gllm_agents/examples/hello_world_langgraph_mcp_stdio.py

LangGraph Streaming STDIO Transport (OpenAI):

python gllm_agents/examples/hello_world_langgraph_mcp_stdio_stream.py

Google ADK SSE Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_sse.py

Google ADK Streaming SSE Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_sse_stream.py

Google ADK STDIO Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_stdio.py

Google ADK Streaming STDIO Transport:

python gllm_agents/examples/hello_world_google_adk_mcp_stdio_stream.py

LangChain SSE Transport (OpenAI):

python gllm_agents/examples/hello_world_langchain_mcp_sse.py

LangChain Streaming SSE Transport (OpenAI):

python gllm_agents/examples/hello_world_langchain_mcp_sse_stream.py

LangChain STDIO Transport (OpenAI):

python gllm_agents/examples/hello_world_langchain_mcp_stdio.py

LangChain Streaming STDIO Transport (OpenAI):

python gllm_agents/examples/hello_world_langchain_mcp_stdio_stream.py

3. Running Individual A2A 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 gllm_agents/examples directory to run the A2A server.

LangChain Server:

python hello_world_a2a_langchain_server.py
  • Open a new terminal and navigate to the gllm_agents/examples directory to run the A2A client.

LangChain Client:

python hello_world_a2a_langchain_client.py

LangChain Client Integrated with Agent Workflow:

python hello_world_a2a_langchain_client_agent.py

LangChain Client Streaming:

python hello_world_a2a_langchain_client_stream.py

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.3.1-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13Windows x86-64

gllm_agents_binary-0.3.1-cp313-cp313-manylinux_2_31_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.3.1-cp313-cp313-macosx_13_0_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

gllm_agents_binary-0.3.1-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64macOS 15.0+ ARM64

gllm_agents_binary-0.3.1-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

gllm_agents_binary-0.3.1-cp312-cp312-manylinux_2_31_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.3.1-cp312-cp312-macosx_13_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

gllm_agents_binary-0.3.1-cp311-cp311-manylinux_2_31_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.3.1-cp311-cp311-macosx_13_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d3337d34864e728be6f0d5cf3b94f165fa64f4ea4a049eda76505aeea6dee282
MD5 0c070b507f4421a2e2623b8b1a51cf85
BLAKE2b-256 5a12384b11a9e157ed216f567affd1cb90d4fe7144fdc4aeaaeabf832807a30f

See more details on using hashes here.

Provenance

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

Publisher: build-binary.yml on GDP-ADMIN/gl-sdk

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.3.1-cp313-cp313-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 09989573774f2a0f2693567db5ca063234c9f090b3f3f7baa56c6575e2d58768
MD5 ef8d623e90fbb8e29f6eece0d1c82bc8
BLAKE2b-256 23fb989027fc6ce297ee50b4f8ede227b6548518341f09b8509ba1cfd1c703e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 af4413a46c3d16f950a6a83cd32e52144eb48009aff000ed86469f805661caf8
MD5 0c694a8c3a66f8e50bfb62e6dddfa4ea
BLAKE2b-256 ef8ba16dbd117272ff51138408c02a36d3ca535d10df4414695eb0132671dad0

See more details on using hashes here.

Provenance

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

Publisher: build-binary.yml on GDP-ADMIN/gl-sdk

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.3.1-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c4409aec2a171d81e50d4a999b1b644aa54a677ae6986dada2170598dc82a323
MD5 2f41a29a1c07984e4aed16414d66f00d
BLAKE2b-256 e97e81f101629b663fc499763406eab2e39f27db8348655c6f0c7656a8d66bb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.3.1-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl:

Publisher: build-binary.yml on GDP-ADMIN/gl-sdk

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.3.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 db9e887eea5a390db0857625b0086f4d01854a8a4ca1a3f97e4dd33b7b8d741a
MD5 39233df0dcb6e18514f173510605e425
BLAKE2b-256 42c4639cd2d2748e9e488eec67132f7d78222db3bf7069bd9be5bcc46bd64785

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.3.1-cp312-cp312-win_amd64.whl:

Publisher: build-binary.yml on GDP-ADMIN/gl-sdk

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.3.1-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 d822a2758dadaa4b92476db03916c6cea6e0352d42adefc2b8730e5e9429e104
MD5 f44081fc5b0c19cc6d6bd8f2cc27cf9b
BLAKE2b-256 3bcb53ee896bb100defd2b493a1a2c4e3c6cb5bfa749fbd962aad2ae5ef65cff

See more details on using hashes here.

File details

Details for the file gllm_agents_binary-0.3.1-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 aef4a51a6a03a1fd6447affee4c87f1aed1d8183b46732a3bb40097f7625d968
MD5 b63631307cf3924e32f535b9ef5d4f1d
BLAKE2b-256 0d5193d48eba3d4495f8854ed658f2a5663c10d7127c455bcb629f7528733b5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.3.1-cp312-cp312-macosx_13_0_x86_64.whl:

Publisher: build-binary.yml on GDP-ADMIN/gl-sdk

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.3.1-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 f94258b6646448bbf91a26859e1f699fc04ca27217694fa81165404b0d41fa61
MD5 df1ec76a952a69bf88cf8602e4b82b14
BLAKE2b-256 adbe206b704db5150cdb4519ac9932f25b987ed3d3f27b71e0a86265fc696ac9

See more details on using hashes here.

File details

Details for the file gllm_agents_binary-0.3.1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.3.1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 de55cb13be8a21789cd622362cbcead0a19dc6950d8ac2b32c3825962b899335
MD5 a1944bd30c886b303ccfeb22faa82ed2
BLAKE2b-256 a867b8d8a8ce738161d3e342abdb282939dd592ebfae8cc132dacb5236e67cd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.3.1-cp311-cp311-macosx_13_0_x86_64.whl:

Publisher: build-binary.yml on GDP-ADMIN/gl-sdk

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