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.
- loom/__init__.py +1 -0
- loom/adapters/converters.py +77 -0
- loom/adapters/registry.py +43 -0
- loom/api/factory.py +77 -0
- loom/api/main.py +201 -0
- loom/builtin/__init__.py +3 -0
- loom/builtin/memory/__init__.py +3 -0
- loom/builtin/memory/metabolic.py +96 -0
- loom/builtin/memory/pso.py +41 -0
- loom/builtin/memory/sanitizers.py +39 -0
- loom/builtin/memory/validators.py +55 -0
- loom/config/tool.py +63 -0
- loom/infra/__init__.py +0 -0
- loom/infra/llm.py +43 -0
- loom/infra/logging.py +42 -0
- loom/infra/store.py +39 -0
- loom/infra/transport/memory.py +85 -0
- loom/infra/transport/nats.py +141 -0
- loom/infra/transport/redis.py +140 -0
- loom/interfaces/llm.py +44 -0
- loom/interfaces/memory.py +50 -0
- loom/interfaces/store.py +29 -0
- loom/interfaces/transport.py +35 -0
- loom/kernel/__init__.py +0 -0
- loom/kernel/base_interceptor.py +97 -0
- loom/kernel/bus.py +76 -0
- loom/kernel/dispatcher.py +58 -0
- loom/kernel/interceptors/__init__.py +14 -0
- loom/kernel/interceptors/budget.py +60 -0
- loom/kernel/interceptors/depth.py +45 -0
- loom/kernel/interceptors/hitl.py +51 -0
- loom/kernel/interceptors/studio.py +137 -0
- loom/kernel/interceptors/timeout.py +27 -0
- loom/kernel/state.py +71 -0
- loom/memory/hierarchical.py +94 -0
- loom/node/__init__.py +0 -0
- loom/node/agent.py +133 -0
- loom/node/base.py +121 -0
- loom/node/crew.py +103 -0
- loom/node/router.py +68 -0
- loom/node/tool.py +50 -0
- loom/protocol/__init__.py +0 -0
- loom/protocol/cloudevents.py +73 -0
- loom/protocol/interfaces.py +110 -0
- loom/protocol/mcp.py +97 -0
- loom/protocol/memory_operations.py +51 -0
- loom/protocol/patch.py +93 -0
- loom_agent-0.3.2.dist-info/LICENSE +204 -0
- loom_agent-0.3.2.dist-info/METADATA +139 -0
- loom_agent-0.3.2.dist-info/RECORD +51 -0
- 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
|
+
[](https://pypi.org/project/loom-agent/)
|
|
46
|
+
[](https://www.python.org/downloads/)
|
|
47
|
+
[](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,,
|