| title | CopilotTask |
|---|---|
| description | Execute one-off tasks using Copilot intelligence. |
{/* GENERATE-DOCS path=packages/react-core/src/lib/copilot-task.ts class=CopilotTask */}
This class is used to execute one-off tasks, for example on button press. It can use the context available via useCopilotReadable and the actions provided by useCopilotAction, or you can provide your own context and actions.
```jsx CopilotTask Example import { CopilotTask, useCopilotContext } from "@copilotkit/react-core";const task = new CopilotTask({ instructions: "Set a random message", actions: [ { name: "setMessage", description: "Set the message.", argumentAnnotations: [ { name: "message", type: "string", description: "A message to display.", required: true, }, ],
implementation: async (message) => {
// ...
},
}
]
}); const context = useCopilotContext(); await task.run(context);
</RequestExample>
In the simplest case, use CopilotTask in the context of your app by giving it instructions on what to do.
```jsx
import {
CopilotTask,
useCopilotContext
} from "@copilotkit/react-core";
const randomSlideTask = new CopilotTask({
instructions: "Make a random slide",
});
const context = useCopilotContext();
return (
<button onClick={() => randomSlideTask.run(context)}>
Make a random slide
</button>
);
Have a look at the Presentation example for a more complete example.
It's also possible to provide your own context and actions. In addition, you can specify to ignore
useCopilotReadable and useCopilotAction.
import {
CopilotTask,
useCopilotContext
} from "@copilotkit/react-core";
const standaloneTask = new CopilotTask({
instructions: "Do something standalone",
data: [...],
actions: [...],
includeCopilotReadable: false, // Don't use current context
includeCopilotActions: false, // Don't use current actions
});
const context = useCopilotContext();
standaloneTask.run(context);Run the task.
The CopilotContext to use for the task. Use `useCopilotContext` to obtain the current context. The data to use for the task.