camel-ai 0.2.51__py3-none-any.whl → 0.2.53__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 camel-ai might be problematic. Click here for more details.
- camel/__init__.py +1 -1
- camel/agents/__init__.py +2 -0
- camel/agents/chat_agent.py +20 -0
- camel/agents/mcp_agent.py +233 -0
- camel/embeddings/__init__.py +2 -0
- camel/embeddings/gemini_embedding.py +115 -0
- camel/embeddings/openai_embedding.py +11 -11
- camel/embeddings/together_embedding.py +7 -7
- camel/models/model_factory.py +6 -0
- camel/responses/agent_responses.py +1 -4
- camel/runtime/__init__.py +2 -0
- camel/runtime/daytona_runtime.py +248 -0
- camel/societies/role_playing.py +12 -0
- camel/toolkits/__init__.py +4 -0
- camel/toolkits/aci_toolkit.py +456 -0
- camel/toolkits/function_tool.py +5 -3
- camel/toolkits/klavis_toolkit.py +228 -0
- camel/toolkits/mcp_toolkit.py +63 -4
- camel/types/__init__.py +2 -0
- camel/types/enums.py +28 -0
- camel/utils/commons.py +2 -0
- camel/utils/mcp.py +63 -0
- {camel_ai-0.2.51.dist-info → camel_ai-0.2.53.dist-info}/METADATA +8 -1
- {camel_ai-0.2.51.dist-info → camel_ai-0.2.53.dist-info}/RECORD +26 -21
- {camel_ai-0.2.51.dist-info → camel_ai-0.2.53.dist-info}/WHEEL +0 -0
- {camel_ai-0.2.51.dist-info → camel_ai-0.2.53.dist-info}/licenses/LICENSE +0 -0
camel/toolkits/mcp_toolkit.py
CHANGED
|
@@ -60,6 +60,8 @@ class MCPClient(BaseToolkit):
|
|
|
60
60
|
timeout (Optional[float]): Connection timeout. (default: :obj:`'None'`)
|
|
61
61
|
headers (Dict[str, str]): Headers for the HTTP request.
|
|
62
62
|
(default: :obj:`'None'`)
|
|
63
|
+
strict (Optional[bool]): Whether to enforce strict mode for the
|
|
64
|
+
function call. (default: :obj:`False`)
|
|
63
65
|
"""
|
|
64
66
|
|
|
65
67
|
def __init__(
|
|
@@ -69,6 +71,7 @@ class MCPClient(BaseToolkit):
|
|
|
69
71
|
env: Optional[Dict[str, str]] = None,
|
|
70
72
|
timeout: Optional[float] = None,
|
|
71
73
|
headers: Optional[Dict[str, str]] = None,
|
|
74
|
+
strict: Optional[bool] = False,
|
|
72
75
|
):
|
|
73
76
|
from mcp import Tool
|
|
74
77
|
|
|
@@ -78,6 +81,7 @@ class MCPClient(BaseToolkit):
|
|
|
78
81
|
self.args = args or []
|
|
79
82
|
self.env = env or {}
|
|
80
83
|
self.headers = headers or {}
|
|
84
|
+
self.strict = strict
|
|
81
85
|
|
|
82
86
|
self._mcp_tools: List[Tool] = []
|
|
83
87
|
self._session: Optional['ClientSession'] = None
|
|
@@ -223,7 +227,7 @@ class MCPClient(BaseToolkit):
|
|
|
223
227
|
|
|
224
228
|
func_params.append(param_name)
|
|
225
229
|
|
|
226
|
-
async def dynamic_function(**kwargs):
|
|
230
|
+
async def dynamic_function(**kwargs) -> str:
|
|
227
231
|
r"""Auto-generated function for MCP Tool interaction.
|
|
228
232
|
|
|
229
233
|
Args:
|
|
@@ -317,13 +321,15 @@ class MCPClient(BaseToolkit):
|
|
|
317
321
|
"additionalProperties": False,
|
|
318
322
|
}
|
|
319
323
|
|
|
324
|
+
# Because certain parameters in MCP may include keywords that are not
|
|
325
|
+
# supported by OpenAI, it is essential to set "strict" to False.
|
|
320
326
|
return {
|
|
321
327
|
"type": "function",
|
|
322
328
|
"function": {
|
|
323
329
|
"name": mcp_tool.name,
|
|
324
330
|
"description": mcp_tool.description
|
|
325
331
|
or "No description provided.",
|
|
326
|
-
"strict":
|
|
332
|
+
"strict": self.strict,
|
|
327
333
|
"parameters": parameters,
|
|
328
334
|
},
|
|
329
335
|
}
|
|
@@ -345,6 +351,39 @@ class MCPClient(BaseToolkit):
|
|
|
345
351
|
for mcp_tool in self._mcp_tools
|
|
346
352
|
]
|
|
347
353
|
|
|
354
|
+
def get_text_tools(self) -> str:
|
|
355
|
+
r"""Returns a string containing the descriptions of the tools
|
|
356
|
+
in the toolkit.
|
|
357
|
+
|
|
358
|
+
Returns:
|
|
359
|
+
str: A string containing the descriptions of the tools
|
|
360
|
+
in the toolkit.
|
|
361
|
+
"""
|
|
362
|
+
return "\n".join(
|
|
363
|
+
f"tool_name: {tool.name}\n"
|
|
364
|
+
+ f"description: {tool.description or 'No description'}\n"
|
|
365
|
+
+ f"input Schema: {tool.inputSchema}\n"
|
|
366
|
+
for tool in self._mcp_tools
|
|
367
|
+
)
|
|
368
|
+
|
|
369
|
+
async def call_tool(
|
|
370
|
+
self, tool_name: str, tool_args: Dict[str, Any]
|
|
371
|
+
) -> Any:
|
|
372
|
+
r"""Calls the specified tool with the provided arguments.
|
|
373
|
+
|
|
374
|
+
Args:
|
|
375
|
+
tool_name (str): Name of the tool to call.
|
|
376
|
+
tool_args (Dict[str, Any]): Arguments to pass to the tool
|
|
377
|
+
(default: :obj:`{}`).
|
|
378
|
+
|
|
379
|
+
Returns:
|
|
380
|
+
Any: The result of the tool call.
|
|
381
|
+
"""
|
|
382
|
+
if self._session is None:
|
|
383
|
+
raise RuntimeError("Session is not initialized.")
|
|
384
|
+
|
|
385
|
+
return await self._session.call_tool(tool_name, tool_args)
|
|
386
|
+
|
|
348
387
|
@property
|
|
349
388
|
def session(self) -> Optional["ClientSession"]:
|
|
350
389
|
return self._session
|
|
@@ -363,6 +402,8 @@ class MCPToolkit(BaseToolkit):
|
|
|
363
402
|
instances to manage.
|
|
364
403
|
config_path (Optional[str]): Path to a JSON configuration file
|
|
365
404
|
defining MCP servers.
|
|
405
|
+
strict (Optional[bool]): Whether to enforce strict mode for the
|
|
406
|
+
function call. (default: :obj:`False`)
|
|
366
407
|
|
|
367
408
|
Note:
|
|
368
409
|
Either `servers` or `config_path` must be provided. If both are
|
|
@@ -397,6 +438,7 @@ class MCPToolkit(BaseToolkit):
|
|
|
397
438
|
self,
|
|
398
439
|
servers: Optional[List[MCPClient]] = None,
|
|
399
440
|
config_path: Optional[str] = None,
|
|
441
|
+
strict: Optional[bool] = False,
|
|
400
442
|
):
|
|
401
443
|
super().__init__()
|
|
402
444
|
|
|
@@ -409,16 +451,22 @@ class MCPToolkit(BaseToolkit):
|
|
|
409
451
|
self.servers: List[MCPClient] = servers or []
|
|
410
452
|
|
|
411
453
|
if config_path:
|
|
412
|
-
self.servers.extend(
|
|
454
|
+
self.servers.extend(
|
|
455
|
+
self._load_servers_from_config(config_path, strict)
|
|
456
|
+
)
|
|
413
457
|
|
|
414
458
|
self._exit_stack = AsyncExitStack()
|
|
415
459
|
self._connected = False
|
|
416
460
|
|
|
417
|
-
def _load_servers_from_config(
|
|
461
|
+
def _load_servers_from_config(
|
|
462
|
+
self, config_path: str, strict: Optional[bool] = False
|
|
463
|
+
) -> List[MCPClient]:
|
|
418
464
|
r"""Loads MCP server configurations from a JSON file.
|
|
419
465
|
|
|
420
466
|
Args:
|
|
421
467
|
config_path (str): Path to the JSON configuration file.
|
|
468
|
+
strict (bool): Whether to enforce strict mode for the
|
|
469
|
+
function call. (default: :obj:`False`)
|
|
422
470
|
|
|
423
471
|
Returns:
|
|
424
472
|
List[MCPClient]: List of configured MCPClient instances.
|
|
@@ -462,6 +510,7 @@ class MCPToolkit(BaseToolkit):
|
|
|
462
510
|
args=cfg.get("args", []),
|
|
463
511
|
env={**os.environ, **cfg.get("env", {})},
|
|
464
512
|
timeout=cfg.get("timeout", None),
|
|
513
|
+
strict=strict,
|
|
465
514
|
)
|
|
466
515
|
all_servers.append(server)
|
|
467
516
|
|
|
@@ -532,3 +581,13 @@ class MCPToolkit(BaseToolkit):
|
|
|
532
581
|
for server in self.servers:
|
|
533
582
|
all_tools.extend(server.get_tools())
|
|
534
583
|
return all_tools
|
|
584
|
+
|
|
585
|
+
def get_text_tools(self) -> str:
|
|
586
|
+
r"""Returns a string containing the descriptions of the tools
|
|
587
|
+
in the toolkit.
|
|
588
|
+
|
|
589
|
+
Returns:
|
|
590
|
+
str: A string containing the descriptions of the tools
|
|
591
|
+
in the toolkit.
|
|
592
|
+
"""
|
|
593
|
+
return "\n".join(server.get_text_tools() for server in self.servers)
|
camel/types/__init__.py
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
from .enums import (
|
|
15
15
|
AudioModelType,
|
|
16
16
|
EmbeddingModelType,
|
|
17
|
+
GeminiEmbeddingTaskType,
|
|
17
18
|
HuggingFaceRepoType,
|
|
18
19
|
ModelPlatformType,
|
|
19
20
|
ModelType,
|
|
@@ -75,6 +76,7 @@ __all__ = [
|
|
|
75
76
|
'UnifiedModelType',
|
|
76
77
|
'ParsedChatCompletion',
|
|
77
78
|
'HuggingFaceRepoType',
|
|
79
|
+
'GeminiEmbeddingTaskType',
|
|
78
80
|
'NOT_GIVEN',
|
|
79
81
|
'NotGiven',
|
|
80
82
|
]
|
camel/types/enums.py
CHANGED
|
@@ -1202,6 +1202,8 @@ class EmbeddingModelType(Enum):
|
|
|
1202
1202
|
|
|
1203
1203
|
MISTRAL_EMBED = "mistral-embed"
|
|
1204
1204
|
|
|
1205
|
+
GEMINI_EMBEDDING_EXP = "gemini-embedding-exp-03-07"
|
|
1206
|
+
|
|
1205
1207
|
@property
|
|
1206
1208
|
def is_openai(self) -> bool:
|
|
1207
1209
|
r"""Returns whether this type of models is an OpenAI-released model."""
|
|
@@ -1230,6 +1232,13 @@ class EmbeddingModelType(Enum):
|
|
|
1230
1232
|
EmbeddingModelType.MISTRAL_EMBED,
|
|
1231
1233
|
}
|
|
1232
1234
|
|
|
1235
|
+
@property
|
|
1236
|
+
def is_gemini(self) -> bool:
|
|
1237
|
+
r"""Returns whether this type of models is an Gemini-released model."""
|
|
1238
|
+
return self in {
|
|
1239
|
+
EmbeddingModelType.GEMINI_EMBEDDING_EXP,
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1233
1242
|
@property
|
|
1234
1243
|
def output_dim(self) -> int:
|
|
1235
1244
|
if self in {
|
|
@@ -1253,10 +1262,29 @@ class EmbeddingModelType(Enum):
|
|
|
1253
1262
|
return 3072
|
|
1254
1263
|
elif self is EmbeddingModelType.MISTRAL_EMBED:
|
|
1255
1264
|
return 1024
|
|
1265
|
+
elif self is EmbeddingModelType.GEMINI_EMBEDDING_EXP:
|
|
1266
|
+
return 3072
|
|
1256
1267
|
else:
|
|
1257
1268
|
raise ValueError(f"Unknown model type {self}.")
|
|
1258
1269
|
|
|
1259
1270
|
|
|
1271
|
+
class GeminiEmbeddingTaskType(str, Enum):
|
|
1272
|
+
r"""Task types for Gemini embedding models.
|
|
1273
|
+
|
|
1274
|
+
For more information, please refer to:
|
|
1275
|
+
https://ai.google.dev/gemini-api/docs/embeddings#task-types
|
|
1276
|
+
"""
|
|
1277
|
+
|
|
1278
|
+
SEMANTIC_SIMILARITY = "SEMANTIC_SIMILARITY"
|
|
1279
|
+
CLASSIFICATION = "CLASSIFICATION"
|
|
1280
|
+
CLUSTERING = "CLUSTERING"
|
|
1281
|
+
RETRIEVAL_DOCUMENT = "RETRIEVAL_DOCUMENT"
|
|
1282
|
+
RETRIEVAL_QUERY = "RETRIEVAL_QUERY"
|
|
1283
|
+
QUESTION_ANSWERING = "QUESTION_ANSWERING"
|
|
1284
|
+
FACT_VERIFICATION = "FACT_VERIFICATION"
|
|
1285
|
+
CODE_RETRIEVAL_QUERY = "CODE_RETRIEVAL_QUERY"
|
|
1286
|
+
|
|
1287
|
+
|
|
1260
1288
|
class TaskType(Enum):
|
|
1261
1289
|
AI_SOCIETY = "ai_society"
|
|
1262
1290
|
CODE = "code"
|
camel/utils/commons.py
CHANGED
|
@@ -352,6 +352,8 @@ def api_keys_required(
|
|
|
352
352
|
key_way = "https://platform.lingyiwanwu.com/docs"
|
|
353
353
|
elif env_var_name == 'ZHIPUAI_API_KEY':
|
|
354
354
|
key_way = "https://www.zhipuai.cn/"
|
|
355
|
+
elif env_var_name == 'KLAVIS_API_KEY':
|
|
356
|
+
key_way = "https://www.klavis.ai/docs"
|
|
355
357
|
|
|
356
358
|
if missing_keys:
|
|
357
359
|
raise ValueError(
|
camel/utils/mcp.py
CHANGED
|
@@ -17,6 +17,42 @@ from typing import Any, Callable, Optional
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class MCPServer:
|
|
20
|
+
r"""Decorator class for registering functions of a class as tools in an MCP
|
|
21
|
+
(Model Context Protocol) server.
|
|
22
|
+
|
|
23
|
+
This class is typically used to wrap a toolkit or service class and
|
|
24
|
+
automatically register specified methods (or methods derived from
|
|
25
|
+
`BaseToolkit`) with a FastMCP server.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
function_names (Optional[list[str]]): A list of method names to expose
|
|
29
|
+
via the MCP server. If not provided and the class is a subclass of
|
|
30
|
+
`BaseToolkit`, method names will be inferred from the tools
|
|
31
|
+
returned by `get_tools()`.
|
|
32
|
+
server_name (Optional[str]): A name for the MCP server. If not
|
|
33
|
+
provided, the class name of the decorated object is used.
|
|
34
|
+
|
|
35
|
+
Example:
|
|
36
|
+
```
|
|
37
|
+
@MCPServer(function_names=["run", "status"])
|
|
38
|
+
class MyTool:
|
|
39
|
+
def run(self): ...
|
|
40
|
+
def status(self): ...
|
|
41
|
+
```
|
|
42
|
+
Or, with a class inheriting from BaseToolkit (no need to specify
|
|
43
|
+
`function_names`):
|
|
44
|
+
```
|
|
45
|
+
@MCPServer()
|
|
46
|
+
class MyToolkit(BaseToolkit):
|
|
47
|
+
...
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Raises:
|
|
51
|
+
ValueError: If no function names are provided and the class does not
|
|
52
|
+
inherit from BaseToolkit, or if any specified method is not found
|
|
53
|
+
or not callable.
|
|
54
|
+
"""
|
|
55
|
+
|
|
20
56
|
def __init__(
|
|
21
57
|
self,
|
|
22
58
|
function_names: Optional[list[str]] = None,
|
|
@@ -26,6 +62,19 @@ class MCPServer:
|
|
|
26
62
|
self.server_name = server_name
|
|
27
63
|
|
|
28
64
|
def make_wrapper(self, func: Callable[..., Any]) -> Callable[..., Any]:
|
|
65
|
+
r"""Wraps a function (sync or async) to preserve its signature and
|
|
66
|
+
metadata.
|
|
67
|
+
|
|
68
|
+
This is used to ensure the MCP server can correctly call and introspect
|
|
69
|
+
the method.
|
|
70
|
+
|
|
71
|
+
Args:
|
|
72
|
+
func (Callable[..., Any]): The function to wrap.
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
Callable[..., Any]: The wrapped function, with preserved signature
|
|
76
|
+
and async support.
|
|
77
|
+
"""
|
|
29
78
|
if inspect.iscoroutinefunction(func):
|
|
30
79
|
|
|
31
80
|
@functools.wraps(func)
|
|
@@ -41,6 +90,20 @@ class MCPServer:
|
|
|
41
90
|
return wrapper
|
|
42
91
|
|
|
43
92
|
def __call__(self, cls):
|
|
93
|
+
r"""Decorates a class by injecting an MCP server instance and
|
|
94
|
+
registering specified methods.
|
|
95
|
+
|
|
96
|
+
Args:
|
|
97
|
+
cls (type): The class being decorated.
|
|
98
|
+
|
|
99
|
+
Returns:
|
|
100
|
+
type: The modified class with MCP integration.
|
|
101
|
+
|
|
102
|
+
Raises:
|
|
103
|
+
ValueError: If function names are missing and the class is not a
|
|
104
|
+
`BaseToolkit` subclass,
|
|
105
|
+
or if a specified method cannot be found or is not callable.
|
|
106
|
+
"""
|
|
44
107
|
from mcp.server.fastmcp import FastMCP
|
|
45
108
|
|
|
46
109
|
from camel.toolkits.base import BaseToolkit
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: camel-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.53
|
|
4
4
|
Summary: Communicative Agents for AI Society Study
|
|
5
5
|
Project-URL: Homepage, https://www.camel-ai.org/
|
|
6
6
|
Project-URL: Repository, https://github.com/camel-ai/camel
|
|
@@ -21,6 +21,7 @@ Requires-Dist: pydantic>=2.10.6
|
|
|
21
21
|
Requires-Dist: tiktoken<0.8,>=0.7.0
|
|
22
22
|
Provides-Extra: all
|
|
23
23
|
Requires-Dist: accelerate<0.27,>=0.26.0; extra == 'all'
|
|
24
|
+
Requires-Dist: aci-sdk>=1.0.0b1; extra == 'all'
|
|
24
25
|
Requires-Dist: agentops<0.4,>=0.3.21; extra == 'all'
|
|
25
26
|
Requires-Dist: aiosqlite<0.21,>=0.20.0; extra == 'all'
|
|
26
27
|
Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'all'
|
|
@@ -36,6 +37,7 @@ Requires-Dist: dappier<0.4,>=0.3.3; extra == 'all'
|
|
|
36
37
|
Requires-Dist: datacommons-pandas<0.0.4,>=0.0.3; extra == 'all'
|
|
37
38
|
Requires-Dist: datacommons<2,>=1.4.3; extra == 'all'
|
|
38
39
|
Requires-Dist: datasets<4,>=3; extra == 'all'
|
|
40
|
+
Requires-Dist: daytona-sdk==0.14.0; extra == 'all'
|
|
39
41
|
Requires-Dist: diffusers<0.26,>=0.25.0; extra == 'all'
|
|
40
42
|
Requires-Dist: discord-py<3,>=2.3.2; extra == 'all'
|
|
41
43
|
Requires-Dist: docker<8,>=7.1.0; extra == 'all'
|
|
@@ -53,6 +55,7 @@ Requires-Dist: google-api-python-client==2.166.0; extra == 'all'
|
|
|
53
55
|
Requires-Dist: google-auth-httplib2==0.2.0; extra == 'all'
|
|
54
56
|
Requires-Dist: google-auth-oauthlib==1.2.1; extra == 'all'
|
|
55
57
|
Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'all'
|
|
58
|
+
Requires-Dist: google-genai>=1.13.0; extra == 'all'
|
|
56
59
|
Requires-Dist: googlemaps<5,>=4.10.0; extra == 'all'
|
|
57
60
|
Requires-Dist: gradio<4,>=3; extra == 'all'
|
|
58
61
|
Requires-Dist: html2text>=2024.2.26; extra == 'all'
|
|
@@ -169,7 +172,9 @@ Requires-Dist: types-setuptools<70,>=69.2.0; extra == 'dev'
|
|
|
169
172
|
Requires-Dist: types-tqdm<5,>=4.66.0; extra == 'dev'
|
|
170
173
|
Requires-Dist: uv==0.6.5; extra == 'dev'
|
|
171
174
|
Provides-Extra: dev-tools
|
|
175
|
+
Requires-Dist: aci-sdk>=1.0.0b1; extra == 'dev-tools'
|
|
172
176
|
Requires-Dist: agentops<0.4,>=0.3.21; extra == 'dev-tools'
|
|
177
|
+
Requires-Dist: daytona-sdk==0.14.0; extra == 'dev-tools'
|
|
173
178
|
Requires-Dist: docker<8,>=7.1.0; extra == 'dev-tools'
|
|
174
179
|
Requires-Dist: e2b-code-interpreter<2,>=1.0.3; extra == 'dev-tools'
|
|
175
180
|
Requires-Dist: ipykernel<7,>=6.0.0; extra == 'dev-tools'
|
|
@@ -225,6 +230,7 @@ Requires-Dist: litellm<2,>=1.38.1; extra == 'model-platforms'
|
|
|
225
230
|
Requires-Dist: mistralai<2,>=1.1.0; extra == 'model-platforms'
|
|
226
231
|
Requires-Dist: reka-api<4,>=3.0.8; extra == 'model-platforms'
|
|
227
232
|
Provides-Extra: owl
|
|
233
|
+
Requires-Dist: aci-sdk>=1.0.0b1; extra == 'owl'
|
|
228
234
|
Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'owl'
|
|
229
235
|
Requires-Dist: beautifulsoup4<5,>=4; extra == 'owl'
|
|
230
236
|
Requires-Dist: chunkr-ai>=0.0.41; extra == 'owl'
|
|
@@ -273,6 +279,7 @@ Requires-Dist: yt-dlp<2025,>=2024.11.4; extra == 'owl'
|
|
|
273
279
|
Provides-Extra: rag
|
|
274
280
|
Requires-Dist: cohere<6,>=5.11.0; extra == 'rag'
|
|
275
281
|
Requires-Dist: crawl4ai>=0.3.745; extra == 'rag'
|
|
282
|
+
Requires-Dist: google-genai>=1.13.0; extra == 'rag'
|
|
276
283
|
Requires-Dist: nebula3-python==3.8.2; extra == 'rag'
|
|
277
284
|
Requires-Dist: neo4j<6,>=5.18.0; extra == 'rag'
|
|
278
285
|
Requires-Dist: numpy~=1.26; extra == 'rag'
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
camel/__init__.py,sha256=
|
|
1
|
+
camel/__init__.py,sha256=JXKNO4YyVylDjRFAu4BWvZAhTxJZjKDMr3vNBe4yIws,912
|
|
2
2
|
camel/generators.py,sha256=JRqj9_m1PF4qT6UtybzTQ-KBT9MJQt18OAAYvQ_fr2o,13844
|
|
3
3
|
camel/human.py,sha256=9X09UmxI2JqQnhrFfnZ3B9EzFmVfdSWQcjLWTIXKXe0,4962
|
|
4
4
|
camel/logger.py,sha256=rZVeOVYuQ9RYJ5Tqyv0usqy0g4zaVEq4qSfZ9nd2640,5755
|
|
5
5
|
camel/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
camel/agents/__init__.py,sha256=
|
|
6
|
+
camel/agents/__init__.py,sha256=64weKqdvmpZcGWyVkO-OKASAmVUdrQjv60JApgPk_SA,1644
|
|
7
7
|
camel/agents/_types.py,sha256=ryPRmEXnpNtbFT23GoAcwK-zxWWsIOqYu64mxMx_PhI,1430
|
|
8
8
|
camel/agents/_utils.py,sha256=AR7Qqgbkmn4X2edYUQf1rdksGUyV5hm3iK1z-Dn0Mcg,6266
|
|
9
9
|
camel/agents/base.py,sha256=c4bJYL3G3Z41SaFdMPMn8ZjLdFiFaVOFO6EQIfuCVR8,1124
|
|
10
|
-
camel/agents/chat_agent.py,sha256=
|
|
10
|
+
camel/agents/chat_agent.py,sha256=DTP9-tFryDu4ezbrVUS-H671ccBXZa4Tz7KxARawtyw,58962
|
|
11
11
|
camel/agents/critic_agent.py,sha256=qFVlHlQo0CVgmPWfWYLT8_oP_KyzCLFsQw_nN_vu5Bs,7487
|
|
12
12
|
camel/agents/deductive_reasoner_agent.py,sha256=6BZGaq1hR6hKJuQtOfoYQnk_AkZpw_Mr7mUy2MspQgs,13540
|
|
13
13
|
camel/agents/embodied_agent.py,sha256=XBxBu5ZMmSJ4B2U3Z7SMwvLlgp6yNpaBe8HNQmY9CZA,7536
|
|
14
14
|
camel/agents/knowledge_graph_agent.py,sha256=7Tchhyvm1s8tQ3at7iGKZt70xWZllRXu2vwUFR37p10,9681
|
|
15
|
+
camel/agents/mcp_agent.py,sha256=W8-om91DjGbcWyjuvns6st8h6T2HGf06tLg7OLzAUf0,7838
|
|
15
16
|
camel/agents/multi_hop_generator_agent.py,sha256=aYsZNsEFHxIq8_wDN8lZRkvRbfhlOYGBKezWr87y8Bs,4325
|
|
16
17
|
camel/agents/programmed_agent_instruction.py,sha256=99fLe41che3X6wPpNPJXRwl4If6EoQqQVWIoT3DKE1s,7124
|
|
17
18
|
camel/agents/repo_agent.py,sha256=ZzZ9zvh0vgdJv1KNY3GEaEPDdDxxXrjUZxjjHjVEWtE,22187
|
|
@@ -101,15 +102,16 @@ camel/datasets/few_shot_generator.py,sha256=HCXaJ7b5-W72deC662TKiNUtzzHKJ60dFyZ9
|
|
|
101
102
|
camel/datasets/models.py,sha256=0RDZfGT-x2MGaJg6qMufiY5cO-V7Lg0ckDSMYjCUQpo,2230
|
|
102
103
|
camel/datasets/self_instruct_generator.py,sha256=9FK-S7N7e-PR5rABj59BCNmUZCd8fS72La612FK0AEM,15837
|
|
103
104
|
camel/datasets/static_dataset.py,sha256=jPFwR0Kk6LmPFGKFm8SGhZvdee9293gGJBoqucCHdE0,14272
|
|
104
|
-
camel/embeddings/__init__.py,sha256=
|
|
105
|
+
camel/embeddings/__init__.py,sha256=nLFckLBkHXb6HolqPcIssQYO89di0KOeinT_t0S8V9g,1473
|
|
105
106
|
camel/embeddings/azure_embedding.py,sha256=ClMu3ko1PnkNvWPSWILwCNUnxhzUL7UJHv2sB-OptuE,4233
|
|
106
107
|
camel/embeddings/base.py,sha256=mxqFkWh2AfbxuVKPOqVx16fCznmuSh9QXGjaEeZHvoY,2190
|
|
108
|
+
camel/embeddings/gemini_embedding.py,sha256=5g8QvIPZuE1ZsLwr1VGRyQYYaiBmOpN3bHFq9TksDAo,4056
|
|
107
109
|
camel/embeddings/jina_embedding.py,sha256=6aakojtsJ6KLp3nqYLhEOtoFm2shoXlRzxb1YYN_uwo,6623
|
|
108
110
|
camel/embeddings/mistral_embedding.py,sha256=JaHjcHrc4U216QfGA4NxOSLrgYB9lM19VR2mIMAkuvk,3287
|
|
109
111
|
camel/embeddings/openai_compatible_embedding.py,sha256=3hzMC-OiwP-xZnzKXTyYwkuuqgtWdiEfDaVNGf5FyKI,3471
|
|
110
|
-
camel/embeddings/openai_embedding.py,sha256=
|
|
112
|
+
camel/embeddings/openai_embedding.py,sha256=zix0O8KdbiVarol4hktKi-0I060epsnj8qAE4kwx3nc,3952
|
|
111
113
|
camel/embeddings/sentence_transformers_embeddings.py,sha256=E7a8lN50CtDBsFO-NOFQ6qfCnbH41O0_kTTg7dG3sOo,2724
|
|
112
|
-
camel/embeddings/together_embedding.py,sha256=
|
|
114
|
+
camel/embeddings/together_embedding.py,sha256=Nl7uyk3pxyI4-l147LEkc1zj5O-H17RbJtb8pYb2K7Q,4765
|
|
113
115
|
camel/embeddings/vlm_embedding.py,sha256=HZFdcz1YzkFPzMj45_jaCVmDQJyccoXN561aLWlrYmo,5497
|
|
114
116
|
camel/environments/__init__.py,sha256=fwk74TJO5OaOhL5Pmiz6s6h77B_-DGav5m_HbfS1oUQ,1053
|
|
115
117
|
camel/environments/models.py,sha256=jVcCyU7xObKoWPnkshmPqyyKi3AOiMVVtUZA-tWEYUU,4194
|
|
@@ -175,7 +177,7 @@ camel/models/internlm_model.py,sha256=l7WjJ7JISCCqkezhEXzmjj_Mvhqhxxhsg4NuenP7w9
|
|
|
175
177
|
camel/models/litellm_model.py,sha256=rlSt3EnBAAYyoIxq0_XTuRmRnc4RWvD2Z14yIrI_7uw,5942
|
|
176
178
|
camel/models/lmstudio_model.py,sha256=_Lnv0e2ichks_MrNJGNIawEtGtP7T_xX8v0bFNNeWes,3641
|
|
177
179
|
camel/models/mistral_model.py,sha256=5FXI8wBIc_xU50NOJZh3gtn91ZNOlPVqKfGm-4aiRYQ,12179
|
|
178
|
-
camel/models/model_factory.py,sha256=
|
|
180
|
+
camel/models/model_factory.py,sha256=dS5K44jAa1atbicYwKfNFeSVGlgR97rNTQ74Gm_GMOE,12700
|
|
179
181
|
camel/models/model_manager.py,sha256=gfpL-WUxuTXgNeCkIVg8Y0zRvxMqRLX8JGt0XEAPQ8Y,9214
|
|
180
182
|
camel/models/modelscope_model.py,sha256=aI7i50DSIE6MO2U_WvULan6Sk4b5d7iZoEHQaARo4FA,10487
|
|
181
183
|
camel/models/moonshot_model.py,sha256=yeD2jrfQpFaWJHVe1s1KrI6aHQVzKRcBDt9C2Qo4nU8,4305
|
|
@@ -227,7 +229,7 @@ camel/prompts/task_prompt_template.py,sha256=clqOHGwd92nWEp1zNMucuJcftRO-p28l48n
|
|
|
227
229
|
camel/prompts/translation.py,sha256=xvQHiCv-50G92oIb_rv-xZSzX7OnhAZR2cwbWuQDKZc,1896
|
|
228
230
|
camel/prompts/video_description_prompt.py,sha256=t-5B_VlTMEjEoRgziixcZLfxcZR2xu7ttZR4kCtTifk,1554
|
|
229
231
|
camel/responses/__init__.py,sha256=8QQ0T0NH16825WYk6S3dCSWsz8hqLEfdPtVHxwNsCRk,789
|
|
230
|
-
camel/responses/agent_responses.py,sha256=
|
|
232
|
+
camel/responses/agent_responses.py,sha256=bDK6if8u-CNBk91yAIHKFcppdFYkihRyJXgXVdg2UcA,1645
|
|
231
233
|
camel/retrievers/__init__.py,sha256=MkuWD18uPLg78KPugd8ER8FOE4w0GC6UuHyFaqGhu6Y,1140
|
|
232
234
|
camel/retrievers/auto_retriever.py,sha256=AkPooLvYlWQQaLfMj4W21FIHdVWK7lbYcm2CeX--ZPg,10439
|
|
233
235
|
camel/retrievers/base.py,sha256=Sx66VHuNOJE31u59DX5XBwota4XqubeVm0feqLV7i28,2640
|
|
@@ -235,10 +237,11 @@ camel/retrievers/bm25_retriever.py,sha256=feQgn3dwnbQG8H7KSbFzjaFAw3KtKObfoyA6gm
|
|
|
235
237
|
camel/retrievers/cohere_rerank_retriever.py,sha256=tzMS3HG4wD3gbIAVcHsC5fTbFxuiNrT4qJ10oJMJ0BA,4032
|
|
236
238
|
camel/retrievers/hybrid_retrival.py,sha256=2ySeXnLunoBHarqssijjxn7bAQGypAXX6QdzxYstreM,9466
|
|
237
239
|
camel/retrievers/vector_retriever.py,sha256=Fp6k7FkoeUXLiUokqsMIO74Dh2mJcmJP2TrCP-6Ekcc,11051
|
|
238
|
-
camel/runtime/__init__.py,sha256=
|
|
240
|
+
camel/runtime/__init__.py,sha256=bFbqDIST69V6LC_Oe5YBz-8qlUaJt4zWGFFT0ctiMLI,1273
|
|
239
241
|
camel/runtime/api.py,sha256=JfkHqQ_Xs3ZNl4TXC_obV3Ymi21ltP1LAkXzBA3H_Lo,3227
|
|
240
242
|
camel/runtime/base.py,sha256=KKBLO6PwWEWBXbYaVtO9JXqBT8110iYpMhgNSIxQvYQ,1512
|
|
241
243
|
camel/runtime/configs.py,sha256=7swJ6shD5CAnQj16D_j1BWJjRDHLue8_BJcQ1-YiKJI,2431
|
|
244
|
+
camel/runtime/daytona_runtime.py,sha256=bhQyn1ZRNcDg-gDWOzjGszMl1keL90xnvLZ-EH--DaU,9165
|
|
242
245
|
camel/runtime/docker_runtime.py,sha256=Q1eN4rWxDB4PF_G7nq64Rk7xhRZgAhNqmlxsu6YMdCg,13578
|
|
243
246
|
camel/runtime/llm_guard_runtime.py,sha256=n8MImZsYLXCfr6LG6BFvlC75Al16GMJMvGp4vFsob6E,8101
|
|
244
247
|
camel/runtime/remote_http_runtime.py,sha256=Emgz2xz4vbwCvErDk6Ni25aDA3EBXoPOQ7U70AgVg0w,6669
|
|
@@ -252,7 +255,7 @@ camel/schemas/openai_converter.py,sha256=SEnYsYcboZgVmjcC1YP5xke3c0MYPESPRmYQWsD
|
|
|
252
255
|
camel/schemas/outlines_converter.py,sha256=OYKPR1fNyrYs9eh5RiXEAccMbnRc9WTwSVJYbh9HkKE,8738
|
|
253
256
|
camel/societies/__init__.py,sha256=NOHjtlsY-gV9UCF2xXgcbG-xXyuigmbwbpLpNsDgEJ4,826
|
|
254
257
|
camel/societies/babyagi_playing.py,sha256=KbTdpHfZ2V8AripVck0bNTOyF-RSaMPCRARz3DvzWfQ,11855
|
|
255
|
-
camel/societies/role_playing.py,sha256=
|
|
258
|
+
camel/societies/role_playing.py,sha256=e4c-mRj---VmdNMD1M9GDBCtAe_w2HWYFYR8aeIXws4,29553
|
|
256
259
|
camel/societies/workforce/__init__.py,sha256=bkTI-PE-MSK9AQ2V2gR6cR2WY-R7Jqy_NmXRtAoqo8o,920
|
|
257
260
|
camel/societies/workforce/base.py,sha256=4uSTmBQsWk_UX1xUrEbjo0X7OuYRbGWoroTV71Tvg8U,1947
|
|
258
261
|
camel/societies/workforce/prompts.py,sha256=4OGp-1-XFYIZ8ZERubSsG-hwXti8fhjtwc3n5-WEgsA,7821
|
|
@@ -292,7 +295,8 @@ camel/terminators/__init__.py,sha256=t8uqrkUnXEOYMXQDgaBkMFJ0EXFKI0kmx4cUimli3Ls
|
|
|
292
295
|
camel/terminators/base.py,sha256=xmJzERX7GdSXcxZjAHHODa0rOxRChMSRboDCNHWSscs,1511
|
|
293
296
|
camel/terminators/response_terminator.py,sha256=n3G5KP6Oj7-7WlRN0yFcrtLpqAJKaKS0bmhrWlFfCgQ,4982
|
|
294
297
|
camel/terminators/token_limit_terminator.py,sha256=YWv6ZR8R9yI2Qnf_3xES5bEE_O5bb2CxQ0EUXfMh34c,2118
|
|
295
|
-
camel/toolkits/__init__.py,sha256=
|
|
298
|
+
camel/toolkits/__init__.py,sha256=Vv5yd6_14j6lMhb8XF9R5GBieeLyheM683uVemJaIH4,4483
|
|
299
|
+
camel/toolkits/aci_toolkit.py,sha256=jhXMQggG22hd3dXdT3iJm7qWTH3KJC-TUVk1txoNWrM,16079
|
|
296
300
|
camel/toolkits/arxiv_toolkit.py,sha256=Bs2-K1yfmqhEhHoQ0j00KoI8LpOd8M3ApXcvI_-ApVw,6303
|
|
297
301
|
camel/toolkits/ask_news_toolkit.py,sha256=WfWaqwEo1Apbil3-Rb5y65Ws43NU4rAFWZu5VHe4los,23448
|
|
298
302
|
camel/toolkits/audio_analysis_toolkit.py,sha256=dnDtQJbztVBwBpamSyCfigPw2GBnDAfi3fOPgql4Y50,8941
|
|
@@ -304,7 +308,7 @@ camel/toolkits/dappier_toolkit.py,sha256=ewhXeeUj7e4DiTzuWDA-gHGhrLdyoZ4l9pbijvF
|
|
|
304
308
|
camel/toolkits/data_commons_toolkit.py,sha256=aHZUSL1ACpnYGaf1rE2csVKTmXTmN8lMGRUBYhZ_YEk,14168
|
|
305
309
|
camel/toolkits/excel_toolkit.py,sha256=SpmgLJWVFHaR8puDg4eTllGDc6SXzRt4U3QYgFTrLCM,6354
|
|
306
310
|
camel/toolkits/file_write_toolkit.py,sha256=UiN5G7hX3dqSkktqvpMq0WhQQJW_fKbiPiOhUeuSWYU,14351
|
|
307
|
-
camel/toolkits/function_tool.py,sha256=
|
|
311
|
+
camel/toolkits/function_tool.py,sha256=yyNNn6c0Pd-7n2MVlJvl09Cc1zSCt-QPHVstauyZBZY,30349
|
|
308
312
|
camel/toolkits/github_toolkit.py,sha256=x9QBsnZbLqAng4eGmnJrGxMSScrGzIA9yri9zAqfuwQ,12242
|
|
309
313
|
camel/toolkits/google_calendar_toolkit.py,sha256=E-sdgdbtNBs_CXbhht9t1dsVr4DsTr5NguHkx4fvSmc,15410
|
|
310
314
|
camel/toolkits/google_maps_toolkit.py,sha256=WTnkURpGri9KcY5OwV7AJJHOzmpu5RNmYE1QCVqvwWM,12023
|
|
@@ -312,9 +316,10 @@ camel/toolkits/google_scholar_toolkit.py,sha256=WQ9a0HQr0vro1Uo1m--alCUXvMmaHVKe
|
|
|
312
316
|
camel/toolkits/human_toolkit.py,sha256=ZbhXPA0G3mQkcNW_jPwywReAft2pIJG0WkVXOG48s1w,2328
|
|
313
317
|
camel/toolkits/image_analysis_toolkit.py,sha256=gnbX2by7_pxPpjUEY8bOj1tV-hGC3mwqEvQRMXyZ9TM,7535
|
|
314
318
|
camel/toolkits/jina_reranker_toolkit.py,sha256=U-V9qZ7SKP3SPTh_0CsE7ZKNqS9jNkmKYsIN1Mk-vFY,8118
|
|
319
|
+
camel/toolkits/klavis_toolkit.py,sha256=L-OiGwgaIue8QiIijNlvGbgtwjGUszLqs9bVRW5md7c,8244
|
|
315
320
|
camel/toolkits/linkedin_toolkit.py,sha256=wn4eXwYYlVA7doTna7k7WYhUqTBF83W79S-UJs_IQr0,8065
|
|
316
321
|
camel/toolkits/math_toolkit.py,sha256=KdI8AJ9Dbq5cfWboAYJUYgSkmADMCO5eZ6yqYkWuiIQ,3686
|
|
317
|
-
camel/toolkits/mcp_toolkit.py,sha256=
|
|
322
|
+
camel/toolkits/mcp_toolkit.py,sha256=yBpF6L3mzIs4Ecr3VAyex61CerENOR7ekU0oqAG9WNQ,20449
|
|
318
323
|
camel/toolkits/memory_toolkit.py,sha256=TeKYd5UMwgjVpuS2orb-ocFL13eUNKujvrFOruDCpm8,4436
|
|
319
324
|
camel/toolkits/meshy_toolkit.py,sha256=NbgdOBD3FYLtZf-AfonIv6-Q8-8DW129jsaP1PqI2rs,7126
|
|
320
325
|
camel/toolkits/mineru_toolkit.py,sha256=vRX9LholLNkpbJ6axfEN4pTG85aWb0PDmlVy3rAAXhg,6868
|
|
@@ -367,19 +372,19 @@ camel/toolkits/open_api_specs/web_scraper/ai-plugin.json,sha256=jjHvbj0DQ4AYcL9J
|
|
|
367
372
|
camel/toolkits/open_api_specs/web_scraper/openapi.yaml,sha256=u_WalQ01e8W1D27VnZviOylpGmJ-zssYrfAgkzqdoyk,2191
|
|
368
373
|
camel/toolkits/open_api_specs/web_scraper/paths/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
|
|
369
374
|
camel/toolkits/open_api_specs/web_scraper/paths/scraper.py,sha256=aWy1_ppV4NVVEZfnbN3tu9XA9yAPAC9bRStJ5JuXMRU,1117
|
|
370
|
-
camel/types/__init__.py,sha256=
|
|
371
|
-
camel/types/enums.py,sha256=
|
|
375
|
+
camel/types/__init__.py,sha256=Xdkjh7TQDAQUQ7pFnt7i_rLjjOhsJJnhzusARcFc94Q,2311
|
|
376
|
+
camel/types/enums.py,sha256=4X3QusgMsmJhvAAoWj5r3PcUg7HyiQwRii4pVE7QLr8,57696
|
|
372
377
|
camel/types/openai_types.py,sha256=8ZFzLe-zGmKNPfuVZFzxlxAX98lGf18gtrPhOgMmzus,2104
|
|
373
378
|
camel/types/unified_model_type.py,sha256=TpiUmJ3IuX8LNLtTUeUcVM7U82r4ClSq3ZQlNX3ODKs,5351
|
|
374
379
|
camel/types/agents/__init__.py,sha256=cbvVkogPoZgcwZrgxLH6EtpGXk0kavF79nOic0Dc1vg,786
|
|
375
380
|
camel/types/agents/tool_calling_record.py,sha256=qa-vLyKvYzWprRkFFl1928xaw9CnfacIebHaqM-oY3s,1814
|
|
376
381
|
camel/utils/__init__.py,sha256=0rN9DFjUh7Gv6HIJBhm9edmLKecK-89j9q0TC4ABsZY,2737
|
|
377
382
|
camel/utils/async_func.py,sha256=KqoktGSWjZBuAMQ2CV0X6FRgHGlzCKLfeaWvp-f1Qz8,1568
|
|
378
|
-
camel/utils/commons.py,sha256=
|
|
383
|
+
camel/utils/commons.py,sha256=dzZ1zR2RIb6MCCSw_jfil36BGcVe0q4Jy2t2y2T2Vwg,33693
|
|
379
384
|
camel/utils/constants.py,sha256=cqnxmpUeOwrtsR-tRO4bbOc6ZP19TLj7avjm3FONMJs,1410
|
|
380
385
|
camel/utils/deduplication.py,sha256=UHikAtOW1TTDunf2t_wa2kFbmkrXWf7HfOKwLvwCxzo,8958
|
|
381
386
|
camel/utils/filename.py,sha256=HYNc1wbSCgNR1CN21cwHxdAhpnsf5ySJ6jUDfeqOK20,2532
|
|
382
|
-
camel/utils/mcp.py,sha256=
|
|
387
|
+
camel/utils/mcp.py,sha256=iuthL8VuUXIRU34Nvx8guq7frfglpZoxewUKuAg3e1s,5077
|
|
383
388
|
camel/utils/response_format.py,sha256=9KrbwtOM9cA3LSjTgLiK7oKy-53_uMh1cvpyNwwJpng,2419
|
|
384
389
|
camel/utils/token_counting.py,sha256=apkERzNoVc4sgvJvWVosvepX3KH8pVypVjrL4AA7RB4,17521
|
|
385
390
|
camel/utils/chunker/__init__.py,sha256=6iN6HL6sblIjDuJTILk-9qKcHBZ97t8b6tZCWPZ0OYI,899
|
|
@@ -392,7 +397,7 @@ camel/verifiers/math_verifier.py,sha256=tA1D4S0sm8nsWISevxSN0hvSVtIUpqmJhzqfbuMo
|
|
|
392
397
|
camel/verifiers/models.py,sha256=GdxYPr7UxNrR1577yW4kyroRcLGfd-H1GXgv8potDWU,2471
|
|
393
398
|
camel/verifiers/physics_verifier.py,sha256=c1grrRddcrVN7szkxhv2QirwY9viIRSITWeWFF5HmLs,30187
|
|
394
399
|
camel/verifiers/python_verifier.py,sha256=ogTz77wODfEcDN4tMVtiSkRQyoiZbHPY2fKybn59lHw,20558
|
|
395
|
-
camel_ai-0.2.
|
|
396
|
-
camel_ai-0.2.
|
|
397
|
-
camel_ai-0.2.
|
|
398
|
-
camel_ai-0.2.
|
|
400
|
+
camel_ai-0.2.53.dist-info/METADATA,sha256=9t7wCT07mRk-zV4sAs1we5jrhhzp7NFw4UF1bI3jbdw,44254
|
|
401
|
+
camel_ai-0.2.53.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
402
|
+
camel_ai-0.2.53.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
|
|
403
|
+
camel_ai-0.2.53.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|