AI серия интервью 7: Как правильно определить навык
1. Основные концепции навыка
Навык — это инкапсулированный набор исполняемых единиц способностей в Агенте или AI системе. Обычно он включает:
- Условия запуска: когда вызывается (например, команда пользователя, системное событие).
- Входные параметры: данные или контекст, которые необходимо получить.
- Логика выполнения: конкретные шаги обработки (например, вызов API, запуск кода, запрос к базе знаний).
- Выходной результат: ответ или действие, возвращаемое вызывающему.
2. Шаги по стандартному определению навыка
1. Уточните название и описание навыка
- Название: краткое, уникальное, семантическое (например,
search_web,send_email). - Описание: одним предложением объясните функцию навыка, чтобы Агент мог автоматически сопоставить.
2. Определите входные параметры (Input Schema)
Используйте JSON Schema или аналогичный формат, укажите тип каждого параметра, обязательность, значение по умолчанию и ограничения.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "ключевое слово для поиска",
"required": true
},
"max_results": {
"type": "integer",
"description": "максимальное количество результатов",
"default": 10
}
}
}
3. Напишите логику выполнения (Execution Logic)
- Детерминированная логика: прямой вызов функции, API или базы данных.
- Недетерминированная логика: использование LLM для генерации ответа (необходимо предоставить шаблон промпта).
- Обработка ошибок: определите тайм-ауты, повторные попытки, стратегии понижения.
4. Определите выходной формат (Output Schema)
Также используйте JSON Schema для описания структуры возвращаемых данных.
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string", "format": "uri" }
}
}
}
}
}
5. Добавьте метаданные (Metadata)
- Версия: для удобства управления итерациями.
- Автор/ответственный: определение ответственности.
- Зависимости: необходимые внешние сервисы или библиотеки.
- Ограничения использования: например, ограничение частоты, требования к правам.
3. Пример: полное определение навыка
name: "weather_query"
description: "запрос текущей погоды по названию города"
version: "1.0.0"
author: "AI Team"
input:
type: object
properties:
city:
type: string
description: "название города, например 'Москва'"
required: true
unit:
type: string
enum: ["celsius", "fahrenheit"]
default: "celsius"
execute:
- step: "вызов API погоды"
api: "https://api.weather.com/v1/current"
method: "GET"
params:
city: "{input.city}"
unit: "{input.unit}"
- step: "форматирование результата"
format: "Сейчас в {city} температура {temperature}°{unit}"
output:
type: object
properties:
temperature:
type: number
condition:
type: string
humidity:
type: number
4. Лучшие практики
- Единственная ответственность: каждый навык делает только одно дело, избегайте излишней связанности.
- Самодостаточность: по возможности не полагайтесь на внешнее глобальное состояние, входные данные определяют выходные.
- Тестируемость: предоставьте mock-данные или песочницу для модульного тестирования.
- Документирование: напишите инструкцию по использованию и примеры для каждого навыка.
С помощью описанных выше методов навык может быть динамически вызван AI-агентом, а также напрямую интегрирован разработчиками в систему, обеспечивая эффект повторного использования "написал один раз — используй везде".
评论
暂无已展示的评论。
发表评论(匿名)