Teach builder to author DeepAgents skills
All checks were successful
build / build (push) Successful in 26s

This commit is contained in:
robert
2026-05-19 09:39:29 -03:00
parent e1d9eab879
commit f6c612a071
10 changed files with 857 additions and 13 deletions

View File

@@ -2,7 +2,13 @@ from __future__ import annotations
import unittest
from agent_builder.builder import SYSTEM_PROMPT
from agent_builder.builder import (
BUILDER_SKILL_SOURCE,
SYSTEM_PROMPT,
_builder_skill_files,
_with_builder_skills,
)
from deepagents.backends import StateBackend
class BuilderPromptTests(unittest.TestCase):
@@ -17,3 +23,33 @@ class BuilderPromptTests(unittest.TestCase):
self.assertIn("class GeneratedDeck(Slide)", SYSTEM_PROMPT)
self.assertIn("manim-slides render --CE -ql", SYSTEM_PROMPT)
self.assertIn("render: bool = False", SYSTEM_PROMPT)
def test_prompt_and_backend_load_packaged_builder_skills(self) -> None:
expected = {
"deepagent-agent-design",
"a2apack-agent-authoring",
"deepagents-implementation-patterns",
"workspace-artifact-safety",
"agent-quality-review",
}
for skill_name in expected:
self.assertIn(skill_name, SYSTEM_PROMPT)
self.assertIn("deepagent-agent-design", SYSTEM_PROMPT)
self.assertIn("write_agent_skill", SYSTEM_PROMPT)
self.assertIn("workspace_access = WorkspaceAccess.dynamic", SYSTEM_PROMPT)
files = _builder_skill_files()
self.assertTrue(
{path.split("/", 1)[0] for path in files}.issuperset(expected)
)
self.assertIn("skills=[RUNTIME_SKILLS_ROOT]", files["deepagent-agent-design/SKILL.md"])
self.assertIn("from a2a_pack import", files["a2apack-agent-authoring/SKILL.md"])
self.assertIn("create_deep_agent", files["deepagents-implementation-patterns/SKILL.md"])
self.assertIn("ctx.write_artifact", files["workspace-artifact-safety/SKILL.md"])
self.assertIn("live_skills[].input_schema", files["agent-quality-review/SKILL.md"])
backend = _with_builder_skills(StateBackend())
listing = backend.ls(BUILDER_SKILL_SOURCE)
paths = [entry["path"] for entry in (listing.entries or [])]
for skill_name in expected:
self.assertIn(f"{BUILDER_SKILL_SOURCE}{skill_name}/", paths)