traia-iatp 0.1.11__py3-none-any.whl → 0.1.13__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 traia-iatp might be problematic. Click here for more details.
- traia_iatp/core/models.py +3 -3
- traia_iatp/mcp/mcp_agent_template.py +2 -1
- traia_iatp/mcp/templates/pyproject.toml.j2 +3 -3
- traia_iatp/server/templates/agent.py.j2 +8 -0
- traia_iatp/server/templates/agent_executor.py.j2 +12 -2
- traia_iatp/server/templates/env.example.j2 +4 -1
- traia_iatp/server/templates/pyproject.toml.j2 +10 -11
- {traia_iatp-0.1.11.dist-info → traia_iatp-0.1.13.dist-info}/METADATA +21 -17
- {traia_iatp-0.1.11.dist-info → traia_iatp-0.1.13.dist-info}/RECORD +13 -13
- {traia_iatp-0.1.11.dist-info → traia_iatp-0.1.13.dist-info}/WHEEL +0 -0
- {traia_iatp-0.1.11.dist-info → traia_iatp-0.1.13.dist-info}/entry_points.txt +0 -0
- {traia_iatp-0.1.11.dist-info → traia_iatp-0.1.13.dist-info}/licenses/LICENSE +0 -0
- {traia_iatp-0.1.11.dist-info → traia_iatp-0.1.13.dist-info}/top_level.txt +0 -0
traia_iatp/core/models.py
CHANGED
|
@@ -21,7 +21,7 @@ class MCPServer(BaseModel):
|
|
|
21
21
|
capabilities: List[str] = Field(default_factory=list, description="List of capabilities/APIs")
|
|
22
22
|
metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
|
|
23
23
|
|
|
24
|
-
class
|
|
24
|
+
class ConfigDict:
|
|
25
25
|
json_encoders = {HttpUrl: str}
|
|
26
26
|
|
|
27
27
|
|
|
@@ -113,7 +113,7 @@ class UtilityAgent(BaseModel):
|
|
|
113
113
|
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
|
114
114
|
metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
|
|
115
115
|
|
|
116
|
-
class
|
|
116
|
+
class ConfigDict:
|
|
117
117
|
json_encoders = {HttpUrl: str, datetime: lambda v: v.isoformat()}
|
|
118
118
|
|
|
119
119
|
|
|
@@ -143,7 +143,7 @@ class UtilityAgentRegistryEntry(BaseModel):
|
|
|
143
143
|
last_health_check: Optional[datetime] = Field(None, description="Last successful health check")
|
|
144
144
|
is_active: bool = Field(default=True, description="Whether the agent is active")
|
|
145
145
|
|
|
146
|
-
class
|
|
146
|
+
class ConfigDict:
|
|
147
147
|
json_encoders = {HttpUrl: str, datetime: lambda v: v.isoformat()}
|
|
148
148
|
|
|
149
149
|
|
|
@@ -4,10 +4,10 @@ version = "0.1.0"
|
|
|
4
4
|
description = "MCP server for {{ api_name }} API{% if auth_description %} with authentication support{% endif %}"
|
|
5
5
|
requires-python = ">=3.12"
|
|
6
6
|
dependencies = [
|
|
7
|
-
"fastmcp>=2.
|
|
7
|
+
"fastmcp>=2.12.5",
|
|
8
8
|
"python-dotenv>=1.1.1",
|
|
9
|
-
"requests>=2.32.
|
|
10
|
-
"starlette>=0.
|
|
9
|
+
"requests>=2.32.5",
|
|
10
|
+
"starlette>=0.48.0",
|
|
11
11
|
"retry>=0.9.2",
|
|
12
12
|
{% if sdk_package %}
|
|
13
13
|
"{{ sdk_package }}",
|
|
@@ -25,8 +25,15 @@ except ImportError:
|
|
|
25
25
|
def operation(func):
|
|
26
26
|
return func
|
|
27
27
|
|
|
28
|
+
DEFAULT_LLM = LLM(
|
|
29
|
+
model=os.getenv("LLM_MODEL", "gpt-4.1-nano"), # Using environment variable with fallback
|
|
30
|
+
temperature=os.getenv("LLM_MODEL_TEMPERATURE", 0.1),
|
|
31
|
+
api_key=os.getenv("OPENAI_API_KEY")
|
|
32
|
+
)
|
|
33
|
+
|
|
28
34
|
logger = logging.getLogger(__name__)
|
|
29
35
|
|
|
36
|
+
logger.info(f"Current LLM model used: {os.getenv("LLM_MODEL", "gpt-4.1-nano")}")
|
|
30
37
|
|
|
31
38
|
class {{ class_name }}Agent:
|
|
32
39
|
"""{{ agent_name }} agent that processes requests using {{ mcp_server_name }}."""
|
|
@@ -61,6 +68,7 @@ class {{ class_name }}Agent:
|
|
|
61
68
|
),
|
|
62
69
|
verbose=True,
|
|
63
70
|
allow_delegation=False,
|
|
71
|
+
llm=DEFAULT_LLM,
|
|
64
72
|
tools_subset=tools_subset
|
|
65
73
|
)
|
|
66
74
|
|
|
@@ -17,7 +17,7 @@ from a2a.server.agent_execution import AgentExecutor, RequestContext
|
|
|
17
17
|
from a2a.server.events.event_queue import EventQueue
|
|
18
18
|
from a2a.types import Message, TextPart
|
|
19
19
|
from a2a.utils import new_agent_text_message
|
|
20
|
-
from crewai import Task
|
|
20
|
+
from crewai import Task, LLM
|
|
21
21
|
from traia_iatp.mcp import MCPServerConfig, MCPAgentBuilder, run_with_mcp_tools, MCPServerInfo
|
|
22
22
|
|
|
23
23
|
# Import AgentOps for operation tracking
|
|
@@ -32,8 +32,17 @@ except ImportError:
|
|
|
32
32
|
def operation(func):
|
|
33
33
|
return func
|
|
34
34
|
|
|
35
|
+
|
|
36
|
+
DEFAULT_LLM = LLM(
|
|
37
|
+
model=os.getenv("LLM_MODEL", "gpt-4.1-nano"), # Using environment variable with fallback
|
|
38
|
+
temperature=os.getenv("LLM_MODEL_TEMPERATURE", 0.1),
|
|
39
|
+
api_key=os.getenv("OPENAI_API_KEY")
|
|
40
|
+
)
|
|
41
|
+
|
|
35
42
|
logger = logging.getLogger(__name__)
|
|
36
43
|
|
|
44
|
+
logger.info(f"Current LLM model used: {os.getenv("LLM_MODEL", "gpt-4.1-nano")}")
|
|
45
|
+
|
|
37
46
|
# Create a thread pool for CPU-bound CrewAI operations
|
|
38
47
|
executor = ThreadPoolExecutor(max_workers=10)
|
|
39
48
|
|
|
@@ -129,7 +138,8 @@ class {{ class_name }}AgentExecutor(AgentExecutor):
|
|
|
129
138
|
agent = MCPAgentBuilder.create_agent(
|
|
130
139
|
role=f"{{ agent_name }} Specialist",
|
|
131
140
|
goal=f"Process the request using {self.mcp_config.name} capabilities",
|
|
132
|
-
backstory=f"You are an expert at using {self.mcp_config.name}. {self.mcp_config.description}"
|
|
141
|
+
backstory=f"You are an expert at using {self.mcp_config.name}. {self.mcp_config.description}",
|
|
142
|
+
llm=DEFAULT_LLM
|
|
133
143
|
)
|
|
134
144
|
|
|
135
145
|
# Create a task
|
|
@@ -9,7 +9,10 @@ HOST=0.0.0.0
|
|
|
9
9
|
AGENTOPS_API_KEY=your-agentops-api-key-here
|
|
10
10
|
|
|
11
11
|
# Language Model Configuration
|
|
12
|
-
LLM_MODEL=
|
|
12
|
+
LLM_MODEL=your-llm-model-name
|
|
13
|
+
LLM_MODEL_TEMPERATURE=your-llm-model-temperature
|
|
14
|
+
EMBEDDINGS_OPENAI_MODEL_NAME=your-embedding-model
|
|
15
|
+
|
|
13
16
|
# You can also use other models:
|
|
14
17
|
# LLM_MODEL=vertex_ai/gemini-2.0-flash
|
|
15
18
|
# LLM_MODEL=anthropic/claude-4-sonnetf
|
|
@@ -5,18 +5,18 @@ description = "{{ agent_description }}"
|
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
7
7
|
dependencies = [
|
|
8
|
-
"crewai>=0.
|
|
9
|
-
"crewai-tools[mcp]>=0.
|
|
10
|
-
"agentops>=0.
|
|
8
|
+
"crewai>=0.203.1",
|
|
9
|
+
"crewai-tools[mcp]>=0.76.0",
|
|
10
|
+
"agentops>=0.4.21",
|
|
11
11
|
"a2a-sdk>=0.2.6",
|
|
12
|
-
"fastmcp>=2.
|
|
12
|
+
"fastmcp>=2.12.5",
|
|
13
13
|
"hypercorn>=0.17.3", # HTTP/2 support via h2 dependency
|
|
14
14
|
"httpx[http2]>=0.28.1", # HTTP/2 support with http2 extra
|
|
15
|
-
"starlette>=0.
|
|
16
|
-
"sse-starlette>=
|
|
17
|
-
"pydantic>=2.
|
|
18
|
-
"python-dotenv>=1.1.
|
|
19
|
-
"pymongo>=4.
|
|
15
|
+
"starlette>=0.48.0", # For SSE streaming support
|
|
16
|
+
"sse-starlette>=3.0.2", # Server-Sent Events support
|
|
17
|
+
"pydantic>=2.12.2",
|
|
18
|
+
"python-dotenv>=1.1.1",
|
|
19
|
+
"pymongo>=4.15.3", # Required for MCP registry
|
|
20
20
|
"traia-iatp", # Core IATP functionality - always use latest version
|
|
21
21
|
{% for dep in additional_dependencies %}
|
|
22
22
|
"{{ dep }}",
|
|
@@ -30,8 +30,7 @@ grpc = [
|
|
|
30
30
|
"grpcio-reflection>=1.71.0",
|
|
31
31
|
]
|
|
32
32
|
|
|
33
|
-
[
|
|
34
|
-
dev-dependencies = [
|
|
33
|
+
dev = [
|
|
35
34
|
"pytest>=7.0.0",
|
|
36
35
|
"pytest-asyncio>=0.21.0",
|
|
37
36
|
"black>=23.0.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: traia-iatp
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.13
|
|
4
4
|
Summary: Inter-Agent Transfer Protocol (IATP) - Enable AI Agents to utilize other AI Agents as tools
|
|
5
5
|
Project-URL: Documentation, https://pypi.org/project/traia-iatp
|
|
6
6
|
Project-URL: Source, https://github.com/Traia-IO/IATP
|
|
@@ -12,31 +12,35 @@ Description-Content-Type: text/markdown
|
|
|
12
12
|
License-File: LICENSE
|
|
13
13
|
Requires-Dist: a2a-sdk==0.2.6
|
|
14
14
|
Requires-Dist: aiohttp>=3.12.13
|
|
15
|
-
Requires-Dist: crewai>=0.
|
|
16
|
-
Requires-Dist: crewai-tools[mcp]>=0.
|
|
15
|
+
Requires-Dist: crewai>=0.203.1
|
|
16
|
+
Requires-Dist: crewai-tools[mcp]>=0.76.0
|
|
17
17
|
Requires-Dist: docker>=7.1.0
|
|
18
|
-
Requires-Dist: fastapi>=0.
|
|
19
|
-
Requires-Dist: fastmcp>=2.
|
|
20
|
-
Requires-Dist: httpx>=0.28.1
|
|
18
|
+
Requires-Dist: fastapi>=0.119.0
|
|
19
|
+
Requires-Dist: fastmcp>=2.12.5
|
|
20
|
+
Requires-Dist: httpx[http2]>=0.28.1
|
|
21
21
|
Requires-Dist: jinja2>=3.1.6
|
|
22
|
-
Requires-Dist: openai>=1.
|
|
23
|
-
Requires-Dist: pydantic>=2.
|
|
24
|
-
Requires-Dist: pymongo[aws]>=4.
|
|
25
|
-
Requires-Dist: python-dotenv>=1.1.
|
|
22
|
+
Requires-Dist: openai>=1.109.1
|
|
23
|
+
Requires-Dist: pydantic>=2.12.2
|
|
24
|
+
Requires-Dist: pymongo[aws]>=4.15.3
|
|
25
|
+
Requires-Dist: python-dotenv>=1.1.1
|
|
26
26
|
Requires-Dist: pytz>=2025.2
|
|
27
|
-
Requires-Dist: requests>=2.32.
|
|
28
|
-
Requires-Dist: rich>=
|
|
29
|
-
Requires-Dist: typer>=0.
|
|
30
|
-
Requires-Dist: uvicorn>=0.
|
|
31
|
-
Requires-Dist: agentops>=0.
|
|
32
|
-
Requires-Dist: dnspython>=2.
|
|
27
|
+
Requires-Dist: requests>=2.32.5
|
|
28
|
+
Requires-Dist: rich>=14.2.0
|
|
29
|
+
Requires-Dist: typer>=0.19.2
|
|
30
|
+
Requires-Dist: uvicorn>=0.37.0
|
|
31
|
+
Requires-Dist: agentops>=0.4.21
|
|
32
|
+
Requires-Dist: dnspython>=2.8.0
|
|
33
33
|
Provides-Extra: dev
|
|
34
|
-
Requires-Dist: pytest>=
|
|
34
|
+
Requires-Dist: pytest>=8.4.2; extra == "dev"
|
|
35
35
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
36
36
|
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
37
37
|
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
38
38
|
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
39
39
|
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
40
|
+
Provides-Extra: publish
|
|
41
|
+
Requires-Dist: wheel; extra == "publish"
|
|
42
|
+
Requires-Dist: twine; extra == "publish"
|
|
43
|
+
Requires-Dist: build; extra == "publish"
|
|
40
44
|
Dynamic: license-file
|
|
41
45
|
|
|
42
46
|
# Traia IATP
|
|
@@ -9,10 +9,10 @@ traia_iatp/client/crewai_a2a_tools.py,sha256=m989j13d8Ba1SDDNXuprBA0W7pjXvVApcCJ
|
|
|
9
9
|
traia_iatp/client/grpc_a2a_tools.py,sha256=pVt6UASXdt096ZNfcTqY0pjaTqLr-0Ptl8xd68rxRWQ,13003
|
|
10
10
|
traia_iatp/client/root_path_a2a_client.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
|
|
11
11
|
traia_iatp/core/__init__.py,sha256=SdGs25MkNWok77wRtbCJFGkD85QAmYUAB40Fn9mHeXk,755
|
|
12
|
-
traia_iatp/core/models.py,sha256=
|
|
12
|
+
traia_iatp/core/models.py,sha256=YLyVwwtfT8OwrFqmgsEMGYVbyoBgHm-VPYvt3VOcLhI,8393
|
|
13
13
|
traia_iatp/mcp/__init__.py,sha256=kb2bX9yMwatWBFb0xq-BeuDD_d7DLRt8huA32hDcnCo,427
|
|
14
14
|
traia_iatp/mcp/client.py,sha256=IMw_fO36GcAa92zHOkCuJJquG9untnkgX6LPOtrN1lU,7859
|
|
15
|
-
traia_iatp/mcp/mcp_agent_template.py,sha256=
|
|
15
|
+
traia_iatp/mcp/mcp_agent_template.py,sha256=0liaDYm2NXEubneE6bZfEgwJfUTpL_T0D-lsxpJgNYY,15072
|
|
16
16
|
traia_iatp/mcp/traia_mcp_adapter.py,sha256=0WIVERdWk2Bnx_mVwito66blT6gstI4RKiP_lP4VoZI,11945
|
|
17
17
|
traia_iatp/mcp/templates/Dockerfile.j2,sha256=bYCbpsawIO8WfGPjncvE8pZ6Dn9US6dsK61WdpW5DN4,1332
|
|
18
18
|
traia_iatp/mcp/templates/README.md.j2,sha256=xxdrFYcY8RmfKzSJs87PGSxRFjkGcrHzfY9a66wN_LI,5781
|
|
@@ -22,7 +22,7 @@ traia_iatp/mcp/templates/docker-compose.yml.j2,sha256=Zge8VYa629Av8E22asCV60jlrF
|
|
|
22
22
|
traia_iatp/mcp/templates/dockerignore.j2,sha256=EsXzYQ5Ku3NROEgmfv670VuSpla8_-tllblEE0Hp89Y,366
|
|
23
23
|
traia_iatp/mcp/templates/gitignore.j2,sha256=shz2n7MlRBOvwRm4leCjpxDi8r0bm8DJLAtvLcp6X_0,698
|
|
24
24
|
traia_iatp/mcp/templates/mcp_health_check.py.j2,sha256=s_7C1fUdApoto52HxX1BN2PNLaEnr00B9ZNw_bpcPDg,5234
|
|
25
|
-
traia_iatp/mcp/templates/pyproject.toml.j2,sha256=
|
|
25
|
+
traia_iatp/mcp/templates/pyproject.toml.j2,sha256=ZGUFtKN_c3OSaaw6lXekEBegkufkKxdW7tvGKCl6CGY,568
|
|
26
26
|
traia_iatp/mcp/templates/run_local_docker.sh.j2,sha256=n0dwabQMgQe1pDpqCZmZafVtebv97M2E21u5N8SQxoc,3233
|
|
27
27
|
traia_iatp/mcp/templates/server.py.j2,sha256=zty-7UGU8CgWSbbFj-3tuJfrGJI79pBBYhcXDzU5GZA,8169
|
|
28
28
|
traia_iatp/registry/__init__.py,sha256=YGFGRqgRp0f09ND-FWTG9GQNwxz-HpUBYbt_KhLP-ZY,662
|
|
@@ -49,14 +49,14 @@ traia_iatp/server/templates/README.md,sha256=wz1d0dhKvvHXyfTxM3QBDJJE-RdLN1yxCUQ
|
|
|
49
49
|
traia_iatp/server/templates/README.md.j2,sha256=yy7N99FQ2ZkS2I-O2_YO9_UmOP3mLGNI3vpKrIqjnig,10625
|
|
50
50
|
traia_iatp/server/templates/__init__.py,sha256=OfnDqxbgP51KEUSxFpfnePOF_72LlC00DOeR744ky4M,53
|
|
51
51
|
traia_iatp/server/templates/__main__.py.j2,sha256=fvVIrQR4zUGmdRv6i1p2QQET6nPntDAS7xZiJD1ZOGg,20756
|
|
52
|
-
traia_iatp/server/templates/agent.py.j2,sha256=
|
|
52
|
+
traia_iatp/server/templates/agent.py.j2,sha256=rRaVXsVZYuTdKkZ9mldiLWxu5KIfSpRpKIgX3oX7YVU,3712
|
|
53
53
|
traia_iatp/server/templates/agent_config.json.j2,sha256=YGikrYXcVKZfZJP9OnlS-GJXaGExlaRN2DB_Lo5Pr7k,797
|
|
54
|
-
traia_iatp/server/templates/agent_executor.py.j2,sha256=
|
|
54
|
+
traia_iatp/server/templates/agent_executor.py.j2,sha256=cTSU-rTRtUMPapy4NalQPwfGGaWIv4tLRPnS1C7cZSc,11533
|
|
55
55
|
traia_iatp/server/templates/docker-compose.yml.j2,sha256=3jRkkUU6gazKyVgelfQRf6x0KRbpXINEsVkBIgqrQbc,610
|
|
56
|
-
traia_iatp/server/templates/env.example.j2,sha256=
|
|
56
|
+
traia_iatp/server/templates/env.example.j2,sha256=7IVLLmk_VWN6jHd0MCeQlb_rg7eaZhpM6ruaavXTRFc,1993
|
|
57
57
|
traia_iatp/server/templates/gitignore.j2,sha256=rXu4kNnZUFgBDbLsburNohFVAjyE9xEeHbpEcqGGSB8,740
|
|
58
58
|
traia_iatp/server/templates/grpc_server.py.j2,sha256=GFZv0b146QthPDnBMEn2GpD8fRCfuCXzcq4RBEEGAac,7610
|
|
59
|
-
traia_iatp/server/templates/pyproject.toml.j2,sha256=
|
|
59
|
+
traia_iatp/server/templates/pyproject.toml.j2,sha256=pO3MYT6OXHrYXv6ARxHR7_bNs2PO3qEgsqxDddcWjWA,1811
|
|
60
60
|
traia_iatp/server/templates/run_local_docker.sh.j2,sha256=4h1GGtwM8gsSDbChblsea2muS0MYXZtJwY4swso1PyI,3495
|
|
61
61
|
traia_iatp/server/templates/server.py.j2,sha256=uHQfngwj2IDbEjczvsX2SnikYNAxT-yJEKbQl456gFs,6351
|
|
62
62
|
traia_iatp/special_agencies/__init__.py,sha256=9Uh0X8gjrAnl6yjmjGeCaxyJvB3HVwoOKhTc9ljmsr4,122
|
|
@@ -65,9 +65,9 @@ traia_iatp/utils/__init__.py,sha256=D739Fc3KWPlAaPZ-3XM7uRvBAA7V8b4t6PBYJvMSsig,
|
|
|
65
65
|
traia_iatp/utils/docker_utils.py,sha256=mPD09TPJKEe9SKjrR5E_o9z8xle-iCZq6JLzHZ6JXFk,8634
|
|
66
66
|
traia_iatp/utils/general.py,sha256=g6sRKzalBPwRWobBg3a7pz4eNIvvxv8RefoUNFdHm4o,1503
|
|
67
67
|
traia_iatp/utils/iatp_utils.py,sha256=RrGzk2ENvGIwuuMigOUrK5Yne0esl1r_K2P2iVygUgM,4680
|
|
68
|
-
traia_iatp-0.1.
|
|
69
|
-
traia_iatp-0.1.
|
|
70
|
-
traia_iatp-0.1.
|
|
71
|
-
traia_iatp-0.1.
|
|
72
|
-
traia_iatp-0.1.
|
|
73
|
-
traia_iatp-0.1.
|
|
68
|
+
traia_iatp-0.1.13.dist-info/licenses/LICENSE,sha256=R8vcu8GZdTTXF40sbOll11-FbarDm7_PiuaGzQp9whw,1065
|
|
69
|
+
traia_iatp-0.1.13.dist-info/METADATA,sha256=NMIELzsA3ZSlVfNJXv9e8z1QjA3SieHOxEL8skCs-AE,13412
|
|
70
|
+
traia_iatp-0.1.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
71
|
+
traia_iatp-0.1.13.dist-info/entry_points.txt,sha256=K4p9Z2lBdPEybzXfed3JbUtrVHDdg60CRnJ178df7K0,55
|
|
72
|
+
traia_iatp-0.1.13.dist-info/top_level.txt,sha256=FozpD3vmZ4WP01hjSDUt5ENn0ttnIxxm1tPrTiIsyzI,11
|
|
73
|
+
traia_iatp-0.1.13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|