lionagi 0.18.1__tar.gz → 0.18.2__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.
Files changed (290) hide show
  1. {lionagi-0.18.1 → lionagi-0.18.2}/.github/workflows/codeql.yml +3 -3
  2. {lionagi-0.18.1 → lionagi-0.18.2}/PKG-INFO +1 -1
  3. lionagi-0.18.2/benchmarks/comparisons/README.md +246 -0
  4. lionagi-0.18.2/benchmarks/comparisons/benchmark_detailed_20251015_141023.csv +901 -0
  5. lionagi-0.18.2/benchmarks/comparisons/benchmark_results_20251015_141023.json +18965 -0
  6. lionagi-0.18.2/benchmarks/comparisons/benchmark_summary_20251015_141023.csv +46 -0
  7. lionagi-0.18.2/benchmarks/comparisons/report.md +200 -0
  8. lionagi-0.18.2/lionagi/__init__.py +141 -0
  9. lionagi-0.18.2/lionagi/adapters/spec_adapters/__init__.py +9 -0
  10. lionagi-0.18.2/lionagi/adapters/spec_adapters/_protocol.py +236 -0
  11. lionagi-0.18.2/lionagi/adapters/spec_adapters/pydantic_field.py +158 -0
  12. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/_async_call.py +2 -2
  13. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/fuzzy/_fuzzy_match.py +2 -2
  14. lionagi-0.18.2/lionagi/ln/types/__init__.py +51 -0
  15. lionagi-0.18.2/lionagi/ln/types/_sentinel.py +154 -0
  16. lionagi-0.18.1/lionagi/ln/types.py → lionagi-0.18.2/lionagi/ln/types/base.py +108 -168
  17. lionagi-0.18.2/lionagi/ln/types/operable.py +221 -0
  18. lionagi-0.18.2/lionagi/ln/types/spec.py +441 -0
  19. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/models/field_model.py +57 -3
  20. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/models/model_params.py +4 -3
  21. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/operate/operate.py +116 -84
  22. lionagi-0.18.2/lionagi/operations/operate/operative.py +198 -0
  23. lionagi-0.18.2/lionagi/operations/operate/step.py +203 -0
  24. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/types.py +6 -6
  25. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/message.py +2 -2
  26. lionagi-0.18.2/lionagi/version.py +1 -0
  27. {lionagi-0.18.1 → lionagi-0.18.2}/pyproject.toml +1 -1
  28. {lionagi-0.18.1 → lionagi-0.18.2}/uv.lock +1 -1
  29. lionagi-0.18.1/benchmarks/comparisons/README.md +0 -224
  30. lionagi-0.18.1/benchmarks/comparisons/benchmark_detailed_20250922_182217.csv +0 -901
  31. lionagi-0.18.1/benchmarks/comparisons/benchmark_results_20250922_182217.json +0 -18965
  32. lionagi-0.18.1/benchmarks/comparisons/benchmark_summary_20250922_182217.csv +0 -46
  33. lionagi-0.18.1/benchmarks/comparisons/report.md +0 -200
  34. lionagi-0.18.1/lionagi/__init__.py +0 -98
  35. lionagi-0.18.1/lionagi/operations/operate/operative.py +0 -361
  36. lionagi-0.18.1/lionagi/operations/operate/step.py +0 -222
  37. lionagi-0.18.1/lionagi/version.py +0 -1
  38. {lionagi-0.18.1 → lionagi-0.18.2}/.coveragerc +0 -0
  39. {lionagi-0.18.1 → lionagi-0.18.2}/.env.example +0 -0
  40. {lionagi-0.18.1 → lionagi-0.18.2}/.github/FUNDING.yml +0 -0
  41. {lionagi-0.18.1 → lionagi-0.18.2}/.github/dependabot.yml +0 -0
  42. {lionagi-0.18.1 → lionagi-0.18.2}/.github/workflows/benchmarks.yml +0 -0
  43. {lionagi-0.18.1 → lionagi-0.18.2}/.github/workflows/ci.yml +0 -0
  44. {lionagi-0.18.1 → lionagi-0.18.2}/.github/workflows/docs-deploy.yml +0 -0
  45. {lionagi-0.18.1 → lionagi-0.18.2}/.github/workflows/refresh-bench-baselines.yml +0 -0
  46. {lionagi-0.18.1 → lionagi-0.18.2}/.github/workflows/release.yml +0 -0
  47. {lionagi-0.18.1 → lionagi-0.18.2}/.gitignore +0 -0
  48. {lionagi-0.18.1 → lionagi-0.18.2}/.pre-commit-config.yaml +0 -0
  49. {lionagi-0.18.1 → lionagi-0.18.2}/.python-version +0 -0
  50. {lionagi-0.18.1 → lionagi-0.18.2}/AGENTS.md +0 -0
  51. {lionagi-0.18.1 → lionagi-0.18.2}/CODE_OF_CONDUCT.md +0 -0
  52. {lionagi-0.18.1 → lionagi-0.18.2}/CONTRIBUTING.md +0 -0
  53. {lionagi-0.18.1 → lionagi-0.18.2}/LICENSE +0 -0
  54. {lionagi-0.18.1 → lionagi-0.18.2}/README.md +0 -0
  55. {lionagi-0.18.1 → lionagi-0.18.2}/assets/operation_builder.gif +0 -0
  56. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/README.md +0 -0
  57. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/baselines/.gitkeep +0 -0
  58. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/baselines/concurrency-asyncio.json +0 -0
  59. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/baselines/concurrency-trio.json +0 -0
  60. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/baselines/fuzzy.json +0 -0
  61. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/baselines/ln-asyncio.json +0 -0
  62. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/baselines/ln-trio.json +0 -0
  63. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/ci_compare.py +0 -0
  64. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/comparisons/benchmark_professional.py +0 -0
  65. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/comparisons/generate_benchmark_report.py +0 -0
  66. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/concurrency_bench.py +0 -0
  67. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/fuzzy_bench.py +0 -0
  68. {lionagi-0.18.1 → lionagi-0.18.2}/benchmarks/ln_bench.py +0 -0
  69. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/001_branch_converse.ipynb +0 -0
  70. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/002_branch_interact.ipynb +0 -0
  71. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/003_branch_info.ipynb +0 -0
  72. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/004_conversation_patterns.ipynb +0 -0
  73. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/005_react_basics.ipynb +0 -0
  74. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/006_operation_graphs_claim_extraction.ipynb +0 -0
  75. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/007_fan_out_in.py +0 -0
  76. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/data/002_comedian.json +0 -0
  77. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/data/002_critic.json +0 -0
  78. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/data/006_lion_proof_ch2.md +0 -0
  79. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_claude_code/claude_proxy/README.md +0 -0
  80. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_claude_code/claude_proxy/claude_code_proxy.py +0 -0
  81. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_claude_code/claude_proxy/run_w_claude_code_proxy.ipynb +0 -0
  82. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_claude_code/using_claude_code.py +0 -0
  83. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_mcp/.mcp.json +0 -0
  84. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_mcp/README.md +0 -0
  85. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_mcp/react_mcp_with_schema.py +0 -0
  86. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_mcp/search_group.py +0 -0
  87. {lionagi-0.18.1 → lionagi-0.18.2}/cookbooks/using_mcp/search_group_config.json +0 -0
  88. {lionagi-0.18.1 → lionagi-0.18.2}/docs/DOCUMENTATION_STANDARDS.md +0 -0
  89. {lionagi-0.18.1 → lionagi-0.18.2}/docs/advanced/custom-operations.md +0 -0
  90. {lionagi-0.18.1 → lionagi-0.18.2}/docs/advanced/error-handling.md +0 -0
  91. {lionagi-0.18.1 → lionagi-0.18.2}/docs/advanced/flow-composition.md +0 -0
  92. {lionagi-0.18.1 → lionagi-0.18.2}/docs/advanced/index.md +0 -0
  93. {lionagi-0.18.1 → lionagi-0.18.2}/docs/advanced/observability.md +0 -0
  94. {lionagi-0.18.1 → lionagi-0.18.2}/docs/advanced/performance.md +0 -0
  95. {lionagi-0.18.1 → lionagi-0.18.2}/docs/code-of-conduct.md +0 -0
  96. {lionagi-0.18.1 → lionagi-0.18.2}/docs/contributing.md +0 -0
  97. {lionagi-0.18.1 → lionagi-0.18.2}/docs/cookbook/brainstorming.md +0 -0
  98. {lionagi-0.18.1 → lionagi-0.18.2}/docs/cookbook/claim-extraction.md +0 -0
  99. {lionagi-0.18.1 → lionagi-0.18.2}/docs/cookbook/code-review-crew.md +0 -0
  100. {lionagi-0.18.1 → lionagi-0.18.2}/docs/cookbook/data-persistence.md +0 -0
  101. {lionagi-0.18.1 → lionagi-0.18.2}/docs/cookbook/hr-automation.md +0 -0
  102. {lionagi-0.18.1 → lionagi-0.18.2}/docs/cookbook/index.md +0 -0
  103. {lionagi-0.18.1 → lionagi-0.18.2}/docs/cookbook/research-synthesis.md +0 -0
  104. {lionagi-0.18.1 → lionagi-0.18.2}/docs/core-concepts/index.md +0 -0
  105. {lionagi-0.18.1 → lionagi-0.18.2}/docs/core-concepts/lionagi-philosophy.md +0 -0
  106. {lionagi-0.18.1 → lionagi-0.18.2}/docs/core-concepts/messages-and-memory.md +0 -0
  107. {lionagi-0.18.1 → lionagi-0.18.2}/docs/core-concepts/models-and-providers.md +0 -0
  108. {lionagi-0.18.1 → lionagi-0.18.2}/docs/core-concepts/operations.md +0 -0
  109. {lionagi-0.18.1 → lionagi-0.18.2}/docs/core-concepts/sessions-and-branches.md +0 -0
  110. {lionagi-0.18.1 → lionagi-0.18.2}/docs/core-concepts/tools-and-functions.md +0 -0
  111. {lionagi-0.18.1 → lionagi-0.18.2}/docs/for-ai-agents/claude-code-usage.md +0 -0
  112. {lionagi-0.18.1 → lionagi-0.18.2}/docs/for-ai-agents/index.md +0 -0
  113. {lionagi-0.18.1 → lionagi-0.18.2}/docs/for-ai-agents/orchestration-guide.md +0 -0
  114. {lionagi-0.18.1 → lionagi-0.18.2}/docs/for-ai-agents/pattern-selection.md +0 -0
  115. {lionagi-0.18.1 → lionagi-0.18.2}/docs/for-ai-agents/self-improvement.md +0 -0
  116. {lionagi-0.18.1 → lionagi-0.18.2}/docs/includes/abbreviations.md +0 -0
  117. {lionagi-0.18.1 → lionagi-0.18.2}/docs/index.md +0 -0
  118. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/databases.md +0 -0
  119. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/dspy-optimization.md +0 -0
  120. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/index.md +0 -0
  121. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/llamaindex-rag.md +0 -0
  122. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/llm-providers.md +0 -0
  123. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/mcp-servers.md +0 -0
  124. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/tools.md +0 -0
  125. {lionagi-0.18.1 → lionagi-0.18.2}/docs/integrations/vector-stores.md +0 -0
  126. {lionagi-0.18.1 → lionagi-0.18.2}/docs/patterns/conditional-flows.md +0 -0
  127. {lionagi-0.18.1 → lionagi-0.18.2}/docs/patterns/fan-out-in.md +0 -0
  128. {lionagi-0.18.1 → lionagi-0.18.2}/docs/patterns/index.md +0 -0
  129. {lionagi-0.18.1 → lionagi-0.18.2}/docs/patterns/react-with-rag.md +0 -0
  130. {lionagi-0.18.1 → lionagi-0.18.2}/docs/patterns/sequential-analysis.md +0 -0
  131. {lionagi-0.18.1 → lionagi-0.18.2}/docs/patterns/tournament-validation.md +0 -0
  132. {lionagi-0.18.1 → lionagi-0.18.2}/docs/problem-statement.md +0 -0
  133. {lionagi-0.18.1 → lionagi-0.18.2}/docs/quickstart/installation.md +0 -0
  134. {lionagi-0.18.1 → lionagi-0.18.2}/docs/quickstart/your-first-flow.md +0 -0
  135. {lionagi-0.18.1 → lionagi-0.18.2}/docs/reference/api/index.md +0 -0
  136. {lionagi-0.18.1 → lionagi-0.18.2}/docs/reference/changelog.md +0 -0
  137. {lionagi-0.18.1 → lionagi-0.18.2}/docs/reference/troubleshooting.md +0 -0
  138. {lionagi-0.18.1 → lionagi-0.18.2}/docs/stylesheets/extra.css +0 -0
  139. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/_class_registry.py +0 -0
  140. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/_errors.py +0 -0
  141. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/_types.py +0 -0
  142. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/adapters/__init__.py +0 -0
  143. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/adapters/_utils.py +0 -0
  144. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/adapters/async_postgres_adapter.py +0 -0
  145. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/config.py +0 -0
  146. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/fields.py +0 -0
  147. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/__init__.py +0 -0
  148. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/file/__init__.py +0 -0
  149. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/file/chunk.py +0 -0
  150. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/file/process.py +0 -0
  151. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/__init__.py +0 -0
  152. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/as_readable.py +0 -0
  153. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/breakdown_pydantic_annotation.py +0 -0
  154. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/extract_code_block.py +0 -0
  155. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/extract_docstring.py +0 -0
  156. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/function_to_schema.py +0 -0
  157. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
  158. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/schema/minimal_yaml.py +0 -0
  159. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/validate/__init__.py +0 -0
  160. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/validate/common_field_validators.py +0 -0
  161. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/validate/to_num.py +0 -0
  162. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/libs/validate/validate_boolean.py +0 -0
  163. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/__init__.py +0 -0
  164. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/_hash.py +0 -0
  165. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/_json_dump.py +0 -0
  166. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/_list_call.py +0 -0
  167. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/_to_list.py +0 -0
  168. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/_utils.py +0 -0
  169. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/__init__.py +0 -0
  170. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/_compat.py +0 -0
  171. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/cancel.py +0 -0
  172. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/errors.py +0 -0
  173. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/patterns.py +0 -0
  174. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/primitives.py +0 -0
  175. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/resource_tracker.py +0 -0
  176. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/task.py +0 -0
  177. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/concurrency/utils.py +0 -0
  178. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/fuzzy/__init__.py +0 -0
  179. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/fuzzy/_extract_json.py +0 -0
  180. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/fuzzy/_fuzzy_json.py +0 -0
  181. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/fuzzy/_fuzzy_validate.py +0 -0
  182. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/fuzzy/_string_similarity.py +0 -0
  183. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/ln/fuzzy/_to_dict.py +0 -0
  184. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/models/__init__.py +0 -0
  185. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/models/hashable_model.py +0 -0
  186. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/models/operable_model.py +0 -0
  187. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/models/schema_model.py +0 -0
  188. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/ReAct/ReAct.py +0 -0
  189. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/ReAct/__init__.py +0 -0
  190. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/ReAct/utils.py +0 -0
  191. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/__init__.py +0 -0
  192. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/_visualize_graph.py +0 -0
  193. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/act/__init__.py +0 -0
  194. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/act/act.py +0 -0
  195. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/builder.py +0 -0
  196. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/chat/__init__.py +0 -0
  197. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/chat/chat.py +0 -0
  198. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/communicate/__init__.py +0 -0
  199. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/communicate/communicate.py +0 -0
  200. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/fields.py +0 -0
  201. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/flow.py +0 -0
  202. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/interpret/__init__.py +0 -0
  203. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/interpret/interpret.py +0 -0
  204. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/manager.py +0 -0
  205. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/node.py +0 -0
  206. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/operate/__init__.py +0 -0
  207. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/parse/__init__.py +0 -0
  208. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/parse/parse.py +0 -0
  209. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/select/__init__.py +0 -0
  210. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/select/select.py +0 -0
  211. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/operations/select/utils.py +0 -0
  212. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/__init__.py +0 -0
  213. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/_concepts.py +0 -0
  214. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/action/__init__.py +0 -0
  215. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/action/function_calling.py +0 -0
  216. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/action/manager.py +0 -0
  217. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/action/tool.py +0 -0
  218. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/contracts.py +0 -0
  219. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/generic/__init__.py +0 -0
  220. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/generic/element.py +0 -0
  221. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/generic/event.py +0 -0
  222. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/generic/log.py +0 -0
  223. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/generic/pile.py +0 -0
  224. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/generic/processor.py +0 -0
  225. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/generic/progression.py +0 -0
  226. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/graph/__init__.py +0 -0
  227. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/graph/edge.py +0 -0
  228. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/graph/graph.py +0 -0
  229. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/graph/node.py +0 -0
  230. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/ids.py +0 -0
  231. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/__init__.py +0 -0
  232. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/action_request.py +0 -0
  233. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/action_response.py +0 -0
  234. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/assistant_response.py +0 -0
  235. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/base.py +0 -0
  236. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/instruction.py +0 -0
  237. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/manager.py +0 -0
  238. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/messages/system.py +0 -0
  239. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/protocols/types.py +0 -0
  240. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/py.typed +0 -0
  241. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/__init__.py +0 -0
  242. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/broadcaster.py +0 -0
  243. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/__init__.py +0 -0
  244. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/api_calling.py +0 -0
  245. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/endpoint.py +0 -0
  246. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/endpoint_config.py +0 -0
  247. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/header_factory.py +0 -0
  248. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/match_endpoint.py +0 -0
  249. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/mcp/__init__.py +0 -0
  250. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/mcp/wrapper.py +0 -0
  251. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/__init__.py +0 -0
  252. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/anthropic_.py +0 -0
  253. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
  254. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/exa_.py +0 -0
  255. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/nvidia_nim_.py +0 -0
  256. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/oai_.py +0 -0
  257. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/ollama_.py +0 -0
  258. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/connections/providers/perplexity_.py +0 -0
  259. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/hooks/__init__.py +0 -0
  260. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/hooks/_types.py +0 -0
  261. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/hooks/_utils.py +0 -0
  262. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/hooks/hook_event.py +0 -0
  263. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/hooks/hook_registry.py +0 -0
  264. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/hooks/hooked_event.py +0 -0
  265. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/imodel.py +0 -0
  266. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/manager.py +0 -0
  267. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/rate_limited_processor.py +0 -0
  268. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/resilience.py +0 -0
  269. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/third_party/README.md +0 -0
  270. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/third_party/__init__.py +0 -0
  271. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/third_party/anthropic_models.py +0 -0
  272. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/third_party/claude_code.py +0 -0
  273. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/third_party/exa_models.py +0 -0
  274. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/third_party/openai_models.py +0 -0
  275. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/third_party/pplx_models.py +0 -0
  276. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/service/token_calculator.py +0 -0
  277. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/session/__init__.py +0 -0
  278. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/session/branch.py +0 -0
  279. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/session/prompts.py +0 -0
  280. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/session/session.py +0 -0
  281. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/tools/__init__.py +0 -0
  282. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/tools/base.py +0 -0
  283. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/tools/file/__init__.py +0 -0
  284. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/tools/file/reader.py +0 -0
  285. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/tools/types.py +0 -0
  286. {lionagi-0.18.1 → lionagi-0.18.2}/lionagi/utils.py +0 -0
  287. {lionagi-0.18.1 → lionagi-0.18.2}/main.py +0 -0
  288. {lionagi-0.18.1 → lionagi-0.18.2}/mkdocs.yml +0 -0
  289. {lionagi-0.18.1 → lionagi-0.18.2}/scripts/README.md +0 -0
  290. {lionagi-0.18.1 → lionagi-0.18.2}/scripts/update_openai_models.py +0 -0
