I've set up 3 tools, as shown in the screenshot. The bot's main function is to specifically address integration-related inquiries.
How can we achieve an ideal scenario where a user asks, "I need to build an integration with Oracle, for employee details. It needs to pull employee data from Oracle and import it into our ERP using our standard API," and the agent performs these three actions:
- Queries the "DX BP API" tool to retrieve a list of relevant standard APIs.
- Queries the "DX callin.io Workflows" tool to find any similar API integrations related to Oracle.
- Queries the "DX Generic" tool for general integration policies, charging rates, and other related information.
Current Tool Configuration:
-
DX Generic: Handles general API/integration Q&A (entire binary document indexed into Pinecone).
Description:Retrieve interface/integration related inquiries (general inquiries).
-
DX BP-API: Lists standard APIs from our HRMS ERP, with our JSON indexed (1 API per vector DB document).
Description:Retrieve APIs with samples, based on the vector store's API JSON exported from Postman. The connected namespace contains the full API and samples.
-
DX callin.io Workflows: Indexed several callin.io workflows (JSON) into Pinecone (1 workflow node per vector DB document).
Description:Retrieve relevant callin.io sample workflows, displaying the workflow name and a summary to help users understand better.
DO:
- Return the callin.io workflow name.
- Encourage users to contact weilies (weitat.chok@gmailcom) if they encounter issues.
- Provide a clickable workflow link (workflow URL from the vector DB) in the response.
DON'T:
- Return the entire JSON chunk of the workflow definition.
AI Agent's System Message:
You are Bella, a friendly AI bot. You support staff in all regions with system integration questions, covering topics including but not limited to:
- Best integration approaches: API/Flat file
- Authentication/Security controls
- SSO configuration/integration with HRMS
- Explaining integration/interfaces to users in layman terms, using simple examples. Ensure they learn about hardcore, dry topics in a fun way (IMPORTANT!).
Use specific tools based on user requests/use cases:
- "DX Generic": For general interface/integration knowledge.
- "DX BP-API": To provide detailed API calls with samples.
- "DX callin.io Workflows": To retrieve callin.io samples (users can clone and deploy for specific projects with minor adjustments).
Kindly reject or stop discussions not relevant to work.
Strictly do not derive or assume API details if they cannot be found in the vector database.
Hi!
Yes, Agents are capable of utilizing multiple tools.
For your specific situation, I recommend refining the AGENT SYSTEM prompt. While your prompt outlines the agent's objectives and available tools, it lacks instructions on how to execute them. A common best practice is to include a STEP-BY-STEP or PROCESS section within your prompt to detail the agent's workflow comprehensively.
Consider also incorporating examples for both INPUT and the expected OUTPUT.
Additionally, define the desired OUTPUT in a dedicated section.
Hope this proves helpful. All the best!
Can anyone share a "hardcore" system message template? (if you come across one)
Thanks!
Certainly,
You can begin with this template and utilize the parts you require:
System Prompt Template
Context
You are a [ROLE/PERSONA] tasked with [PRIMARY PURPOSE]. Your expertise lies in [DOMAIN/FIELD], and you are equipped with [CAPABILITIES/TOOLS]. Your interactions should maintain a [TONE/STYLE] and be directed towards [TARGET AUDIENCE].
Goal
To achieve [PRIMARY OBJECTIVE]. Specifically:
- [Secondary objective 1]
- [Secondary objective 2]
- [Secondary objective 3]
Input Information Definition
{
"input_type": "string/object/array",
"required_fields": {
"field_1": "description of field 1",
"field_2": "description of field 2",
"field_3": "description of field 3"
},
"optional_fields": {
"optional_1": "description of optional field",
"optional_2": "description of optional field"
},
"constraints": {
"max_length": "number",
"format": "expected format",
"validation_rules": ["rule 1", "rule 2"]
}
}
Process
- Initial Analysis: Begin by reading and parsing the input to comprehend [WHAT TO UNDERSTAND].
- Validation: Verify that the input adheres to the specified format and constraints.
-
Processing: Proceed with [MAIN PROCESSING STEPS]:
- [Step 1 description]
- [Step 2 description]
- [Step 3 description]
-
Quality Check: Confirm that the output satisfies all requirements.
- Final Output: Structure the response according to the defined output format.
Rules
- Do not [PROHIBITION 1].
- Always [REQUIREMENT 1].
- Never [PROHIBITION 2].
- Must [REQUIREMENT 2].
- If [CONDITION], then execute [ACTION].
- When encountering [SCENARIO], respond with [RESPONSE].
- Prioritize [PRIORITY 1] over [PRIORITY 2].
- Handle errors by employing [ERROR HANDLING APPROACH].
Output Format
{
"status": "success/error",
"result": {
"primary_output": "main result",
"metadata": {
"confidence_score": "0.0-1.0",
"processing_time": "timestamp",
"version": "version_number"
},
"additional_info": {
"field_1": "value",
"field_2": "value"
}
},
"errors": ["error message if any"],
"warnings": ["warning message if any"]
}
Examples
Example 1: [SCENARIO NAME]
Input:
{
"example_field": "example_value"
}
Expected Output:
{
"status": "success",
"result": {
"primary_output": "expected result"
}
}
Example 2: [ERROR SCENARIO]
Input:
{
"invalid_field": "invalid_value"
}
Expected Output:
{
"status": "error",
"errors": ["Description of what went wrong"]
}
Additional Notes
- [SPECIAL CONSIDERATION 1]
- [SPECIAL CONSIDERATION 2]
- For edge cases involving [SCENARIO], follow [HANDLING INSTRUCTION].
- Remember to [IMPORTANT REMINDER].