Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-agents/src/lexigram/ai/agents/__init__.py: 56%
18 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""lexigram-ai-agents — Agent system for Lexigram Framework.
3Canonical import paths
4-----------------------
5AgentBase class: from lexigram.ai.agents import AgentBase
6Tool decorator: from lexigram.ai.agents import tool
7Tool registry: from lexigram.ai.agents import ToolRegistryImpl
8Agent executor: from lexigram.ai.agents import AgentExecutorImpl
9ReAct strategy: from lexigram.ai.agents import ReActStrategy
10Crew: from lexigram.ai.agents import Crew
11CrewTask: from lexigram.ai.agents import CrewTask
12CrewBuilder: from lexigram.ai.agents import CrewBuilder
13Process: from lexigram.ai.agents import Process
15Quick Start
16-----------
18 from lexigram.ai.agents import AgentBase, tool
20 @tool
21 async def lookup_order(order_id: str) -> dict:
22 \"\"\"Look up an order by its ID.\"\"\"
23 return {"order_id": order_id, "status": "shipped"}
25 class OrderAgent(AgentBase):
26 name = "order_agent"
27 system_prompt = "You are a helpful order support agent."
29 @property
30 def tools(self):
31 return [lookup_order]
32"""
34from __future__ import annotations
36import importlib.metadata
37import pkgutil
38from typing import TYPE_CHECKING, Any
40__path__ = pkgutil.extend_path(__path__, __name__)
42from lexigram.ai.agents.constants import __version__ as __version__
44if TYPE_CHECKING:
45 from lexigram.ai.agents.agent import AgentBase, AgentBuilder
46 from lexigram.ai.agents.config import AgentConfig
47 from lexigram.ai.agents.crew import (
48 Crew,
49 CrewBuilder,
50 CrewExecutionResult,
51 CrewRunner,
52 CrewTask,
53 Process,
54 TaskResult,
55 )
56 from lexigram.ai.agents.decorators import strategy
57 from lexigram.ai.agents.delegation import AgentAsToolAdapter
58 from lexigram.ai.agents.di.provider import AgentsProvider
59 from lexigram.ai.agents.events import (
60 AgentRunCompletedEvent,
61 ToolExecutionCompletedEvent,
62 )
63 from lexigram.ai.agents.exceptions import (
64 AgentConfigurationError,
65 AgentError,
66 AgentExecutionError,
67 BudgetExceededError,
68 MaxIterationsExceededError,
69 StrategyError,
70 ToolAccessDeniedError,
71 ToolError,
72 ToolExecutionError,
73 ToolNotFoundError,
74 )
75 from lexigram.ai.agents.executor import AgentExecutorImpl
76 from lexigram.ai.agents.hooks import (
77 AgentCompletedHook,
78 AgentStartedHook,
79 AgentToolCalledHook,
80 )
81 from lexigram.ai.agents.module import AgentsModule
82 from lexigram.ai.agents.protocols import ObserverProtocol, PlannerProtocol
83 from lexigram.ai.agents.strategies import (
84 AbstractStrategy,
85 PlanAndExecuteStrategy,
86 PlanStepStatus,
87 ReActStrategy,
88 ReflexionStrategy,
89 SupervisorStrategy,
90 )
91 from lexigram.ai.agents.strategies.strategy_registry import AgentStrategyRegistry
92 from lexigram.ai.agents.tools import AbstractTool, ToolRegistryImpl, tool
93 from lexigram.ai.agents.types import (
94 AgentResponse,
95 ReasoningStep,
96 ToolExecutionRecord,
97 )
99_LAZY_IMPORTS: dict[str, str] = {
100 # Events
101 "AgentRunCompletedEvent": "lexigram.ai.agents.events",
102 # Hooks
103 "AgentCompletedHook": "lexigram.ai.agents.hooks",
104 "AgentStartedHook": "lexigram.ai.agents.hooks",
105 "AgentToolCalledHook": "lexigram.ai.agents.hooks",
106 "AbstractStrategy": "lexigram.ai.agents.strategies",
107 "AbstractTool": "lexigram.ai.agents.tools",
108 "AgentAsToolAdapter": "lexigram.ai.agents.delegation",
109 "AgentBase": "lexigram.ai.agents.agent",
110 "AgentBuilder": "lexigram.ai.agents.agent",
111 "AgentConfig": "lexigram.ai.agents.config",
112 "AgentStrategyRegistry": "lexigram.ai.agents.strategies.strategy_registry",
113 "Crew": "lexigram.ai.agents.crew",
114 "CrewBuilder": "lexigram.ai.agents.crew",
115 "CrewExecutionResult": "lexigram.ai.agents.crew",
116 "CrewRunner": "lexigram.ai.agents.crew",
117 "CrewTask": "lexigram.ai.agents.crew",
118 "Process": "lexigram.ai.agents.crew",
119 "TaskResult": "lexigram.ai.agents.crew",
120 "AgentConfigurationError": "lexigram.ai.agents.exceptions",
121 "AgentError": "lexigram.ai.agents.exceptions",
122 "AgentExecutionError": "lexigram.ai.agents.exceptions",
123 "AgentExecutorImpl": "lexigram.ai.agents.executor",
124 "AgentResponse": "lexigram.ai.agents.types",
125 "AgentsModule": "lexigram.ai.agents.module",
126 "AgentsProvider": "lexigram.ai.agents.di.provider",
127 "BudgetExceededError": "lexigram.ai.agents.exceptions",
128 "MaxIterationsExceededError": "lexigram.ai.agents.exceptions",
129 "PlanAndExecuteStrategy": "lexigram.ai.agents.strategies",
130 "PlanStepStatus": "lexigram.ai.agents.strategies",
131 "ReActStrategy": "lexigram.ai.agents.strategies",
132 "ReflexionStrategy": "lexigram.ai.agents.strategies",
133 "SupervisorStrategy": "lexigram.ai.agents.strategies",
134 "ReasoningStep": "lexigram.ai.agents.types",
135 "strategy": "lexigram.ai.agents.decorators",
136 "StrategyError": "lexigram.ai.agents.exceptions",
137 "ToolAccessDeniedError": "lexigram.ai.agents.exceptions",
138 "ToolExecutionCompletedEvent": "lexigram.ai.agents.events",
139 "ToolExecutionRecord": "lexigram.ai.agents.types",
140 "ToolError": "lexigram.ai.agents.exceptions",
141 "ToolExecutionError": "lexigram.ai.agents.exceptions",
142 "ToolNotFoundError": "lexigram.ai.agents.exceptions",
143 "ToolRegistryImpl": "lexigram.ai.agents.tools",
144 "tool": "lexigram.ai.agents.tools",
145 # Internal protocols
146 "PlannerProtocol": "lexigram.ai.agents.protocols",
147 "ObserverProtocol": "lexigram.ai.agents.protocols",
148}
151def __getattr__(name: str) -> Any:
152 if name in _LAZY_IMPORTS:
153 import importlib as _importlib
155 module = _importlib.import_module(_LAZY_IMPORTS[name])
156 value = getattr(module, name)
157 globals()[name] = value
158 return value
159 raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
162def __dir__() -> list[str]:
163 return sorted(set(__all__) | set(_LAZY_IMPORTS.keys()))
166__all__ = [
167 "AbstractStrategy",
168 "AbstractTool",
169 "AgentAsToolAdapter",
170 "AgentBase",
171 "AgentBuilder",
172 "AgentCompletedHook",
173 "AgentConfig",
174 "AgentConfigurationError",
175 "AgentError",
176 "AgentExecutionError",
177 "AgentExecutorImpl",
178 "AgentResponse",
179 "AgentRunCompletedEvent",
180 "AgentStartedHook",
181 "AgentStrategyRegistry",
182 "AgentToolCalledHook",
183 "AgentsModule",
184 "AgentsProvider",
185 "BudgetExceededError",
186 "Crew",
187 "CrewBuilder",
188 "CrewExecutionResult",
189 "CrewRunner",
190 "CrewTask",
191 "MaxIterationsExceededError",
192 "ObserverProtocol",
193 "PlanAndExecuteStrategy",
194 "PlanStepStatus",
195 "PlannerProtocol",
196 "Process",
197 "ReActStrategy",
198 "ReasoningStep",
199 "ReflexionStrategy",
200 "StrategyError",
201 "SupervisorStrategy",
202 "TaskResult",
203 "ToolAccessDeniedError",
204 "ToolError",
205 "ToolExecutionCompletedEvent",
206 "ToolExecutionError",
207 "ToolExecutionRecord",
208 "ToolNotFoundError",
209 "ToolRegistryImpl",
210 "strategy",
211 "tool",
212]