feat(skills): add skill package schema and agent-side skill loading support #94
Open
CoreRasurae
wants to merge 1 commits from
feature/skill-package-support into master
pull from: feature/skill-package-support
merge into: cleveragents:master
cleveragents:master
cleveragents:task/m2-quick-benchmark-regression-ci
cleveragents:feature/76-budget-pre-flight
cleveragents:feature/17-public-api
cleveragents:feature/m1-registry-http-client
cleveragents:master-backup
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f9fea9e208
|
feat(skills): add skill package schema and agent-side skill loading support
CI / lint (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 1m36s
CI / security (pull_request) Successful in 1m32s
CI / quality (pull_request) Failing after 1m25s
CI / unit_tests (pull_request) Failing after 1m28s
CI / coverage (pull_request) Has been skipped
CI / build (pull_request) Successful in 52s
CI / integration_tests (pull_request) Failing after 1m53s
CI / status-check (pull_request) Failing after 12s
CI / benchmark (pull_request) Failing after 1m28s
Extends the Package Registry Standard with a normative Skill package schema (§16) aligned with the open agentskills.io Agent Skills format, and adds an optional `skills` field to `type: llm` agent configs so an Actor can attach one or more resolved Skill packages to an agent. SkillLoader (new) resolves each `skills` reference through the existing cleveractors.registry client (registry:/ID:/local: schemes), mirroring the established template package-reference resolution pattern in cleveractors.templates.base._resolve_package_ref rather than introducing a parallel resolution path. SkillValidator (new) checks resolved content against the D-2 schema (name/description constraints lifted from agentskills.io, resource path/encoding rules) and computes a content-addressed package_id via the existing Canonicalizer. Resolved skills are disclosed to the model in three stages, per D-4: discovery (name+description folded into system_prompt), activation (a synthesized `skill` tool call returns full instructions), and execution (a further call reads a bundled resource, reusing file_read's offset/max_chars pagination convention from ADR-2033). All registry awareness lives in SkillLoader at the factory layer; LLMAgent only gains a `_skills` value forwarded through its existing tool-call context, and ToolAgent gains one new built-in tool handler — neither imports anything from cleveractors.registry. The `skills` field itself is documented only in ADR-2034, not mirrored into docs/index.md, matching how ADR-2031/ADR-2032 handled their own new LLM agent config fields (graduation into the normative spec is deferred to a future ADR). The Skill package schema, which has no other home, is appended as a new §16 in docs/actor-registry-standard.md (after the original §1-15 body, with a version bump to 1.1.0) rather than spliced into the existing §3.2 package-type table. 68 Behave scenarios cover schema validation, all three reference schemes, loader orchestration, factory/agent integration, and the ToolAgent skill tool (activation, resource reads, pagination, error paths). A Robot Framework suite exercises the same flow against a real on-disk skill file and real LocalPackageStore/PackageContentResolver resolution end to end, mocking only the LLM API call. Coverage: 96.9% (threshold 96.5%); full nox suite green; ASV shows no significant performance change. ISSUES CLOSED: #88 |