| name | agent-workspace |
| description | Create a Prisme.ai bootstrap workspace that provisions an Agent Factory agent, attaches Storage-backed file or URL sources, seeds Agent Evaluations cases, runs evaluation, and validates the setup through the supported product apps Agents, Storage, and Evaluation. |
Agent Workspace Bootstrap
Use this skill to build a consumer/bootstrap DSUL workspace whose purpose is to create and validate an Agent Factory agent with Storage sources and Evaluation test cases.
Bundled API Reference
reference/ carries the OpenAPI specs for the products this skill drives, each with a condensed index that starts with the app-method → REST-operation mapping:
| Product | App import | Index | Full spec |
|---|
| Agent Factory | Agents | reference/agent-factory-api.md | reference/agent-factory.swagger.yml |
| Knowledges (Storage) | Storage | reference/storage-knowledge-api.md | reference/storage-knowledge.swagger.yml |
Read the index for the method you are about to call; open the swagger only for payload shapes, enums, or error bodies. The specs are for knowing shapes — the workspace still calls every product through its app import, never with fetch:. See reference/README.md. Agent Evaluations has no published swagger; use its automations.md doc.
Prisme.ai Documentation
Public product documentation: https://docs.prisme.ai/get-started/home. Use it for product concepts, terminology, and what a feature is supposed to do. It is not the API contract — for request/response shapes use reference/, and for what an app method actually sends use the app workspace itself.
Pages that matter for this skill:
Notes:
- The
get_prisme_documentation MCP tool searches this same documentation from the session; prefer it over guessing a URL.
- The site tracks the latest release. When behaviour on sandbox contradicts a page, trust the environment and say so rather than coding to the doc.
- Product naming differs between the docs and the DSUL: the docs say Agent Creator for what this skill imports as
Agents (agent-factory), and Knowledges for what it imports as Storage.
Non-Negotiables
- Use the product apps, never raw product HTTP calls:
Agents for agent creation, configuration, tools, messages, and cleanup.
Storage for file or URL sources, vector stores, indexing, listing, and cleanup.
Evaluation for test cases, evaluation runs, run polling, exports/results, and cleanup.
- Every model call goes through an agent. Create or reuse an Agent Factory agent and call
Agents.sendMessage — including for one-shot work such as classification, extraction, translation, summarization, or LLM-as-judge scoring. Do not call an LLM gateway or any provider API directly.
- Never use
fetch to Agent Factory, Storage, or Agent Evaluations. For this bootstrap workspace, avoid fetch: entirely unless the user explicitly adds an unrelated external integration.
- If an action is not exposed by the app, check
reference/ before reporting: an endpoint present in the spec but absent from the app means a missing wrapper method, while an endpoint absent from the spec means the product does not support it. Either way, stop and report it in chat with which of the two it is. Ask how to proceed and suggest updating the relevant app wrapper.
- Generated workspaces may import only
Agents, Storage, and Evaluation among Prisme product apps.
- Do not add a
one-product label to the generated workspace.
- First pass is discovery/spec only. Ask for end-user confirmation before creating workspace files.
- After confirmation and local validation, attempt the required test/push workflow for the target environment. Let Codex or Claude surface normal permission prompts for push or remote execution.
First Pass
Before editing files:
- Identify the desired workspace slug, agent name, agent instructions, source files/URLs, and evaluation questions.
- Read the bundled
reference/ index for each product you will call — it is the authoritative list of what the app methods map to. For product concepts you are unsure about, read the matching page on https://docs.prisme.ai/get-started/home or search it with get_prisme_documentation.
- Read the local docs in the
prismeai-workspaces repo when you need implementation detail beyond the REST contract:
docs/agent-factory/automations.md
docs/storage/automations.md
docs/agent-evaluations/automations.md
- Check current examples when useful:
workspaces/agent-factory-consumer/ for Agents.* app method usage.
workspaces/agent-evaluations-consumer/ for evaluation app method usage; translate AgentEvaluations.* calls to this skill's Evaluation.* import alias.
workspaces/ai-act-agent/ only for high-level workspace shape. Do not copy its domain filters or any raw HTTP cleanup pattern.
- Present a concise implementation plan with:
- workspace slug and display name
- product apps to import
- source ingestion plan
- which agent handles each model call in the flow
- evaluation cases to seed
- test suite behavior
- test/push target environment
- Ask for confirmation before creating the workspace. Do not continue until the user confirms.
Workspace Shape
After confirmation, create a local workspace under workspaces/{slug}/:
workspaces/{slug}/
├── index.yml
├── security.yml
├── imports/
│ ├── Agents.yml
│ ├── Storage.yml
│ └── Evaluation.yml
├── automations/
│ ├── createBootstrap.yml
│ ├── createAgent.yml
│ ├── createStorageSources.yml
│ ├── createEvaluationCases.yml
│ ├── runEvaluation.yml
│ └── tests/
│ └── bootstrap.yml
└── tests/
└── README.md
tests/ is required for fixtures, status notes, and a human-readable test contract. Executable DSUL tests live under automations/tests/ so the workspace loader can run them.
Required Imports
Use these import slugs exactly unless the user explicitly asks for a different local alias.
slug: Agents
appSlug: Agents
config:
apiKey: '{{secret.agentFactoryApiKey}}'
slug: Storage
appSlug: Storage
config: {}
slug: Evaluation
appSlug: agentEvaluations
config:
apiKey: '{{secret.agentEvaluationsApiKey}}'
Workspace Config
Keep index.yml focused on bootstrap state and secrets:
- Labels: include project/domain labels such as
agent-bootstrap, rag, or the customer/domain name. Do not include one-product.
- Secrets: define
agentFactoryApiKey and agentEvaluationsApiKey.
- Config value:
agent: id, name, model, instructions, optional temperature.
storage: vectorStoreId, provider, chunking/embedding defaults when needed.
bootstrap.sources: source list classified as url, file_id, or local_file, with names, filenames, MIME types, source values, and tags.
bootstrap.evaluationCases: question, expected answer, and criteria list.
Automation Contract
Create small automations with one responsibility each:
createAgent.yml: calls Agents.createAgent with config.agent.name, config.agent.instructions, config.agent.model, and config.agent.temperature, stores config.agent.id, returns the created agent.
createStorageSources.yml: calls Storage.createVectorStore, Agents.addTool with type: file_search, then attaches each source with Storage.addFileToVectorStore.
- URL sources pass
url, file_name, mime_type, tags, metadata, optional headers, optional force_recrawl, and agent_id directly to Storage.addFileToVectorStore.
- Existing files pass
file_id to Storage.addFileToVectorStore.
- Local files require a Storage app upload method before attach. Use
Storage.uploadFile when the local file can be represented by the app's supported arguments. If the needed upload shape is not exposed by the app, stop and report the missing method.
- Poll attached files with
Storage.listVectorStoreFiles or Storage.getVectorStoreFile until each file reaches a terminal indexed or failed state before sending messages or starting evaluation.
createEvaluationCases.yml: calls Evaluation.importCases or Evaluation.createCase, then Evaluation.listCases.
runEvaluation.yml: calls Evaluation.startRun, polls Evaluation.getRun until completed, failed, cancelled, or timeout, then returns the run and result summary.
createBootstrap.yml: endpoint automation that runs the full flow in order and returns IDs plus next steps.
Use comment: instructions for explanations inside DSUL. Do not use YAML comments in automation files.
Endpoint And Security Rules
- Helper automations are
private: true.
- Test automation file
automations/tests/bootstrap.yml must set slug: tests/bootstrap, a matching name such as /tests/bootstrap, and when.endpoint: true.
security.yml must define the intended authorization posture. Default to manual/admin bootstrap endpoints; do not expose bootstrap or test endpoints as unauthenticated public endpoints unless the user explicitly requests it.
Bootstrap Test Suite
The first implementation must include a runnable bootstrap test. It must create temporary resources, verify them, run evaluation, and clean up.
Executable automation: automations/tests/bootstrap.yml.
Required checks:
- Generate a unique test suffix from
run.correlationId; use it in names, tags, and metadata.
- Create a temporary agent with
Agents.createAgent.
- Create a simple vector store with
Storage.createVectorStore.
- Attach it to the agent with
Agents.addTool as file_search.
- Add at least one simple URL source through
Storage.addFileToVectorStore using the url argument.
- Poll Storage until attached source files are indexed or failed.
- Create at least two evaluation cases through
Evaluation.importCases or Evaluation.createCase.
- Optionally call
Agents.sendMessage and verify a non-empty task response after Storage indexing is complete.
- Start an evaluation run with
Evaluation.startRun.
- Poll with
Evaluation.getRun; never use fetch for run creation or polling.
- Verify:
Agents.getAgent returns the agent.
Storage.getVectorStore returns the vector store.
Storage.listVectorStoreFiles or Storage.getVectorStoreFile shows each source file in a terminal indexed or failed state.
Evaluation.listCases returns the seeded cases.
- the evaluation run reaches a terminal status and exposes results or a clear failure.
- Clean up only resources created by the test, using captured IDs. Do not delete by broad tags or agent-wide filters. Use app methods for cases, runs, vector store files, vector store, and agent.
If the test fails because the generated DSUL is wrong, fix and rerun. Iterate until it passes or until a product app capability is missing. If a product app capability is missing, stop, report the missing method, and propose an app update.
Use try/catch cleanup blocks so failed setup attempts cleanup for captured IDs. Keep cleanup outputs in the test result.
Validation
Before reporting completion:
- Run DSUL validation for every generated automation, including
automations/tests/bootstrap.yml, with validate_automation. If the validation tool is unavailable, report that explicitly.
- Run a local guardrail scan:
rg -ni "Knowledge[[:space:]-]*Client|KnowledgeClient|AI[[:space:]-]*Knowledge|AI[[:space:]-]*Store|ai-knowledge|ai-store|appSlug:\\s*Knowledge|one-product|fetch:" workspaces/{slug}
There should be no matches in generated files. If the user explicitly requested an unrelated external integration and a legitimate unrelated fetch: exists, explain why it is outside Agent Factory, Storage, and Evaluation.
- Run local automation testing through the project
/test-automation workflow when available.
- Attempt the required push/test path for the target environment so the bootstrap test can execute against real product apps. Let Codex or Claude request permissions when the toolchain needs them.
- Rerun validation and tests after each fix until the suite passes or a missing product app method blocks progress.
Response Shape
When the workspace is ready locally, report:
- files created or changed
- app imports used
- validation/test status
- any missing app methods or product limitations
- whether a push/test attempt happened and the resulting environment/status