Projects
For work that takes more than one specialist.
Several agents, one goal, one folder
A project is for work that takes more than one specialist. You talk to the project, not to the agents on it.
const project = await ws.projects.create({
name: 'Q3 vendor review',
goal: 'Review each vendor contract for risk and produce one summary per vendor.',
agents: [analyst.id, writer.id],
managerInstructions: 'Check with me before anything goes to a customer.',
grade: 'premium',
});
const conversation = await project.start();
console.log(await conversation.ask('Where are we on Acme?'));| Field | |
|---|---|
goal | Standing context every agent on the project shares. It belongs to the project, which is what makes it more than a list of agents |
grade | Decides for the whole team and beats each member's own. One piece of work, one class of thinking |
managerInstructions | Yours, kept apart from the generated half of the manager's prompt so neither overwrites the other |
A project has no versions
Changing one reaches conversations already open, from the next turn:
await project.addAgent(lawyer.id);
await project.update({
goal: '... and flag anything with an auto-renewal clause.',
});That is the difference from an agent, where a conversation pins a version at start. Nothing to republish and nothing to restart.
One shared folder
The agents on a project share a single drive, unlike agent conversations which each get their own. That shared folder is the point: it is how work by one specialist reaches another.
await project.files();
await project.readFile('acme/summary.md');Archiving and deleting
Archiving releases the project's machine and keeps its folder. Deleting takes the team, the conversations and the folder with it. Archive is for work that is finished when the output still matters.
await project.archive();
await project.delete();