docs/content/docs/reference/v1/hooks/useCopilotReadable.mdx
{ /*
useCopilotReadable is a React hook that provides app-state and other information
to the Copilot. Optionally, the hook can also handle hierarchical state within your
application, passing these parent-child relationships to the Copilot.
In its most basic usage, useCopilotReadable accepts a single string argument representing any piece of app state, making it available for the Copilot to use as context when responding to user input.
import { useCopilotReadable } from "@copilotkit/react-core";
export function MyComponent() {
const [employees, setEmployees] = useState([]);
useCopilotReadable({
description: "The list of employees",
value: employees,
});
}
Optionally, you can maintain the hierarchical structure of information by passing
parentId. This allows you to use useCopilotReadable in nested components:
import { useCopilotReadable } from "@copilotkit/react-core";
function Employee(props: EmployeeProps) {
const { employeeName, workProfile, metadata } = props;
// propagate any information to copilot
const employeeContextId = useCopilotReadable({
description: "Employee name",
value: employeeName
});
// Pass a parentID to maintain a hierarchical structure.
// Especially useful with child React components, list elements, etc.
useCopilotReadable({
description: "Work profile",
value: workProfile.description(),
parentId: employeeContextId
});
useCopilotReadable({
description: "Employee metadata",
value: metadata.description(),
parentId: employeeContextId
});
return (
// Render as usual...
);
}