Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autogen_contextplus-0.0.3.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

autogen_contextplus-0.0.3-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file autogen_contextplus-0.0.3.tar.gz.

File metadata

  • Download URL: autogen_contextplus-0.0.3.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for autogen_contextplus-0.0.3.tar.gz
Algorithm Hash digest
SHA256 9ba514c7fe7d0a93c3e41d5bef2fbf31db0ce2ac4d954646d8712f7ee0380ba2
MD5 b56873a63fa30498edc04e9013c66a96
BLAKE2b-256 c7799b2ca1383a66194faaa3c4c97e5d12288eb78c8169ced41e38b10a77d141

See more details on using hashes here.

File details

Details for the file autogen_contextplus-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for autogen_contextplus-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cecee17bb5ab1c772eb8bbf6559fc36665a31316dd72a2cbcd51062523d4b550
MD5 f769601554f17d741071c44458ccc8f1
BLAKE2b-256 2358525bf25d860196bd2ace756d8ad73009328c4195c440984c8804c41f77e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page