copass-context-agents
Copass context-engineering primitives for copass-core-agents.
Three provider-neutral pieces every Copass-aware agent uses:
copass_retrieval_tools(...)— returnsdiscover/interpret/searchasAgentToolinstances, window-aware when aContextWindowis passed.copass_ingest_tool(...)— returnsingestas anAgentToolso agents can promote content into durable sandbox storage.CopassTurnRecorder— mirrors user / assistant turns into aContextWindowwith fire-and-forget pushes and typed speaker / participants metadata.
These are the primitives the provider adapter packages — copass-anthropic-agents, copass-google-agents — compose into their run() / stream() loops. The descriptions come from copass_config so every Copass surface (TS adapters, MCP server, CLI) shows the LLM identical tool semantics.
Install
pip install copass-context-agents
Usually a transitive dep — pip install copass-anthropic-agents / copass-google-agents pulls it in.
Usage
from copass_core import CopassClient
from copass_context_agents import (
copass_retrieval_tools,
copass_ingest_tool,
CopassTurnRecorder,
)
client = CopassClient(...)
window = await client.context_window.create(sandbox_id=sandbox_id)
tools = [
*copass_retrieval_tools(client=client, sandbox_id=sandbox_id, window=window),
copass_ingest_tool(
client=client,
sandbox_id=sandbox_id,
data_source_id=my_source_id,
default_source_type="decision",
author="agent:support-bot",
),
]
recorder = CopassTurnRecorder(window=window, author="agent:support-bot")
# ...wire into your provider's stream loop; see copass-anthropic-agents or
# copass-google-agents for the full wiring.
See the provider adapter packages for the full CopassManagedAgent / CopassGoogleAgent integrations that wire these primitives into discover-as-step-1 + auto-record flows.
Speaker, participants, and provenance
CopassTurnRecorder populates the typed envelope fields on every turn it
pushes through the underlying ContextWindow:
| Constructor arg | Default | Effect |
|---|---|---|
author |
None |
Forwarded as the envelope's speaker field on assistant turns (and as ChatMessage.name on the recorded turn). When unset, assistant turns get speaker="Assistant" from the role-derived fallback. |
user_speaker |
"User" |
Speaker label on user turns. Set to a richer identity when you have one (e.g. logged-in user's display name). |
participants |
["User", author or "Assistant"] |
Conversation roster forwarded as the envelope's participants field on every turn. Pass an explicit list to override; pass [] to opt out entirely. |
include_author_prefix |
False |
Legacy — when True, also embeds [author=…]\n in the body string. The typed envelope path is the supported way to carry provenance now; this flag exists for backward compat with body-reading consumers and is off by default. |
# Typical setup — typed speaker + auto-derived roster
recorder = CopassTurnRecorder(
window=window,
author="agent:support-bot",
# participants defaults to ["User", "agent:support-bot"]
)
# Multi-party — set the roster explicitly
recorder = CopassTurnRecorder(
window=window,
author="agent:support-bot",
user_speaker="Alice",
participants=["Alice", "agent:support-bot", "system"],
)
# Opt out of participants entirely
recorder = CopassTurnRecorder(
window=window,
author="agent:support-bot",
participants=[],
)
The same author flows through copass_ingest_tool as the envelope's
speaker on every tool-driven ingestion. No body-prefix munging — the
caller's content is sent verbatim.
Release files for copass-context-agents 1.4.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| copass_context_agents-1.4.9.tar.gz | 12.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| copass_context_agents-1.4.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.3 kB
Release files / copass_context_agents-1.4.9.tar.gz
| Download URL | copass_context_agents-1.4.9.tar.gz |
|---|---|
| Size | 12.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e8e1cee0e058e33a570eebc453d8737c918b67fbdc9b1cfada0095ae3fd34ce
|
|
BLAKE2b-256 checksum How to use checksums |
3f630fd4a8527cb20967d8a51610dfd0c0ce8409223ea7d1b2eff1f8e13ffd1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 5, 2026.
Transparency logRelease files / copass_context_agents-1.4.9-py3-none-any.whl
| Download URL | copass_context_agents-1.4.9-py3-none-any.whl |
|---|---|
| Size | 13.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fecaab13222cfedc327930797685bd0fa4375348ec205bc377ef0b2ac7ccf04d
|
|
BLAKE2b-256 checksum How to use checksums |
4356b3410e6126ba2d914f2559f359cf65aedd4f2e08a30d080cb3f50c71c15a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 5, 2026.
Transparency log