aiecs 1.5.1__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.
Files changed (302) hide show
  1. aiecs/__init__.py +72 -0
  2. aiecs/__main__.py +41 -0
  3. aiecs/aiecs_client.py +469 -0
  4. aiecs/application/__init__.py +10 -0
  5. aiecs/application/executors/__init__.py +10 -0
  6. aiecs/application/executors/operation_executor.py +363 -0
  7. aiecs/application/knowledge_graph/__init__.py +7 -0
  8. aiecs/application/knowledge_graph/builder/__init__.py +37 -0
  9. aiecs/application/knowledge_graph/builder/document_builder.py +375 -0
  10. aiecs/application/knowledge_graph/builder/graph_builder.py +356 -0
  11. aiecs/application/knowledge_graph/builder/schema_mapping.py +531 -0
  12. aiecs/application/knowledge_graph/builder/structured_pipeline.py +443 -0
  13. aiecs/application/knowledge_graph/builder/text_chunker.py +319 -0
  14. aiecs/application/knowledge_graph/extractors/__init__.py +27 -0
  15. aiecs/application/knowledge_graph/extractors/base.py +100 -0
  16. aiecs/application/knowledge_graph/extractors/llm_entity_extractor.py +327 -0
  17. aiecs/application/knowledge_graph/extractors/llm_relation_extractor.py +349 -0
  18. aiecs/application/knowledge_graph/extractors/ner_entity_extractor.py +244 -0
  19. aiecs/application/knowledge_graph/fusion/__init__.py +23 -0
  20. aiecs/application/knowledge_graph/fusion/entity_deduplicator.py +387 -0
  21. aiecs/application/knowledge_graph/fusion/entity_linker.py +343 -0
  22. aiecs/application/knowledge_graph/fusion/knowledge_fusion.py +580 -0
  23. aiecs/application/knowledge_graph/fusion/relation_deduplicator.py +189 -0
  24. aiecs/application/knowledge_graph/pattern_matching/__init__.py +21 -0
  25. aiecs/application/knowledge_graph/pattern_matching/pattern_matcher.py +344 -0
  26. aiecs/application/knowledge_graph/pattern_matching/query_executor.py +378 -0
  27. aiecs/application/knowledge_graph/profiling/__init__.py +12 -0
  28. aiecs/application/knowledge_graph/profiling/query_plan_visualizer.py +199 -0
  29. aiecs/application/knowledge_graph/profiling/query_profiler.py +223 -0
  30. aiecs/application/knowledge_graph/reasoning/__init__.py +27 -0
  31. aiecs/application/knowledge_graph/reasoning/evidence_synthesis.py +347 -0
  32. aiecs/application/knowledge_graph/reasoning/inference_engine.py +504 -0
  33. aiecs/application/knowledge_graph/reasoning/logic_form_parser.py +167 -0
  34. aiecs/application/knowledge_graph/reasoning/logic_parser/__init__.py +79 -0
  35. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_builder.py +513 -0
  36. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_nodes.py +630 -0
  37. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_validator.py +654 -0
  38. aiecs/application/knowledge_graph/reasoning/logic_parser/error_handler.py +477 -0
  39. aiecs/application/knowledge_graph/reasoning/logic_parser/parser.py +390 -0
  40. aiecs/application/knowledge_graph/reasoning/logic_parser/query_context.py +217 -0
  41. aiecs/application/knowledge_graph/reasoning/logic_query_integration.py +169 -0
  42. aiecs/application/knowledge_graph/reasoning/query_planner.py +872 -0
  43. aiecs/application/knowledge_graph/reasoning/reasoning_engine.py +554 -0
  44. aiecs/application/knowledge_graph/retrieval/__init__.py +19 -0
  45. aiecs/application/knowledge_graph/retrieval/retrieval_strategies.py +596 -0
  46. aiecs/application/knowledge_graph/search/__init__.py +59 -0
  47. aiecs/application/knowledge_graph/search/hybrid_search.py +423 -0
  48. aiecs/application/knowledge_graph/search/reranker.py +295 -0
  49. aiecs/application/knowledge_graph/search/reranker_strategies.py +553 -0
  50. aiecs/application/knowledge_graph/search/text_similarity.py +398 -0
  51. aiecs/application/knowledge_graph/traversal/__init__.py +15 -0
  52. aiecs/application/knowledge_graph/traversal/enhanced_traversal.py +329 -0
  53. aiecs/application/knowledge_graph/traversal/path_scorer.py +269 -0
  54. aiecs/application/knowledge_graph/validators/__init__.py +13 -0
  55. aiecs/application/knowledge_graph/validators/relation_validator.py +189 -0
  56. aiecs/application/knowledge_graph/visualization/__init__.py +11 -0
  57. aiecs/application/knowledge_graph/visualization/graph_visualizer.py +321 -0
  58. aiecs/common/__init__.py +9 -0
  59. aiecs/common/knowledge_graph/__init__.py +17 -0
  60. aiecs/common/knowledge_graph/runnable.py +484 -0
  61. aiecs/config/__init__.py +16 -0
  62. aiecs/config/config.py +498 -0
  63. aiecs/config/graph_config.py +137 -0
  64. aiecs/config/registry.py +23 -0
  65. aiecs/core/__init__.py +46 -0
  66. aiecs/core/interface/__init__.py +34 -0
  67. aiecs/core/interface/execution_interface.py +152 -0
  68. aiecs/core/interface/storage_interface.py +171 -0
  69. aiecs/domain/__init__.py +289 -0
  70. aiecs/domain/agent/__init__.py +189 -0
  71. aiecs/domain/agent/base_agent.py +697 -0
  72. aiecs/domain/agent/exceptions.py +103 -0
  73. aiecs/domain/agent/graph_aware_mixin.py +559 -0
  74. aiecs/domain/agent/hybrid_agent.py +490 -0
  75. aiecs/domain/agent/integration/__init__.py +26 -0
  76. aiecs/domain/agent/integration/context_compressor.py +222 -0
  77. aiecs/domain/agent/integration/context_engine_adapter.py +252 -0
  78. aiecs/domain/agent/integration/retry_policy.py +219 -0
  79. aiecs/domain/agent/integration/role_config.py +213 -0
  80. aiecs/domain/agent/knowledge_aware_agent.py +646 -0
  81. aiecs/domain/agent/lifecycle.py +296 -0
  82. aiecs/domain/agent/llm_agent.py +300 -0
  83. aiecs/domain/agent/memory/__init__.py +12 -0
  84. aiecs/domain/agent/memory/conversation.py +197 -0
  85. aiecs/domain/agent/migration/__init__.py +14 -0
  86. aiecs/domain/agent/migration/conversion.py +160 -0
  87. aiecs/domain/agent/migration/legacy_wrapper.py +90 -0
  88. aiecs/domain/agent/models.py +317 -0
  89. aiecs/domain/agent/observability.py +407 -0
  90. aiecs/domain/agent/persistence.py +289 -0
  91. aiecs/domain/agent/prompts/__init__.py +29 -0
  92. aiecs/domain/agent/prompts/builder.py +161 -0
  93. aiecs/domain/agent/prompts/formatters.py +189 -0
  94. aiecs/domain/agent/prompts/template.py +255 -0
  95. aiecs/domain/agent/registry.py +260 -0
  96. aiecs/domain/agent/tool_agent.py +257 -0
  97. aiecs/domain/agent/tools/__init__.py +12 -0
  98. aiecs/domain/agent/tools/schema_generator.py +221 -0
  99. aiecs/domain/community/__init__.py +155 -0
  100. aiecs/domain/community/agent_adapter.py +477 -0
  101. aiecs/domain/community/analytics.py +481 -0
  102. aiecs/domain/community/collaborative_workflow.py +642 -0
  103. aiecs/domain/community/communication_hub.py +645 -0
  104. aiecs/domain/community/community_builder.py +320 -0
  105. aiecs/domain/community/community_integration.py +800 -0
  106. aiecs/domain/community/community_manager.py +813 -0
  107. aiecs/domain/community/decision_engine.py +879 -0
  108. aiecs/domain/community/exceptions.py +225 -0
  109. aiecs/domain/community/models/__init__.py +33 -0
  110. aiecs/domain/community/models/community_models.py +268 -0
  111. aiecs/domain/community/resource_manager.py +457 -0
  112. aiecs/domain/community/shared_context_manager.py +603 -0
  113. aiecs/domain/context/__init__.py +58 -0
  114. aiecs/domain/context/context_engine.py +989 -0
  115. aiecs/domain/context/conversation_models.py +354 -0
  116. aiecs/domain/context/graph_memory.py +467 -0
  117. aiecs/domain/execution/__init__.py +12 -0
  118. aiecs/domain/execution/model.py +57 -0
  119. aiecs/domain/knowledge_graph/__init__.py +19 -0
  120. aiecs/domain/knowledge_graph/models/__init__.py +52 -0
  121. aiecs/domain/knowledge_graph/models/entity.py +130 -0
  122. aiecs/domain/knowledge_graph/models/evidence.py +194 -0
  123. aiecs/domain/knowledge_graph/models/inference_rule.py +186 -0
  124. aiecs/domain/knowledge_graph/models/path.py +179 -0
  125. aiecs/domain/knowledge_graph/models/path_pattern.py +173 -0
  126. aiecs/domain/knowledge_graph/models/query.py +272 -0
  127. aiecs/domain/knowledge_graph/models/query_plan.py +187 -0
  128. aiecs/domain/knowledge_graph/models/relation.py +136 -0
  129. aiecs/domain/knowledge_graph/schema/__init__.py +23 -0
  130. aiecs/domain/knowledge_graph/schema/entity_type.py +135 -0
  131. aiecs/domain/knowledge_graph/schema/graph_schema.py +271 -0
  132. aiecs/domain/knowledge_graph/schema/property_schema.py +155 -0
  133. aiecs/domain/knowledge_graph/schema/relation_type.py +171 -0
  134. aiecs/domain/knowledge_graph/schema/schema_manager.py +496 -0
  135. aiecs/domain/knowledge_graph/schema/type_enums.py +205 -0
  136. aiecs/domain/task/__init__.py +13 -0
  137. aiecs/domain/task/dsl_processor.py +613 -0
  138. aiecs/domain/task/model.py +62 -0
  139. aiecs/domain/task/task_context.py +268 -0
  140. aiecs/infrastructure/__init__.py +24 -0
  141. aiecs/infrastructure/graph_storage/__init__.py +11 -0
  142. aiecs/infrastructure/graph_storage/base.py +601 -0
  143. aiecs/infrastructure/graph_storage/batch_operations.py +449 -0
  144. aiecs/infrastructure/graph_storage/cache.py +429 -0
  145. aiecs/infrastructure/graph_storage/distributed.py +226 -0
  146. aiecs/infrastructure/graph_storage/error_handling.py +390 -0
  147. aiecs/infrastructure/graph_storage/graceful_degradation.py +306 -0
  148. aiecs/infrastructure/graph_storage/health_checks.py +378 -0
  149. aiecs/infrastructure/graph_storage/in_memory.py +514 -0
  150. aiecs/infrastructure/graph_storage/index_optimization.py +483 -0
  151. aiecs/infrastructure/graph_storage/lazy_loading.py +410 -0
  152. aiecs/infrastructure/graph_storage/metrics.py +357 -0
  153. aiecs/infrastructure/graph_storage/migration.py +413 -0
  154. aiecs/infrastructure/graph_storage/pagination.py +471 -0
  155. aiecs/infrastructure/graph_storage/performance_monitoring.py +466 -0
  156. aiecs/infrastructure/graph_storage/postgres.py +871 -0
  157. aiecs/infrastructure/graph_storage/query_optimizer.py +635 -0
  158. aiecs/infrastructure/graph_storage/schema_cache.py +290 -0
  159. aiecs/infrastructure/graph_storage/sqlite.py +623 -0
  160. aiecs/infrastructure/graph_storage/streaming.py +495 -0
  161. aiecs/infrastructure/messaging/__init__.py +13 -0
  162. aiecs/infrastructure/messaging/celery_task_manager.py +383 -0
  163. aiecs/infrastructure/messaging/websocket_manager.py +298 -0
  164. aiecs/infrastructure/monitoring/__init__.py +34 -0
  165. aiecs/infrastructure/monitoring/executor_metrics.py +174 -0
  166. aiecs/infrastructure/monitoring/global_metrics_manager.py +213 -0
  167. aiecs/infrastructure/monitoring/structured_logger.py +48 -0
  168. aiecs/infrastructure/monitoring/tracing_manager.py +410 -0
  169. aiecs/infrastructure/persistence/__init__.py +24 -0
  170. aiecs/infrastructure/persistence/context_engine_client.py +187 -0
  171. aiecs/infrastructure/persistence/database_manager.py +333 -0
  172. aiecs/infrastructure/persistence/file_storage.py +754 -0
  173. aiecs/infrastructure/persistence/redis_client.py +220 -0
  174. aiecs/llm/__init__.py +86 -0
  175. aiecs/llm/callbacks/__init__.py +11 -0
  176. aiecs/llm/callbacks/custom_callbacks.py +264 -0
  177. aiecs/llm/client_factory.py +420 -0
  178. aiecs/llm/clients/__init__.py +33 -0
  179. aiecs/llm/clients/base_client.py +193 -0
  180. aiecs/llm/clients/googleai_client.py +181 -0
  181. aiecs/llm/clients/openai_client.py +131 -0
  182. aiecs/llm/clients/vertex_client.py +437 -0
  183. aiecs/llm/clients/xai_client.py +184 -0
  184. aiecs/llm/config/__init__.py +51 -0
  185. aiecs/llm/config/config_loader.py +275 -0
  186. aiecs/llm/config/config_validator.py +236 -0
  187. aiecs/llm/config/model_config.py +151 -0
  188. aiecs/llm/utils/__init__.py +10 -0
  189. aiecs/llm/utils/validate_config.py +91 -0
  190. aiecs/main.py +363 -0
  191. aiecs/scripts/__init__.py +3 -0
  192. aiecs/scripts/aid/VERSION_MANAGEMENT.md +97 -0
  193. aiecs/scripts/aid/__init__.py +19 -0
  194. aiecs/scripts/aid/version_manager.py +215 -0
  195. aiecs/scripts/dependance_check/DEPENDENCY_SYSTEM_SUMMARY.md +242 -0
  196. aiecs/scripts/dependance_check/README_DEPENDENCY_CHECKER.md +310 -0
  197. aiecs/scripts/dependance_check/__init__.py +17 -0
  198. aiecs/scripts/dependance_check/dependency_checker.py +938 -0
  199. aiecs/scripts/dependance_check/dependency_fixer.py +391 -0
  200. aiecs/scripts/dependance_check/download_nlp_data.py +396 -0
  201. aiecs/scripts/dependance_check/quick_dependency_check.py +270 -0
  202. aiecs/scripts/dependance_check/setup_nlp_data.sh +217 -0
  203. aiecs/scripts/dependance_patch/__init__.py +7 -0
  204. aiecs/scripts/dependance_patch/fix_weasel/README_WEASEL_PATCH.md +126 -0
  205. aiecs/scripts/dependance_patch/fix_weasel/__init__.py +11 -0
  206. aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.py +128 -0
  207. aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.sh +82 -0
  208. aiecs/scripts/dependance_patch/fix_weasel/patch_weasel_library.sh +188 -0
  209. aiecs/scripts/dependance_patch/fix_weasel/run_weasel_patch.sh +41 -0
  210. aiecs/scripts/tools_develop/README.md +449 -0
  211. aiecs/scripts/tools_develop/TOOL_AUTO_DISCOVERY.md +234 -0
  212. aiecs/scripts/tools_develop/__init__.py +21 -0
  213. aiecs/scripts/tools_develop/check_type_annotations.py +259 -0
  214. aiecs/scripts/tools_develop/validate_tool_schemas.py +422 -0
  215. aiecs/scripts/tools_develop/verify_tools.py +356 -0
  216. aiecs/tasks/__init__.py +1 -0
  217. aiecs/tasks/worker.py +172 -0
  218. aiecs/tools/__init__.py +299 -0
  219. aiecs/tools/apisource/__init__.py +99 -0
  220. aiecs/tools/apisource/intelligence/__init__.py +19 -0
  221. aiecs/tools/apisource/intelligence/data_fusion.py +381 -0
  222. aiecs/tools/apisource/intelligence/query_analyzer.py +413 -0
  223. aiecs/tools/apisource/intelligence/search_enhancer.py +388 -0
  224. aiecs/tools/apisource/monitoring/__init__.py +9 -0
  225. aiecs/tools/apisource/monitoring/metrics.py +303 -0
  226. aiecs/tools/apisource/providers/__init__.py +115 -0
  227. aiecs/tools/apisource/providers/base.py +664 -0
  228. aiecs/tools/apisource/providers/census.py +401 -0
  229. aiecs/tools/apisource/providers/fred.py +564 -0
  230. aiecs/tools/apisource/providers/newsapi.py +412 -0
  231. aiecs/tools/apisource/providers/worldbank.py +357 -0
  232. aiecs/tools/apisource/reliability/__init__.py +12 -0
  233. aiecs/tools/apisource/reliability/error_handler.py +375 -0
  234. aiecs/tools/apisource/reliability/fallback_strategy.py +391 -0
  235. aiecs/tools/apisource/tool.py +850 -0
  236. aiecs/tools/apisource/utils/__init__.py +9 -0
  237. aiecs/tools/apisource/utils/validators.py +338 -0
  238. aiecs/tools/base_tool.py +201 -0
  239. aiecs/tools/docs/__init__.py +121 -0
  240. aiecs/tools/docs/ai_document_orchestrator.py +599 -0
  241. aiecs/tools/docs/ai_document_writer_orchestrator.py +2403 -0
  242. aiecs/tools/docs/content_insertion_tool.py +1333 -0
  243. aiecs/tools/docs/document_creator_tool.py +1317 -0
  244. aiecs/tools/docs/document_layout_tool.py +1166 -0
  245. aiecs/tools/docs/document_parser_tool.py +994 -0
  246. aiecs/tools/docs/document_writer_tool.py +1818 -0
  247. aiecs/tools/knowledge_graph/__init__.py +17 -0
  248. aiecs/tools/knowledge_graph/graph_reasoning_tool.py +734 -0
  249. aiecs/tools/knowledge_graph/graph_search_tool.py +923 -0
  250. aiecs/tools/knowledge_graph/kg_builder_tool.py +476 -0
  251. aiecs/tools/langchain_adapter.py +542 -0
  252. aiecs/tools/schema_generator.py +275 -0
  253. aiecs/tools/search_tool/__init__.py +100 -0
  254. aiecs/tools/search_tool/analyzers.py +589 -0
  255. aiecs/tools/search_tool/cache.py +260 -0
  256. aiecs/tools/search_tool/constants.py +128 -0
  257. aiecs/tools/search_tool/context.py +216 -0
  258. aiecs/tools/search_tool/core.py +749 -0
  259. aiecs/tools/search_tool/deduplicator.py +123 -0
  260. aiecs/tools/search_tool/error_handler.py +271 -0
  261. aiecs/tools/search_tool/metrics.py +371 -0
  262. aiecs/tools/search_tool/rate_limiter.py +178 -0
  263. aiecs/tools/search_tool/schemas.py +277 -0
  264. aiecs/tools/statistics/__init__.py +80 -0
  265. aiecs/tools/statistics/ai_data_analysis_orchestrator.py +643 -0
  266. aiecs/tools/statistics/ai_insight_generator_tool.py +505 -0
  267. aiecs/tools/statistics/ai_report_orchestrator_tool.py +694 -0
  268. aiecs/tools/statistics/data_loader_tool.py +564 -0
  269. aiecs/tools/statistics/data_profiler_tool.py +658 -0
  270. aiecs/tools/statistics/data_transformer_tool.py +573 -0
  271. aiecs/tools/statistics/data_visualizer_tool.py +495 -0
  272. aiecs/tools/statistics/model_trainer_tool.py +487 -0
  273. aiecs/tools/statistics/statistical_analyzer_tool.py +459 -0
  274. aiecs/tools/task_tools/__init__.py +86 -0
  275. aiecs/tools/task_tools/chart_tool.py +732 -0
  276. aiecs/tools/task_tools/classfire_tool.py +922 -0
  277. aiecs/tools/task_tools/image_tool.py +447 -0
  278. aiecs/tools/task_tools/office_tool.py +684 -0
  279. aiecs/tools/task_tools/pandas_tool.py +635 -0
  280. aiecs/tools/task_tools/report_tool.py +635 -0
  281. aiecs/tools/task_tools/research_tool.py +392 -0
  282. aiecs/tools/task_tools/scraper_tool.py +715 -0
  283. aiecs/tools/task_tools/stats_tool.py +688 -0
  284. aiecs/tools/temp_file_manager.py +130 -0
  285. aiecs/tools/tool_executor/__init__.py +37 -0
  286. aiecs/tools/tool_executor/tool_executor.py +881 -0
  287. aiecs/utils/LLM_output_structor.py +445 -0
  288. aiecs/utils/__init__.py +34 -0
  289. aiecs/utils/base_callback.py +47 -0
  290. aiecs/utils/cache_provider.py +695 -0
  291. aiecs/utils/execution_utils.py +184 -0
  292. aiecs/utils/logging.py +1 -0
  293. aiecs/utils/prompt_loader.py +14 -0
  294. aiecs/utils/token_usage_repository.py +323 -0
  295. aiecs/ws/__init__.py +0 -0
  296. aiecs/ws/socket_server.py +52 -0
  297. aiecs-1.5.1.dist-info/METADATA +608 -0
  298. aiecs-1.5.1.dist-info/RECORD +302 -0
  299. aiecs-1.5.1.dist-info/WHEEL +5 -0
  300. aiecs-1.5.1.dist-info/entry_points.txt +10 -0
  301. aiecs-1.5.1.dist-info/licenses/LICENSE +225 -0
  302. aiecs-1.5.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,317 @@
