API-пайплайн: написать агенду для своих оракулов

Индекс: API-пайплайны — индекс

Цель: написать агенду — инструкции и персону, по которым работают ваши оракулы и кампании, — и прочитать публичную агенду.

Агенда — это карточка, которая собирает статьи-инструкции, API-эндпоинты и секреты. Два вида:

Шаги

1. Напишите инструкции статьями (можно приватными): API-пайплайн: статьи и посты

2. Создайте агенду.

POST /v0/my/agendas
Idempotency-Key: ag-93e0…
{"title": "Bakery front desk", "description": "Answers customers of Green Bakery.",
 "kind": "fwag", "project": "470000000000000001",
 "instructions": ["470000000000000042"], "api_endpoints": ["470000000000000420"], "secrets": ["470000000000000410"]}
→ {"app": {"nonce": "470000000000000500", "card_type": "agenda", "kind": "fwag",
           "lists": {"instructions": [{…tile…}], "api_endpoints": [{…}], "secrets": [{…}], "swag": []}, …}}

3. Настройте модель.

PATCH /v0/my/agendas/470000000000000500
{"llm": {"model": "<model id>", "reasoning": "low"}}

4. Проверьте собранный промпт.

GET /v0/graph/agendas/470000000000000500/prompt
→ 200 text/plain (ETag)       send If-None-Match: <etag> → 304 when unchanged

Нужен write на агенду. С If-None-Match: <etag> ответ 304, если ничего не менялось.

5. Используйте. Назначьте агенду оракулу или кампании (поле agenda на этих карточках).

6. Читать, делиться, удалять. Свои: GET /v0/my/agendas, GET /v0/my/agendas/{nonce|@handle}. Публичная агенда: GET /v0/graph/agendas/{nonce|@handle} (её списки видны только редакторам). DELETE /v0/my/agendas/{ident}. Агенда может принять ссылку доступа, которой с ней поделились: POST /v0/my/agendas/{ident}/claim {"token": "<token>"} (см. «Доступ по ссылкам» в индексе).

7. Кто может запускать вашу агенду. Тот, кто запускает агенду, тратит ИИ, за который платит её владелец, поэтому ваши агенды запускаете только вы и те люди и агенды, с которыми вы поделились агендой для запуска: ссылка доступа с выполнением, которую они приняли, или ваш грант (API-пайплайн: делиться карточками через ссылки доступа). Право выполнения на самой карточке агенды никому другому запускать её не позволяет, при любой видимости. Чтение, как обычно, следует видимости карточки.

8. Что есть у вашей агенды.

GET /v0/my/agendas/470000000000000500/access
→ {"agenda": "470000000000000500", "total": 1,
   "access": [{"tile": {"card_type": "room", "nonce": "470000000000000300", …},
               "active": true, "private": false,
               "rights": {"read": true, "write": false, "execute": false},
               "grants": [{"kind": "link", "issuer": "<card owner>", "active": true,
                           "rights": {"read": true, "write": false, "execute": false},
                           "created_at": "…", "expires_at": null, "ended": null}]}]}

9. Какими рубриками отмечает ваша агенда. Когда оракул, работающий по вашей агенде, отмечает карточку или разговор, он добавляет только рубрики, которыми может отмечать сама агенда: рубрики, открытые для отметок, или вашу рубрику (Unlisted или шире), которой вы поделились с агендой с правом выполнения на саму эту рубрику. Ваше собственное право отмечать агенде не передаётся. Чтобы снять рубрику, это право не нужно. Правила: API-пайплайн: рубрики для карточек, раздел B3.

За кадром

Правила (400)

Поверхность API

Эндпоинт Назначение FE ИИ / оракул
POST /v0/my/agendas Создать да да
PATCH/DELETE /v0/my/agendas/{ident} Правка, модель, списки, удаление да да
GET /v0/my/agendas (+ /{ident}) Ваши да да
GET /v0/graph/agendas/{ident} Публичная агенда да да
GET /v0/graph/agendas/{ident}/prompt Собранный промпт нет да
POST /v0/my/agendas/{ident}/claim Принять ссылку для агенды да да
GET /v0/my/agendas/{ident}/access Что есть у агенды нет ваш токен

Упомянуто