Referenca manifesta
Svaki ključ beeuni.yaml v2, sa podrazumevanim vrednostima, ograničenjima i pravilima validacije.
Манифест је датотека коју платформа сматра меродавном за пројекат. На овој страници наведени су сви кључеви beeuni.yaml (v2), њихови типови и подразумеване вредности, као и начин на који их платформа валидира. За верзију једноставнијим језиком погледајте Ваш пројекат.
Две површине конфигурације
Beeuni пројекат има две површине конфигурације са строгим, међусобно искључивим надлежностима.
- Beeuni конфигурација —
beeuni.yamlу корену репозиторијума дефинише окружење пројекта, агенте, алате, конекторе и окидаче. Sandbox шаблони могу да користе сопствени Dockerfile. - Конфигурација агента — датотеке агента, вештине и датотеке harness-а. Њих чита harness агента, у sandbox-у и локално.
| Путања | Садржај |
|---|---|
beeuni.yaml |
Манифест: агенти и чему сваки може да приступи, окидачи, конектори, env, шаблони sandbox-а. |
agents/<name>.md |
Један агент: frontmatter и системски упит. Именује га agents.<name>.file. |
skills/<name>/SKILL.md |
Једна вештина. Учитавају је сви harness-и. |
memory/ |
Меморија пројекта. |
tools/<name>.ts |
Алати пројекта, по један модул за сваки. Декларише их tools:; покрећу их сви harness-и. Погледајте Алати. |
harnesses/opencode/ |
Датотеке које чита само стандардни harness: opencode.jsonc, plugins/, tools/, commands/. opencode.config_dir упућује овде. |
Пројекти настали пре 2026-09 чувају агенте и вештине у .beeuni/opencode/, а меморију у .beeuni/memory/. Beeuni чита оба распореда.
Спој између ова два дела је датотека .md агента. Кључ манифеста agents.<name> управља датотеком коју именује agents.<name>.file, или agents/<name>.md ако је file изостављен. Сва поља понашања налазе се искључиво у frontmatter-у и телу те датотеке .md, никада у beeuni.yaml:
- системски упит
model,modetemperature,top_psteps,permission
Блок манифеста agents: задаје само правила управљања: који агенти могу да се покрену и чему сваки од њих може да приступи. Валидатор то спроводи. Одбацује блок v2 агента који садржи било које поље понашања, уз грешку која упућује на сопствену датотеку .md агента.
Локација и верзије
Сваки репозиторијум са важећим манифестом у корену је Beeuni пројекат. beeuni.yaml (v2, само YAML) је тренутни формат за нове пројекте, које креира веб-ток „Create project“ и beeuni init. beeuni.toml (v1) и даље ради за постојеће пројекте, али платформа за њега не прихвата нове функције v2. За шему v1 и кораке миграције са v1 на v2 погледајте Застарели TOML.
beeuni_version: 2 захтева YAML — датотека .toml која декларише beeuni_version: 2 не пролази валидацију. Манифест који декларише верзију већу од 2 одмах се одбацује, тако да платформа никада не протумачи погрешно неко будуће поље. Непознати кључеви највишег нивоа се игноришу, па у датотеку можете да сместите сопствене метаподатке.
validateManifest() је јединствени пролаз који стоји иза beeuni ship, провере спајања захтева за измену и beeuni validate. Свуда важе иста правила, па је све што се споји у main структурно исправно. Шема је јавна и генерише се из истог пакета:
beeuni.v2.schema.jsonbeeuni.v1.schema.jsonbeeuni.schema.json(бира на основуbeeuni_version)
Усмерите beeuni.yaml на шему v2 ради валидације у уређивачу или је преузмите преко CLI-ја:
# yaml-language-server: $schema=https://beeuni.ai/schema/beeuni.v2.schema.json
beeuni_version: 2
beeuni schema --version 2
Потпун пример
beeuni_version: 2
default_agent: beeuni
project:
name: my-project
description: What this project is.
env:
required: [DATABASE_URL]
optional: [STRIPE_API_KEY, WEBHOOK_SLACK_SECRET]
sandbox:
templates:
- slug: ml
name: ML Development
dockerfile: Dockerfile.ml
cpu: 4
memory: 16
opencode:
config_dir: harnesses/opencode
agents:
beeuni:
file: agents/beeuni.md
connectors: all
secrets: all
beeuni_permissions: all
skills: all
release-bot:
file: agents/release-bot.md
sandbox: ml
connectors: [github]
beeuni_permissions: [project.gitops.push]
secrets: [GITHUB_AGENT_TOKEN]
triggers:
- slug: daily-digest
type: cron
agent: beeuni
cron: '0 0 9 * * 1-5'
timezone: America/Los_Angeles
prompt: |
Summarize yesterday's commits. Open a CR against main.
Кључеви највишег нивоа
| Кључ | Обавезно | Напомене |
|---|---|---|
beeuni_version |
да | мора бити 2 |
default_agent |
да | мора да именује декларисаног, омогућеног агента |
imports |
не | друге YAML датотеке или директоријуми чији се triggers, connectors, agents, apps и tools спајају у овај манифест. Погледајте imports: |
tools |
не | алати доступни свакој сесији: назив алата → путања модула релативна у односу на репозиторијум или beeuni:<name> за Beeuni алат. Уз кључ tools, сесије добијају само Beeuni алате наведене у њему. Покрећу их сви harness-и. Погледајте tools: |
runtime |
не | "opencode" (подразумевано) или "pi" — harness агента који се покреће унутар sandbox-а сесије; pi покреће експериментални harness у истом процесу као демон sandbox-а и чита исте датотеке агента .md и вештине. Заставица функције pi_harness пројекта бира експериментални harness без овог реда. За експериментални harness је потребна заставица llm_gateway; без ње сесија покреће стандардни harness. |
harnesses.pi.packages |
не | експериментални harness пакети које учитавају експериментални harness сесије пројекта. Погледајте harnesses: |
pi.config_dir |
не | harnesses/pi, затим .beeuni/pi ако постоји. експериментални harness-изворни settings.json, extensions/, skills/ и prompts/. |
project.name / project.description |
не | метаподаци за приказ; платформа не чита project.name за назив пројекта који се приказује |
env.required / env.optional |
не | називи env променљивих; required служи само као смерница и никада се не намеће при покретању сесије |
sandbox / sandbox.templates / sandbox.default |
не | слика(е) sandbox-а и хардвер |
opencode.config_dir |
не | подразумевани harnesses/opencode, затим застарели .beeuni/opencode |
triggers |
не | листа cron, webhook и monitor окидача |
connectors |
не | листа дефиниција конектора |
policy.default_mode |
не | allow_all (подразумевано) или risk; режим одобравања конектора за цео пројекат |
agents |
да | мапа управљања називима и блоковима; не сме бити празна. Уз imports, мапа може да се налази у увезеној датотеци |
imports:
Поделите један манифест на више YAML датотека. Користите ово када beeuni.yaml прерасте један екран: 30 окидача са вишередним упитима, конектор за сваки тим, по једна датотека за сваку групу агената.
# beeuni.yaml
beeuni_version: 2
default_agent: beeuni
imports:
- triggers/ # a directory: every .yaml and .yml file below it
- agents.yaml # a single file
agents:
beeuni:
connectors: all
beeuni.yaml
agents.yaml
triggers/
reports/
weekly.yaml
monthly.yaml
dockets/
freedom-forever.yaml
# triggers/reports/weekly.yaml
triggers:
- slug: weekly-report
name: Cross-Sector Weekly Report
type: cron
agent: galileo
cron: "0 15 * * 0"
prompt: |-
Build the weekly report.
Коренска датотека и њени увози чине једну конфигурацију пројекта. Окидач у једној датотеци може да именује агента декларисаног у другој.
Правила
- Putanja je relativna u odnosu na koren repozitorijuma.
.., apsolutne putanje i glob obrasci se odbacuju. - Uvoz direktorijuma obuhvata sve datoteke
.yamli.ymlu njemu i svim poddirektorijumima, sortirane po putanji. Ostale datoteke se preskaču. - Uvezena datoteka definiše
triggers,connectors,agents,apps,toolsiimports. Svi ostali ključevi (beeuni_version,default_agent,runtime,project,env,opencode,sandbox,policy,policies) ostaju у коренској датотеци. Ако уvezена датотека постави неки од њих, валидација не успева. - Увезена датотека може да увози друге датотеке. Ограничење је 8 нивоа и 200 датотека. Циклус је грешка. Датотека до које се стигне више пута спаја се само једном.
- Једно име, једна датотека. Ако су окидач, конектор, агент, апликација или алат са истим именом дефинисани у две датотеке, то је грешка у којој се наводе обе датотеке. Ништа се не преписује без упозорења.
- Ставке се спајају редом: прво датотека која увози, затим њене увезене датотеке наведеним редоследом.
Неисправан увоз поништава цео манифест, као и синтаксна грешка у YAML-у. beeuni validate, beeuni ship и провера спајања захтева за измену пријављују грешку пре него што стигне до main:
imports: triggers "weekly-report" is declared in both triggers/a.yaml and triggers/b.yaml — one name, one file
Измене се уписују у датотеку у којој је ставка дефинисана. Када контролна табла, API или beeuni triggers enable|disable|rm измени окидач, конектор, агента или апликацију дефинисану у увезеној датотеци, уписује се само та датотека. Коренска датотека се не преписује. Нова ставка се уписује у коренску датотеку. Ако желите да буде у увезеној датотеци, преместите је ручно.
imports захтева beeuni.yaml. Манифест који је beeuni.toml игнорише кључ.
tools:
Алати који су доступни сесији, наведени по имену. Вредност има један од два облика:
| Облик | Значење |
|---|---|
beeuni:<name> |
Beeuni алат (web_search, image_search, scrape_webpage, memory, show), чије одржавање води Beeuni. Кључ мора бити <name>. |
| Путања до модула релативна у односу на корен репозиторијума | Алат самог пројекта, у било којој фасцикли. Ако се наведе под именом Beeuni алата, модул замењује Beeuni алат. |
tools:
web_search: beeuni:web_search
image_search: beeuni:image_search
scrape_webpage: beeuni:scrape_webpage
memory: tools/memory.ts # replaces the Beeuni memory tool
lookup_order: tools/lookup_order.ts
crm_note: integrations/crm/note.ts
стандардни harness и експериментални harness покрећу исти модул. Уговор модула, beeuni tools ls,
beeuni tools eject и упутство за миграцију са harnesses/opencode/tools/ налазе се у одељку
Tools.
Правило избора.
- Нема кључа
toolsни у коренској ни у било којој увезеној датотеци: сесије добијају свих пет Beeuni алата. Сваки пројекат направљен пре увођења ове листе задржава их. - Постоји кључ
tools, чак и ако је празан (tools: {}илиtools:са обрисаним свим редовима): сесије добијају само Beeuni алате наведене у њему, каоbeeuni:<name>или као путању до модула. Рачуна се и кључtoolsу увезеној датотеци.
Обришите ред beeuni:<name> да бисте уклонили тај алат за све агенте. Користите
agents.<name>.tools да бисте ограничили алате за једног
агента.
Грешке.
-
Име мора бити у snake_case формату:
^[a-z][a-z0-9_]{0,63}$. -
Име алата из окружења за извршавање (
bash,read,write,edit,apply_patch,glob,grep,list,task,question,todowrite,webfetch,websearch,skill,lsp,invalid,execute,plan_exit,pty_*) представља грешку. -
Путања се завршава са
.ts,.js,.mts,.mjs,.ctsили.cjs. Не сме да почиње са/или-, нити да садржи сегмент.или... -
beeuni:<name>под другим кључем представља грешку. На пример, под именом Beeuni алатаweb_search: beeuni:image_search:tools.web_search: мора бити `beeuni:web_search` (Beeuni алат) или путања релативна у односу на корен репозиторијума до .ts или .js модула (нпр. `tools/web_search.ts`) који га замењује. -
beeuni:<name>за име које није име Beeuni алата представља грешку, на примерweb_serch: beeuni:web_serch:tools.web_serch: мора бити путања релативна у односу на корен репозиторијума до .ts или .js модула (нпр. `tools/web_serch.ts`). `beeuni:<name>` именује Beeuni алат под његовим именом: `web_search: beeuni:web_search`, `image_search: beeuni:image_search`, `scrape_webpage: beeuni:scrape_webpage`, `memory: beeuni:memory`, `show: beeuni:show`. -
beeuni validateпријављује и дефинисани модул који не постоји. Вредностbeeuni:не захтева датотеку.
Упозорења. Упозорење никада не доводи до неуспеха beeuni validate.
-
Кључ
toolsу ком није наведен ниједан од пет Beeuni алата:tools: Сесије овог пројекта не добијају ниједан Beeuni алат (web_search, image_search, scrape_webpage, memory, show). Додајте `<name>: beeuni:<name>` да бисте задржали неки алат.Ово открива случај када пројекат дода свој први алат и случајно уклони свих пет подразумеваних.
-
Вредност
toolsагента која именује Beeuni алат који пројекат не учитава:agents.beeuni.tools: „show“ је Beeuni алат који овај пројекат не учитава: додајте `show: beeuni:show` у највиши ниво `tools` или га овде уклоните.
project:
Опционални метаподаци намењени људима: name и description. Платформа не користи ову табелу ни за шта — назив пројекта који се приказује преузима се из његовог записа у бази података. Сматрајте је документацијом за оне који читају репозиторијум.
env:
Наводи имена променљивих окружења које су потребне вашим сесијама. Вредности се чувају на страници Environment variables у контролној табли, никада у самом манифесту. Платформа их дешифрује и убризгава као обичне променљиве окружења при покретању сесије.
env:
required: [DATABASE_URL]
optional: [STRIPE_API_KEY]
| Поље | Тип | Напомене |
|---|---|---|
required |
string[] |
Информативно. Контролна табла тражи од корисника ове вредности, али покретање сесије се не блокира ако нека вредност недостаје. |
optional |
string[] |
Доступно сесијама ако је постављено. Није проблем ако изостаје. |
Имена променљивих окружења морају одговарати ^[A-Z_][A-Z0-9_]*$. Secrets Manager ограничава дужину имена на 64 знака — дуже име се овде успешно парсира, али за њега никада не може да се постави вредност. Ни имена која почињу са BEEUNI_ не могу добити вредност. Имена нека имају највише 64 знака и избегавајте префикс BEEUNI_. Цео уговор: Secrets.
sandbox: и sandbox.templates
Листа именованих слика окружења за изоловано извршавање које могу да се покрену. Опционо — ако нема ставки, свака сесија се покреће са подразумеваном сликом платформе. Сваки шаблон мора да садржи тачно једно од следећег: dockerfile (путања релативна у односу на корен репозиторијума) или image (јавна Docker референца, са верзијом или digest-ом који су фиксирани).
sandbox:
templates:
- slug: ml
name: ML Development
dockerfile: Dockerfile.ml
cpu: 4
memory: 16
disk: 50
| Поље | Тип | Подразумевано | Напомене |
|---|---|---|---|
slug |
string | — | Обавезно. Јединствено за сваки пројекат. default је резервисано. |
name |
string | slug | Ознака која се приказује у бирачу на контролној табли. |
dockerfile |
string | — | Путања релативна у односу на репозиторијум. Не може да се користи истовремено са image. |
image |
string | — | Јавна Docker слика, са тачно наведеном ознаком или digest вредношћу. Не може да се користи истовремено са dockerfile. |
entrypoint |
string | сопствена вредност runtime слоја | Замена за улазну тачку контејнера. |
cpu |
int | подразумевано код провајдера | vCPU језгра. Опсег: 1–32. |
memory |
int | подразумевано код провајдера | RAM у GiB. Опсег: 1–128. |
disk |
int | подразумевано код провајдера | Диск у GiB. Опсег: 1–500. |
container_runtime |
bool | false |
Покреће Docker у изолованом окружењу са bridge и overlay умрежавањем. Погледајте Runtime. |
Свака вредност мора бити позитиван цео број. Вредност испод минимума не пролази валидацију и јавља се грешка. Вредност изнад максимума пролази уз упозорење, а затим се при извршавању ограничава на максимум. GPU уређаји нису подржани — навођење gpu доводи до упозорења, не до грешке. Погледајте Runtime да бисте сазнали шта runtime слој додаје вашој слици.
sandbox.default
Поставите default у sandbox да бисте поставили један шаблон као подразумевани за цео пројекат. Свака сесија, окидач и канал ће га затим покренути без навођења slug вредности.
sandbox:
default: dev
templates:
- slug: dev
dockerfile: Dockerfile.dev
default мора да именује шаблон наведен у овом манифесту или резервисану вредност "default" за слику платформе.
Агент може да изабере своје окружење помоћу agents.<name>.sandbox. Вредност мора да именује шаблон из манифеста или контролне табле, или "default".
agents:
researcher:
sandbox: ml
Шаблон за сесију се одређује овим редоследом:
- Изричито наведен
sandbox_slugсесије. sandboxизабраног агента.sandbox.defaultпројекта."default"платформе.
Cron окидачи, webhook окидачи, распореди и канали користе шаблон изабраног агента.
Измена спецификације (cpu, memory, disk, container_runtime или саме слике) поново прави снимак пројекта. Нова величина примењује се на следећу сесију, а не на ону која је већ покренута.
opencode:
Локација директоријума за конфигурацију стандардни harness-а. Опционално, уз подразумевану вредност.
opencode:
config_dir: harnesses/opencode
| Поље | Тип | Подразумевано | Напомене |
|---|---|---|---|
config_dir |
string | harnesses/opencode, па .beeuni/opencode |
Директоријум релативан у односу на репозиторијум. |
Ако config_dir није постављено, Beeuni користи први од harnesses/opencode и .beeuni/opencode који садржи opencode.json или opencode.jsonc. Тај директоријум садржи само датотеке које чита стандардни harness: opencode.jsonc, plugins/, tools/ и commands/. Агенти и вештине налазе се у корену репозиторијума, у agents/ и skills/. opencode.jsonc остаје изворни регистар стандардни harness-а за додатке, MCP сервере, провајдере и дозволе — немојте те поставке дуплирати у манифесту. Погледајте Agents.
harnesses:
Подешавања за појединачни harness. pi.config_dir показује на директоријум експериментални harness конфигурације, изворне за експериментални harness и релативне у односу на репозиторијум (подразумевано: harnesses/pi, па .beeuni/pi). Директоријум се увози при покретању експериментални harness-ја. pi.packages је засебно подешавање: оно инсталира пакете из harnesses.pi.packages манифеста за сваког агента. Тренутно постоји један кључ пакета: pi.packages, пакети за експериментални harness које учитава свака експериментални harness сесија овог пројекта (runtime: pi или ознака pi_harness). Пакет може бити било шта са packages: додаци (алати, hook-ови, команде) и вештине и упити које пакет садржи.
runtime: pi
harnesses:
pi:
packages:
- npm:pi-web-access@0.30.0 # pinned extension version
- source: npm:pi-mcp-adapter@2.36.0
extensions: ["extensions/*.ts"] # load only these files of the package
skills: [] # load none of its skills
- ./harnesses/pi/audit.ts # an extension file in this repository
| Формат уноса | Значење |
|---|---|
npm:<name>@<x.y.z> |
npm пакет са тачно одређеном верзијом. Опсег верзија или изостављена верзија не пролазе валидацију. |
./<path> |
Датотека додатка или директоријум пакета у овом репозиторијуму. Не сме да изађе из репозиторијума помоћу ... |
{ source, extensions, skills, prompts, themes } |
Исти извор са експериментални harness филтерима за укључивање/изузимање. Ако се филтер изостави, учитава се све; [] не учитава ништа. |
Највише 20 уноса. Git извори нису дозвољени.
По агенту
Агент може да дода своје пакете и изостави оне на највишем нивоу помоћу agents.<name>.harnesses:
harnesses:
pi:
packages: [npm:pi-web-access@0.30.0] # every agent
agents:
researcher:
harnesses:
pi:
packages: [npm:@juicesharp/rpiv-todo@2.11.0] # researcher only
reviewer:
harnesses:
pi:
exclude: [pi-web-access] # reviewer loads no web tools
- Пакети агента су листа са највишег нивоа, умањена за
excludeагента, увећана за његовеpackages. - Ако унос агента наводи пакет који је наведен и на највишем нивоу, за тог агента замењује унос са највишег нивоа (другом верзијом или другим филтерима).
excludeнаводи имена пакета (pi-web-access,@scope/name) или путање./, онако како су наведени на највишем нивоу. Верзија се никада не наводи.- Свака јединствена листа пакета гради се једном. Агенти са истом листом деле ту верзију.
- Пакети припадају агенту са којим сесија почиње. Подагент који други агент покрене помоћу алата
taskкористи само стандардне алате радног простора (bash,read,write,edit,glob,grep), а не своје пакете нити пакете надређеног агента; hook-ови додатака надређеног агента и даље се примењују на његове позиве. Покрените сесију са тим агентом да бисте користили његове пакете.
Како пакети стижу до сесије:
- Спајање захтева за измену ове листе покреће једнократну изградњу пакета за sandbox платформу, без инсталационих скрипти. Сваки додатак се унапред уграђује у једну минимизовану датотеку. Изградња задржава остале датотеке пакета, осим кода који та датотека већ садржи, декларација типова, мапа изворног кода и датотека README и CHANGELOG у корену. Пројекти са истом листом деле исту изградњу.
- Нова или поново покренута сесија преузима изграђени пакет док клонира свој репозиторијум и директно учитава сваки додатак. Сесија никада не покреће
npm installнити компајлира пакет. - Пакет који не може да се унапред изгради (на пример, пакет чији
pi.extensionsкористи glob обрасце) и даље ради: сесија га учитава из инсталираних пакета, али то траје дуже. Ако код пакета чита неку датотеку која се изоставља приликом изградње, додајте у његов унос филтерextensions: сесија ће га онда такође учитавати из инсталираних пакета. - Сесија која почне пре него што изградња постане доступна покреће се без пакета пројекта и започиње изградњу; следећа сесија ће их имати.
Beeuni такође инсталира скуп системских пакета у сваку експериментални harness сесију. Унос пројекта за исти пакет замењује системску верзију. Репозиторијум такође може да садржи експериментални harness додатке, изворне за експериментални harness, у .pi/extensions/*.ts; експериментални harness их учитава без уноса у манифесту.
Додаци раде без терминалског корисничког интерфејса: алати, hook-ови и команде функционишу; виџети намењени само терминалу не раде ништа.
triggers:
Листа дефиниција за cron, webhook и надзор. Сваки унос покреће сесију која као прву поруку извршава prompt.
triggers:
- slug: daily-digest
type: cron
cron: '0 0 9 * * 1-5'
prompt: Summarize yesterday's commits.
| Поље | Обавезно | Подразумевано | Напомене |
|---|---|---|---|
slug |
да | — | [a-z0-9][a-z0-9_-]{0,127}, јединствено међу окидачима. |
type |
да | — | cron, webhook или monitor (експериментално). |
prompt |
да | — | Не сме бити празно. Подржава шаблонизацију. |
name |
не | slug | Назив за приказ. |
agent |
не | default_agent |
Мора да буде назив кључа у agents:. Изоставите га да бисте користили default_agent; немојте уписивати дословно default. |
enabled |
не | true |
false прескаче ставку. |
model |
не | разрешава се у тренутку активирања | Облик за пренос provider/model. Закачи активирану сесију за тај модел. Погледајте Models. |
session_mode |
не | fresh |
fresh, reuse, pinned или keyed. |
session_id |
обавезно за pinned |
— | Тачна сесија за поновно слање упита. |
Cron окидачи захтевају тачно једно од поља cron (израз са 6 поља) или run_at (једнократна временска ознака ISO-8601), као и timezone као IANA назив. Webhook окидачима је потребан secret_env, назив тајне која користи испоруку broker са потрошачем connector. Окидачима надгледања су потребни run (команда релативна у односу на репозиторијум) и mode (poll или stream), а одбијају сва поља за cron и webhook. Комплетан опис поља, подешавање акредитива, шаблонизација корисног садржаја, крајње тачке и стратегија сесије: погледајте Triggers.
connectors:
Списак спољних алатки које агент може да позива. Дефиниција се налази у Git-у; акредитиви се чувају на платформи, никада у манифесту. Концептуални модел погледајте у одељку Connectors.
connectors:
- slug: gmail-read
name: Gmail read only
provider: pipedream
app: gmail
authorization_strategy: user
policies:
- match: search_email
action: always_run
| Поље | Обавезно | Напомене |
|---|---|---|
slug |
да | [a-z0-9][a-z0-9_-]{0,127}, јединствено међу конекторима. |
provider |
да | pipedream, mcp, openapi, postman, graphql, http или channel. |
name |
не | Назив за приказ. Подразумевано је slug. |
authorization_strategy |
не | project или user. Ако се изостави, подразумевано је project. Стратегија пројекта користи активне везе пројекта. Стратегија корисника користи само везу члана који је обавио радњу. |
enabled |
не | Подразумевано је true. |
credential |
не | Подржан је само shared. Укинути режим per_user доводи до фаталне грешке. |
sensitive |
не | Подразумевано је false. true поставља require_approval као подразумевану радњу за неподударајуће захтеве, укључујући читање. Експлицитна правила пројекта и конектора се и даље прво примењују. |
Поља специфична за добављача:
| Добављач | Обавезно поље | Напомене |
|---|---|---|
pipedream |
app |
account није обавезно; подразумевано је slug. |
mcp |
url |
transport: http (подразумевано) или sse. |
openapi |
spec |
URL или путања релативна у односу на репозиторијум. |
postman |
spec |
URL или путања JSON колекције, манифест .postman/api или URL Postman радног простора. |
graphql |
endpoint |
spec није обавезно (SDL). |
http |
base_url |
spec није обавезно. |
channel |
platform |
slack, teams, email или voice. |
computer |
— | Њиме управља API. Не можете га ручно декларисати. Сваки повезани рачунар је један од његових налога. Погледајте Computers. |
За конекторе channel ретко је потребан ручно написан унос — повезивањем канала са контролне табле аутоматски се креира. Погледајте Slack & channels. Платформа резервише слагове beeuni_slack, beeuni_teams, beeuni_email и computer; њихова употреба са другим добављачем је грешка при валидацији. Конектор computer се креира када први члан повеже рачунар, јер су ИД-ови машина идентитети контролне равни налога и не смеју да се нађу у манифесту.
connectors.auth: опционално, за провајдере који нису pipedream. type је bearer, basic, custom, api_key, oauth1, hmac, aws_sigv4, mtls или none (подразумевано). oauth1 је ограничен на провајдере openapi, postman и http. in је header (подразумевано), query или cookie. name је обавезан када је type custom или api_key.
connectors.policies: листа парова {match, action}. match је glob образац који се примењује на
називе алата. action је always_run, require_approval или block. Политике
припадају конектору. Све везе у оквиру тог конектора користе исте
политике.
policy.default_mode: кључ највишег нивоа, засебан од connectors:, који поставља режим одобравања конектора за цео пројекат. Прихвата вредност allow_all (подразумевано; покреће се сваки алат који се не подудара) или risk (захтева одобрење за неподударајуће позиве који уписују податке или их уништавају). Подесите га помоћу beeuni connectors policy set --default <risk|allow_all> — погледајте CLI.
Канали
v2 уклања channels: из шеме. Усмеравање канала ка агентима (тренутно Slack, Microsoft Teams, имејл и глас) јесте активно оперативно стање, а не декларативна конфигурација. Подешава се на страници Channels на контролној табли или помоћу команди за ћаскање; то је иста граница која чува акредитиве ван git-а. Повезивањем канала и даље се ствара унос connectors са provider: channel који агент може да позива. Погледајте Slack и канали. Табела [[channels]] из v1 обрађена је у одељку Застарели TOML.
agents:
Мапа назива и блокова, са кључевима по називу агента. Ова мапа служи само за управљање — она одређује чему агент сме да приступи, а не шта говори или ради.
Овај блок је друго од два повезивања: principal добија улоге од Beeuni-ја, а агент додатно носи Beeuni дозволе наведене овде. Сесија може да ради само оно што обе стране дозвољавају. Погледајте Један речник, два повезивања.
default_agent: beeuni
agents:
beeuni:
file: agents/beeuni.md
connectors: all
secrets: all
beeuni_permissions: all
skills: all
release-bot:
file: agents/release-bot.md
connectors: [github]
connectors_required: [github]
beeuni_permissions: [project.gitops.push]
secrets: [GITHUB_AGENT_TOKEN]
| Поље | Подразумевано | Напомене |
|---|---|---|
| (кључ мапе) | — | [a-z0-9][a-z0-9_-]{0,127}, јединствено у оквиру пројекта. Ако није наведено file, уједно је и назив датотеке .md. |
file |
agents/<name>.md |
Путања до датотеке агента .md у односу на корен репозиторијума. Погледајте Датотека агента. |
enabled |
true |
false третира агента као ненаведеног — платформа га неће покренути. |
connectors |
none |
Слагови конектора које агент сме да позива. all значи сваки конектор. |
connectors_required |
none |
Застарело: анализира се и занемарује. Покретање sandbox-а више не зависи од повезаности конектора; позив конектору са којим ништа није повезано враћа connector_not_connected са везом за повезивање. Ако је наведено, и даље мора бити подскуп од connectors. |
secrets |
none |
Тајне пројекта које овај агент добија као променљиве окружења у sandbox-у. Преименовано из env у v1. |
beeuni_permissions |
none |
Beeuni дозволе (радње у пројекту) које агент сме да користи преко CLI-ја, API-ја или git-а. all значи све дозволе пројекта, али је и даље ограничено највишом улогом агента и никада не обухвата дозволе намењене само људима. beeuni_cli је застарели назив: и даље је прихваћен, уз упозорење при валидацији; ако су оба поља постављена на различите вредности, јавља се грешка. |
skills |
none |
Вештине које агент сме да учита. |
apps |
none |
Beeuni App слагови које агент сме да отвори када је App restricted или private. all значи сваки App у пројекту. Погледајте Агенти и App-ови. |
tools |
all |
Алати које агент сме да користи: алати harness-а, Beeuni-ја и пројекта. all, none, листа (само наведени алати) или { exclude: [...] } (сви осим наведених). И даље је подржан и ранији облик мапе { bash: false }. За разлику од претходно наведених додела, ако се tools изостави, то значи да су доступни сви алати. Погледајте Ко сме да користи који алат. |
repository_access |
true |
Да ли нове сесије добијају репозиторијум пројекта. false онемогућава испоруку репозиторијума и приступ репозиторијуму преко акредитива сесије. Постојеће сесије задржавају сачувану политику. |
v2 подразумевано одбија приступ: ако се connectors, secrets, beeuni_permissions, skills или apps изостави код декларисаног агента, добија вредност none. Изричито доделите сваку дозволу која је агенту потребна, као што то чини агент beeuni из почетног примера изнад. Пројекат који прелази са v1 мора ручно поново да додели све дозволе — у v1 се за env (тајне), ако је изостављено, подразумевано поставља all, што је супротно од v2.
connectors_personal остаје застарели улазни алијас за
connectors_required. Нови манифести морају да користе connectors_required. Вредност authorization_strategy конектора одређује да ли овлашћење припада пројекту или члану.
Доделе beeuni_permissions потичу из фиксног скупа дозвола везаних за пројекат (project.read, project.gitops.push, project.gitops.merge, project.gitops.ref.any, project.trigger.*, project.secret.*, project.connector.* и друге). Дозволе везане за налог — member.*, billing.*, project.create — никада се не могу доделити агенту. Покрените beeuni validate --scopes из сесије да бисте приказали тренутну листу дозвола које се могу доделити.
Датотека агента
agents.<name>.file наводи датотеку .md агента, у односу на корен репозиторијума.
agents:
support:
file: agents/support.md
- Путања мора да се завршава са
.md. - Путања не сме да почиње са
/или-. Не сме да садржи сегмент.или.., нити празан сегмент. - Сваки сегмент сме да садржи само слова, цифре,
_,-,.и размаке. - Ако се
fileизостави, Beeuni читаagents/<name>.md, па затим.beeuni/opencode/agents/<name>.md. Када је постављенopencode.config_dir, друга путања је<config_dir>/agents/<name>.md. - Када контролна табла сачува агента који има
.md, уписујеfileса том путањом. - API одбија захтев којим се мења
file(400, кодinvalid_config). Да бисте преместили агента, преместите његов.mdи ажурирајтеfileуbeeuni.yamlу истом commit-у.
beeuni validate и провера спајања захтева за измену одбијају неважећи file и приказују грешку за agents.<name>.file.
Када промене конфигурације ступају на снагу
- Измена манифеста,
agents/,skills/или конфигурационог директоријума стандардни harness примењује се тек након што се захтев за измену споји саmain. Сесије и провера покретача читају подразумевану грану, а не гране сесија. - Планер преузима измену cron или webhook конфигурације покретача у року од неколико секунди од спајања.
- Измена слике sandbox-а или хардвера поново гради снимак. Нова спецификација примењује се на следећу сесију, а не на тренутну.
- Измена вредности тајне на контролној табли разрешава се при креирању sandbox-а. Примењује се на следећу сесију, а не на ону која је у току.
Правила за повратно уписивање
Измене на контролној табли подразумевају читање, измену и уписивање у датотеку у којој је унос дефинисан: beeuni.yaml или увезену датотеку. Да би разлике између измена у корисничком интерфејсу и током сесије биле чисте:
- Поставите
beeuni_versionкао први кључ. - Унутар уноса покретача ређајте поља овим редоследом:
slug,name,type,agent,enabled, затим поља специфична за тип, а на крајуprompt. - Ако додате webhook покретач пре него што подесите његову тајну, наведите име тајне у
env.optional. Оставите покретачenabled: falseдок се вредност не унесе.
Приступ репозиторијуму
Подесите agents.<name>.repository_access на false за агенте којима нису потребне изворне датотеке пројекта.
И даље могу да праве датотеке у sandbox-у и користе додељене алате, тајне и конекторе.
Подесите на true за агенте којима је потребан репозиторијум. Git дозволе се подешавају засебно.
Ово подешавање промените у уређивачу агента, у одељку Workspace → Project repository access.
Подешавање се примењује на нове сесије. Постојеће сесије задржавају сачувану политику, укључујући и након замене окружења за извршавање.
agents:
support:
repository_access: false
engineer:
repository_access: true
Застарело поље workspace и даље може да се чита: branch значи true, а runtime значи false.
Конфигурације са застарелим read и даље одбијају креирање сесије док поље не замените експлицитном логичком вредношћу.
Не постоји режим приступа репозиторијуму само за читање. Неусаглашена стара и нова поља се одбијају.
Уређивач и SDK шаљу repository_access. Када је приступ онемогућен, API чува и workspace: runtime као компатибилну копију. Тиме се ограничење чува за старије реплике API-ја током постепеног пуштања измена или враћања на претходну верзију. API одговори не садрже ту копију. За ручно написане манифесте који користе само repository_access потребан је ажуриран API.