Copass agent primitives for Google Vertex AI Agent Engine (ADK)
Project description
copass-google-agents
Google Vertex AI Agent Engine (ADK) backend for Copass. Depends on copass-core-agents, which owns the vendor-neutral primitives (BaseAgent, AgentTool, AgentBackend ABC, events, AgentScope, registries, etc.) shared across every provider-specific Copass SDK.
This package owns the Google-specific piece — GoogleAgentBackend and the CopassGoogleAgent convenience subclass — and re-exports the core primitives for one-line dev imports. Either of these works for consumers:
from copass_google_agents import BaseAgent, CopassGoogleAgent # convenient
# or
from copass_core_agents import BaseAgent # explicit boundary
from copass_google_agents import CopassGoogleAgent
Pairs with Copass's server-side router — both sides import the same code so the agent runtime is a single codepath, whether the agent runs in the dev's process or server-side via Copass's Router endpoint.
Status: scaffold (v0.1.0). Constructors, type surface, and public imports are in place.
GoogleAgentBackend.run/GoogleAgentBackend.stream/deploy_adk_agent/adk_event_to_agent_eventscurrently raiseNotImplementedError. Implementation lands in a follow-up pass.
Install
pip install copass-google-agents
Requires google-cloud-aiplatform[agent_engines,adk]>=1.148.1 (which pulls in google-adk>=1.31). Uses Application Default Credentials (ADC) — run gcloud auth application-default login locally, or set GOOGLE_APPLICATION_CREDENTIALS / attach a service account.
Architecture
Agent Engine diverges from Claude Managed Agents in one important way: ADK agents are pre-deployed resources (projects/{p}/locations/{l}/reasoningEngines/{id}) and their tools are baked in at deploy time. You cannot pass tools per-run.
To preserve Copass's AgentToolResolver runtime-plug model, copass-google-agents deploys ADK agents carrying a single copass_dispatch(tool_name, arguments) function tool. At run time that proxy calls back into your Copass service, which hosts the real resolver and invokes the right tool for the current user.
So:
GoogleAgentBackendis session-only — streams queries against a pre-deployed engine.deploy_adk_agent(ops helper) is the one-time setup that wires the proxy tool into a new ADK agent resource.- Zero client-side tools is the expected case.
CopassGoogleAgentdefaults to an emptyAgentToolRegistry.
Quickstart (planned — not functional in the scaffold)
import os
from copass_google_agents import (
AgentInvocationContext,
AgentScope,
CopassGoogleAgent,
)
agent = CopassGoogleAgent(
identity="support",
system_prompt="You are a support agent.",
project=os.environ["GOOGLE_CLOUD_PROJECT"],
reasoning_engine_id=os.environ["COPASS_REASONING_ENGINE_ID"],
)
ctx = AgentInvocationContext(scope=AgentScope(user_id="u-123"))
result = await agent.run(
messages=[{"role": "user", "content": "Hello"}],
context=ctx,
)
print(result.final_text)
Streaming (planned)
from copass_google_agents import (
AgentFinish,
AgentTextDelta,
AgentToolCall,
AgentToolResult,
)
async for evt in agent.stream(messages, context=ctx):
match evt:
case AgentTextDelta(text=chunk):
print(chunk, end="", flush=True)
case AgentToolCall(name=name):
print(f"\n[tool-call] {name}")
case AgentToolResult(name=name):
print(f"\n[tool-result] {name}")
case AgentFinish(stop_reason=reason, session_id=sid):
print(f"\n[finish] {reason} session={sid}")
Multi-turn continuation (planned)
Agent Engine sessions hold conversation state. Capture AgentFinish.session_id and thread it back on the next turn:
from copass_google_agents import SESSION_ID_HANDLE
ctx2 = AgentInvocationContext(
scope=AgentScope(user_id="u-123"),
handles={SESSION_ID_HANDLE: prior_session_id},
)
Deploying an ADK agent (planned)
from copass_google_agents.deploy import deploy_adk_agent
engine = deploy_adk_agent(
display_name="support-agent",
project="my-gcp-project",
system_prompt="You are a support agent...",
copass_api_url="https://api.copass.id",
copass_api_key=os.environ["COPASS_API_KEY"],
)
print(engine.resource_name) # feed into CopassGoogleAgent(reasoning_engine_id=...)
License
MIT.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file copass_google_agents-0.4.2.tar.gz.
File metadata
- Download URL: copass_google_agents-0.4.2.tar.gz
- Upload date:
- Size: 27.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33e3153507f01043972ad5e186bb972f4421e1c7ae3dbca1f94b8eb353636d92
|
|
| MD5 |
074499fdbd44fae364e2dacf6bdd3b9c
|
|
| BLAKE2b-256 |
46fa873ff7db66109928e745b6ad07a9f6aa05b3064cfc8a97fcf57d6902bf8b
|
Provenance
The following attestation bundles were made for copass_google_agents-0.4.2.tar.gz:
Publisher:
release-python.yml on olane-labs/copass-harness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copass_google_agents-0.4.2.tar.gz -
Subject digest:
33e3153507f01043972ad5e186bb972f4421e1c7ae3dbca1f94b8eb353636d92 - Sigstore transparency entry: 1398171993
- Sigstore integration time:
-
Permalink:
olane-labs/copass-harness@400164c49940148117093da38275c6a8e302b8ad -
Branch / Tag:
refs/heads/production - Owner: https://github.com/olane-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@400164c49940148117093da38275c6a8e302b8ad -
Trigger Event:
push
-
Statement type:
File details
Details for the file copass_google_agents-0.4.2-py3-none-any.whl.
File metadata
- Download URL: copass_google_agents-0.4.2-py3-none-any.whl
- Upload date:
- Size: 28.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2220b8ef8cb0ccafe61fe07ba606b49a4f7a019963cd48a351b2f87b51fcf8b
|
|
| MD5 |
76cebf292812744ce87ca79cd2d836ad
|
|
| BLAKE2b-256 |
51a04d5fa29df231828ae3f2dd9ad93e1b1314152bf47daf6c886e89d1635e86
|
Provenance
The following attestation bundles were made for copass_google_agents-0.4.2-py3-none-any.whl:
Publisher:
release-python.yml on olane-labs/copass-harness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copass_google_agents-0.4.2-py3-none-any.whl -
Subject digest:
e2220b8ef8cb0ccafe61fe07ba606b49a4f7a019963cd48a351b2f87b51fcf8b - Sigstore transparency entry: 1398172016
- Sigstore integration time:
-
Permalink:
olane-labs/copass-harness@400164c49940148117093da38275c6a8e302b8ad -
Branch / Tag:
refs/heads/production - Owner: https://github.com/olane-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@400164c49940148117093da38275c6a8e302b8ad -
Trigger Event:
push
-
Statement type: