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_a2a_multi_agent_coordinator_server.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 MCP Examples

Prerequisites

Ensure you have set the environment variables for API keys:

export OPENAI_API_KEY="your-openai-key"
export GOOGLE_API_KEY="your-google-api-key"

For examples that use stateful MCP tools like browser automation, start the Playwright MCP server in a separate terminal:

npx @playwright/mcp@latest --headless --port 8931

Note: Use the --headless flag to run the server without a visible browser window, which is recommended if the browser is not installed yet to avoid failures. For using an actual (non-headless) browser, refer to the Playwright MCP documentation.

Local MCP Servers

For STDIO, SSE, and HTTP transports using local servers, open a terminal in the library root (libs/gllm-agents) and run:

  • For STDIO:
poetry run python gllm_agents/examples/mcp_servers/mcp_server_stdio.py
  • For SSE:
poetry run python gllm_agents/examples/mcp_servers/mcp_server_sse.py
  • For HTTP:
poetry run python gllm_agents/examples/mcp_servers/mcp_server_http.py

Note: Start the appropriate server before running the client examples for that transport.

Running Examples

All examples are run from the library root using poetry run python gllm_agents/examples/<file>.py. Examples support OpenAI for LangGraph/LangChain and Google ADK where specified.

LangChain Examples

STDIO Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_langchain_mcp_stdio.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_langchain_mcp_stdio_stream.py
SSE Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_langchain_mcp_sse.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_langchain_mcp_sse_stream.py
HTTP Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_langchain_mcp_http.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_langchain_mcp_http_stream.py

Google ADK Examples

STDIO Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_google_adk_mcp_stdio.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_google_adk_mcp_stdio_stream.py
SSE Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_google_adk_mcp_sse.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_google_adk_mcp_sse_stream.py
HTTP Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_google_adk_mcp_http.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_google_adk_mcp_http_stream.py

LangGraph Examples (OpenAI)

STDIO Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_langgraph_mcp_stdio.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_langgraph_mcp_stdio_stream.py
SSE Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_langgraph_mcp_sse.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_langgraph_mcp_sse_stream.py
HTTP Transport
  • Non-Streaming:
poetry run python gllm_agents/examples/hello_world_langgraph_mcp_http.py
  • Streaming:
poetry run python gllm_agents/examples/hello_world_langgraph_mcp_http_stream.py

Multi-Server Example

This LangChain example uses multiple MCP servers: Playwright (for browser actions) and a random name generator (SSE transport) with persistent sessions across multiple arun calls.

  1. Start the Playwright server:
npx @playwright/mcp@latest --headless --port 8931
  1. In another terminal, start the Name Generator SSE server:
poetry run python gllm_agents/examples/mcp_servers/mcp_name.py
  1. Run the multi-server client example:
poetry run python gllm_agents/examples/hello_world_langchain_mcp_multi_server.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.4.16-cp313-cp313-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.13Windows x86-64

gllm_agents_binary-0.4.16-cp313-cp313-manylinux_2_31_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.4.16-cp313-cp313-macosx_13_0_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

gllm_agents_binary-0.4.16-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64macOS 15.0+ ARM64

gllm_agents_binary-0.4.16-cp312-cp312-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.12Windows x86-64

gllm_agents_binary-0.4.16-cp312-cp312-manylinux_2_31_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.4.16-cp312-cp312-macosx_13_0_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

gllm_agents_binary-0.4.16-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64macOS 15.0+ ARM64

gllm_agents_binary-0.4.16-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

gllm_agents_binary-0.4.16-cp311-cp311-manylinux_2_31_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.4.16-cp311-cp311-macosx_13_0_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

