loom-agent 0.3.2__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.

Potentially problematic release.


This version of loom-agent might be problematic. Click here for more details.

Files changed (51) hide show
  1. loom/__init__.py +1 -0
  2. loom/adapters/converters.py +77 -0
  3. loom/adapters/registry.py +43 -0
  4. loom/api/factory.py +77 -0
  5. loom/api/main.py +201 -0
  6. loom/builtin/__init__.py +3 -0
  7. loom/builtin/memory/__init__.py +3 -0
  8. loom/builtin/memory/metabolic.py +96 -0
  9. loom/builtin/memory/pso.py +41 -0
  10. loom/builtin/memory/sanitizers.py +39 -0
  11. loom/builtin/memory/validators.py +55 -0
  12. loom/config/tool.py +63 -0
  13. loom/infra/__init__.py +0 -0
  14. loom/infra/llm.py +43 -0
  15. loom/infra/logging.py +42 -0
  16. loom/infra/store.py +39 -0
  17. loom/infra/transport/memory.py +85 -0
  18. loom/infra/transport/nats.py +141 -0
  19. loom/infra/transport/redis.py +140 -0
  20. loom/interfaces/llm.py +44 -0
  21. loom/interfaces/memory.py +50 -0
  22. loom/interfaces/store.py +29 -0
  23. loom/interfaces/transport.py +35 -0
  24. loom/kernel/__init__.py +0 -0
  25. loom/kernel/base_interceptor.py +97 -0
  26. loom/kernel/bus.py +76 -0
  27. loom/kernel/dispatcher.py +58 -0
  28. loom/kernel/interceptors/__init__.py +14 -0
  29. loom/kernel/interceptors/budget.py +60 -0
  30. loom/kernel/interceptors/depth.py +45 -0
  31. loom/kernel/interceptors/hitl.py +51 -0
  32. loom/kernel/interceptors/studio.py +137 -0
  33. loom/kernel/interceptors/timeout.py +27 -0
  34. loom/kernel/state.py +71 -0
  35. loom/memory/hierarchical.py +94 -0
  36. loom/node/__init__.py +0 -0
  37. loom/node/agent.py +133 -0
  38. loom/node/base.py +121 -0
  39. loom/node/crew.py +103 -0
  40. loom/node/router.py +68 -0
  41. loom/node/tool.py +50 -0
  42. loom/protocol/__init__.py +0 -0
  43. loom/protocol/cloudevents.py +73 -0
  44. loom/protocol/interfaces.py +110 -0
  45. loom/protocol/mcp.py +97 -0
  46. loom/protocol/memory_operations.py +51 -0
  47. loom/protocol/patch.py +93 -0
  48. loom_agent-0.3.2.dist-info/LICENSE +204 -0
  49. loom_agent-0.3.2.dist-info/METADATA +139 -0
  50. loom_agent-0.3.2.dist-info/RECORD +51 -0
  51. loom_agent-0.3.2.dist-info/WHEEL +4 -0
