Passport JSON
Paste into PUT /v1/agents/:id/passport.
[
{
"scope": "finances",
"level": "observe",
"resource_type": "all"
},
{
"scope": "goals",
"level": "recommend",
"resource_type": "all"
},
{
"scope": "decisions",
"level": "observe",
"resource_type": "all"
},
{
"scope": "forecast",
"level": "observe",
"resource_type": "all"
}
]#CEO Agent: przegląd celów i decyzji we wszystkich biznesach
Cel: raz w tygodniu porównać każdy biznes z jego celami (nie „czy rośnie”, tylko „względem celu”), zaproponować brakujący cel i przejrzeć wyniki decyzji innych agentów.
Passport: granty ręczne: finances:observe@all, forecast:observe@all, goals:recommend@all, decisions:observe@all. Bez personal (nigdy nie wynika z all), bez zapisów kwotowych.
#System prompt (skopiuj)
You are the CEO Agent in Operlance with read access to all businesses (never personal). Weekly: get_daily_brief without business_id for the owner-wide view, then get_goals per business and compare current_value with target_value using gap and on_track; quote data_class. Where a business has no goal for a key metric, propose one with propose_goal (it always needs the owner's approval). Review get_decision_outcomes to see whether other agents' decisions met their expectations. You cannot record spend or change budgets.
#Sekwencja
- Brief dla całego Ownera (grant
all).
{
"data": {
"date": "2026-09-18",
"currency": "USD",
"highlights": [
{
"code": "revenue_24h",
"message": "Klima: revenue last 24h",
"amount_minor": 148600,
"business_id": "<business:klima>"
},
{
"code": "revenue_24h",
"message": "THARAN: revenue last 24h",
"amount_minor": 79600,
"business_id": "<business:tharan>"
},
{
"code": "spend_24h",
"message": "Klima: spend last 24h",
"amount_minor": 11329,
"business_id": "<business:klima>"
},
{
"code": "spend_24h",
"message": "THARAN: spend last 24h",
"amount_minor": 35331,
"business_id": "<business:tharan>"
}
],
"alerts": [
{
"code": "break_even_off_track.net30_negative_flat_revenue",
"message": "Clothing: 30-day net is negative and revenue is not growing",
"amount_minor": -166786,
"business_id": "<business:clothing>"
},
{
"code": "budget_exceeded.actual_over_budget",
"message": "THARAN: infrastructure: actual exceeds planned amount",
…
- Cele THARAN (seed demo nie ma jeszcze celów).
{
"data": [
{
"id": "<id-22>",
"owner_id": "<id-23>",
"business_id": "<business:tharan>",
"project_id": null,
"personal": false,
"agent_id": null,
"metric": "mrr",
"comparator": "gte",
"target_value": 2000000,
"currency": "USD",
"title": "MRR ≥ 20 000 USD do 2027-03-31",
"deadline": "2027-03-31",
"status": "active",
"provenance": {
"reason": null,
"source": {
"type": "HUMAN",
"agent_id": null,
"approval_id": null,
"external_id": null,
"integration_id": null
},
"confidence": 1,
"data_class": "manual",
"recorded_at": "2026-09-18T…Z"
},
"created_at": "2026-09-18T…Z",
"updated_at": "2026-09-18T…Z",
"progress": {
"current_value": 2228800,
"target_value": 2000000,
"comparator": "gte",
"currency": "USD",
"gap": -228800,
"on_track": true,
"data_class": "real",
"window": {
…
- Propozycja celu: ROAS ≥ 2 (recommend → 202).
{
"status": "pending_approval",
"approval_id": "<id-25>",
"coverage": null,
"request_id": "req_<id-26>"
}
- Owner zatwierdza; cel powstaje ze source AI_AGENT i approval_id.
{
"status": 200,
"data": {
"id": "<id-25>",
"owner_id": "<id-23>",
"agent_id": "<id-27>",
"action": "create_goal",
"params": {
"title": "THARAN ROAS ≥ 2",
"metric": "roas",
"reason": "No ROAS target for THARAN ads",
"comparator": "gte",
"business_id": "<business:tharan>",
"target_value": 2,
"idempotency_key": "pb-ceo-1"
},
"reason": "No ROAS target for THARAN ads",
"amount_minor": null,
"currency": null,
"business_id": "<business:tharan>",
"personal": false,
"status": "approved",
"decided_by": "<id-23>",
"decided_at": "2026-09-18T…Z",
"decision_note": "ok",
"expires_at": "2026-09-25T…Z",
"result_ref": {
"id": "<id-28>",
"type": "goal"
},
"idempotency_key": "pb-ceo-1",
"created_at": "2026-09-18T…Z",
"kind": "write"
},
"cancelled_conflicts": [],
"request_id": "req_<id-29>"
}
- Cel z postępem liczonym z ledgera.
{
"data": [
{
"id": "<id-22>",
"owner_id": "<id-23>",
"business_id": "<business:tharan>",
"project_id": null,
"personal": false,
"agent_id": null,
"metric": "mrr",
"comparator": "gte",
"target_value": 2000000,
"currency": "USD",
"title": "MRR ≥ 20 000 USD do 2027-03-31",
"deadline": "2027-03-31",
"status": "active",
"provenance": {
"reason": null,
"source": {
"type": "HUMAN",
"agent_id": null,
"approval_id": null,
"external_id": null,
"integration_id": null
},
"confidence": 1,
"data_class": "manual",
"recorded_at": "2026-09-18T…Z"
},
"created_at": "2026-09-18T…Z",
"updated_at": "2026-09-18T…Z",
"progress": {
"current_value": 2228800,
"target_value": 2000000,
"comparator": "gte",
"currency": "USD",
"gap": -228800,
"on_track": true,
"data_class": "real",
"window": {
…
- Co zrobiłem wczoraj i co odrzucono (własny audit trail z what_to_do).
{
"data": {
"agent_id": "<id-27>",
"period": {
"from": null,
"to": null
},
"kind": "all",
"entries": [
{
"id": "<id-31>",
"at": "2026-09-18T…Z",
"action": "create_goal",
"outcome": "pending_approval",
"ref": {
"type": "approval",
"id": "<id-25>"
},
"amount": null,
"reason_given": "No ROAS target for THARAN ads",
"request_id": "req_<id-26>"
},
{
"id": "<id-32>",
"at": "2026-09-18T…Z",
"action": "read_agents",
"outcome": "read",
"ref": null,
"amount": null,
"reason_given": null,
"request_id": "req_<id-33>"
},
{
"id": "<id-34>",
"at": "2026-09-18T…Z",
"action": "read_audit",
"outcome": "read",
"ref": null,
"amount": null,
"reason_given": null,
…
- Wyniki decyzji agentów (puste na świeżym seedzie).
{
"data": [],
"coverage": {
"coverage_pct": 0.74,
"domains": {
"revenue": {
"status": "accurate",
"sources": [
"STRIPE_API"
],
"last_sync_at": "2026-09-18T…Z"
},
"ad_spend": {
"status": "accurate",
"sources": [
"GOOGLE_ADS_API",
"META_API"
],
"last_sync_at": "2026-09-18T…Z"
},
"subscriptions": {
"status": "incomplete",
"sources": [
"HUMAN",
"SYSTEM"
],
"last_sync_at": null
},
"operating_costs": {
"status": "mostly_covered",
"sources": [
"ANTHROPIC_API",
"HUMAN",
"OPENAI_API",
"STRIPE_API"
],
"last_sync_at": "2026-09-18T…Z"
},
"cash": {
"status": "incomplete",
…
#Gdzie jest 202
Krok 3: propose_goal zawsze kończy się Approval, nawet przy goals:execute; człowiek jest ostateczną instancją dla celów. Po akceptacji (krok 4) cel ma provenance.source.type = AI_AGENT i approval_id.
#Czego agent NIE może
Personal (scope_denied mimo all), żadnych zapisów finansowych, zmiany celów bez Ownera.