Autogen ContextPlus, User defined AutoGen model_context
Reason this release was yanked:
EMPTY_FAULT
Project description
🧠 Autogen ContextPlus
Modular, customizable, and serializable context engine for AutoGen — enabling structured message summarization, filtering, and rewriting logic with full compatibility.
✨ What is ContextPlus?
autogen-contextplus
provides a general-purpose context modifier system for AutoGen’s model_context
layer. It supports:
- ✅ Condition-triggered message summarization
- ✅ Agent- or function-based message rewriting
- ✅ Component-based serialization / deserialization
- ✅ Full support for user-defined logic via AutoGen
FunctionTool
or custom agents
🔧 Installation
pip install autogen-contextplus
For development and type checking:
pip install -e ".[dev]"
Example
import asyncio
from pprint import pprint
from typing import List
from autogen_core.models import UserMessage, AssistantMessage
from autogen_ext.models.replay import ReplayChatCompletionClient
from autogen_ext.models.anthropic import AnthropicChatCompletionClient
from autogen_agentchat.agents import AssistantAgent
from autogen_core import CancellationToken
from autogen_core.model_context import BufferedChatCompletionContext
from autogen_contextplus.conditions import (
MaxMessageCondition
)
from autogen_contextplus.base.types import (
ModifierFunction,
)
from autogen_contextplus import (
ContextPlusChatCompletionContext
)
from autogen_core.models import LLMMessage
def buffered_summary(
messages: List[LLMMessage],
non_summarized_messages: List[LLMMessage],
) -> List[LLMMessage]:
"""Summarize the last `buffer_count` messages."""
if len(messages) > 3:
return messages[-3:]
return messages
async def main():
client = ReplayChatCompletionClient(
chat_completions=[
"paris",
"seoul",
"paris",
"seoul",
]
)
context = ContextPlusChatCompletionContext(
modifier_func = buffered_summary,
modifier_condition = MaxMessageCondition(max_messages=2)
)
agent = AssistantAgent(
"helper",
model_client=client,
system_message="You are a helpful agent",
model_context=context
)
await agent.run(task="What is the capital of France?")
res = await context.get_messages()
print(f"[RESULTS] res:")
pprint(res)
print(f"[RESULTS] len_context : {len(res)}, context_type: {type(context)}")
await agent.run(task="What is the capital of Korea?")
res = await context.get_messages()
print(f"[RESULTS] res:")
pprint(res)
print(f"[RESULTS] len_context : {len(res)}, context_type: {type(context)}")
print("==========================")
cancellation_token = CancellationToken()
await agent.on_reset(cancellation_token=cancellation_token)
test = agent.dump_component()
agent = AssistantAgent.load_component(test)
context = agent.model_context
await agent.run(task="What is the capital of France?")
res = await context.get_messages()
print(f"[RESULTS] res:")
pprint(res)
print(f"[RESULTS] len_context : {len(res)}, context_type: {type(context)}")
await agent.run(task="What is the capital of Korea?")
res = await context.get_messages()
print(f"[RESULTS] res:")
pprint(res)
print(f"[RESULTS] len_context : {len(res)}, context_type: {type(context)}")
if __name__ == "__main__":
asyncio.run(main())
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 Distribution
Built Distribution
File details
Details for the file autogen_contextplus-0.0.2.tar.gz
.
File metadata
- Download URL: autogen_contextplus-0.0.2.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
9a277aed741e6f51f27a1573427df762f94bb0f77597dc583e6aa5dcabb11119
|
|
MD5 |
34d9e7a0263d34c885e664297187eb9b
|
|
BLAKE2b-256 |
8d550eade31606f1f113bd75388b2d482545b47c27483d490985e731db54921a
|
File details
Details for the file autogen_contextplus-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: autogen_contextplus-0.0.2-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
1f1c6a38679c0bd83d17a8d167553ef94fde65d8c1b46bba211ba16711ffbc0d
|
|
MD5 |
7aba650229a371394813df4e89fb42f1
|
|
BLAKE2b-256 |
96a431ad62143026c210941619f0a8892b8d047d78660fe2e9cefcf82d960879
|