agentomatic 0.1.1__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. {agentomatic-0.1.1 → agentomatic-0.3.0}/CHANGELOG.md +30 -0
  2. {agentomatic-0.1.1 → agentomatic-0.3.0}/PKG-INFO +18 -2
  3. {agentomatic-0.1.1 → agentomatic-0.3.0}/README.md +17 -1
  4. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/configuration.md +12 -2
  5. agentomatic-0.3.0/docs/guide/platform-features.md +689 -0
  6. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/prompts.md +5 -4
  7. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/schemas.md +67 -0
  8. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/storage.md +15 -1
  9. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/index.md +15 -15
  10. {agentomatic-0.1.1 → agentomatic-0.3.0}/mkdocs.yml +1 -0
  11. {agentomatic-0.1.1 → agentomatic-0.3.0}/pyproject.toml +3 -1
  12. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/__init__.py +2 -0
  13. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/_version.py +1 -1
  14. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/core/__init__.py +14 -0
  15. agentomatic-0.3.0/src/agentomatic/core/memory_manager.py +349 -0
  16. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/core/platform.py +23 -6
  17. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/core/registry.py +3 -0
  18. agentomatic-0.3.0/src/agentomatic/core/router_factory.py +1213 -0
  19. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/core/state.py +4 -0
  20. agentomatic-0.3.0/src/agentomatic/providers/__init__.py +21 -0
  21. agentomatic-0.3.0/src/agentomatic/providers/llm.py +223 -0
  22. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/storage/__init__.py +6 -2
  23. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/storage/base.py +108 -0
  24. agentomatic-0.3.0/src/agentomatic/storage/checkpointer.py +254 -0
  25. agentomatic-0.3.0/src/agentomatic/storage/memory.py +396 -0
  26. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/storage/models.py +68 -1
  27. agentomatic-0.3.0/src/agentomatic/storage/sqlalchemy.py +609 -0
  28. {agentomatic-0.1.1 → agentomatic-0.3.0}/tests/test_agentomatic.py +191 -1
  29. {agentomatic-0.1.1 → agentomatic-0.3.0}/tests/test_integration.py +54 -5
  30. agentomatic-0.3.0/tests/test_platform_features.py +1660 -0
  31. {agentomatic-0.1.1 → agentomatic-0.3.0}/uv.lock +1 -1
  32. agentomatic-0.1.1/src/agentomatic/core/router_factory.py +0 -621
  33. agentomatic-0.1.1/src/agentomatic/providers/__init__.py +0 -3
  34. agentomatic-0.1.1/src/agentomatic/providers/llm.py +0 -116
  35. agentomatic-0.1.1/src/agentomatic/storage/memory.py +0 -167
  36. agentomatic-0.1.1/src/agentomatic/storage/sqlalchemy.py +0 -317
  37. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/config.toml +0 -0
  38. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/ar-SA.json +0 -0
  39. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/bn.json +0 -0
  40. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/da-DK.json +0 -0
  41. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/de-DE.json +0 -0
  42. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/el-GR.json +0 -0
  43. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/en-US.json +0 -0
  44. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/es.json +0 -0
  45. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/fr-FR.json +0 -0
  46. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/gu.json +0 -0
  47. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/he-IL.json +0 -0
  48. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/hi.json +0 -0
  49. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/it.json +0 -0
  50. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/ja.json +0 -0
  51. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/kn.json +0 -0
  52. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/ko.json +0 -0
  53. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/ml.json +0 -0
  54. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/mr.json +0 -0
  55. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/nl.json +0 -0
  56. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/pt-PT.json +0 -0
  57. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/ta.json +0 -0
  58. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/te.json +0 -0
  59. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/zh-CN.json +0 -0
  60. {agentomatic-0.1.1 → agentomatic-0.3.0}/.chainlit/translations/zh-TW.json +0 -0
  61. {agentomatic-0.1.1 → agentomatic-0.3.0}/.dockerignore +0 -0
  62. {agentomatic-0.1.1 → agentomatic-0.3.0}/.env.example +0 -0
  63. {agentomatic-0.1.1 → agentomatic-0.3.0}/.github/FUNDING.yml +0 -0
  64. {agentomatic-0.1.1 → agentomatic-0.3.0}/.github/workflows/ci.yml +0 -0
  65. {agentomatic-0.1.1 → agentomatic-0.3.0}/.github/workflows/docs.yml +0 -0
  66. {agentomatic-0.1.1 → agentomatic-0.3.0}/.github/workflows/manual-docs.yml +0 -0
  67. {agentomatic-0.1.1 → agentomatic-0.3.0}/.github/workflows/manual-pypi.yml +0 -0
  68. {agentomatic-0.1.1 → agentomatic-0.3.0}/.github/workflows/pr-checks.yml +0 -0
  69. {agentomatic-0.1.1 → agentomatic-0.3.0}/.github/workflows/release.yml +0 -0
  70. {agentomatic-0.1.1 → agentomatic-0.3.0}/.gitignore +0 -0
  71. {agentomatic-0.1.1 → agentomatic-0.3.0}/.pre-commit-config.yaml +0 -0
  72. {agentomatic-0.1.1 → agentomatic-0.3.0}/.vscode-upload.json +0 -0
  73. {agentomatic-0.1.1 → agentomatic-0.3.0}/CONTRIBUTING.md +0 -0
  74. {agentomatic-0.1.1 → agentomatic-0.3.0}/Dockerfile +0 -0
  75. {agentomatic-0.1.1 → agentomatic-0.3.0}/Dockerfile.distroless +0 -0
  76. {agentomatic-0.1.1 → agentomatic-0.3.0}/LICENSE +0 -0
  77. {agentomatic-0.1.1 → agentomatic-0.3.0}/Makefile +0 -0
  78. {agentomatic-0.1.1 → agentomatic-0.3.0}/TODO.md +0 -0
  79. {agentomatic-0.1.1 → agentomatic-0.3.0}/assets/logo.png +0 -0
  80. {agentomatic-0.1.1 → agentomatic-0.3.0}/docker-compose.yml +0 -0
  81. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/FRONTEND_API_GUIDE.md +0 -0
  82. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/architecture/api-reference.md +0 -0
  83. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/architecture/overview.md +0 -0
  84. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/assets/architecture_diagram.png +0 -0
  85. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/assets/logo.png +0 -0
  86. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/assets/optimization_flow.png +0 -0
  87. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/changelog.md +0 -0
  88. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/cli/commands.md +0 -0
  89. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/contributing.md +0 -0
  90. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/getting-started/first-agent.md +0 -0
  91. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/getting-started/installation.md +0 -0
  92. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/getting-started/quickstart.md +0 -0
  93. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/agent-structure.md +0 -0
  94. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/debug-ui.md +0 -0
  95. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/middleware.md +0 -0
  96. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/optimization.md +0 -0
  97. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/telemetry.md +0 -0
  98. {agentomatic-0.1.1 → agentomatic-0.3.0}/docs/guide/templates.md +0 -0
  99. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/README.md +0 -0
  100. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/__init__.py +0 -0
  101. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/api.py +0 -0
  102. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/config.py +0 -0
  103. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/graph.py +0 -0
  104. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/langgraph.json +0 -0
  105. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/nodes.py +0 -0
  106. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/prompts.json +0 -0
  107. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/schemas.py +0 -0
  108. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/agents/weather/tools.py +0 -0
  109. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/full_agent/main.py +0 -0
  110. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/hello_agent/agents/hello/__init__.py +0 -0
  111. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/hello_agent/agents/hello/graph.py +0 -0
  112. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/hello_agent/agents/hello/nodes.py +0 -0
  113. {agentomatic-0.1.1 → agentomatic-0.3.0}/examples/hello_agent/main.py +0 -0
  114. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/__init__.py +0 -0
  115. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/cli/__init__.py +0 -0
  116. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/cli/commands.py +0 -0
  117. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/cli/templates.py +0 -0
  118. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/config/__init__.py +0 -0
  119. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/config/defaults.py +0 -0
  120. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/config/settings.py +0 -0
  121. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/core/lifespan.py +0 -0
  122. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/core/manifest.py +0 -0
  123. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/middleware/__init__.py +0 -0
  124. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/middleware/auth.py +0 -0
  125. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/middleware/feedback.py +0 -0
  126. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/middleware/logging.py +0 -0
  127. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/middleware/metrics.py +0 -0
  128. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/middleware/rate_limit.py +0 -0
  129. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/observability/__init__.py +0 -0
  130. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/observability/concurrency.py +0 -0
  131. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/observability/metrics.py +0 -0
  132. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/observability/telemetry.py +0 -0
  133. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/__init__.py +0 -0
  134. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/dataset.py +0 -0
  135. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/loop.py +0 -0
  136. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/metrics.py +0 -0
  137. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/optimizer.py +0 -0
  138. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/report.py +0 -0
  139. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/runner.py +0 -0
  140. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/strategies.py +0 -0
  141. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/optimize/synthesizer.py +0 -0
  142. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/prompts/__init__.py +0 -0
  143. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/prompts/manager.py +0 -0
  144. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/protocols/__init__.py +0 -0
  145. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/protocols/decorators.py +0 -0
  146. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/providers/embeddings.py +0 -0
  147. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/py.typed +0 -0
  148. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/ui/.chainlit/config.toml +0 -0
  149. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/ui/__init__.py +0 -0
  150. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agentomatic/ui/chat.py +0 -0
  151. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/__init__.py +0 -0
  152. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/alpha/__init__.py +0 -0
  153. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/alpha/agent.py +0 -0
  154. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/alpha/api.py +0 -0
  155. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/alpha/config.py +0 -0
  156. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/alpha/prompts.json +0 -0
  157. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/alpha/schemas.py +0 -0
  158. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/alpha/state.py +0 -0
  159. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/beta/__init__.py +0 -0
  160. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/beta/agent.py +0 -0
  161. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/beta/api.py +0 -0
  162. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/beta/config.py +0 -0
  163. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/beta/prompts.json +0 -0
  164. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/beta/schemas.py +0 -0
  165. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/agents/beta/state.py +0 -0
  166. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/app/__init__.py +0 -0
  167. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/app/api.py +0 -0
  168. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/app/dependencies.py +0 -0
  169. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/app/main.py +0 -0
  170. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/app/settings.py +0 -0
  171. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/common/__init__.py +0 -0
  172. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/common/agent_state.py +0 -0
  173. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/common/api_decorators.py +0 -0
  174. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/common/base_agent.py +0 -0
  175. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/common/llm_factory.py +0 -0
  176. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/common/prompt_manager.py +0 -0
  177. {agentomatic-0.1.1 → agentomatic-0.3.0}/src/common/utilities.py +0 -0
  178. {agentomatic-0.1.1 → agentomatic-0.3.0}/tests/test_cli.py +0 -0
  179. {agentomatic-0.1.1 → agentomatic-0.3.0}/tests/test_optimize.py +0 -0
