noesium 0.1.0__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {noesium-0.1.0 → noesium-0.2.0}/LICENSE +1 -1
- {noesium-0.1.0 → noesium-0.2.0}/PKG-INFO +56 -48
- {noesium-0.1.0 → noesium-0.2.0}/README.md +3 -24
- noesium-0.2.0/noesium/agents/askura_agent/__init__.py +22 -0
- noesium-0.2.0/noesium/agents/askura_agent/askura_agent.py +480 -0
- noesium-0.2.0/noesium/agents/askura_agent/conversation.py +164 -0
- noesium-0.2.0/noesium/agents/askura_agent/extractor.py +175 -0
- noesium-0.2.0/noesium/agents/askura_agent/memory.py +14 -0
- noesium-0.2.0/noesium/agents/askura_agent/models.py +239 -0
- noesium-0.2.0/noesium/agents/askura_agent/prompts.py +202 -0
- noesium-0.2.0/noesium/agents/askura_agent/reflection.py +234 -0
- noesium-0.2.0/noesium/agents/askura_agent/summarizer.py +30 -0
- noesium-0.2.0/noesium/agents/askura_agent/utils.py +6 -0
- noesium-0.2.0/noesium/agents/deep_research/__init__.py +13 -0
- noesium-0.2.0/noesium/agents/deep_research/agent.py +398 -0
- noesium-0.2.0/noesium/agents/deep_research/prompts.py +84 -0
- noesium-0.2.0/noesium/agents/deep_research/schemas.py +42 -0
- noesium-0.2.0/noesium/agents/deep_research/state.py +54 -0
- noesium-0.2.0/noesium/agents/search/__init__.py +5 -0
- noesium-0.2.0/noesium/agents/search/agent.py +474 -0
- noesium-0.2.0/noesium/agents/search/state.py +28 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/__init__.py +1 -1
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/agent/base.py +10 -2
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/decomposer/llm_decomposer.py +1 -1
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/__init__.py +1 -1
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/base.py +2 -2
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/litellm.py +42 -21
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/llamacpp.py +25 -4
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/ollama.py +43 -22
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/openai.py +25 -5
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/openrouter.py +1 -1
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/toolify/base.py +9 -2
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/toolify/config.py +2 -2
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/toolify/registry.py +21 -5
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/tracing/opik_tracing.py +7 -7
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/vector_store/__init__.py +2 -2
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/vector_store/base.py +1 -1
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/vector_store/pgvector.py +10 -13
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/vector_store/weaviate.py +2 -1
- noesium-0.2.0/noesium/toolkits/__init__.py +1 -0
- noesium-0.2.0/noesium/toolkits/arxiv_toolkit.py +310 -0
- noesium-0.2.0/noesium/toolkits/audio_aliyun_toolkit.py +441 -0
- noesium-0.2.0/noesium/toolkits/audio_toolkit.py +370 -0
- noesium-0.2.0/noesium/toolkits/bash_toolkit.py +332 -0
- noesium-0.2.0/noesium/toolkits/document_toolkit.py +454 -0
- noesium-0.2.0/noesium/toolkits/file_edit_toolkit.py +552 -0
- noesium-0.2.0/noesium/toolkits/github_toolkit.py +395 -0
- noesium-0.2.0/noesium/toolkits/gmail_toolkit.py +575 -0
- noesium-0.2.0/noesium/toolkits/image_toolkit.py +425 -0
- noesium-0.2.0/noesium/toolkits/memory_toolkit.py +398 -0
- noesium-0.2.0/noesium/toolkits/python_executor_toolkit.py +334 -0
- noesium-0.2.0/noesium/toolkits/search_toolkit.py +451 -0
- noesium-0.2.0/noesium/toolkits/serper_toolkit.py +623 -0
- noesium-0.2.0/noesium/toolkits/tabular_data_toolkit.py +537 -0
- noesium-0.2.0/noesium/toolkits/user_interaction_toolkit.py +365 -0
- noesium-0.2.0/noesium/toolkits/video_toolkit.py +168 -0
- noesium-0.2.0/noesium/toolkits/wikipedia_toolkit.py +420 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium.egg-info/PKG-INFO +56 -48
- {noesium-0.1.0 → noesium-0.2.0}/noesium.egg-info/SOURCES.txt +37 -1
- noesium-0.2.0/noesium.egg-info/requires.txt +79 -0
- {noesium-0.1.0 → noesium-0.2.0}/pyproject.toml +53 -28
- noesium-0.1.0/noesium.egg-info/requires.txt +0 -38
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/agent/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/consts.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/conflict/conflict.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/conflict/detector.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/decomposer/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/decomposer/base.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/decomposer/callable_decomposer.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/decomposer/prompts.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/decomposer/simple_decomposer.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/errors.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/goalgraph/graph.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/goalgraph/node.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/replanner/base.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/replanner/replanner.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/goalith/service.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/message.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/llm/prompt.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/base.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/config/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/config/activity/config.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/config/event/config.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/config/markdown_config.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/config/profile/config.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/llm_adapter.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/add_activity_memory.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/base_action.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/cluster_memories.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/generate_suggestions.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/get_available_categories.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/link_related_memories.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/run_theory_of_mind.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/actions/update_memory_with_suggestions.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/embeddings.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/file_manager.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/memory_agent.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory/recall_agent.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/memu/memory_store.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/memory/models.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/msgbus/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/msgbus/base.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/orchestrix/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/py.typed +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/routing/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/routing/base.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/routing/router.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/routing/strategies/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/routing/strategies/dynamic_complexity.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/routing/strategies/self_assessment.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/routing/types.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/toolify/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/toolify/mcp_integration.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/toolify/toolkits/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/tracing/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/tracing/langgraph_hooks.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/tracing/token_tracker.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/utils/__init__.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/utils/logging.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/utils/statistics.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium/core/utils/typing.py +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium.egg-info/dependency_links.txt +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/noesium.egg-info/top_level.txt +0 -0
- {noesium-0.1.0 → noesium-0.2.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: noesium
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Towards a cognitive agentic framework
|
|
5
5
|
Author-email: Xiaming Chen <chenxm35@gmail.com>
|
|
6
6
|
Maintainer-email: Xiaming Chen <chenxm35@gmail.com>
|
|
@@ -20,50 +20,79 @@ Description-Content-Type: text/markdown
|
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: pydantic>=2.0.0
|
|
22
22
|
Requires-Dist: requests>=2.31.0
|
|
23
|
+
Requires-Dist: httpx>=0.28.1
|
|
24
|
+
Requires-Dist: aiohttp>=3.12.15
|
|
25
|
+
Requires-Dist: aiofiles>=24.1.0
|
|
26
|
+
Requires-Dist: anyio>=4.9.0
|
|
23
27
|
Requires-Dist: python-dotenv>=1.1.1
|
|
24
28
|
Requires-Dist: colorlog>=6.8.0
|
|
25
29
|
Requires-Dist: typing-extensions>=4.8.0
|
|
26
30
|
Requires-Dist: deprecated>=1.2.18
|
|
27
|
-
Requires-Dist:
|
|
28
|
-
Requires-Dist: openai>=1.0.0
|
|
29
|
-
Requires-Dist: instructor>=1.10.0
|
|
30
|
-
Requires-Dist: google-genai>=1.5.0
|
|
31
|
-
Requires-Dist: litellm>=1.0.0
|
|
32
|
-
Requires-Dist: ollama>=0.5.3
|
|
33
|
-
Requires-Dist: huggingface-hub>=0.34.4
|
|
34
|
-
Requires-Dist: llama-cpp-python>=0.3.16
|
|
35
|
-
Requires-Dist: langchain-core>=0.3.72
|
|
36
|
-
Requires-Dist: langchain-text-splitters>=0.3.0
|
|
37
|
-
Requires-Dist: langchain-ollama>=0.2.0
|
|
38
|
-
Requires-Dist: langgraph>=0.5.4
|
|
31
|
+
Requires-Dist: psutil>=7.0.0
|
|
39
32
|
Requires-Dist: networkx>=3.5
|
|
40
|
-
Requires-Dist:
|
|
41
|
-
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
|
|
33
|
+
Requires-Dist: bubus>=1.5.6
|
|
34
|
+
Provides-Extra: openai
|
|
35
|
+
Requires-Dist: openai>=1.0.0; extra == "openai"
|
|
36
|
+
Requires-Dist: instructor>=1.10.0; extra == "openai"
|
|
37
|
+
Provides-Extra: google
|
|
38
|
+
Requires-Dist: google-genai>=1.5.0; extra == "google"
|
|
39
|
+
Requires-Dist: google-api-python-client>=2.174.0; extra == "google"
|
|
40
|
+
Requires-Dist: google-auth-oauthlib>=1.2.2; extra == "google"
|
|
41
|
+
Requires-Dist: google-auth>=2.40.3; extra == "google"
|
|
42
|
+
Provides-Extra: aliyun
|
|
43
|
+
Requires-Dist: aliyun-python-sdk-core<3.0.0,>=2.13.1; extra == "aliyun"
|
|
44
|
+
Provides-Extra: litellm
|
|
45
|
+
Requires-Dist: litellm>=1.0.0; extra == "litellm"
|
|
46
|
+
Provides-Extra: local-llm
|
|
47
|
+
Requires-Dist: ollama>=0.5.3; extra == "local-llm"
|
|
48
|
+
Requires-Dist: llama-cpp-python>=0.3.16; extra == "local-llm"
|
|
49
|
+
Requires-Dist: huggingface-hub>=0.34.4; extra == "local-llm"
|
|
50
|
+
Provides-Extra: langchain
|
|
51
|
+
Requires-Dist: langchain-core>=0.3.72; extra == "langchain"
|
|
52
|
+
Requires-Dist: langchain-text-splitters>=0.3.0; extra == "langchain"
|
|
53
|
+
Requires-Dist: langchain-ollama>=0.2.0; extra == "langchain"
|
|
54
|
+
Requires-Dist: langgraph>=0.5.4; extra == "langchain"
|
|
55
|
+
Provides-Extra: postgres
|
|
56
|
+
Requires-Dist: psycopg2-binary>=2.9.0; extra == "postgres"
|
|
57
|
+
Requires-Dist: psycopg2>=2.9.10; extra == "postgres"
|
|
58
|
+
Provides-Extra: weaviate
|
|
59
|
+
Requires-Dist: weaviate-client<5,>=4; extra == "weaviate"
|
|
60
|
+
Requires-Dist: protobuf<6,>=5; extra == "weaviate"
|
|
61
|
+
Provides-Extra: datascience
|
|
62
|
+
Requires-Dist: matplotlib>=3.8.0; extra == "datascience"
|
|
63
|
+
Requires-Dist: pexpect>=4.9.0; extra == "datascience"
|
|
64
|
+
Requires-Dist: ipython>=8.18.0; extra == "datascience"
|
|
65
|
+
Requires-Dist: pandas>=2.0.0; extra == "datascience"
|
|
66
|
+
Provides-Extra: mcp
|
|
67
|
+
Requires-Dist: mcp>=1.0.0; extra == "mcp"
|
|
68
|
+
Provides-Extra: tools
|
|
69
|
+
Requires-Dist: noesium[aliyun,datascience,google,mcp]; extra == "tools"
|
|
70
|
+
Requires-Dist: wizsearch<2.0.0,>=1.0.1; extra == "tools"
|
|
71
|
+
Requires-Dist: arxiv>=2.2.0; extra == "tools"
|
|
72
|
+
Requires-Dist: pillow<12.0,>=10.1.0; extra == "tools"
|
|
73
|
+
Requires-Dist: pymupdf>=1.23.0; extra == "tools"
|
|
74
|
+
Requires-Dist: openpyxl>=3.1.5; extra == "tools"
|
|
75
|
+
Requires-Dist: wikipedia-api>=0.6.0; extra == "tools"
|
|
76
|
+
Provides-Extra: all
|
|
77
|
+
Requires-Dist: noesium[google,langchain,local-llm,openai,postgres,tools,weaviate]; extra == "all"
|
|
45
78
|
Provides-Extra: dev
|
|
46
79
|
Requires-Dist: pytest<9,>=8.2; extra == "dev"
|
|
47
80
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
48
81
|
Requires-Dist: pytest-asyncio>=1.1.0; extra == "dev"
|
|
49
|
-
Requires-Dist: pytest-tornasync>=0.6.0.post2; extra == "dev"
|
|
50
|
-
Requires-Dist: pytest-trio>=0.8.0; extra == "dev"
|
|
51
|
-
Requires-Dist: pytest-twisted>=1.14.3; extra == "dev"
|
|
52
|
-
Requires-Dist: twisted>=25.5.0; extra == "dev"
|
|
53
82
|
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
54
83
|
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
55
|
-
Requires-Dist:
|
|
84
|
+
Requires-Dist: mypy>=1.10.0; extra == "dev"
|
|
56
85
|
Requires-Dist: autoflake>=2.3.1; extra == "dev"
|
|
57
|
-
Requires-Dist:
|
|
86
|
+
Requires-Dist: flake8>=7.3.0; extra == "dev"
|
|
58
87
|
Dynamic: license-file
|
|
59
88
|
|
|
60
|
-
#
|
|
89
|
+
# Noesium-core
|
|
61
90
|
|
|
62
91
|
[](https://github.com/mirasoth/noesium/actions/workflows/ci.yml)
|
|
63
92
|
[](https://pypi.org/project/noesium/)
|
|
64
93
|
[](https://deepwiki.com/mirasoth/noesium)
|
|
65
94
|
|
|
66
|
-
|
|
95
|
+
Project Noesium is an initiative to develop a computation-driven, cognitive agentic system. This repo contains the foundational abstractions (Agent, Memory, Tool, Goal, Orchestration, and more) along with essential modules such as LLM clients, logging, message buses, model routing, and observability. For the underlying philosophy, refer to my talk on MAS ([link](https://github.com/caesar0301/mas-talk-2508/blob/master/mas-talk-xmingc.pdf)).
|
|
67
96
|
|
|
68
97
|
## Installation
|
|
69
98
|
|
|
@@ -117,27 +146,6 @@ Noesium offers a comprehensive set of modules for creating intelligent agent-bas
|
|
|
117
146
|
- **Opik integration**: Production-ready observability
|
|
118
147
|
- **LangGraph hooks**: Workflow tracing and debugging
|
|
119
148
|
|
|
120
|
-
## Project Structure
|
|
121
|
-
|
|
122
|
-
```
|
|
123
|
-
noesium/core/
|
|
124
|
-
├── agent/ # Base agent classes and models
|
|
125
|
-
├── goalith/ # Goal management and planning system
|
|
126
|
-
│ ├── decomposer/ # Goal decomposition strategies
|
|
127
|
-
│ ├── goalgraph/ # Graph data structures
|
|
128
|
-
│ ├── conflict/ # Conflict detection
|
|
129
|
-
│ └── replanner/ # Dynamic replanning
|
|
130
|
-
├── llm/ # LLM provider implementations
|
|
131
|
-
├── memory/ # Memory management system
|
|
132
|
-
│ └── memu/ # MemU memory agent integration
|
|
133
|
-
├── toolify/ # Tool management and execution
|
|
134
|
-
├── vector_store/ # Vector database integrations
|
|
135
|
-
├── msgbus/ # Message bus system
|
|
136
|
-
├── routing/ # LLM routing strategies
|
|
137
|
-
├── tracing/ # Token tracking and observability
|
|
138
|
-
└── utils/ # Utilities and logging
|
|
139
|
-
```
|
|
140
|
-
|
|
141
149
|
## Quick Start
|
|
142
150
|
|
|
143
151
|
### 1. LLM Client Usage
|
|
@@ -386,7 +394,7 @@ Set these environment variables for different providers:
|
|
|
386
394
|
|
|
387
395
|
```bash
|
|
388
396
|
# Default LLM provider
|
|
389
|
-
export
|
|
397
|
+
export NOESIUM_LLM_PROVIDER="openai"
|
|
390
398
|
|
|
391
399
|
# OpenAI
|
|
392
400
|
export OPENAI_API_KEY="sk-..."
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Noesium-core
|
|
2
2
|
|
|
3
3
|
[](https://github.com/mirasoth/noesium/actions/workflows/ci.yml)
|
|
4
4
|
[](https://pypi.org/project/noesium/)
|
|
5
5
|
[](https://deepwiki.com/mirasoth/noesium)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Project Noesium is an initiative to develop a computation-driven, cognitive agentic system. This repo contains the foundational abstractions (Agent, Memory, Tool, Goal, Orchestration, and more) along with essential modules such as LLM clients, logging, message buses, model routing, and observability. For the underlying philosophy, refer to my talk on MAS ([link](https://github.com/caesar0301/mas-talk-2508/blob/master/mas-talk-xmingc.pdf)).
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
@@ -58,27 +58,6 @@ Noesium offers a comprehensive set of modules for creating intelligent agent-bas
|
|
|
58
58
|
- **Opik integration**: Production-ready observability
|
|
59
59
|
- **LangGraph hooks**: Workflow tracing and debugging
|
|
60
60
|
|
|
61
|
-
## Project Structure
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
noesium/core/
|
|
65
|
-
├── agent/ # Base agent classes and models
|
|
66
|
-
├── goalith/ # Goal management and planning system
|
|
67
|
-
│ ├── decomposer/ # Goal decomposition strategies
|
|
68
|
-
│ ├── goalgraph/ # Graph data structures
|
|
69
|
-
│ ├── conflict/ # Conflict detection
|
|
70
|
-
│ └── replanner/ # Dynamic replanning
|
|
71
|
-
├── llm/ # LLM provider implementations
|
|
72
|
-
├── memory/ # Memory management system
|
|
73
|
-
│ └── memu/ # MemU memory agent integration
|
|
74
|
-
├── toolify/ # Tool management and execution
|
|
75
|
-
├── vector_store/ # Vector database integrations
|
|
76
|
-
├── msgbus/ # Message bus system
|
|
77
|
-
├── routing/ # LLM routing strategies
|
|
78
|
-
├── tracing/ # Token tracking and observability
|
|
79
|
-
└── utils/ # Utilities and logging
|
|
80
|
-
```
|
|
81
|
-
|
|
82
61
|
## Quick Start
|
|
83
62
|
|
|
84
63
|
### 1. LLM Client Usage
|
|
@@ -327,7 +306,7 @@ Set these environment variables for different providers:
|
|
|
327
306
|
|
|
328
307
|
```bash
|
|
329
308
|
# Default LLM provider
|
|
330
|
-
export
|
|
309
|
+
export NOESIUM_LLM_PROVIDER="openai"
|
|
331
310
|
|
|
332
311
|
# OpenAI
|
|
333
312
|
export OPENAI_API_KEY="sk-..."
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AskuraAgent - A general-purpose dynamic conversation agent.
|
|
3
|
+
|
|
4
|
+
AskuraAgent provides a flexible, configurable framework for human-in-the-loop
|
|
5
|
+
conversations that adapt to different user communication styles and dynamically
|
|
6
|
+
collect required information through natural conversation flow.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from .askura_agent import AskuraAgent
|
|
10
|
+
from .conversation import ConversationManager
|
|
11
|
+
from .extractor import InformationExtractor
|
|
12
|
+
from .models import AskuraConfig, AskuraResponse, AskuraState, InformationSlot
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
"AskuraAgent",
|
|
16
|
+
"AskuraConfig",
|
|
17
|
+
"AskuraState",
|
|
18
|
+
"AskuraResponse",
|
|
19
|
+
"ConversationManager",
|
|
20
|
+
"InformationExtractor",
|
|
21
|
+
"InformationSlot",
|
|
22
|
+
]
|