gllm_agents_binary-0.4.16-cp311-cp311-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64macOS 15.0+ ARM64

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c5012c1b98147b17f4010984e4f4618cd9d0869d3e8109fe0c0631e7cf298d3b
MD5 3432d439ecd1f563b45cd200442ba616
BLAKE2b-256 8e3da6326a227d391919d8f04d5d78521a959c5a010594699262949a7d99ad13

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-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.4.16-cp313-cp313-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e995e0c54ed44314535194e07611f3452b51642c253619476bf2c7c4d70749ec
MD5 682a68d3d5237dd93d4bf041a981463d
BLAKE2b-256 431fec8998a4f9ac5a572911004c238000d8dd121ae4b04138787c48192af270

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0a590537e42ee0b14d311f02f6d4a92a3c54f8c42e23e3abec7716fe9435f012
MD5 bbc6372e5d1b25cb87915be08b9b97f9
BLAKE2b-256 652042d3f761f58bfb3f8a4d2a7cf6421a830b5a98b719ae1804d8b03bbcaf12

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-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.4.16-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e59f97763b4ad49b303e0df122f9e51a1b7128efe615f9b0d3a86c2650b64c76
MD5 a80657e31ef581d3fa1cedc0cc649b6a
BLAKE2b-256 4577016d7fad5d75f34edb980c295fe62aca19400c06fac28e9112068691e635

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-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.4.16-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4f5ee01e0bec9b14047350c1c370060ed23b90acbb1c29e97c411140d12285cd
MD5 1f57e252b579396573b4606953cdcbc2
BLAKE2b-256 3e3ab29b82be8d9e8530500a8c76c2b6d9cd3dba35387a9a9a5ff5431045293f

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-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.4.16-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 4eb87f4d6cedc77ac5033789e2e6d169dc87742109f587afd5b4b7e579d050e0
MD5 a9d4e8eaf4bb7c2d86427b03f94c17c8
BLAKE2b-256 84f410142cab2d93fb4f83b3d9ae0d2e8985f9aa5ca04158dbd888bc1dd3bf5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 fc76d8a5ac4e17532b62f2b8816b108ad70b5f84ed088213e2bc5e5b0fc18dce
MD5 edff41c3ff5b685edf9fb90d3b408d9b
BLAKE2b-256 7e7a09d2ffb7e8a830f92468d62f9e6e500d8da056a1bf8e6e5850f826715c27

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-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.4.16-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b9c4553baefedbade0560190321a393ee9151ebe99dda3b61bd4525b7e3181e6
MD5 6f0fac4b340c8cf79df630eb1ac9112e
BLAKE2b-256 f62ce8f0c8b174104575af28c5d29b41051c01da2c0c213f60e8bc718ae46e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-cp312-cp312-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.4.16-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 484ae33c39341e24d44b88ee8c823e17db7632a8bb7d1b5d434b17a8caa6594b
MD5 ee42c9ee3cb0a86508845ca9232494df
BLAKE2b-256 3e8bb3a180e3b8e621793d66f5cb05fe687a635044d1f6f620e16f448e1050e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-cp311-cp311-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.4.16-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 93fff4b1f3207e7495346ad47c88955664a9e68b9f4ebbae33fa9075a5326570
MD5 75b084105ba1fb8f21fae8836d68b2fe
BLAKE2b-256 601a684b30b086364aebdd1c0a127966eea2bab2324f50bd48fb4192231790af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7a1d320bd3fb5e2820da76c40738bfef42793aba5c74d7a66863ffa07c04afe6
MD5 317b9540493a0654c10d308adcb071dc
BLAKE2b-256 593003124232a76c0b596d15c5d15616aa6b09c7cc858667999b25a906bd1bce

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-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.

File details

Details for the file gllm_agents_binary-0.4.16-cp311-cp311-macosx_13_0_arm64.macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.16-cp311-cp311-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3cf10f25c2f1b7a35013689ff9185e64f4dc6886c8ed7465e96d9cc7ee5738c5
MD5 44c12f1947c6ffcfaf313852209a2a53
BLAKE2b-256 5c0e09657cba497270dedcf28cdf5b96f7efb8332aad3fd127cd6c84bb773b5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.16-cp311-cp311-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.

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