1
+ """
2
+ Agent Domain Models
3
+
4
+ Defines the core data models for the base AI agent system.
5
+ """
6
+
7
+ from datetime import datetime
8
+ from typing import Dict, List, Any, Optional
9
+ from enum import Enum
10
+ from pydantic import BaseModel, Field, ConfigDict
11
+ import uuid
12
+
13
+
14
+ class AgentState(str, Enum):
15
+ """Agent lifecycle states."""
16
+
17
+ CREATED = "created"
18
+ INITIALIZING = "initializing"
19
+ ACTIVE = "active"
20
+ IDLE = "idle"
21
+ BUSY = "busy"
22
+ ERROR = "error"
23
+ STOPPED = "stopped"
24
+
25
+
26
+ class AgentType(str, Enum):
27
+ """Types of AI agents."""
28
+
29
+ CONVERSATIONAL = "conversational"
30
+ TASK_EXECUTOR = "task_executor"
31
+ RESEARCHER = "researcher"
32
+ ANALYST = "analyst"
33
+ CREATIVE = "creative"
34
+ DEVELOPER = "developer"
35
+ COORDINATOR = "coordinator"
36
+
37
+
38
+ class GoalStatus(str, Enum):
39
+ """Status of agent goals."""
40
+
41
+ PENDING = "pending"
42
+ IN_PROGRESS = "in_progress"
43
+ ACHIEVED = "achieved"
44
+ FAILED = "failed"
45
+ ABANDONED = "abandoned"
46
+
47
+
48
+ class GoalPriority(str, Enum):
49
+ """Priority levels for goals."""
50
+
51
+ LOW = "low"
52
+ MEDIUM = "medium"
53
+ HIGH = "high"
54
+ CRITICAL = "critical"
55
+
56
+
57
+ class CapabilityLevel(str, Enum):
58
+ """Proficiency levels for agent capabilities."""
59
+
60
+ BASIC = "basic"
61
+ INTERMEDIATE = "intermediate"
62
+ ADVANCED = "advanced"
63
+ EXPERT = "expert"
64
+
65
+
66
+ class MemoryType(str, Enum):
67
+ """Types of agent memory."""
68
+
69
+ SHORT_TERM = "short_term"
70
+ LONG_TERM = "long_term"
71
+
72
+
73
+ class RetryPolicy(BaseModel):
74
+ """Retry policy configuration for agent operations."""
75
+
76
+ max_retries: int = Field(default=5, ge=0, description="Maximum number of retry attempts")
77
+ base_delay: float = Field(
78
+ default=1.0,
79
+ ge=0,
80
+ description="Base delay in seconds for exponential backoff",
81
+ )
82
+ max_delay: float = Field(default=32.0, ge=0, description="Maximum delay cap in seconds")
83
+ exponential_factor: float = Field(
84
+ default=2.0, ge=1.0, description="Exponential factor for backoff"
85
+ )
86
+ jitter_factor: float = Field(
87
+ default=0.2,
88
+ ge=0.0,
89
+ le=1.0,
90
+ description="Jitter factor (±percentage) for randomization",
91
+ )
92
+ rate_limit_base_delay: float = Field(
93
+ default=5.0, ge=0, description="Base delay for rate limit errors"
94
+ )
95
+ rate_limit_max_delay: float = Field(
96
+ default=120.0, ge=0, description="Maximum delay for rate limit errors"
97
+ )
98
+
99
+ model_config = ConfigDict()
100
+
101
+
102
+ class AgentConfiguration(BaseModel):
103
+ """Configuration model for agent behavior and capabilities."""
104
+
105
+ # LLM settings
106
+ llm_provider: Optional[str] = Field(
107
+ None, description="LLM provider name (e.g., 'openai', 'vertex')"
108
+ )
109
+ llm_model: Optional[str] = Field(None, description="LLM model name")
110
+ temperature: float = Field(default=0.7, ge=0.0, le=2.0, description="LLM temperature setting")
111
+ max_tokens: int = Field(default=4096, ge=1, description="Maximum tokens for LLM responses")
112
+
113
+ # Tool access
114
+ allowed_tools: List[str] = Field(
115
+ default_factory=list, description="List of tool names agent can use"
116
+ )
117
+ tool_selection_strategy: str = Field(
118
+ default="llm_based",
119
+ description="Strategy for tool selection ('llm_based', 'rule_based')",
120
+ )
121
+
122
+ # Memory configuration
123
+ memory_enabled: bool = Field(default=True, description="Whether memory is enabled")
124
+ memory_capacity: int = Field(default=1000, ge=0, description="Maximum number of memory items")
125
+ memory_ttl_seconds: Optional[int] = Field(
126
+ None, ge=0, description="Time-to-live for short-term memory in seconds"
127
+ )
128
+
129
+ # Behavior parameters
130
+ max_iterations: int = Field(default=10, ge=1, description="Maximum iterations for ReAct loop")
131
+ timeout_seconds: Optional[int] = Field(None, ge=0, description="Task execution timeout")
132
+ verbose: bool = Field(default=False, description="Verbose logging")
133
+
134
+ # Retry policy
135
+ retry_policy: RetryPolicy = Field(
136
+ default_factory=RetryPolicy, description="Retry policy configuration"
137
+ )
138
+
139
+ # Goal and context
140
+ goal: Optional[str] = Field(None, description="Agent's primary goal")
141
+ backstory: Optional[str] = Field(None, description="Agent's backstory/context")
142
+ domain_knowledge: Optional[str] = Field(None, description="Domain-specific knowledge")
143
+ reasoning_guidance: Optional[str] = Field(None, description="Guidance for reasoning approach")
144
+
145
+ # Context compression
146
+ context_window_limit: int = Field(
147
+ default=20000, ge=0, description="Token limit for context window"
148
+ )
149
+ enable_context_compression: bool = Field(
150
+ default=True, description="Enable automatic context compression"
151
+ )
152
+
153
+ # Metadata
154
+ metadata: Dict[str, Any] = Field(
155
+ default_factory=dict, description="Additional configuration metadata"
156
+ )
157
+
158
+ model_config = ConfigDict()
159
+
160
+
161
+ class AgentGoal(BaseModel):
162
+ """Model representing an agent goal."""
163
+
164
+ goal_id: str = Field(
165
+ default_factory=lambda: str(uuid.uuid4()),
166
+ description="Unique goal identifier",
167
+ )
168
+ description: str = Field(..., description="Goal description")
169
+ status: GoalStatus = Field(default=GoalStatus.PENDING, description="Current goal status")
170
+ priority: GoalPriority = Field(default=GoalPriority.MEDIUM, description="Goal priority level")
171
+ progress: float = Field(
172
+ default=0.0,
173
+ ge=0.0,
174
+ le=100.0,
175
+ description="Progress percentage (0-100)",
176
+ )
177
+
178
+ # Success criteria
179
+ success_criteria: Optional[str] = Field(None, description="Criteria for goal achievement")
180
+ deadline: Optional[datetime] = Field(None, description="Goal deadline")
181
+
182
+ # Dependencies
183
+ parent_goal_id: Optional[str] = Field(None, description="Parent goal ID if this is a sub-goal")
184
+ depends_on: List[str] = Field(
185
+ default_factory=list, description="List of goal IDs this depends on"
186
+ )
187
+
188
+ # Timestamps
189
+ created_at: datetime = Field(
190
+ default_factory=datetime.utcnow, description="Goal creation timestamp"
191
+ )
192
+ started_at: Optional[datetime] = Field(None, description="When goal execution started")
193
+ achieved_at: Optional[datetime] = Field(None, description="When goal was achieved")
194
+
195
+ # Metadata
196
+ metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional goal metadata")
197
+
198
+ model_config = ConfigDict()
199
+
200
+
201
+ class AgentCapabilityDeclaration(BaseModel):
202
+ """Model declaring an agent capability."""
203
+
204
+ capability_type: str = Field(
205
+ ...,
206
+ description="Type of capability (e.g., 'text_generation', 'code_generation')",
207
+ )
208
+ level: CapabilityLevel = Field(..., description="Proficiency level")
209
+ constraints: Dict[str, Any] = Field(default_factory=dict, description="Capability constraints")
210
+ description: Optional[str] = Field(None, description="Capability description")
211
+
212
+ # Timestamps
213
+ acquired_at: datetime = Field(
214
+ default_factory=datetime.utcnow,
215
+ description="When capability was acquired",
216
+ )
217
+
218
+ model_config = ConfigDict()
219
+
220
+
221
+ class AgentMetrics(BaseModel):
222
+ """Model for tracking agent performance metrics."""
223
+
224
+ # Task execution metrics
225
+ total_tasks_executed: int = Field(default=0, ge=0, description="Total number of tasks executed")
226
+ successful_tasks: int = Field(default=0, ge=0, description="Number of successful tasks")
227
+ failed_tasks: int = Field(default=0, ge=0, description="Number of failed tasks")
228
+ success_rate: float = Field(
229
+ default=0.0, ge=0.0, le=100.0, description="Success rate percentage"
230
+ )
231
+
232
+ # Execution time metrics
233
+ average_execution_time: Optional[float] = Field(
234
+ None, ge=0, description="Average task execution time in seconds"
235
+ )
236
+ total_execution_time: float = Field(
237
+ default=0.0, ge=0, description="Total execution time in seconds"
238
+ )
239
+ min_execution_time: Optional[float] = Field(
240
+ None, ge=0, description="Minimum execution time in seconds"
241
+ )
242
+ max_execution_time: Optional[float] = Field(
243
+ None, ge=0, description="Maximum execution time in seconds"
244
+ )
245
+
246
+ # Quality metrics
247
+ average_quality_score: Optional[float] = Field(
248
+ None, ge=0.0, le=1.0, description="Average quality score (0-1)"
249
+ )
250
+
251
+ # Resource usage
252
+ total_tokens_used: int = Field(default=0, ge=0, description="Total LLM tokens used")
253
+ total_tool_calls: int = Field(default=0, ge=0, description="Total tool calls made")
254
+ total_api_cost: Optional[float] = Field(None, ge=0, description="Total API cost (if tracked)")
255
+
256
+ # Retry metrics
257
+ total_retries: int = Field(default=0, ge=0, description="Total number of retry attempts")
258
+ retry_successes: int = Field(default=0, ge=0, description="Number of successful retries")
259
+
260
+ # Error tracking
261
+ error_count: int = Field(default=0, ge=0, description="Total number of errors")
262
+ error_types: Dict[str, int] = Field(default_factory=dict, description="Count of errors by type")
263
+
264
+ # Timestamps
265
+ last_reset_at: Optional[datetime] = Field(None, description="When metrics were last reset")
266
+ updated_at: datetime = Field(default_factory=datetime.utcnow, description="Last metrics update")
267
+
268
+ model_config = ConfigDict()
269
+
270
+
271
+ class AgentInteraction(BaseModel):
272
+ """Model representing an agent interaction."""
273
+
274
+ interaction_id: str = Field(
275
+ default_factory=lambda: str(uuid.uuid4()),
276
+ description="Unique interaction identifier",
277
+ )
278
+ agent_id: str = Field(..., description="Agent ID involved in interaction")
279
+ interaction_type: str = Field(
280
+ ...,
281
+ description="Type of interaction (e.g., 'task', 'message', 'tool_call')",
282
+ )
283
+ content: Dict[str, Any] = Field(..., description="Interaction content")
284
+
285
+ # Timestamps
286
+ timestamp: datetime = Field(
287
+ default_factory=datetime.utcnow, description="Interaction timestamp"
288
+ )
289
+ duration_seconds: Optional[float] = Field(None, ge=0, description="Interaction duration")
290
+
291
+ # Metadata
292
+ metadata: Dict[str, Any] = Field(
293
+ default_factory=dict, description="Additional interaction metadata"
294
+ )
295
+
296
+ model_config = ConfigDict()
297
+
298
+
299
+ class AgentMemory(BaseModel):
300
+ """Model for agent memory interface (base model, not implementation)."""
301
+
302
+ memory_id: str = Field(
303
+ default_factory=lambda: str(uuid.uuid4()),
304
+ description="Unique memory identifier",
305
+ )
306
+ agent_id: str = Field(..., description="Associated agent ID")
307
+ memory_type: MemoryType = Field(..., description="Type of memory")
308
+ key: str = Field(..., description="Memory key")
309
+ value: Any = Field(..., description="Memory value")
310
+ timestamp: datetime = Field(
311
+ default_factory=datetime.utcnow, description="When memory was stored"
312
+ )
313
+
314
+ # Metadata
315
+ metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional memory metadata")
316
+
317
+ model_config = ConfigDict()