一键导入
capability-development
Guide for creating, registering, and managing CCOS/RTFS capabilities
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Guide for creating, registering, and managing CCOS/RTFS capabilities
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Front-door lead agent for ambiguous goals.
Validation and testing autonomous agent.
Software engineering autonomous agent.
Installs new durable agents into the runtime.
Design, structure, and task decomposition agent.
Audit, review, and promotion gate agent.
| name | Capability Development |
| description | Guide for creating, registering, and managing CCOS/RTFS capabilities |
Capabilities are the core building blocks of CCOS - typed, auditable units of functionality.
Capabilities are defined in .rtfs files using S-expression syntax:
(capability "domain.capability-name"
:description "What this capability does"
:input-schema [:map
[:param1 :string]
[:param2 [:and :int [:> 0]]]]
:output-schema [:map [:result :any]]
:effects [:network] ; Declared effects
:implementation (fn [inputs]
;; Pure logic + host calls
(let [url (str "https://api.example.com/" (:param1 inputs))]
(call "ccos.network.http-fetch" {:url url}))))
Use RTFS type expressions for validation:
:input-schema [:map
[:required_param :string] ; Required string
[:optional_param {:optional true} :int] ; Optional int
[:bounded [:and :int [:>= 0] [:< 100]]] ; Constrained int
[:enum_field [:union "a" "b" "c"]] ; Enum values
[:nested [:map [:inner :string]]]] ; Nested map
:output-schema [:map
[:data [:vector :any]]
[:count :int]
[:metadata {:optional true} :any]]
For external API integrations, create a server.rtfs file:
(server
:id "weather_api"
:server_info {
"name" "Weather API"
"endpoint" "https://api.weather.com"
"description" "Weather data service"
"auth_env_var" "WEATHER_API_KEY"
}
:capability_files ["openapi/v1/get_forecast.rtfs"
"openapi/v1/get_current.rtfs"]
:source {"type" "OpenAPI"
"entry" {"url" "https://api.weather.com/openapi.json"}}
)
Use MCP tools to discover and register external APIs:
ccos_suggest_apis { query: "weather forecast API" }
ccos_introspect_remote_api {
endpoint: "https://api.openweathermap.org/data/3.0/openapi.json",
name: "OpenWeatherMap",
auth_env_var: "OPENWEATHERMAP_API_KEY"
}
# User approves via /approvals UI, then:
ccos_register_server { approval_id: "..." }
For multi-step workflows, use the :agent kind:
(capability "agent.daily-reporter"
:description "Generates consolidated daily report"
:input-schema [:map
[:city :string?]
[:btc_symbol :string?]]
:output-schema [:map
[:weather :any]
[:btc :any]]
:meta {
:kind :agent
:planning false
:source-session "session_123"
}
:implementation (fn [inputs]
(let [city (:city inputs "Paris")
weather (call "weather.get_current" {:city city})
btc (call "crypto.get_price" {:symbol (:btc_symbol inputs "BTC")})]
{:weather weather :btc btc})))
Generate capabilities programmatically:
ccos_synthesize_capability {
description: "Fetch and format cryptocurrency prices",
capability_name: "crypto.formatted_prices",
input_schema: {
type: "object",
properties: {
symbols: { type: "array", items: { type: "string" } }
}
}
}
Convert interactive sessions into reusable agents:
1. ccos_session_start { goal: "Build weather+crypto reporter" }
2. ccos_execute_capability { ... } # Execute steps
3. ccos_execute_capability { ... }
4. ccos_session_end { session_id: "...", save_as: "workflow.rtfs" }
5. ccos_consolidate_session {
session_id: "...",
agent_name: "daily_reporter"
}
capabilities/
├── core/ # Built-in capabilities
├── servers/
│ ├── approved/ # Approved external APIs
│ │ └── weather_api/
│ │ ├── server.rtfs
│ │ └── openapi/v1/
│ │ └── get_forecast.rtfs
│ └── pending/ # Pending approval
├── agents/ # Agent capabilities
│ └── daily-reporter.rtfs
└── learned/ # Auto-synthesized
Declare effects for governance:
| Effect | Description |
|---|---|
:network | HTTP requests, API calls |
:io | Console, logging |
:fs | File system access |
:state | Key-value store, database |
:time | Current time access |
:random | Random number generation |
domain.action format (e.g., github.list_issues)(call ...)