agent-runtime-core 0.2.1__py3-none-any.whl → 0.3.0__py3-none-any.whl
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.
- {agent_runtime → agent_runtime_core}/__init__.py +8 -8
- {agent_runtime → agent_runtime_core}/config.py +1 -1
- {agent_runtime → agent_runtime_core}/events/__init__.py +5 -5
- {agent_runtime → agent_runtime_core}/events/memory.py +1 -1
- {agent_runtime → agent_runtime_core}/events/redis.py +1 -1
- {agent_runtime → agent_runtime_core}/events/sqlite.py +1 -1
- {agent_runtime → agent_runtime_core}/llm/__init__.py +6 -6
- {agent_runtime → agent_runtime_core}/llm/anthropic.py +4 -4
- {agent_runtime → agent_runtime_core}/llm/litellm_client.py +2 -2
- {agent_runtime → agent_runtime_core}/llm/openai.py +4 -4
- {agent_runtime → agent_runtime_core}/persistence/__init__.py +4 -4
- {agent_runtime → agent_runtime_core}/persistence/file.py +1 -1
- {agent_runtime → agent_runtime_core}/persistence/manager.py +2 -2
- {agent_runtime → agent_runtime_core}/queue/__init__.py +5 -5
- {agent_runtime → agent_runtime_core}/queue/memory.py +1 -1
- {agent_runtime → agent_runtime_core}/queue/redis.py +1 -1
- {agent_runtime → agent_runtime_core}/queue/sqlite.py +1 -1
- {agent_runtime → agent_runtime_core}/registry.py +1 -1
- {agent_runtime → agent_runtime_core}/runner.py +6 -6
- {agent_runtime → agent_runtime_core}/state/__init__.py +5 -5
- {agent_runtime → agent_runtime_core}/state/memory.py +1 -1
- {agent_runtime → agent_runtime_core}/state/redis.py +1 -1
- {agent_runtime → agent_runtime_core}/state/sqlite.py +1 -1
- {agent_runtime → agent_runtime_core}/testing.py +1 -1
- {agent_runtime → agent_runtime_core}/tracing/__init__.py +4 -4
- {agent_runtime → agent_runtime_core}/tracing/langfuse.py +1 -1
- {agent_runtime → agent_runtime_core}/tracing/noop.py +1 -1
- {agent_runtime_core-0.2.1.dist-info → agent_runtime_core-0.3.0.dist-info}/METADATA +1 -1
- agent_runtime_core-0.3.0.dist-info/RECORD +36 -0
- agent_runtime_core-0.2.1.dist-info/RECORD +0 -36
- {agent_runtime → agent_runtime_core}/events/base.py +0 -0
- {agent_runtime → agent_runtime_core}/interfaces.py +0 -0
- {agent_runtime → agent_runtime_core}/persistence/base.py +0 -0
- {agent_runtime → agent_runtime_core}/queue/base.py +0 -0
- {agent_runtime → agent_runtime_core}/state/base.py +0 -0
- {agent_runtime_core-0.2.1.dist-info → agent_runtime_core-0.3.0.dist-info}/WHEEL +0 -0
- {agent_runtime_core-0.2.1.dist-info → agent_runtime_core-0.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -9,7 +9,7 @@ This package provides:
|
|
|
9
9
|
- A runner for executing agent runs
|
|
10
10
|
|
|
11
11
|
Example usage:
|
|
12
|
-
from
|
|
12
|
+
from agent_runtime_core import (
|
|
13
13
|
AgentRuntime,
|
|
14
14
|
RunContext,
|
|
15
15
|
RunResult,
|
|
@@ -34,10 +34,10 @@ Example usage:
|
|
|
34
34
|
return RunResult(final_output={"message": "Hello!"})
|
|
35
35
|
"""
|
|
36
36
|
|
|
37
|
-
__version__ = "0.
|
|
37
|
+
__version__ = "0.3.0"
|
|
38
38
|
|
|
39
39
|
# Core interfaces
|
|
40
|
-
from
|
|
40
|
+
from agent_runtime_core.interfaces import (
|
|
41
41
|
AgentRuntime,
|
|
42
42
|
EventType,
|
|
43
43
|
ErrorInfo,
|
|
@@ -54,14 +54,14 @@ from agent_runtime.interfaces import (
|
|
|
54
54
|
)
|
|
55
55
|
|
|
56
56
|
# Configuration
|
|
57
|
-
from
|
|
57
|
+
from agent_runtime_core.config import (
|
|
58
58
|
RuntimeConfig,
|
|
59
59
|
configure,
|
|
60
60
|
get_config,
|
|
61
61
|
)
|
|
62
62
|
|
|
63
63
|
# Registry
|
|
64
|
-
from
|
|
64
|
+
from agent_runtime_core.registry import (
|
|
65
65
|
register_runtime,
|
|
66
66
|
get_runtime,
|
|
67
67
|
list_runtimes,
|
|
@@ -70,7 +70,7 @@ from agent_runtime.registry import (
|
|
|
70
70
|
)
|
|
71
71
|
|
|
72
72
|
# Runner
|
|
73
|
-
from
|
|
73
|
+
from agent_runtime_core.runner import (
|
|
74
74
|
AgentRunner,
|
|
75
75
|
RunnerConfig,
|
|
76
76
|
RunContextImpl,
|
|
@@ -78,7 +78,7 @@ from agent_runtime.runner import (
|
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
# Testing utilities
|
|
81
|
-
from
|
|
81
|
+
from agent_runtime_core.testing import (
|
|
82
82
|
MockRunContext,
|
|
83
83
|
MockLLMClient,
|
|
84
84
|
MockLLMResponse,
|
|
@@ -88,7 +88,7 @@ from agent_runtime.testing import (
|
|
|
88
88
|
)
|
|
89
89
|
|
|
90
90
|
# Persistence (memory, conversations, tasks, preferences)
|
|
91
|
-
from
|
|
91
|
+
from agent_runtime_core.persistence import (
|
|
92
92
|
# Abstract interfaces
|
|
93
93
|
MemoryStore,
|
|
94
94
|
ConversationStore,
|
|
@@ -9,8 +9,8 @@ Provides:
|
|
|
9
9
|
- SQLiteEventBus: For persistent local storage
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from agent_runtime_core.events.base import EventBus, Event
|
|
13
|
+
from agent_runtime_core.events.memory import InMemoryEventBus
|
|
14
14
|
|
|
15
15
|
__all__ = [
|
|
16
16
|
"EventBus",
|
|
@@ -31,7 +31,7 @@ def get_event_bus(backend: str = None, **kwargs) -> EventBus:
|
|
|
31
31
|
Returns:
|
|
32
32
|
EventBus instance
|
|
33
33
|
"""
|
|
34
|
-
from
|
|
34
|
+
from agent_runtime_core.config import get_config
|
|
35
35
|
|
|
36
36
|
config = get_config()
|
|
37
37
|
backend = backend or config.event_bus_backend
|
|
@@ -40,14 +40,14 @@ def get_event_bus(backend: str = None, **kwargs) -> EventBus:
|
|
|
40
40
|
return InMemoryEventBus()
|
|
41
41
|
|
|
42
42
|
elif backend == "redis":
|
|
43
|
-
from
|
|
43
|
+
from agent_runtime_core.events.redis import RedisEventBus
|
|
44
44
|
url = kwargs.get("url") or config.redis_url
|
|
45
45
|
if not url:
|
|
46
46
|
raise ValueError("redis_url is required for redis event bus backend")
|
|
47
47
|
return RedisEventBus(url=url, **kwargs)
|
|
48
48
|
|
|
49
49
|
elif backend == "sqlite":
|
|
50
|
-
from
|
|
50
|
+
from agent_runtime_core.events.sqlite import SQLiteEventBus
|
|
51
51
|
path = kwargs.get("path") or config.sqlite_path or "agent_runtime.db"
|
|
52
52
|
return SQLiteEventBus(path=path)
|
|
53
53
|
|
|
@@ -13,7 +13,7 @@ from datetime import datetime, timezone
|
|
|
13
13
|
from typing import AsyncIterator, Optional
|
|
14
14
|
from uuid import UUID
|
|
15
15
|
|
|
16
|
-
from
|
|
16
|
+
from agent_runtime_core.events.base import EventBus, Event
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class InMemoryEventBus(EventBus):
|
|
@@ -15,7 +15,7 @@ from datetime import datetime, timezone
|
|
|
15
15
|
from typing import AsyncIterator, Optional
|
|
16
16
|
from uuid import UUID
|
|
17
17
|
|
|
18
|
-
from
|
|
18
|
+
from agent_runtime_core.events.base import EventBus, Event
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class SQLiteEventBus(EventBus):
|
|
@@ -8,7 +8,7 @@ Provides:
|
|
|
8
8
|
- LiteLLMClient: LiteLLM adapter (optional)
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
from
|
|
11
|
+
from agent_runtime_core.interfaces import LLMClient, LLMResponse, LLMStreamChunk
|
|
12
12
|
|
|
13
13
|
__all__ = [
|
|
14
14
|
"LLMClient",
|
|
@@ -48,7 +48,7 @@ def get_llm_client(provider: str = None, **kwargs) -> LLMClient:
|
|
|
48
48
|
|
|
49
49
|
Example:
|
|
50
50
|
# Using config (recommended)
|
|
51
|
-
from
|
|
51
|
+
from agent_runtime_core.config import configure
|
|
52
52
|
configure(model_provider="openai", openai_api_key="sk-...")
|
|
53
53
|
llm = get_llm_client()
|
|
54
54
|
|
|
@@ -58,21 +58,21 @@ def get_llm_client(provider: str = None, **kwargs) -> LLMClient:
|
|
|
58
58
|
# Or with a different provider
|
|
59
59
|
llm = get_llm_client(provider='anthropic', api_key='sk-ant-...')
|
|
60
60
|
"""
|
|
61
|
-
from
|
|
61
|
+
from agent_runtime_core.config import get_config
|
|
62
62
|
|
|
63
63
|
config = get_config()
|
|
64
64
|
provider = provider or config.model_provider
|
|
65
65
|
|
|
66
66
|
if provider == "openai":
|
|
67
|
-
from
|
|
67
|
+
from agent_runtime_core.llm.openai import OpenAIClient
|
|
68
68
|
return OpenAIClient(**kwargs)
|
|
69
69
|
|
|
70
70
|
elif provider == "anthropic":
|
|
71
|
-
from
|
|
71
|
+
from agent_runtime_core.llm.anthropic import AnthropicClient
|
|
72
72
|
return AnthropicClient(**kwargs)
|
|
73
73
|
|
|
74
74
|
elif provider == "litellm":
|
|
75
|
-
from
|
|
75
|
+
from agent_runtime_core.llm.litellm_client import LiteLLMClient
|
|
76
76
|
return LiteLLMClient(**kwargs)
|
|
77
77
|
|
|
78
78
|
else:
|
|
@@ -5,7 +5,7 @@ Anthropic API client implementation.
|
|
|
5
5
|
import os
|
|
6
6
|
from typing import AsyncIterator, Optional
|
|
7
7
|
|
|
8
|
-
from
|
|
8
|
+
from agent_runtime_core.interfaces import (
|
|
9
9
|
LLMClient,
|
|
10
10
|
LLMResponse,
|
|
11
11
|
LLMStreamChunk,
|
|
@@ -43,7 +43,7 @@ class AnthropicClient(LLMClient):
|
|
|
43
43
|
"Install it with: pip install agent-runtime-core[anthropic]"
|
|
44
44
|
)
|
|
45
45
|
|
|
46
|
-
from
|
|
46
|
+
from agent_runtime_core.config import get_config
|
|
47
47
|
config = get_config()
|
|
48
48
|
|
|
49
49
|
self.default_model = default_model or config.default_model or "claude-sonnet-4-20250514"
|
|
@@ -56,7 +56,7 @@ class AnthropicClient(LLMClient):
|
|
|
56
56
|
"Anthropic API key is not configured.\n\n"
|
|
57
57
|
"Configure it using one of these methods:\n"
|
|
58
58
|
" 1. Use configure():\n"
|
|
59
|
-
" from
|
|
59
|
+
" from agent_runtime_core.config import configure\n"
|
|
60
60
|
" configure(anthropic_api_key='sk-ant-...')\n\n"
|
|
61
61
|
" 2. Set the ANTHROPIC_API_KEY environment variable:\n"
|
|
62
62
|
" export ANTHROPIC_API_KEY='sk-ant-...'\n\n"
|
|
@@ -81,7 +81,7 @@ class AnthropicClient(LLMClient):
|
|
|
81
81
|
if explicit_key:
|
|
82
82
|
return explicit_key
|
|
83
83
|
|
|
84
|
-
from
|
|
84
|
+
from agent_runtime_core.config import get_config
|
|
85
85
|
config = get_config()
|
|
86
86
|
settings_key = config.get_anthropic_api_key()
|
|
87
87
|
if settings_key:
|
|
@@ -7,7 +7,7 @@ This is an OPTIONAL adapter - the core runtime doesn't depend on it.
|
|
|
7
7
|
|
|
8
8
|
from typing import AsyncIterator, Optional
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from agent_runtime_core.interfaces import (
|
|
11
11
|
LLMClient,
|
|
12
12
|
LLMResponse,
|
|
13
13
|
LLMStreamChunk,
|
|
@@ -41,7 +41,7 @@ class LiteLLMClient(LLMClient):
|
|
|
41
41
|
"Install it with: pip install agent-runtime-core[litellm]"
|
|
42
42
|
)
|
|
43
43
|
|
|
44
|
-
from
|
|
44
|
+
from agent_runtime_core.config import get_config
|
|
45
45
|
config = get_config()
|
|
46
46
|
|
|
47
47
|
self.default_model = default_model or config.default_model or "gpt-4o"
|
|
@@ -5,7 +5,7 @@ OpenAI API client implementation.
|
|
|
5
5
|
import os
|
|
6
6
|
from typing import AsyncIterator, Optional
|
|
7
7
|
|
|
8
|
-
from
|
|
8
|
+
from agent_runtime_core.interfaces import (
|
|
9
9
|
LLMClient,
|
|
10
10
|
LLMResponse,
|
|
11
11
|
LLMStreamChunk,
|
|
@@ -45,7 +45,7 @@ class OpenAIClient(LLMClient):
|
|
|
45
45
|
"Install it with: pip install agent-runtime-core[openai]"
|
|
46
46
|
)
|
|
47
47
|
|
|
48
|
-
from
|
|
48
|
+
from agent_runtime_core.config import get_config
|
|
49
49
|
config = get_config()
|
|
50
50
|
|
|
51
51
|
self.default_model = default_model or config.default_model
|
|
@@ -66,7 +66,7 @@ class OpenAIClient(LLMClient):
|
|
|
66
66
|
"OpenAI API key is not configured.\n\n"
|
|
67
67
|
"Configure it using one of these methods:\n"
|
|
68
68
|
" 1. Use configure():\n"
|
|
69
|
-
" from
|
|
69
|
+
" from agent_runtime_core.config import configure\n"
|
|
70
70
|
" configure(openai_api_key='sk-...')\n\n"
|
|
71
71
|
" 2. Set the OPENAI_API_KEY environment variable:\n"
|
|
72
72
|
" export OPENAI_API_KEY='sk-...'\n\n"
|
|
@@ -87,7 +87,7 @@ class OpenAIClient(LLMClient):
|
|
|
87
87
|
if explicit_key:
|
|
88
88
|
return explicit_key
|
|
89
89
|
|
|
90
|
-
from
|
|
90
|
+
from agent_runtime_core.config import get_config
|
|
91
91
|
config = get_config()
|
|
92
92
|
settings_key = config.get_openai_api_key()
|
|
93
93
|
if settings_key:
|
|
@@ -8,7 +8,7 @@ This module provides pluggable storage backends for:
|
|
|
8
8
|
- Preferences (user and agent configuration)
|
|
9
9
|
|
|
10
10
|
Example usage:
|
|
11
|
-
from
|
|
11
|
+
from agent_runtime_core.persistence import (
|
|
12
12
|
MemoryStore,
|
|
13
13
|
ConversationStore,
|
|
14
14
|
FileMemoryStore,
|
|
@@ -30,7 +30,7 @@ Example usage:
|
|
|
30
30
|
await manager.conversations.save(conversation)
|
|
31
31
|
"""
|
|
32
32
|
|
|
33
|
-
from
|
|
33
|
+
from agent_runtime_core.persistence.base import (
|
|
34
34
|
MemoryStore,
|
|
35
35
|
ConversationStore,
|
|
36
36
|
TaskStore,
|
|
@@ -45,14 +45,14 @@ from agent_runtime.persistence.base import (
|
|
|
45
45
|
TaskState,
|
|
46
46
|
)
|
|
47
47
|
|
|
48
|
-
from
|
|
48
|
+
from agent_runtime_core.persistence.file import (
|
|
49
49
|
FileMemoryStore,
|
|
50
50
|
FileConversationStore,
|
|
51
51
|
FileTaskStore,
|
|
52
52
|
FilePreferencesStore,
|
|
53
53
|
)
|
|
54
54
|
|
|
55
|
-
from
|
|
55
|
+
from agent_runtime_core.persistence.manager import (
|
|
56
56
|
PersistenceManager,
|
|
57
57
|
PersistenceConfig,
|
|
58
58
|
get_persistence_manager,
|
|
@@ -14,14 +14,14 @@ from dataclasses import dataclass, field
|
|
|
14
14
|
from pathlib import Path
|
|
15
15
|
from typing import Any, Callable, Optional, Type, Union
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from agent_runtime_core.persistence.base import (
|
|
18
18
|
MemoryStore,
|
|
19
19
|
ConversationStore,
|
|
20
20
|
TaskStore,
|
|
21
21
|
PreferencesStore,
|
|
22
22
|
Scope,
|
|
23
23
|
)
|
|
24
|
-
from
|
|
24
|
+
from agent_runtime_core.persistence.file import (
|
|
25
25
|
FileMemoryStore,
|
|
26
26
|
FileConversationStore,
|
|
27
27
|
FileTaskStore,
|
|
@@ -9,8 +9,8 @@ Provides:
|
|
|
9
9
|
- SQLiteQueue: For persistent local storage
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from agent_runtime_core.queue.base import RunQueue, QueuedRun
|
|
13
|
+
from agent_runtime_core.queue.memory import InMemoryQueue
|
|
14
14
|
|
|
15
15
|
__all__ = [
|
|
16
16
|
"RunQueue",
|
|
@@ -31,7 +31,7 @@ def get_queue(backend: str = None, **kwargs) -> RunQueue:
|
|
|
31
31
|
Returns:
|
|
32
32
|
RunQueue instance
|
|
33
33
|
"""
|
|
34
|
-
from
|
|
34
|
+
from agent_runtime_core.config import get_config
|
|
35
35
|
|
|
36
36
|
config = get_config()
|
|
37
37
|
backend = backend or config.queue_backend
|
|
@@ -40,14 +40,14 @@ def get_queue(backend: str = None, **kwargs) -> RunQueue:
|
|
|
40
40
|
return InMemoryQueue()
|
|
41
41
|
|
|
42
42
|
elif backend == "redis":
|
|
43
|
-
from
|
|
43
|
+
from agent_runtime_core.queue.redis import RedisQueue
|
|
44
44
|
url = kwargs.get("url") or config.redis_url
|
|
45
45
|
if not url:
|
|
46
46
|
raise ValueError("redis_url is required for redis queue backend")
|
|
47
47
|
return RedisQueue(url=url)
|
|
48
48
|
|
|
49
49
|
elif backend == "sqlite":
|
|
50
|
-
from
|
|
50
|
+
from agent_runtime_core.queue.sqlite import SQLiteQueue
|
|
51
51
|
path = kwargs.get("path") or config.sqlite_path or "agent_runtime.db"
|
|
52
52
|
return SQLiteQueue(path=path)
|
|
53
53
|
|
|
@@ -12,7 +12,7 @@ from datetime import datetime, timedelta, timezone
|
|
|
12
12
|
from typing import Optional
|
|
13
13
|
from uuid import UUID
|
|
14
14
|
|
|
15
|
-
from
|
|
15
|
+
from agent_runtime_core.queue.base import RunQueue, QueuedRun, RunStatus
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class RedisQueue(RunQueue):
|
|
@@ -14,7 +14,7 @@ from datetime import datetime, timedelta, timezone
|
|
|
14
14
|
from typing import Optional
|
|
15
15
|
from uuid import UUID
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from agent_runtime_core.queue.base import RunQueue, QueuedRun, RunStatus
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
class SQLiteQueue(RunQueue):
|
|
@@ -17,9 +17,9 @@ from datetime import datetime, timezone
|
|
|
17
17
|
from typing import Optional
|
|
18
18
|
from uuid import UUID
|
|
19
19
|
|
|
20
|
-
from
|
|
21
|
-
from
|
|
22
|
-
from
|
|
20
|
+
from agent_runtime_core.config import get_config
|
|
21
|
+
from agent_runtime_core.events.base import EventBus
|
|
22
|
+
from agent_runtime_core.interfaces import (
|
|
23
23
|
AgentRuntime,
|
|
24
24
|
EventType,
|
|
25
25
|
ErrorInfo,
|
|
@@ -27,9 +27,9 @@ from agent_runtime.interfaces import (
|
|
|
27
27
|
RunResult,
|
|
28
28
|
ToolRegistry,
|
|
29
29
|
)
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
30
|
+
from agent_runtime_core.queue.base import RunQueue, QueuedRun
|
|
31
|
+
from agent_runtime_core.registry import get_runtime
|
|
32
|
+
from agent_runtime_core.state.base import StateStore
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
@dataclass
|
|
@@ -8,8 +8,8 @@ Provides:
|
|
|
8
8
|
- SQLiteStateStore: For persistent local storage
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
11
|
+
from agent_runtime_core.state.base import StateStore
|
|
12
|
+
from agent_runtime_core.state.memory import InMemoryStateStore
|
|
13
13
|
|
|
14
14
|
__all__ = [
|
|
15
15
|
"StateStore",
|
|
@@ -29,7 +29,7 @@ def get_state_store(backend: str = None, **kwargs) -> StateStore:
|
|
|
29
29
|
Returns:
|
|
30
30
|
StateStore instance
|
|
31
31
|
"""
|
|
32
|
-
from
|
|
32
|
+
from agent_runtime_core.config import get_config
|
|
33
33
|
|
|
34
34
|
config = get_config()
|
|
35
35
|
backend = backend or config.state_store_backend
|
|
@@ -38,14 +38,14 @@ def get_state_store(backend: str = None, **kwargs) -> StateStore:
|
|
|
38
38
|
return InMemoryStateStore()
|
|
39
39
|
|
|
40
40
|
elif backend == "redis":
|
|
41
|
-
from
|
|
41
|
+
from agent_runtime_core.state.redis import RedisStateStore
|
|
42
42
|
url = kwargs.get("url") or config.redis_url
|
|
43
43
|
if not url:
|
|
44
44
|
raise ValueError("redis_url is required for redis state store backend")
|
|
45
45
|
return RedisStateStore(url=url)
|
|
46
46
|
|
|
47
47
|
elif backend == "sqlite":
|
|
48
|
-
from
|
|
48
|
+
from agent_runtime_core.state.sqlite import SQLiteStateStore
|
|
49
49
|
path = kwargs.get("path") or config.sqlite_path or "agent_runtime.db"
|
|
50
50
|
return SQLiteStateStore(path=path)
|
|
51
51
|
|
|
@@ -12,7 +12,7 @@ from datetime import datetime
|
|
|
12
12
|
from typing import Optional
|
|
13
13
|
from uuid import UUID
|
|
14
14
|
|
|
15
|
-
from
|
|
15
|
+
from agent_runtime_core.state.base import StateStore, Checkpoint
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class RedisStateStore(StateStore):
|
|
@@ -8,7 +8,7 @@ This module provides tools for testing agent implementations:
|
|
|
8
8
|
- LLMEvaluator: Use LLM to evaluate agent responses
|
|
9
9
|
|
|
10
10
|
Example usage:
|
|
11
|
-
from
|
|
11
|
+
from agent_runtime_core.testing import MockRunContext, MockLLMClient, AgentTestCase
|
|
12
12
|
|
|
13
13
|
class TestMyAgent(AgentTestCase):
|
|
14
14
|
async def test_agent_responds(self):
|
|
@@ -7,7 +7,7 @@ Provides:
|
|
|
7
7
|
- LangfuseTraceSink: Langfuse integration
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from agent_runtime_core.tracing.noop import NoopTraceSink
|
|
11
11
|
|
|
12
12
|
__all__ = [
|
|
13
13
|
"NoopTraceSink",
|
|
@@ -26,8 +26,8 @@ def get_trace_sink(backend: str = None, **kwargs):
|
|
|
26
26
|
Returns:
|
|
27
27
|
TraceSink instance
|
|
28
28
|
"""
|
|
29
|
-
from
|
|
30
|
-
from
|
|
29
|
+
from agent_runtime_core.config import get_config
|
|
30
|
+
from agent_runtime_core.interfaces import TraceSink
|
|
31
31
|
|
|
32
32
|
config = get_config()
|
|
33
33
|
backend = backend or config.tracing_backend or "noop"
|
|
@@ -36,7 +36,7 @@ def get_trace_sink(backend: str = None, **kwargs):
|
|
|
36
36
|
return NoopTraceSink()
|
|
37
37
|
|
|
38
38
|
elif backend == "langfuse":
|
|
39
|
-
from
|
|
39
|
+
from agent_runtime_core.tracing.langfuse import LangfuseTraceSink
|
|
40
40
|
return LangfuseTraceSink(
|
|
41
41
|
public_key=kwargs.get("public_key") or config.langfuse_public_key,
|
|
42
42
|
secret_key=kwargs.get("secret_key") or config.langfuse_secret_key,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-runtime-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Framework-agnostic Python library for executing AI agents with consistent patterns
|
|
5
5
|
Project-URL: Homepage, https://github.com/colstrom/agent_runtime_core
|
|
6
6
|
Project-URL: Repository, https://github.com/colstrom/agent_runtime_core
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
agent_runtime_core/__init__.py,sha256=Z3OrJpoY9vrf-2hX3ulTqVRwA7YN0cF5mi-xTg5o3kg,3626
|
|
2
|
+
agent_runtime_core/config.py,sha256=e3_uB5brAuQcWU36sOhWF9R6RoJrngtCS-xEB3n2fas,4986
|
|
3
|
+
agent_runtime_core/interfaces.py,sha256=-VGZJHUkyF8kdO-BDkURyc-sLbObIHErIFw1Hzn3n14,10434
|
|
4
|
+
agent_runtime_core/registry.py,sha256=hrbEdNNdqEz7-uN-82qofsXFTZBRDxZ2Ht9qwmp1qkw,1476
|
|
5
|
+
agent_runtime_core/runner.py,sha256=M3It72UhfmLt17jVnSvObiSfQ1_RN4JVUIJsjnRd2Ps,12771
|
|
6
|
+
agent_runtime_core/testing.py,sha256=ordECGprBappLBMWxlETvuf2AoIPNomJFeSedXaY30E,11131
|
|
7
|
+
agent_runtime_core/events/__init__.py,sha256=Gg7cMQHWfLTQ4Xik09KSg7cWbQDmW_MuF5_jl-yZkHU,1575
|
|
8
|
+
agent_runtime_core/events/base.py,sha256=NfHYyoczxr40Er5emROi_aY_07m5hDrKsn31pdWY2DY,1950
|
|
9
|
+
agent_runtime_core/events/memory.py,sha256=9z4tY8XB8xDg3ybHsIwilOcRo7HY-vB-8vxiz6O54BE,2491
|
|
10
|
+
agent_runtime_core/events/redis.py,sha256=7PsUO2-iqrdGCJZUOq1IdzwDdNhqT5mwEnH5xy2Fklo,5874
|
|
11
|
+
agent_runtime_core/events/sqlite.py,sha256=ZpGgeuQujYT8pkDsiXDoFXTcBf2KqzoWX4D4J9xkmeE,5097
|
|
12
|
+
agent_runtime_core/llm/__init__.py,sha256=LyFFDtk4HhvUXct0nTeKuYuWzVmVqLDSVRpnPArbGqY,2461
|
|
13
|
+
agent_runtime_core/llm/anthropic.py,sha256=pt9QAjrv2dIPSAY3Pv6N_BzxL1tbhL-kPWsQ-DcHMLI,7516
|
|
14
|
+
agent_runtime_core/llm/litellm_client.py,sha256=c-O-lE08cT3ne0xSOvSDezPL6hCiA69p3HnB451Ipe4,5193
|
|
15
|
+
agent_runtime_core/llm/openai.py,sha256=qBZkkndDgYQ6LG-9bHS2za5KJTGSgL-c_7h0bD3_5lg,6862
|
|
16
|
+
agent_runtime_core/persistence/__init__.py,sha256=u3sYJSu4mTnszkt01qxN3Cn7_bMWvzFtgXDRK26LblM,2029
|
|
17
|
+
agent_runtime_core/persistence/base.py,sha256=7p9HYWYY4pjmDvQgLh11Fie_XmMnkimkCG7tUQt0zUQ,9444
|
|
18
|
+
agent_runtime_core/persistence/file.py,sha256=oDB4_ZQkwHTCT1uoqpw5jOleK69YXCQwlTPsW86Yb-I,17785
|
|
19
|
+
agent_runtime_core/persistence/manager.py,sha256=wXwOX9fa3EoDcXi-rz9QRX8uA1BLw-mvM6LMIS2Jr44,9692
|
|
20
|
+
agent_runtime_core/queue/__init__.py,sha256=m8gapXACPGApLj0RIDpVe5cQYuvKq1QsY2_mXzZcULQ,1527
|
|
21
|
+
agent_runtime_core/queue/base.py,sha256=QW1eWbwBX_tmVD8yJobFJtlxLd_RtUWHTuXGessuxy8,3959
|
|
22
|
+
agent_runtime_core/queue/memory.py,sha256=G65NJ2QU8sB2WQ7myHXc8LzSFowEzBXtCt78WmhvxO8,5416
|
|
23
|
+
agent_runtime_core/queue/redis.py,sha256=x9BEoeh6cVcWdaziFSQZHUvq_bHN1WYHWw17HIEWi5o,15622
|
|
24
|
+
agent_runtime_core/queue/sqlite.py,sha256=3YwkU0QOcmAxYBpbfEB9xk8f-e2C3QcHK_RnPZvdick,14338
|
|
25
|
+
agent_runtime_core/state/__init__.py,sha256=RK16Sj1QPW0SNxtmESlLRMpFBY_hZbMGGNnvcLbdcWw,1564
|
|
26
|
+
agent_runtime_core/state/base.py,sha256=NqE3B0ySa-U2jkelgmkBbkmkaIQxfu4pDryoxkZTMrc,1593
|
|
27
|
+
agent_runtime_core/state/memory.py,sha256=yEGwoR25zWcoxL79_gEu38P_dHvjJOTGij2wxqZ7X9A,1566
|
|
28
|
+
agent_runtime_core/state/redis.py,sha256=VXY6ULEphehHVq4zSw5Y4AMCibm9Ghvzk7PqCrgStDg,3430
|
|
29
|
+
agent_runtime_core/state/sqlite.py,sha256=HKZwDiC_7F1W8Z_Pz8roEs91XhQ9rUHfGpuQ7WWt_NQ,4873
|
|
30
|
+
agent_runtime_core/tracing/__init__.py,sha256=u1QicGc39e30gWyQD4cQWxGGjITnkwoOPUhNrG6aNyI,1266
|
|
31
|
+
agent_runtime_core/tracing/langfuse.py,sha256=Rj2sUlatk5sFro0y68tw5X6fQcSwWxcBOSOjB0F7JTU,3660
|
|
32
|
+
agent_runtime_core/tracing/noop.py,sha256=SpsbpsUcNG6C3xZG3uyiNPUHY8etloISx3w56Q8D3KE,751
|
|
33
|
+
agent_runtime_core-0.3.0.dist-info/METADATA,sha256=5F-OYNqSvqmwMQGbf0jfLayLw8Vs34AMSEjGEHxkr88,12488
|
|
34
|
+
agent_runtime_core-0.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
35
|
+
agent_runtime_core-0.3.0.dist-info/licenses/LICENSE,sha256=PcOO8aiOZ4H2MWYeKIis3o6xTCT1hNkDyCxHZhh1NeM,1070
|
|
36
|
+
agent_runtime_core-0.3.0.dist-info/RECORD,,
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
agent_runtime/__init__.py,sha256=d-9hrmPS2JmaaDdZRfO5_B1HiJxLU_hMrXY-COXOxxs,3591
|
|
2
|
-
agent_runtime/config.py,sha256=ZRjpILjsjeh_kl7873DtV2g_zaTrfdkb3NgdQ6ndb5Y,4981
|
|
3
|
-
agent_runtime/interfaces.py,sha256=-VGZJHUkyF8kdO-BDkURyc-sLbObIHErIFw1Hzn3n14,10434
|
|
4
|
-
agent_runtime/registry.py,sha256=sa0speDFxFCZlXoCge8cPNqWYUeWHyazs6tBer5Jg1w,1471
|
|
5
|
-
agent_runtime/runner.py,sha256=Sb2FfSJvATaL7ideQZy2JhVZp0sSYGVIov93E-gxODU,12741
|
|
6
|
-
agent_runtime/testing.py,sha256=aqN67RdbTdYf_rJfp5pEpn2s_tkeU-3oSpzTdADxH5g,11126
|
|
7
|
-
agent_runtime/events/__init__.py,sha256=JNH-D40O6yz2evIf1_r2o3w7OQjLt4Yebn-sBNLzzh8,1550
|
|
8
|
-
agent_runtime/events/base.py,sha256=NfHYyoczxr40Er5emROi_aY_07m5hDrKsn31pdWY2DY,1950
|
|
9
|
-
agent_runtime/events/memory.py,sha256=7qseR6RtdaP833FxEHwyPw5TC7l4brJHr8uEx0mLc1Y,2486
|
|
10
|
-
agent_runtime/events/redis.py,sha256=Z6WEvp_6jcIPi4ZgkGk5J61qxgGqllwk7jqJM4jcTXk,5869
|
|
11
|
-
agent_runtime/events/sqlite.py,sha256=EiX1BMOqeS7BelmD8A6cvhz3fE4w7vJ2Wg4pFu1V2u0,5092
|
|
12
|
-
agent_runtime/llm/__init__.py,sha256=JEk1Q2H6U9_Uid48YVm1wYR1W7po0vtjfjf2TTmQe_A,2431
|
|
13
|
-
agent_runtime/llm/anthropic.py,sha256=ho3psMYAARpXyzqejgA1dx6Nk8io0TwCKb0mp_wsGyM,7496
|
|
14
|
-
agent_runtime/llm/litellm_client.py,sha256=Pic3N4CHVoqzdHUbKlizBcuPP0xCKoeY6U2ZjsZIgWg,5183
|
|
15
|
-
agent_runtime/llm/openai.py,sha256=cRk4WBpiVknqsy_cgPAGdC8Zj250nasqo1dNQN0uxlw,6842
|
|
16
|
-
agent_runtime/persistence/__init__.py,sha256=YynbxYtCtaSurQS9Ikenj9n_4xSEh0T9K0kOpg3IW04,2009
|
|
17
|
-
agent_runtime/persistence/base.py,sha256=7p9HYWYY4pjmDvQgLh11Fie_XmMnkimkCG7tUQt0zUQ,9444
|
|
18
|
-
agent_runtime/persistence/file.py,sha256=uMNSNfXvHPMJzl3QTrU-CPt1cLCH8J9rkaThbq7kLf0,17780
|
|
19
|
-
agent_runtime/persistence/manager.py,sha256=PP-imx6ygIlUSID8rMwR9CTeD02HjZ3mdqczgZvF1es,9682
|
|
20
|
-
agent_runtime/queue/__init__.py,sha256=78k29iEl8brp71LrOnmTHhQzPMHkzGre-Xqdl1NlNr0,1502
|
|
21
|
-
agent_runtime/queue/base.py,sha256=QW1eWbwBX_tmVD8yJobFJtlxLd_RtUWHTuXGessuxy8,3959
|
|
22
|
-
agent_runtime/queue/memory.py,sha256=n7kiE0Fw_BFUdzMyoO1QPO0ATzz8zBYaMQex7GdceZw,5411
|
|
23
|
-
agent_runtime/queue/redis.py,sha256=buTCgqNz77q7ae_eNIRRUEyhx_jCgJ0Q3Bqe1Hz5G-s,15617
|
|
24
|
-
agent_runtime/queue/sqlite.py,sha256=DyV2h3C5WuI9d_FjOmleeYvL7BbttMHN1E9XcK-X15w,14333
|
|
25
|
-
agent_runtime/state/__init__.py,sha256=W9juyZD8N0zj5ERkWroW7O0SLWnoYFcLjGuR4tfFKs4,1539
|
|
26
|
-
agent_runtime/state/base.py,sha256=NqE3B0ySa-U2jkelgmkBbkmkaIQxfu4pDryoxkZTMrc,1593
|
|
27
|
-
agent_runtime/state/memory.py,sha256=xOnlqM3ArXDKAdPx3PxdS9IGgJDSM-EKp_S1Hsit180,1561
|
|
28
|
-
agent_runtime/state/redis.py,sha256=-lPi_2xKm7Bc4DVMJfSEAF7wJHctLV3ZMM9AYBeQKZU,3425
|
|
29
|
-
agent_runtime/state/sqlite.py,sha256=NwuiTBXELb2tyOoH91MZqRJaCk9h8PskyY2VUc5EMr0,4868
|
|
30
|
-
agent_runtime/tracing/__init__.py,sha256=m4WzfgJpnV5XCCoMpBYZdJU_JTkAdhEhl7M7tpf62RY,1246
|
|
31
|
-
agent_runtime/tracing/langfuse.py,sha256=Z-2eEUHlxCC82JtXOAaoi-1zI6tQwEOWdpJgfCXcZH0,3655
|
|
32
|
-
agent_runtime/tracing/noop.py,sha256=MOm5eTrnf3d4WhiWrwVU5Kd3GmJ1903V0U7U3Qwho7U,746
|
|
33
|
-
agent_runtime_core-0.2.1.dist-info/METADATA,sha256=_YZWAHr9zovJKJ0d0Xhk04lPfU9PeaN9gmUFFvaQM58,12488
|
|
34
|
-
agent_runtime_core-0.2.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
35
|
-
agent_runtime_core-0.2.1.dist-info/licenses/LICENSE,sha256=PcOO8aiOZ4H2MWYeKIis3o6xTCT1hNkDyCxHZhh1NeM,1070
|
|
36
|
-
agent_runtime_core-0.2.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|