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

Memory Features

The library supports Mem0 as a memory backend for long-term conversation recall. Key features:

  • Automatic persistence of user-agent interactions via memory_backend="mem0".
  • Semantic search for relevant past conversations.
  • New built_in_mem0_search tool for explicit recall by time period (e.g., "yesterday", "last week", "July 2025").
  • Date range parsing for natural language time filters using dateparser.
  • Conditional auto-augmentation (disabled by default to reduce noise; enable with memory_auto_augment=True).

Mem0 Date Recall Example

Use the coordinator example with memory enabled:

poetry run python gllm_agents/examples/hello_world_a2a_mem0_coordinator_server.py

In client:

agent = LangGraphAgent(
    name="client",
    instruction="...",
    model="gpt-4o-mini",
    memory_backend="mem0",
)

Test recall: After some interactions, query "What did we discuss yesterday?" – agent uses tool to filter by created_at.

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

Uploaded CPython 3.13Windows x86-64

gllm_agents_binary-0.4.20-cp313-cp313-manylinux_2_31_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.4.20-cp313-cp313-macosx_13_0_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

gllm_agents_binary-0.4.20-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64macOS 15.0+ ARM64

gllm_agents_binary-0.4.20-cp312-cp312-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86-64

gllm_agents_binary-0.4.20-cp312-cp312-manylinux_2_31_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.4.20-cp312-cp312-macosx_13_0_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

gllm_agents_binary-0.4.20-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64macOS 15.0+ ARM64

gllm_agents_binary-0.4.20-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

gllm_agents_binary-0.4.20-cp311-cp311-manylinux_2_31_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

gllm_agents_binary-0.4.20-cp311-cp311-macosx_13_0_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

gllm_agents_binary-0.4.20-cp311-cp311-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64macOS 15.0+ ARM64

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4efd74b93f88efea8b3d3e11c2f3dc9c90f96c9f703b9816322d96d82004ff6f
MD5 e4e0e3d06cd8982c1084b99892ef13e4
BLAKE2b-256 680013bfe3ce33e51013e82e83dc1797bf922b983cae7fb236a15a8c6ad83cc5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 a3734bf0b7a12af2b4d6e3448be616b373b9067e4b5d000f12eee6eacebb1cfa
MD5 e0dcea98697cca3d169eb20addab4786
BLAKE2b-256 fd3b033b1f329327967c2a4bbbb00839ec63fa7ea51f4aef0ca359119db98a59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 28a9e57c50a9a98a58da6799538cdabc41086f520e98c36b261ea9ec95fa54cd
MD5 ab81766f9ea4de5c2abf93ab3e51b560
BLAKE2b-256 c6e11621641f35118521d142743f50df1826135fafa68571101aea84b1090446

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 405ce8f3e3f8596756a871e7addef7e7559e088f4690494c58411ab0a14f5ad8
MD5 9a247807fb512f8c39c0f5eb51e7ac50
BLAKE2b-256 7a26e1e605b8c013ca55da2ffb1f0d05e64ef0156f890e78748361f8ccc08beb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1c00fd7f539aa2009b622f5cd6b6f5d309bc265ead439b525fc199df41992bfc
MD5 b36f57ba8c394d85d2b1259ff2b6fdf8
BLAKE2b-256 2ce497f93e6d8740d5c80bb1cea22e9e9b78059e3b92c884b68e45a11f11719b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 ce4704920ca94f39d2f1fc4458a0cb533016909f910e0e55fea12847ce61dbec
MD5 014e8281da4523e2d43bf9795132c126
BLAKE2b-256 58d8b8dde94a4ae4ebf15c7eb4190b8f4d389cebb95ae8b5587ac8ae56ab9201

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 98648264827d5c549d739ccf1b8a0061382bbbdba44da4d8a5b42cf258c668e5
MD5 735729f48436f399e7a45ba9bc9db4d2
BLAKE2b-256 82561e6b8a01e4b5e82b0bb541b8ad4e86dbf0150d6d9f62a8444045b8bc8de4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b96944b370b9687d9d0a0b076ad4554523c7a61b6dc3ac703029d5de75896206
MD5 fcc32906995d6402a64079de2832f6ca
BLAKE2b-256 64f74ce7cf74efaabbc323c99b999b84b2cdf509e7b16b0035a77f738f37e63f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2d7b7ea840120c7bbc0c7044df8a8d546487a85ab36c4a444dfbcaf1bfe038b0
MD5 6d04ed2b8827db31228ad15a50332057
BLAKE2b-256 08c13c8b2deb9028a9bac233bfa7505b023624670faabe511cfce209a8b4811c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 3f4a90ab25daeb290846cd5836b761b43f18e4e7778424a07e951941c30d3a22
MD5 32d5e24bdcaf3b7099439902b1c2c21a
BLAKE2b-256 c4b41201438330345cc6b0354358fce526b00a859d2c54f64f31559b4f81506b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1afa331b613cfbb8dcc4785b15c6eb413d2f205f0738144b318307ef7d00c3a6
MD5 858973c80f549b30becf7559a43b0b1b
BLAKE2b-256 e6dea5804bf0a2c2c14c8efb60561930211b4788ee487adaf053b8cc533feff4

See more details on using hashes here.

Provenance

The following attestation bundles were made for gllm_agents_binary-0.4.20-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.20-cp311-cp311-macosx_13_0_arm64.macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gllm_agents_binary-0.4.20-cp311-cp311-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 120a2df9854805816f42a90232a6165f1b746451557f6c44fc4708f4a081e92a
MD5 ecd49893c81980ac0c6240ae57fe00e1
BLAKE2b-256 fcbfda12c37a1f4bfe8f62b421ae8f8568c42d40aaf804e4d4a142f6c37fb458

See more details on using hashes here.

Provenance

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