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 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.

aip_agents_binary-0.0.0b3-cp313-cp313-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.13Windows x86-64

aip_agents_binary-0.0.0b3-cp313-cp313-manylinux_2_31_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

aip_agents_binary-0.0.0b3-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64macOS 15.0+ ARM64

aip_agents_binary-0.0.0b3-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

aip_agents_binary-0.0.0b3-cp312-cp312-manylinux_2_31_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

aip_agents_binary-0.0.0b3-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64macOS 15.0+ ARM64

aip_agents_binary-0.0.0b3-cp311-cp311-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.11Windows x86-64

aip_agents_binary-0.0.0b3-cp311-cp311-manylinux_2_31_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

aip_agents_binary-0.0.0b3-cp311-cp311-macosx_13_0_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

File details

Details for the file aip_agents_binary-0.0.0b3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 287ae8132cfe2a92661dc46ce2652e9d81569f28729f1c4c29ff14d54f0e328b
MD5 8370e25fa0e282a13607750e6344e007
BLAKE2b-256 427aa9eb9f28b5f525e4089e5900e9ceb12a9a5bc5707da3f6a311a5d25d5eca

See more details on using hashes here.

Provenance

The following attestation bundles were made for aip_agents_binary-0.0.0b3-cp313-cp313-win_amd64.whl:

Publisher: build-binary.yml on GDP-ADMIN/glaip-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 aip_agents_binary-0.0.0b3-cp313-cp313-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 1d0036381a992b3a31bdca11da74d55ed612824df0f1c43da9db6cbe5338c101
MD5 82596e543a49f7ae5b6516ae526a7031
BLAKE2b-256 addea4596c727ebe8132fb5ec8a350ac1017f94dff25802a9548a2fdd24bb84d

See more details on using hashes here.

File details

Details for the file aip_agents_binary-0.0.0b3-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 ea175c034f00d1438fbb9ce9f5efa9207f0f214c26504208ccaf4520fbf58820
MD5 eae9872565ef0ae3b4d0f69430ab2453
BLAKE2b-256 350594ccf95d766e7214569e5e73ba0a838d3dc480493c7a80e740edbd95b540

See more details on using hashes here.

Provenance

The following attestation bundles were made for aip_agents_binary-0.0.0b3-cp313-cp313-macosx_13_0_arm64.macosx_15_0_arm64.whl:

Publisher: build-binary.yml on GDP-ADMIN/glaip-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 aip_agents_binary-0.0.0b3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bd43aa4e074f3d3ec9b6ffdbf23eb213431f87efb95f32788a73063a9a0fcc0f
MD5 27b7d5735abd7bc9b1992528cf0fa205
BLAKE2b-256 770d5d80d2063cd4e399a5095d0883b07eb3c4c16fa472161c86adef8aed529e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aip_agents_binary-0.0.0b3-cp312-cp312-win_amd64.whl:

Publisher: build-binary.yml on GDP-ADMIN/glaip-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 aip_agents_binary-0.0.0b3-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 5d86a957090e87ef319d381b6d461429f7c44a40a4a54ffdfaf5040ab903f9d0
MD5 e916b0ba2210dbcebc1d743842c93822
BLAKE2b-256 ede5b21884200055abbb242046d283e2b3f95a253aee652ea2704199d23ed0a2

See more details on using hashes here.

File details

Details for the file aip_agents_binary-0.0.0b3-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e6d7debb13413e2ed5cd8c20e14a2a75fc084a5229f5560721a9904e8ecda4d1
MD5 b2ddec940ed22135e050361d4a8d847f
BLAKE2b-256 0744ef78ff4d7b10ff70ee7ec8cfa261ee9fd59dd42b46263f7131ae0daef0c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aip_agents_binary-0.0.0b3-cp312-cp312-macosx_13_0_arm64.macosx_15_0_arm64.whl:

Publisher: build-binary.yml on GDP-ADMIN/glaip-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 aip_agents_binary-0.0.0b3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ba4bda0dac01ae8e6cc8a85ef98f1344d24ca0fd20a5bff8d20e6c71f5127210
MD5 d78a8b128e3d2735abf925dd10f59130
BLAKE2b-256 c06217a5f64b1bf90f7656aeee0200031d1d5d1f1c0cf1229ba97ecdd98d8061

See more details on using hashes here.

Provenance

The following attestation bundles were made for aip_agents_binary-0.0.0b3-cp311-cp311-win_amd64.whl:

Publisher: build-binary.yml on GDP-ADMIN/glaip-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 aip_agents_binary-0.0.0b3-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 06f0d4f4213ae87e537329aada00f5fd0541dc1299d43f24178bed795890e838
MD5 d7fdce79fc21647a6a1435c196dfda00
BLAKE2b-256 68d6dd56e74408346e6661f184e1799c55ea2e8f857fe999003cea371cfb5caf

See more details on using hashes here.

File details

Details for the file aip_agents_binary-0.0.0b3-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for aip_agents_binary-0.0.0b3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8c7148c28e2c5d8474974ba0dccbc73c2c3232e68eb0615b5d4de06a324617d7
MD5 ddc3bb825e380a2107f52ccb1a700b3d
BLAKE2b-256 cfc1d7b412253c133b5c243a3658886a391fcc7ba73d09b44e7002664577f803

See more details on using hashes here.

Provenance

The following attestation bundles were made for aip_agents_binary-0.0.0b3-cp311-cp311-macosx_13_0_x86_64.whl:

Publisher: build-binary.yml on GDP-ADMIN/glaip-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