Skip to content

Commit 53884ca

Browse files
authored
chore: add schemas (#2437)
1 parent 23b3570 commit 53884ca

File tree

2 files changed

+142
-0
lines changed

2 files changed

+142
-0
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
schemas/ @chaynabors

schemas/agent-v1.json

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"title": "Agent",
4+
"description": "An Agent is a declarative way of configuring a given instance of q chat.",
5+
"type": "object",
6+
"properties": {
7+
"name": {
8+
"description": "Name of the agent",
9+
"type": "string"
10+
},
11+
"description": {
12+
"description": "This field is not model facing and is mostly here for users to discern between agents",
13+
"type": ["string", "null"],
14+
"default": null
15+
},
16+
"prompt": {
17+
"description": "The intention for this field is to provide high level context to the\nagent. This should be seen as the same category of context as a system prompt.",
18+
"type": ["string", "null"],
19+
"default": null
20+
},
21+
"mcpServers": {
22+
"description": "Configuration for Model Context Protocol (MCP) servers",
23+
"type": "object",
24+
"additionalProperties": {
25+
"type": "object",
26+
"properties": {
27+
"command": {
28+
"description": "The command string used to initialize the mcp server",
29+
"type": "string"
30+
},
31+
"args": {
32+
"description": "A list of arguments to be used to run the command with",
33+
"type": "array",
34+
"items": {
35+
"type": "string"
36+
},
37+
"default": []
38+
},
39+
"env": {
40+
"description": "A list of environment variables to run the command with",
41+
"type": ["object", "null"],
42+
"additionalProperties": {
43+
"type": "string"
44+
}
45+
},
46+
"timeout": {
47+
"description": "Timeout for each mcp request in ms",
48+
"type": "integer",
49+
"format": "uint64",
50+
"minimum": 0,
51+
"default": 120000
52+
},
53+
"disabled": {
54+
"description": "A boolean flag to denote whether or not to load this mcp server",
55+
"type": "boolean",
56+
"default": false
57+
}
58+
},
59+
"required": ["command"]
60+
},
61+
"default": {}
62+
},
63+
"tools": {
64+
"description": "List of tools the agent can see. Use \\\"@{MCP_SERVER_NAME}/tool_name\\\" to specify tools from\nmcp servers. To include all tools from a server, use \\\"@{MCP_SERVER_NAME}\\\"",
65+
"type": "array",
66+
"items": {
67+
"type": "string"
68+
},
69+
"default": []
70+
},
71+
"toolAliases": {
72+
"description": "Tool aliases for remapping tool names",
73+
"type": "object",
74+
"additionalProperties": {
75+
"description": "The name to change to. For tools in mcp servers, you would need to exclude their server prefix",
76+
"type": "string"
77+
},
78+
"propertyNames": {
79+
"description": "Subject of the tool name change. For tools in mcp servers, you would need to prefix them with their server names",
80+
"type": "string"
81+
},
82+
"default": {}
83+
},
84+
"allowedTools": {
85+
"description": "List of tools the agent is explicitly allowed to use",
86+
"type": "array",
87+
"uniqueItems": true,
88+
"items": {
89+
"type": "string"
90+
},
91+
"default": []
92+
},
93+
"resources": {
94+
"description": "Files to include in the agent's context",
95+
"type": "array",
96+
"items": {
97+
"type": "string",
98+
"pattern": "^(file://)"
99+
},
100+
"default": []
101+
},
102+
"hooks": {
103+
"description": "Commands to run when a chat session is created",
104+
"type": "object",
105+
"additionalProperties": {
106+
"type": "array",
107+
"items": {
108+
"type": "object",
109+
"properties": {
110+
"command": {
111+
"description": "The command to run when the hook is triggered",
112+
"type": "string"
113+
}
114+
},
115+
"required": ["command"]
116+
}
117+
},
118+
"default": {}
119+
},
120+
"toolsSettings": {
121+
"description": "Settings for specific tools. These are mostly for native tools. The actual schema differs by\ntools and is documented in detail in our documentation",
122+
"type": "object",
123+
"additionalProperties": {
124+
"description": "Settings for tools. Refer to our documentations to see how to configure them",
125+
"type": "object"
126+
},
127+
"propertyNames": {
128+
"description": "The name of the tool to be configured",
129+
"type": "string"
130+
},
131+
"default": {}
132+
},
133+
"useLegacyMcpJson": {
134+
"description": "Whether or not to include the legacy ~/.aws/amazonq/mcp.json in the agent\nYou can reference tools brought in by these servers as just as you would with the servers\nyou configure in the mcpServers field in this config",
135+
"type": "boolean",
136+
"default": false
137+
}
138+
},
139+
"additionalProperties": false,
140+
"required": ["name"]
141+
}

0 commit comments

Comments
 (0)