Repository navigation
V0.9.0
AmritaCore 0.9.0 Release Summary
Major Changes
🏛️ License Change
- License switched from MIT to Apache 2.0. All past and future versions are now released under the Apache 2.0 License.
🧱 Foundation on AmritaSense
- AmritaCore now builds upon AmritaSense (≥0.2.1), a shared infrastructure package providing:
- Workflow engine (
WorkflowInterpreter,Node, control flow) - Event system (
MatcherFactory,EventRegistry) - Streaming & suspend/resume (
SuspendObjectStream) - Logging and weak cache utilities
- Workflow engine (
- Migration: Old import paths (
amrita_core.streaming,amrita_core.logging,amrita_core.hook.*,amrita_core.weakcache) are deprecated and will emit warnings. Useamrita_senseequivalents.
🔄 Workflow-Driven ChatObject
ChatObjectexecution is now a composable node chain (train render → memory limit → pre‑runner → strategy → LLM call → post‑runner → archived nodes).- New parameters:
middleware: async function wrapping the entire workflow.archived_nodes: append custom nodes after the standard pipeline.
- New suspend tags (
SuspendEnum.ENTRY_POINT,TRAIN_RENDER,MESSAGES_PREPARED,STRATEGY_START,LLM_CALL,FINALIZE).
🧠 Stateful Agent Strategies (StrategyLikedObject)
- New base class for stateful strategies. Pass a pre‑initialised instance to
ChatObjectinstead of a class. - The same instance lives for the whole conversation, carrying internal state, pre‑loaded resources, and custom logic.
ChatObject.agent_strategynow accepts bothtype[AgentStrategy]andStrategyLikedObject.
🔌 Adapter & Tokenizer Overhaul
- Adapters moved to
amrita_core.adapterswith auto‑discovery. - Anthropic adapter now optional (
amrita_core[anthropic]). - New tokenizer framework:
BaseTokenizer,TokenizerManager.SimpleTokenizer(default) – regex‑based, no external deps.JiebaTokenizer(optional,amrita_core[jieba]) – better Chinese tokenization.
FunctionConfig.tokenizer_usedselects which tokenizer to use.
🗑️ Deprecations & Removals
init()is deprecated and now a no‑op. Remove all calls to it. Useload_amrita()for async initialisation (e.g., MCP client).- Project structure section removed from
CONTRIBUTING.md. amrita_core.protocol– moved toamrita_core.base.adapter+amrita_core.contents(deprecated re‑exports).amrita_core.builtins.adapter– replaced byamrita_core.adapters.
📦 Other Improvements
ChatManagerandChatObjectMetaare now properly exposed and documented.MemoryLimitermoved to its own module with improved token counting.get_tokens()now respectstokenizer_used.- Preset testing now uses real token usage from adapter responses.
- Documentation fully restructured under
docs/docs/and updated for all new features.
Upgrade Guide
- Update dependencies –
pip install -U amrita_core(auto‑installsamrita-sense). - Remove all calls to
amrita_core.init(). - If you use Anthropic adapter, install extra:
pip install amrita_core[anthropic](or[all]). - If you use Jieba tokenizer, install extra:
pip install amrita_core[jieba]. - Update imports for logging, streaming, hooks, and weakcache to use
amrita_sense(or keep old deprecated imports until next release). - Check custom adapters – import from
amrita_core.base.adapterinstead ofamrita_core.protocol. - Review license – Apache 2.0 applies from this version onward.
Report issues on GitHub. Full documentation is available at core.amritabot.com and sense.amritabot.com.
Full Changelog: 0.8.6.1...0.9.0