Choosing tools
Often you don't want your agent to have every tool. For instance, your support agent needs to read issues, not search all your code.
Offer only some tools
tools names the tools to offer, or a pattern such as get_*:
name: support
mode: text
llm: llm-fast
connectors:
- name: github
connection: company
tools: [list_issues, get_*] # list_issues, and every tool whose name starts with get_getstream agents test support --syncAsk: "What are the open issues in GetStream/awesome-ai-news?". The agent reads them with github__list_issues.
Leave tools out to offer every tool the provider lists.
Give a connector another name
The model sees each tool as <name>__<tool>. Set connector when that name should differ from the connector id:
connectors:
- name: code # the model sees code__list_issues
connector: github
connection: companyRequire a connector
By default a connector is optional: when its connection is missing or not connected, the session goes on without its tools. required: true refuses to open the session instead:
connectors:
- name: github
connection: company
required: trueA test with a connection that is not connected yet stops before the conversation:
Error: cannot start a conversation with support: session: required connector "github" cannot be used: not_connected: the connection is not connectedGoing further
Whose account, the catalog, and the keys of a connector entry.
One account the app owns, for every conversation.
Any MCP server: public, behind a key, or with a sign-in.
Your own functions, run in your process.
Errors you may see, why, and what to do.