@@ -1,6 +1,36 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v0.3.0 (2026-06-14)
5
+
6
+ ### Features
7
+
8
+ - Implement memory management, platform features, and router updates
9
+ ([`5cf8aa8`](https://github.com/UnicoLab/agentomatic/commit/5cf8aa88ef750e2fa443948981aad2f1f9f1f9c4))
10
+
11
+
12
+ ## v0.2.0 (2026-06-14)
13
+
14
+ ### Documentation
15
+
16
+ - Add telemetry and feedback correlation notes for A/B testing
17
+ ([`2c27a86`](https://github.com/UnicoLab/agentomatic/commit/2c27a86ac83b44a022e5d002d88316953f01ab35))
18
+
19
+ ### Features
20
+
21
+ - Implement advanced platform features (HITL, checkpointer, structured output, fork, A/B routing,
22
+ fallbacks, hooks) and update documentation
23
+ ([`c1a55c3`](https://github.com/UnicoLab/agentomatic/commit/c1a55c39b1efd24084f1453946df27a830d3d7ec))
24
+
25
+ - Increase core test coverage over 85% and enhance homepage aesthetics
26
+ ([`98f28f5`](https://github.com/UnicoLab/agentomatic/commit/98f28f56308b7540d642149aa2a7edc20b2eeafb))
27
+
28
+ ### Testing
29
+
30
+ - Enhance unit test coverage for sqlalchemy store, sync checkpointers, and structured fallbacks
31
+ ([`91ab042`](https://github.com/UnicoLab/agentomatic/commit/91ab04254a623fb4fbd108303265ad8d4b3aeba5))
32
+
33
+
4
34
  ## v0.1.1 (2026-06-13)
5
35
 
6
36
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentomatic
3
- Version: 0.1.1
3
+ Version: 0.3.0
4
4
  Summary: Drop agents, not code — zero-code multi-agent API platform framework
5
5
  Project-URL: Homepage, https://github.com/UnicoLab/agentomatic
6
6
  Project-URL: Documentation, https://unicolab.github.io/agentomatic
@@ -132,7 +132,7 @@ Create production-ready AI agent APIs with auto-discovery, auto-routing, streami
132
132
  | Feature | Description |
133
133
  |---|---|
134
134
  | 🔍 **Auto-Discovery** | Drop an agent folder → endpoints appear automatically |
135
- | 🚀 **12+ Endpoints Per Agent** | invoke, stream, chat, A2A, health, config, threads |
135
+ | 🚀 **25+ Endpoints Per Agent** | invoke, stream, chat, A2A, health, config, threads, memory, feedback |
136
136
  | 🗄️ **Pluggable Storage** | MemoryStore, SQLAlchemy, or bring your own |
137
137
  | 🔐 **Middleware Pipeline** | Auth, rate limiting, Prometheus metrics — all toggleable |
138
138
  | 🎨 **Built-in Debug UI** | ChatGPT-like interface via Chainlit |
@@ -143,6 +143,17 @@ Create production-ready AI agent APIs with auto-discovery, auto-routing, streami
143
143
  | ⚡ **Prompt Optimizer** | DSPy-inspired prompt optimization (7 strategies) |
144
144
  | 🧪 **Data Synthesizer** | Auto-generate & augment eval datasets via LLM |
145
145
  | 📊 **HTML Reports** | SVG charts, prompt diffs, experiment tracking |
146
+ | 🚦 **Human-in-the-Loop** | Suspend/resume execution with human approval gates |
147
+ | 🌳 **Thread Lineage** | First-class parent/child tracking with ancestry traversal |
148
+ | ⏰ **HITL TTL Expiry** | Auto-cleanup of stale suspended states (7-day default) |
149
+ | 🛡️ **LLM Failover** | Multi-provider fallback chains with telemetry |
150
+ | 🧬 **Thread Forking** | Clone conversations at any message index |
151
+ | 🔀 **A/B Prompt Routing** | Weight-based prompt version selection |
152
+ | 🪝 **State Hooks** | Before/after node interceptors for audit & telemetry |
153
+ | 🧠 **Conversation Memory** | Automatic session + long-term memory with windowing |
154
+ | 📝 **Auto-Summarization** | LLM-powered compression of long conversations |
155
+ | 📋 **Thread CRUD** | Full thread lifecycle management (create/update/delete/clear) |
156
+ | 💬 **Message Persistence** | Every turn auto-saved — history survives restarts |
146
157
 
147
158
  ## 🚀 Quick Start
148
159
 
@@ -317,6 +328,11 @@ Every agent gets 12+ endpoints automatically:
317
328
  | `GET` | `/api/v1/{agent}/card` | A2A agent card |
318
329
  | `POST` | `/api/v1/{agent}/a2a/tasks` | A2A task submission |
319
330
  | `GET` | `/api/v1/{agent}/threads` | List threads |
331
+ | `POST` | `/api/v1/{agent}/threads/{id}/approve` | HITL: approve suspended state |
332
+ | `POST` | `/api/v1/{agent}/threads/{id}/reject` | HITL: reject suspended state |
333
+ | `GET` | `/api/v1/{agent}/threads/{id}/pending` | HITL: list pending approvals |
334
+ | `POST` | `/api/v1/{agent}/threads/{id}/fork` | Fork thread at message index |
335
+ | `GET` | `/api/v1/{agent}/threads/{id}/lineage` | Thread ancestry/descendant tree |
320
336
  | ... | ... | + config, prompts, thread messages |
321
337
 
322
338
  ## 🛠️ Development
@@ -28,7 +28,7 @@ Create production-ready AI agent APIs with auto-discovery, auto-routing, streami
28
28
  | Feature | Description |
29
29
  |---|---|
30
30
  | 🔍 **Auto-Discovery** | Drop an agent folder → endpoints appear automatically |
31
- | 🚀 **12+ Endpoints Per Agent** | invoke, stream, chat, A2A, health, config, threads |
31
+ | 🚀 **25+ Endpoints Per Agent** | invoke, stream, chat, A2A, health, config, threads, memory, feedback |
32
32
  | 🗄️ **Pluggable Storage** | MemoryStore, SQLAlchemy, or bring your own |
33
33
  | 🔐 **Middleware Pipeline** | Auth, rate limiting, Prometheus metrics — all toggleable |
34
34
  | 🎨 **Built-in Debug UI** | ChatGPT-like interface via Chainlit |
@@ -39,6 +39,17 @@ Create production-ready AI agent APIs with auto-discovery, auto-routing, streami
39
39
  | ⚡ **Prompt Optimizer** | DSPy-inspired prompt optimization (7 strategies) |
40
40
  | 🧪 **Data Synthesizer** | Auto-generate & augment eval datasets via LLM |
41
41
  | 📊 **HTML Reports** | SVG charts, prompt diffs, experiment tracking |
42
+ | 🚦 **Human-in-the-Loop** | Suspend/resume execution with human approval gates |
43
+ | 🌳 **Thread Lineage** | First-class parent/child tracking with ancestry traversal |
44
+ | ⏰ **HITL TTL Expiry** | Auto-cleanup of stale suspended states (7-day default) |
45
+ | 🛡️ **LLM Failover** | Multi-provider fallback chains with telemetry |
46
+ | 🧬 **Thread Forking** | Clone conversations at any message index |
47
+ | 🔀 **A/B Prompt Routing** | Weight-based prompt version selection |
48
+ | 🪝 **State Hooks** | Before/after node interceptors for audit & telemetry |
49
+ | 🧠 **Conversation Memory** | Automatic session + long-term memory with windowing |
50
+ | 📝 **Auto-Summarization** | LLM-powered compression of long conversations |
51
+ | 📋 **Thread CRUD** | Full thread lifecycle management (create/update/delete/clear) |
52
+ | 💬 **Message Persistence** | Every turn auto-saved — history survives restarts |
42
53
 
43
54
  ## 🚀 Quick Start
44
55
 
@@ -213,6 +224,11 @@ Every agent gets 12+ endpoints automatically:
213
224
  | `GET` | `/api/v1/{agent}/card` | A2A agent card |
214
225
  | `POST` | `/api/v1/{agent}/a2a/tasks` | A2A task submission |
215
226
  | `GET` | `/api/v1/{agent}/threads` | List threads |
227
+ | `POST` | `/api/v1/{agent}/threads/{id}/approve` | HITL: approve suspended state |
228
+ | `POST` | `/api/v1/{agent}/threads/{id}/reject` | HITL: reject suspended state |
229
+ | `GET` | `/api/v1/{agent}/threads/{id}/pending` | HITL: list pending approvals |
230
+ | `POST` | `/api/v1/{agent}/threads/{id}/fork` | Fork thread at message index |
231
+ | `GET` | `/api/v1/{agent}/threads/{id}/lineage` | Thread ancestry/descendant tree |
216
232
  | ... | ... | + config, prompts, thread messages |
217
233
 
218
234
  ## 🛠️ Development
@@ -37,6 +37,8 @@ platform = AgentPlatform.from_folder(
37
37
  enable_metrics=True,
38
38
  enable_feedback=True,
39
39
  enable_telemetry=True,
40
+ max_history_messages=50,
41
+ summarize_after=30,
40
42
  )
41
43
  ```
42
44
 
@@ -62,9 +64,17 @@ platform = AgentPlatform.from_folder(
62
64
 
63
65
  ### 4. Storage Backend
64
66
 
65
- - **`store`** (type: `BaseStore | None`, default: `None`): Instance of a storage adapter (e.g. `MemoryStore` or `SQLAlchemyStore`) used to save message threads and rating logs.
67
+ - **`store`** (type: `BaseStore | None`, default: `None`): Instance of a storage adapter (e.g. `MemoryStore` or `SQLAlchemyStore`) used to save message threads, conversation history, and rating logs.
66
68
 
67
- ### 5. Security & Rate Limiting
69
+ ### 5. Memory & Conversation
70
+
71
+ - **`max_history_messages`** (type: `int`, default: `50`): Maximum number of messages to load from the thread store into the agent's context window. When the conversation exceeds this limit, older messages are windowed out or summarised.
72
+ - **`summarize_after`** (type: `int`, default: `30`): When the message count in a thread exceeds this threshold, older messages are automatically summarised using the configured LLM and prepended as a `[Conversation Summary]` system message.
73
+
74
+ > [!TIP]
75
+ > These values can also be overridden per-request using the `max_history` field on `AgentChatRequest`, giving frontends full control over how much context each invocation receives.
76
+
77
+ ### 6. Security & Rate Limiting
68
78
 
69
79
  - **`enable_auth`** (type: `bool`, default: `False`): If `True`, mounts Key Authentication middleware on all agent routes.
70
80
  - **`auth_api_key`** (type: `str`, default: `""`): The secret API key token required by clients when `enable_auth` is enabled.