@@ -0,0 +1,139 @@
1
+ Metadata-Version: 2.1
2
+ Name: loom-agent
3
+ Version: 0.3.2
4
+ Summary: Enterprise-grade recursive state machine agent framework with event sourcing, multi-agent collaboration, hierarchical memory, and RAG integration
5
+ Home-page: https://github.com/kongusen/loom-agent
6
+ License: Apache-2.0 with Commons Clause
7
+ Keywords: ai,llm,agent,multi-agent,rag,tooling,asyncio
8
+ Author: kongusen
9
+ Author-email: wanghaishan0210@gmail.com
10
+ Requires-Python: >=3.11,<4.0
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Framework :: AsyncIO
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: Other/Proprietary License
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Classifier: Topic :: Software Development :: Libraries
21
+ Classifier: Typing :: Typed
22
+ Provides-Extra: all
23
+ Provides-Extra: anthropic
24
+ Provides-Extra: llm
25
+ Provides-Extra: nats
26
+ Provides-Extra: redis
27
+ Provides-Extra: studio
28
+ Requires-Dist: nats-py (>=2.6.0,<3.0.0) ; extra == "nats" or extra == "all"
29
+ Requires-Dist: pydantic (>=2.5.0,<3.0.0)
30
+ Requires-Dist: pyyaml (>=6.0,<7.0)
31
+ Requires-Dist: redis (>=5.0.1,<6.0.0) ; extra == "redis" or extra == "all"
32
+ Requires-Dist: rich (>=13.7.0,<14.0.0)
33
+ Requires-Dist: websockets (>=12.0,<13.0) ; extra == "studio"
34
+ Project-URL: Documentation, https://github.com/kongusen/loom-agent#readme
35
+ Project-URL: Repository, https://github.com/kongusen/loom-agent
36
+ Description-Content-Type: text/markdown
37
+
38
+ # 🧵 Loom Agent
39
+
40
+ <div align="center">
41
+
42
+ **受控分形架构的 AI Agent 框架**
43
+ **Protocol-First • Metabolic Memory • Fractal Nodes**
44
+
45
+ [![PyPI](https://img.shields.io/pypi/v/loom-agent.svg)](https://pypi.org/project/loom-agent/)
46
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
47
+ [![License: Apache 2.0 + Commons Clause](https://img.shields.io/badge/License-Apache_2.0_with_Commons_Clause-red.svg)](LICENSE)
48
+
49
+ [English](README_EN.md) | **中文**
50
+
51
+ [📖 文档](docs/zh/index.md) | [🚀 快速开始](docs/zh/01_getting_started/quickstart.md) | [🧩 核心概念](docs/zh/02_core_concepts/index.md)
52
+
53
+ </div>
54
+
55
+ ---
56
+
57
+ ## 🎯 什么是 Loom?
58
+
59
+ Loom 是一个**高可靠 (High-Assurance)** 的 AI Agent 框架,专为构建生产级系统而设计。与其他专注于"快速原型"的框架不同,Loom 关注**控制 (Control)、持久化 (Persistence) 和分形扩展 (Fractal Scalability)**。
60
+
61
+ ### 核心特性 (v0.3.0)
62
+
63
+ 1. **🧬 受控分形架构 (Controlled Fractal)**:
64
+ * Agent、Tool、Crew 都是**节点 (Node)**。节点可以无限递归包含。
65
+ * 即便是最复杂的 Agent 集群,对外也表现为一个简单的函数调用。
66
+
67
+ 2. **🧠 新陈代谢记忆 (Metabolic Memory)**:
68
+ * 拒绝无限追加的上下文窗口。Loom 模拟生物代谢:**摄入 (Validate) -> 消化 (Sanitize) -> 同化 (PSO)**。
69
+ * 长期保持 Agent 的"思维清醒",防止上下文中毒。
70
+
71
+ 3. **🛡️ 协议优先 (Protocol-First)**:
72
+ * 基于 Python `typing.Protocol` 定义行为契约。
73
+ * 零依赖核心:你可以轻松替换 LLM Provider (OpenAI/Anthropic) 或 传输层 (Memory/Redis)。
74
+
75
+ 4. **⚡ 通用事件总线 (Universal Event Bus)**:
76
+ * 基于 CloudEvents 标准。
77
+ * 支持全链路追踪 (Tracing) 和 审计 (Auditing)。
78
+
79
+ ---
80
+
81
+ ## 📦 安装
82
+
83
+ ```bash
84
+ pip install loom-agent
85
+ ```
86
+
87
+ ## 🚀 快速上手
88
+
89
+ ```python
90
+ import asyncio
91
+ from loom.api.main import LoomApp
92
+ from loom.node.agent import AgentNode
93
+
94
+ # 使用 Loom 就像搭积木
95
+ async def main():
96
+ app = LoomApp()
97
+
98
+ # 1. 创建 Agent
99
+ agent = AgentNode(
100
+ node_id="helper",
101
+ dispatcher=app.dispatcher,
102
+ role="Assistant",
103
+ system_prompt="你是一个乐于助人的 AI。"
104
+ )
105
+ app.add_node(agent)
106
+
107
+ # 2. 运行任务
108
+ response = await app.run("你好,Loom 是什么?", target="helper")
109
+ print(response['response'])
110
+
111
+ if __name__ == "__main__":
112
+ asyncio.run(main())
113
+ ```
114
+
115
+ > **注意**: 默认情况下 Loom 使用 Mock LLM 方便测试。要接入真实模型,请参阅[文档](docs/zh/08_examples/index.md)。
116
+
117
+ ## 📚 文档索引
118
+
119
+ 我们提供了完整的双语文档:
120
+
121
+ * **[用户指南](docs/zh/index.md)**
122
+ * [安装指南](docs/zh/01_getting_started/installation.md)
123
+ * [构建 Agent](docs/zh/03_guides/building_agents.md)
124
+ * **[核心原理](docs/zh/02_core_concepts/index.md)**
125
+ * [新陈代谢记忆](docs/zh/02_core_concepts/memory_system.md)
126
+ * [设计哲学](docs/zh/05_design_philosophy/index.md)
127
+
128
+ ## 🤝 贡献
129
+
130
+ 欢迎提交 PR 或 Issue!查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解更多。
131
+
132
+ ## 📄 许可证
133
+
134
+ **Apache License 2.0 with Commons Clause**.
135
+
136
+ 本软件允许免费用于学术研究、个人学习和内部商业使用。
137
+ **严禁未经授权的商业销售**(包括但不限于将本软件打包收费、提供托管服务等)。
138
+ 详情请见 [LICENSE](LICENSE)。
139
+
@@ -0,0 +1,51 @@
1
+ loom/__init__.py,sha256=VrXpHDu3erkzwl_WXrqINBm9xWkcyUy53IQOj042dOs,22
2
+ loom/adapters/converters.py,sha256=URooG0SehhSEAkVggBB8qGf95R-Fa6L_pCN4xnMZBnI,2322
3
+ loom/adapters/registry.py,sha256=Rg5mQMlOchN6jk5S_96NY3su49Q3pdTGEhOZ6cMp-Zw,1369
4
+ loom/api/factory.py,sha256=SruHGqqmS3SER4OE0HM_LWa2yyRRrCZwO-OvR44DKlw,1906
5
+ loom/api/main.py,sha256=3eHpkqwfKr4IBj5NUlRFfKCs8QWBkReQ8qw-ElJVFEs,8063
6
+ loom/builtin/__init__.py,sha256=4hqYZfDy0FBomXVMUhB4xKoJ3KlWU4P85n7iZLXIZls,63
7
+ loom/builtin/memory/__init__.py,sha256=pZjy-byugV6bcwWevUxa5vC1r-trbI-jSL-4i88wEVE,71
8
+ loom/builtin/memory/metabolic.py,sha256=N5npBX1CzX97TmmW3MF1spMiyuQJfQvz2SnF1S-5otc,3617
9
+ loom/builtin/memory/pso.py,sha256=Krmn7YgqtUwcVT20_wnOgvVFYNNDE_6tEtftb1LSCpE,1361
10
+ loom/builtin/memory/sanitizers.py,sha256=y3RAKh028fag6PAY3d0WMKzOStbaqXd3ukWB06eLDrc,1402
11
+ loom/builtin/memory/validators.py,sha256=pHFW26AHsfq-fmnCtHYLO5giagpJn29dOdolsLxN0qo,1903
12
+ loom/config/tool.py,sha256=2OTtclQdcKous0ELgQ5CZzn1ApATAikBoP6p0alooOk,1825
13
+ loom/infra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ loom/infra/llm.py,sha256=_tPSpR4dNrRqtlsw34_J1Zfm2uuGTvPwqrR4NlXU8_E,1267
15
+ loom/infra/logging.py,sha256=vDfzy91vlGLGniD6PUu3uwTQxTeTQO7quZH7VOlppnA,1153
16
+ loom/infra/store.py,sha256=PFLAKSinHLCbvZv7WhvoShv5Wss6WdIDHNLH1m8Z6Ag,1075
17
+ loom/infra/transport/memory.py,sha256=mMngRvPEr1iy2JR6mYyeWx5RLUvXpKD4GJ4T94i9Ksg,2996
18
+ loom/infra/transport/nats.py,sha256=qIE9YDnRbQ-NriCUfILdgQbXAmrwpM4E1HK_-Ht8AZE,4897
19
+ loom/infra/transport/redis.py,sha256=FaWXYtlNgwZDFeaGM0l06F0ciMZhnx8GwNNe_tFg0ag,5054
20
+ loom/interfaces/llm.py,sha256=tvjP77A2iKpnxYlGuuGo_2d13ndhrmdp-XWgLeuCghA,1066
21
+ loom/interfaces/memory.py,sha256=50-YRqxedDNffBwm24IHaXZiM2cAP2Brd9FA7JYmI0k,1352
22
+ loom/interfaces/store.py,sha256=lM6OPNoieL3AQUNZ2EzQhCQ24594i-jZZuYxMAuey9Y,756
23
+ loom/interfaces/transport.py,sha256=zi1h9URGsxaMVlsZCq7g0FbnlJzhVMOGMEkwc4h6vZU,924
24
+ loom/kernel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ loom/kernel/base_interceptor.py,sha256=AUCeNQQvMv-1Uw7eoRRJ1h9BQa1HQpn7AY-xSZh0m8M,3026
26
+ loom/kernel/bus.py,sha256=FgVvmBeRowwgzuAnq4p134i0MiY3JWcVvPivT-7qNBQ,2647
27
+ loom/kernel/dispatcher.py,sha256=irLQ4FFvYEaOFdRz9zNFi7EU-Jh8nw7r61O6ISZCZ-w,1986
28
+ loom/kernel/interceptors/__init__.py,sha256=LBMwruQoDTwmwqQQgoUvO7S4EL6Tpn9EHB7CcV8Kmo4,347
29
+ loom/kernel/interceptors/budget.py,sha256=-p1CFz60yXpmMf9HX11WUwxplErIXB8xE0tSxmCBZFY,2212
30
+ loom/kernel/interceptors/depth.py,sha256=NJ9s-7AKXn8i3IMsDZTUQ3mQMDVfMhBxggisxoHuTN8,1571
31
+ loom/kernel/interceptors/hitl.py,sha256=WTURHJbw3y8LK3ENj1A6M_Ka-WaKhOP61KedAfgt7kw,1857
32
+ loom/kernel/interceptors/studio.py,sha256=EquWelDYs_UO_7MszWFDEHHa_P1P-PXq5p1ODI9rShY,4997
33
+ loom/kernel/interceptors/timeout.py,sha256=hB-0uXf9GBBuuU6j2dXUZ1JB-6PaXrllG18xg6WObkE,938
34
+ loom/kernel/state.py,sha256=tCBZ_uZVf4vChODnjHeb4e2yuq6i74aj1RGs44PVJEM,2110
35
+ loom/memory/hierarchical.py,sha256=nC0b_cJp4Fos_vPxRRfQcKhX3KP9irbk7AQmCt2kM9Q,3147
36
+ loom/node/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ loom/node/agent.py,sha256=fMYNVEL4Xqgkj9dsqopFTyDwXDD9QfkETYU3uKpGi70,5216
38
+ loom/node/base.py,sha256=kloaJTFDTUDz3pHIBY-BzRIMrc1K5YfN389hQn12lcY,4270
39
+ loom/node/crew.py,sha256=X3jNyERxOY_zwWP2l_pP2xR-qgE_fh-SsPdm6YNoH7o,3876
40
+ loom/node/router.py,sha256=4jauy4WIVhLE7DQiugNeVFFQi9jf3uUOcmvAiQdQ6bg,2264
41
+ loom/node/tool.py,sha256=zzRNmWTuyzqmTh0R59jjSncC8jV1iewU2SFKJ-y4zvc,1426
42
+ loom/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
+ loom/protocol/cloudevents.py,sha256=vO24JTVQWGQ0bzahmBJ79zGIGw8zIeFhBWWRwkhrqT0,2356
44
+ loom/protocol/interfaces.py,sha256=UmytrpZlRs-kFP2RGy1mnYO_3Le7N0SkLTAPgE0Rad0,3537
45
+ loom/protocol/mcp.py,sha256=loTRVVnoQfmWE5IhTI0O6Kf2qZrnv7id9ESTcmrLgvI,2603
46
+ loom/protocol/memory_operations.py,sha256=TH8hT75hyqqiRC_i_kUQvqkqpB06Y5eZz1YXs0SQKW8,1350
47
+ loom/protocol/patch.py,sha256=CU5_aSmWRLhqT7pUmOZisRMRCcv6DJc9Oq-skdXQXRA,2798
48
+ loom_agent-0.3.2.dist-info/LICENSE,sha256=j5wyxQAYPDVGWKw30fzR4G4q0q4Kd6P-M0WPzoIWbBA,11690
49
+ loom_agent-0.3.2.dist-info/METADATA,sha256=pqdMa4A8JU2ShVbFGHdKjLTztXOPgqckpnTsiSNSlzQ,5076
50
+ loom_agent-0.3.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
51
+ loom_agent-0.3.2.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 1.8.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any