Verified 2026-08-11. Sources listed at the bottom of this page.
The two values
The database default is
0.
Redaction does not depend on this toggle
The public marketplace detail endpoint does not SELECT these columns at all:personaMdguardContent
if (expertMode) anywhere in that code. Both content-read paths — live Experts and unpublished ones — behave identically.
Therefore: buyers cannot see any of these five items, regardless of the toggle. Protection is server-side behavior, not an option.
What the toggle actually controls
Two behaviors depend on it today.1. Whether the purchase dialog is mounted
In the marketplace action area, the purchase dialog component mounts only whenexpertMode is truthy:
expertMode is 0 at that moment, the dialog is not mounted and the purchase flow has no path forward.
2. Derivation when importing an Expert package
When configuration is imported from an Expert archive, the value is derived from the package’s visibility declaration:hidden to yield 1; any one of them being otherwise yields 0.
Publishing may override it
The publish flow enforces one rule: an Expert carrying skill content getsexpertMode forced to 1 at publish, overriding your setting.
- Your Expert has skills → the value is 1 after publishing, and turning it off in Studio will be reverted by the publish flow
- Your Expert has no skills → your setting is preserved
How to set it
In short: leaving it at 1 is safe in nearly every case, and costs nothing — redaction is unconditional anyway, so enabling it hides nothing extra.
Limits and failure modes
I turned it off and buyers still cannot see my persona
I turned it off and buyers still cannot see my persona
Correct behavior. Redaction is unconditional and independent of this toggle. To let buyers understand what your Expert can do, use the overview and case demos — those fields are meant for buyers.
I turned it off in Studio but it is back on after publishing
I turned it off in Studio but it is back on after publishing
Your Expert carries skill content, so publishing forces it to 1 to protect creator IP. This is expected.
Buyers click 'Use' and nothing happens
Buyers click 'Use' and nothing happens
If this is a paid Expert with trial disabled, check that
expertMode is 1. At 0, the purchase dialog component is not mounted.The value after importing a package is not what I expected
The value after importing a package is not what I expected
Import derives it from the package’s
visibility block, and requires persona, skills, and knowledge to all be hidden before setting 1. Check the visibility declaration in the package.Verify
Test from a non-owner account on the marketplace page:- Redaction — open the detail page and confirm your persona, soul, agent rules, and skill text do not appear anywhere. This should pass regardless of the toggle; if it does not, something else is wrong and is worth reporting.
- Purchase path (paid Experts with trial disabled only) — click “Use” and confirm the purchase dialog appears and payment completes.
Sources
Verified 2026-08-11. Sources:
- Value semantics and default:
packages/db/src/schema/marketplace.ts - Unconditional redaction in public detail:
services/core/src/db/service/expert.ts(neither content-read path ingetExpertDetailselects the sensitive columns) - Automatic override at publish: same file (
expertModeOverridein the publish transaction) - Purchase dialog gating and trigger condition:
apps/web/src/components/marketplace/UseInProfyAction.tsx - Import derivation:
apps/web/src/lib/expert/parse-expert-zip.ts - Toggle label:
apps/web/src/i18n/messages/{zh,en}/creatorCenter.json
Next
Prompt Layers
Where each of the four fields is injected
Pricing and Billing
How price derives the billing type

