The agent follows a specific organizational structure to ensure streamlined functionality and easy access to essential files:
└── agents
└── myagent
├── functions.json # Auto-generated JSON declarations for functions
├── index.yaml # Main agent definition file
├── tools.txt # List of shared tools
└── tools.{sh,js,py} # Scripts implementing agent-specific tools
This is the main definition file for your agent where you provide all essential information and configuration for the agent.
Metadata provides basic information about the agent:
name
: A unique name for your agent, which helps in identifying and referencing the agent.description
: A brief explanation of what the agent is or its primary purpose.version
: The version number of the agent, which helps track changes or updates to the agent over time.
name: TestAgent
description: This is test agent
version: 0.1.0
Defines the initial context or behavior directives for the agent:
instructions: You are a test ai agent to ...
Variables store user-related data, such as behavior or preferences. Below is the syntax for defining variables:
variables:
- name: foo
description: This is a foo
- name: bar
description: This is a bar with default value
default: val
For sensitive information such as api_key, client_id, client_secret, and token, it's recommended to use environment variables instead of agent variables.
When use define variables, please avoid these built-in variables:
name | description | example |
---|---|---|
__os__ |
Operating system name | linux |
__os_family__ |
Operating system family | unix |
__arch__ |
System architecture | x86_64 |
__shell__ |
Current user's default shell | bash |
__locale__ |
User's preferred language and region settings | en-US |
__now__ |
Current timestamp in ISO 8601 format | 2024-07-29T08:11:24.367Z |
__cwd__ |
Current working directory | /tmp |
__tools__ |
List of agent tools |
Variables can be used within instructions
and within tool scripts:
instructions: |
The instructions can access user-defined variables: {{foo}} and {{bar}}, or built-in variables: {{__cwd__}}
echo "he tools script can access user-defined variables in environment variables: $LLM_AGENT_VAR_FOO and $LLM_AGENT_VAR_BAR"
A list of resources or references that the agent can access. Documents are used for building RAG.
documents:
- local-file.txt
- local-dir/
- https://example.com/remote-file.txt
All local files and directories are relative to the agent directory (where index.yaml is located).
Define Predefined prompts or questions that users can ask to initiate interactions or conversations with the agent. This helps provide guidance for users on how to engage with the agent effectively.
conversation_starters:
- What can you do?
Scripts for implementing tools tailored to the agent's unique requirements.
tools.txt
facilitates the reuse of tools specified in the /tools
directory within this project.