@@ -27,14 +27,14 @@ jobs:
27
27
  uses: actions/checkout@v5
28
28
 
29
29
  - name: Initialize CodeQL
30
- uses: github/codeql-action/init@v3
30
+ uses: github/codeql-action/init@v4
31
31
  with:
32
32
  languages: ${{ matrix.language }}
33
33
 
34
34
  - name: Autobuild
35
- uses: github/codeql-action/autobuild@v3
35
+ uses: github/codeql-action/autobuild@v4
36
36
 
37
37
  - name: Perform CodeQL Analysis
38
- uses: github/codeql-action/analyze@v3
38
+ uses: github/codeql-action/analyze@v4
39
39
 
40
40
  # filepath: .github/workflows/codeql-analysis.yml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.18.1
3
+ Version: 0.18.2
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -0,0 +1,246 @@
1
+ # Agentic AI Framework Performance Benchmarks
2
+
3
+ Rigorous apples-to-apples performance comparison of major Python agentic AI
4
+ frameworks, focusing on real-world cold-start performance and memory efficiency.
5
+
6
+ ## Executive Summary
7
+
8
+ - **LionAGI delivers 2× faster cold-start performance** than the next-best
9
+ framework (LangGraph) across composites, **up to 3.3× faster** on realistic
10
+ workloads, and **54% lower memory usage**.
11
+
12
+ ### Key Results (20 runs per test • Python 3.10.15)
13
+
14
+ - **Cold Composite Performance** (geomean of medians; excludes imports): LionAGI
15
+ **153.6 ms** vs LangGraph **340.9 ms** → **LangGraph is 121.9% slower**
16
+ (**LionAGI is 2.2× faster**)
17
+ - **Memory Efficiency**: LionAGI **26.0 MB RSS** vs LangGraph 56.4 MB (**54%
18
+ lower**)
19
+ - **Consistency**: First-place performance in **4/4 cold-start categories**
20
+ - **Orchestrator Setup**: LionAGI **170.1 ms** vs LangGraph 329.0 ms (**93.4%
21
+ faster**)
22
+ - **Operational impact**: **~187 ms saved per cold start** vs LangGraph (≈ **3.1
23
+ min saved per 1k cold starts**)
24
+
25
+ ## Headline Performance Metrics
26
+
27
+ ### Cold Composite Performance (Geometric Mean of medians, excludes imports)
28
+
29
+ | Rank | Framework | Composite (ms) | RSS (MB) | USS (MB) | vs Best |
30
+ | ---- | -------------- | -------------- | -------- | -------- | ------------------ |
31
+ | 1 | **LionAGI** | 153.6 | 26.0 | 22.6 | — |
32
+ | 2 | LangGraph | 340.9 | 56.4 | 43.8 | **+121.9% slower** |
33
+ | 3 | AutoGen | 637.4 | 103.8 | 91.1 | **+314.9% slower** |
34
+ | 4 | LlamaIndex | 694.7 | 119.6 | 104.1 | **+352.2% slower** |
35
+ | 5 | LangChain Core | 1407.3 | 213.9 | 164.7 | **+816.0% slower** |
36
+
37
+ **Notes**
38
+
39
+ - Composite excludes `imports` because sub-millisecond baselines
40
+ (e.g., lazy imports) are dominated by timer granularity.
41
+ - Conservative composite (excluding `data_processing`): LionAGI **176.0 ms** vs LangGraph
42
+ **342.4 ms** → **LangGraph is 94.5% slower** (**LionAGI is 1.9× faster**).
43
+
44
+ ## Detailed Benchmark Results
45
+
46
+ _Process isolation per run • Module cache cleared • CPU pinning enabled_
47
+
48
+ ### Orchestrators (Cold) - Production-Ready State
49
+
50
+ | Framework | Median (ms) | P95 (ms) | Range | RSS (MB) | vs Best |
51
+ | -------------- | ----------- | -------- | ----------- | -------- | ------- |
52
+ | **LionAGI** | 170.1 | 177.4 | 165.5-207.6 | 26.9 | — |
53
+ | LangGraph | 329.0 | 339.9 | 324.7-392.6 | 53.4 | +93.4% |
54
+ | AutoGen | 668.4 | 713.8 | 618.9-788.3 | 105.9 | +292.9% |
55
+ | LlamaIndex | 713.7 | 763.8 | 703.5-870.2 | 130.5 | +319.6% |
56
+ | LangChain Core | 1329.7 | 1368.1 | 1315-1869 | 209.1 | +681.7% |
57
+
58
+ ### Basic Primitives (Cold) - Core Building Blocks
59
+
60
+ | Framework | Median (ms) | P95 (ms) | Range | RSS (MB) | vs Best |
61
+ | -------------- | ----------- | -------- | ----------- | -------- | ------- |
62
+ | **LionAGI** | 182.7 | 222.7 | 176.8-224.6 | 28.2 | — |
63
+ | LangGraph | 368.2 | 837.7 | 336.3-1143 | 58.6 | +101.5% |
64
+ | AutoGen | 626.2 | 650.1 | 614.9-830.3 | 101.6 | +242.7% |
65
+ | LlamaIndex | 630.0 | 689.8 | 621.4-759.6 | 85.3 | +244.8% |
66
+ | LangChain Core | 1488.5 | 1685.7 | 1377-2258 | 216.5 | +714.7% |
67
+
68
+ ### Workflow Setup (Cold) - Multi-Component Coordination
69
+
70
+ | Framework | Median (ms) | P95 (ms) | Range | RSS (MB) | vs Best |
71
+ | -------------- | ----------- | -------- | ----------- | -------- | ------- |
72
+ | **LionAGI** | 175.5 | 186.0 | 165.7-202.5 | 27.4 | — |
73
+ | LangGraph | 331.4 | 350.0 | 325.0-388.3 | 55.9 | +88.8% |
74
+ | AutoGen | 628.5 | 654.3 | 622.4-736.0 | 104.6 | +258.1% |
75
+ | LlamaIndex | 722.3 | 792.3 | 711.2-819.4 | 132.9 | +311.6% |
76
+ | LangChain Core | 1448.6 | 1624.8 | 1356-1989 | 214.0 | +725.4% |
77
+
78
+ ### Data Processing (Cold) - Realistic Workload
79
+
80
+ | Framework | Median (ms) | P95 (ms) | Range | RSS (MB) | vs Best |
81
+ | -------------- | ----------- | -------- | ----------- | -------- | -------- |
82
+ | **LionAGI** | 102.1 | 112.9 | 99.2-122.8 | 21.7 | — |
83
+ | LangGraph | 336.5 | 346.4 | 329.8-362.2 | 57.8 | +229.6% |
84
+ | AutoGen | 627.4 | 736.6 | 614.5-765.3 | 103.2 | +514.5% |
85
+ | LlamaIndex | 717.0 | 753.6 | 702.3-883.2 | 129.5 | +602.3% |
86
+ | LangChain Core | 1367.9 | 1461.8 | 1338-1885 | 216.2 | +1239.8% |
87
+
88
+ ## Performance Analysis
89
+
90
+ ### Memory Efficiency
91
+
92
+ - **LionAGI**: 26.0 MB average RSS (22.6 MB USS) — **most memory efficient**
93
+ - **LangGraph**: 56.4 MB average RSS (**+116.9% vs LionAGI**)
94
+ - **AutoGen**: 103.8 MB average RSS (**+299.2%**)
95
+ - **LlamaIndex**: 119.6 MB average RSS (**+360.0%**)
96
+ - **LangChain Core**: 213.9 MB average RSS (**+722.7%**)
97
+
98
+ ### Consistency & Reliability
99
+
100
+ - **Low variability**: See CSV for MAD/stdev; LionAGI shows tight ranges in
101
+ cold-path categories.
102
+ - **P95 performance**: Sub-230 ms P95 in all cold categories — exceptional
103
+ predictability.
104
+ - **Range stability**: Small min-max spans (typically <40ms) across cold
105
+ categories indicate highly predictable performance.
106
+
107
+ ## Feature Parity Matrix
108
+
109
+ All frameworks tested with equivalent, normalized workloads:
110
+
111
+ | Framework | Object Built | Core-Only | LLM Used | Network | Notes |
112
+ | -------------- | ---------------------- | --------- | -------- | ------- | ------------------------- |
113
+ | LionAGI | Session() | Yes | None | No | Minimal runtime container |
114
+ | LangGraph | StateGraph.compile() | Yes | None | No | One-node identity graph |
115
+ | LangChain Core | PromptTemplate\|Lambda | Yes | None | No | LCEL chain, no community |
116
+ | LlamaIndex | SimpleChatEngine | Yes | MockLLM | No | Built-in mock, no network |
117
+ | AutoGen | ConversableAgent | Yes | None | No | LLM disabled |
118
+
119
+ ## Methodology
120
+
121
+ ### Measurement Approach
122
+
123
+ - **Cold Mode**: Full import + object construction (serverless scenario)
124
+ - **Process Isolation**: Fresh Python interpreter per measurement
125
+ - **Statistical Rigor**: Median, P95, MAD, trimmed mean for outlier resistance
126
+ - **Memory Tracking**: RSS (Resident Set Size) and USS (Unique Set Size)
127
+
128
+ ### Environmental Controls
129
+
130
+ - CPU pinning for reduced scheduler noise
131
+ - Deterministic hashing (PYTHONHASHSEED=0)
132
+ - Module cache clearing between runs
133
+ - API keys blanked to prevent network calls
134
+ - 30-second timeout to prevent hangs
135
+
136
+ ### Excluded from Headlines
137
+
138
+ - **Import-only tests**: Dominated by lazy loading and timer granularity
139
+ - **Sub-millisecond measurements**: Below meaningful timer resolution
140
+
141
+ ## Reproducing Results
142
+
143
+ ```bash
144
+ # Clone repository
145
+ git clone https://github.com/lion-agi/lionagi.git
146
+ cd lionagi/benchmarks/comparisons
147
+
148
+ # Install dependencies
149
+ uv add --dev langgraph langchain-core llama-index-core pyautogen psutil
150
+ # (Recommended) Pin exact versions for reproducibility
151
+ uv lock
152
+ # Or export a frozen requirements file:
153
+ uv export --frozen --format requirements.txt > bench.requirements.txt
154
+
155
+ # Run full benchmark (20 runs, ~15 minutes)
156
+ uv run python benchmark_professional.py --runs 20 --report
157
+
158
+ # Generate report
159
+ uv run python generate_benchmark_report.py
160
+
161
+ # Quick test (3 runs)
162
+ uv run python benchmark_professional.py --runs 3
163
+ ```
164
+
165
+ ### Environment & Versions
166
+
167
+ Test environment and package versions used for benchmarks:
168
+
169
+ ```text
170
+ Hardware: Apple M2 Max, 32GB RAM
171
+ OS: macOS (Darwin 24.6.0)
172
+ Python: 3.10.15
173
+ LionAGI: v0.18.1
174
+ langgraph: 0.6.7
175
+ langchain-core: 0.3.76
176
+ llama-index-core: 0.14.2
177
+ pyautogen: 0.10.0
178
+ psutil: 7.1.0
179
+ ```
180
+
181
+ ## Use Case Recommendations
182
+
183
+ ### When to Choose LionAGI
184
+
185
+ - **Serverless/Lambda Functions**: 153.6ms cold start vs 340.9ms+ for
186
+ alternatives
187
+ - **Memory-Constrained Environments**: 54% lower memory footprint than nearest
188
+ competitor
189
+ - **High-Frequency Operations**: Consistent sub-180ms initialization across all
190
+ workloads
191
+ - **Cost-Sensitive Deployments**: Lower memory = more concurrent executions per
192
+ node
193
+
194
+ ### Framework Selection Guide
195
+
196
+ | Use Case | Recommended | Reasoning |
197
+ | --------------------- | ----------- | -------------------------------------- |
198
+ | Serverless/Lambda | LionAGI | Fastest cold start (153.6ms composite) |
199
+ | Memory-Limited | LionAGI | Lowest footprint (26.0MB) |
200
+ | State Machines | LangGraph | Purpose-built for graph workflows |
201
+ | Document RAG | LlamaIndex | Specialized document processing |
202
+ | Multi-Agent Chat | AutoGen | Conversation-focused patterns |
203
+ | Ecosystem Integration | LangChain | Extensive tool library |
204
+
205
+ ## Summary
206
+
207
+ The benchmarks show LionAGI's performance characteristics in cold-start
208
+ scenarios:
209
+
210
+ - **2.2× faster** cold-start performance vs next-best across composites (121.9%
211
+ advantage)
212
+ - Up to **3.3× faster** on realistic data-processing workloads
213
+ - **54% lower memory usage** (26.0MB vs 56.4MB for LangGraph)
214
+ - **Consistent performance** with tight P95 bounds and low variance
215
+ - **Sub-180ms orchestrator initialization** at 170.1ms median
216
+
217
+ These characteristics are relevant for:
218
+
219
+ - Serverless and edge deployments where cold-start performance impacts costs
220
+ - Applications with memory constraints or high concurrency requirements
221
+ - Use cases requiring predictable performance characteristics
222
+
223
+ ### Performance Evolution
224
+
225
+ **v0.18.1 Improvements** (Oct 2025 vs v0.17.7 Sept 2025):
226
+
227
+ - **47% faster** cold starts (238.8ms → 153.6ms composite)
228
+ - **37% lower memory** (41.2MB → 26.0MB RSS)
229
+ - **Doubled competitive advantage** (77.8% → 121.9% lead vs #2)
230
+
231
+ The v0.18.1 refactoring (removing ~10,000 LOC of unused code, simplifying type
232
+ system, consolidating architecture) delivered measurable performance gains while
233
+ improving code quality.
234
+
235
+ ---
236
+
237
+ ### Data Files
238
+
239
+ - **Summary**: `benchmark_summary_*.csv` - Statistical aggregates
240
+ - **Detailed**: `benchmark_detailed_*.csv` - Individual run data
241
+ - **Full Export**: `benchmark_results_*.json` - Complete metadata
242
+ - **Report**: `report.md` - Comprehensive analysis with full tables
243
+
244
+ _Last updated: October 15, 2025 • LionAGI v0.18.1 • Python 3.10.15_ _Benchmark
245
+ version: Apples-to-Apples Framework Benchmark v2.0_ _(composite excludes
246
+ imports; see Methodology)_