construct-labs-crm-env 0.1.5__tar.gz → 0.1.7__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: construct-labs-crm-env
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Summary: CRM Agent Environment SDK by Construct Labs - Train RL agents to interact with CRM systems
5
5
  Project-URL: Homepage, https://construct-labs.com
6
6
  Author-email: Construct Labs GmbH <hello@construct-labs.com>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "construct-labs-crm-env"
7
- version = "0.1.5"
7
+ version = "0.1.7"
8
8
  description = "CRM Agent Environment SDK by Construct Labs - Train RL agents to interact with CRM systems"
9
9
  readme = "README.md"
10
10
  license = { text = "Proprietary" }
@@ -156,6 +156,7 @@ class CrmAgentEnv(EnvClient[CrmAgentAction, CrmAgentObservation, CrmAgentState])
156
156
  self._ws = ws_connect(
157
157
  self._ws_url,
158
158
  open_timeout=self._connect_timeout,
159
+ max_size=10 * 1024 * 1024,
159
160
  subprotocols=[auth_subprotocol],
160
161
  )
161
162
  except Exception as e:
@@ -226,7 +227,41 @@ class CrmAgentEnv(EnvClient[CrmAgentAction, CrmAgentObservation, CrmAgentState])
226
227
  Returns:
227
228
  The default system prompt string.
228
229
  """
229
- return """You are a tool-using agent interacting with a CRM (Customer Relationship Management) system.
230
+ # Define tool call examples as Python dicts - json.dumps ensures valid JSON
231
+ examples = {
232
+ "list_companies": {
233
+ "name": "list_companies",
234
+ "arguments": {"limit": 10},
235
+ },
236
+ "find_companies": {
237
+ "name": "list_companies",
238
+ "arguments": {"filter": 'name[ilike]:"%tech%"'},
239
+ },
240
+ "create_company": {
241
+ "name": "create_company",
242
+ "arguments": {
243
+ "company_name": "Acme Corp",
244
+ "company_domain": "acme.com",
245
+ },
246
+ },
247
+ "create_person": {
248
+ "name": "create_person",
249
+ "arguments": {
250
+ "person_first_name": "John",
251
+ "person_last_name": "Doe",
252
+ "person_email": "john@acme.com",
253
+ "person_company_id": "company-uuid-here",
254
+ },
255
+ },
256
+ "submit_answer": {
257
+ "name": "submit_answer",
258
+ "arguments": {
259
+ "answer": "The total pipeline value is $1.5M across 12 open opportunities."
260
+ },
261
+ },
262
+ }
263
+
264
+ return f"""You are a tool-using agent interacting with a CRM (Customer Relationship Management) system.
230
265
 
231
266
  ## GOAL
232
267
 
@@ -277,34 +312,34 @@ For complex tasks, make multiple tool calls:
277
312
 
278
313
  Think briefly about which tool to use, then output exactly one tool call:
279
314
  <tool_call>
280
- {"name": "tool_name", "arguments": {...}}
315
+ {{"name": "tool_name", "arguments": {{...}}}}
281
316
  </tool_call>
282
317
 
283
318
  ## EXAMPLES
284
319
 
285
320
  List companies:
286
321
  <tool_call>
287
- {"name": "list_companies", "arguments": {"limit": 10}}
322
+ {json.dumps(examples["list_companies"])}
288
323
  </tool_call>
289
324
 
290
325
  Find companies by name:
291
326
  <tool_call>
292
- {"name": "list_companies", "arguments": {"filter": "name[ilike]:\"%tech%\""}}
327
+ {json.dumps(examples["find_companies"])}
293
328
  </tool_call>
294
329
 
295
330
  Create a company:
296
331
  <tool_call>
297
- {"name": "create_company", "arguments": {"company_name": "Acme Corp", "company_domain": "acme.com"}}
332
+ {json.dumps(examples["create_company"])}
298
333
  </tool_call>
299
334
 
300
335
  Create a contact linked to a company:
301
336
  <tool_call>
302
- {"name": "create_person", "arguments": {"person_first_name": "John", "person_last_name": "Doe", "person_email": "john@acme.com", "person_company_id": "company-uuid-here"}}
337
+ {json.dumps(examples["create_person"])}
303
338
  </tool_call>
304
339
 
305
340
  Submit final answer:
306
341
  <tool_call>
307
- {"name": "submit_answer", "arguments": {"answer": "The total pipeline value is $1.5M across 12 open opportunities."}}
342
+ {json.dumps(examples["submit_answer"])}
308
343
  </tool_call>"""
309
344
 
310
345
  @property