内容工厂
内容工厂说明 Agent App 是应用包,而不是单个专家或 prompt 集合。它把 UI、storage、workflow、worker、Knowledge binding、Tool、Artifact、Eval、permission、overlay 和 需求边界文件打包成一个可安装业务应用。
参考包:docs/examples/content-factory-app/APP.md
产品形态
该 App 面向需要反复把项目知识转成内容运营产出的团队。
项目设置
-> 知识库构建
-> 内容场景规划
-> 内容生产
-> 审查与 Evidence
-> 内容排期和运营复盘App 拥有 dashboard、content factory page、workflow entries 和 expert-chat entry。宿主通过 SDK 提供平台能力。
声明的 Entries
| Entry | Kind | 作用 |
|---|---|---|
dashboard | page | 项目首页和设置状态。 |
knowledge_builder | workflow | 把文件和笔记转成结构化项目知识。 |
content_factory | page | 生成和管理内容资产。 |
content_strategist | expert-chat | 内容策略对话入口。 |
content_calendar | workflow | 排期、复盘、更新内容节奏。 |
这个结构说明:专家只是 App 的一个 entry,不是整个 App。
Runtime Package
示例声明:
dist/ui:App UI routesdist/worker:后台实现storage/schema.json:App 数据模型storage/migrations:版本化 storage 初始化workflows:业务流程agents:expert-chat persona
虽然示例很小,但形态和真实 Product-level App 一致。
数据模型
| 表 | 作用 |
|---|---|
content_projects | 项目配置和状态。 |
knowledge_assets | 结构化知识资产和来源引用。 |
content_scenarios | 受众、痛点、平台、意图场景。 |
content_assets | 草稿、脚本、提示词、报告和审查状态。 |
review_reports | 质量、Evidence 和发布就绪摘要。 |
客户专属事实不进入官方包,应通过 Knowledge、workspace files、App storage、secrets 或 overlays 绑定。
Capability 使用
| Capability | 示例用途 |
|---|---|
lime.ui | 注册首页和内容工厂页面。 |
lime.storage | 保存项目、内容场景和内容资产。 |
lime.files | 读取用户选择的资料文件。 |
lime.agent | 执行知识抽取和内容生成 task。 |
lime.knowledge | 检索绑定的项目知识。 |
lime.tools | 调用文档解析和调研工具。 |
lime.artifacts | 创建内容表、文章草稿、策略报告和 PPT。 |
lime.evidence | 连接输出、来源、task 和 eval。 |
lime.policy | 审查文件、Tool、模型和导出权限。 |
lime.secrets | 绑定可选发布 workspace token。 |
Agent task runtime
该 fixture 已包含 app.runtime.yaml,让 lime.agent 执行契约显式化。它声明:
lime.agent-task-event.v1/lime.agent-task-result.v1事件与结果信封- 通过
artifacts/content-factory-workspace-patch.schema.json约束 JSON Schema 结构化输出 - Host-mediated approval,支持 updated input 和 defer
new、resume、continue、forksession modes- on-demand tool discovery,只加载选中工具 schema
- workflow state、App storage、artifacts、tracked files、conversation、external side effects 的 checkpoint 边界
- OpenTelemetry 映射,默认不导出内容正文
需求边界
该 fixture 现在包含:
app.requirements.yaml:声明 MVP 需求、非目标、后续阶段和验收标准app.boundary.yaml:声明 App / Host / Cloud / connector / external system / human 职责边界app.integrations.yaml:声明由 Host/Cloud 托管的文件、外部规划表和 CLI adapter 需求app.operations.yaml:声明副作用、审批、dry-run、幂等和 evidence 规则
对普通用户来说,这意味着 App 会说明哪些事能在工作台内完成,哪些需要 Lime 连接或授权,哪些外部写入或发布仍需要人工确认。
Readiness 行为
Fixture 可以 validate 通过,但 readiness 可能返回 needs-setup,因为 required Runtime、Context、Knowledge、Skills、Tools / Connectors、Artifacts、Evidence、Policy、QC 和 services 需要宿主满足。
这正是正确行为:package 结构有效,但 workspace 还需要设置。
示例证明了什么
- Product-level app 不应写进 Lime Core。
APP.md是声明和指南,不是完整实现。- Runtime code 必须调用 Capability SDK。
- 需求边界必须说明 App、Host、Cloud、连接器、外部系统和人工分别负责什么。
- 客户数据属于官方包外部。
- Entry 不限于聊天。
- Artifact 和 Evidence 让输出可持久、可审查。
- Overlay template 允许租户自定义而不 fork App。
实现参考
content-factory-app 已有完整的实际实现,位于 limecloud/content-factory-app。
Bridge 与 Capability SDK
App UI 层通过 @limecloud/agent-app-runtime 包接入宿主,该包由 Lime 宿主的 src/features/agent-app/sdk/ 编译而来,提供:
createLimeHostBridgeCapabilityInvoker— postMessage bridge transportcreateLimeCoreCapabilityAdapters— 30 个 capability 命名空间适配器(lime.agent/lime.storage/lime.knowledge/lime.tools等)
App 侧初始化方式:
import {
createLimeHostBridgeCapabilityInvoker,
createLimeCoreCapabilityAdapters,
} from '@limecloud/agent-app-runtime';
const invoker = createLimeHostBridgeCapabilityInvoker({ appId: 'my-app' });
const lime = createLimeCoreCapabilityAdapters({ invoker, storageNamespace: 'my-app' });
invoker.sendReady();
// 调用 Claw 能力:通过 capabilityHints 由宿主路由,App 不重新实现
const task = await lime.agent.startTask({
taskKind: 'my-app.content.generate',
capabilityHints: ['lime.capability.research.search', 'lime.capability.image.generate'],
input: { projectId, topic },
});Agent Task Contract
src/core/agent-task-contract.mjs 封装了 7 个业务 task kind,每个 task 自动带上正确的 capabilityHints(Claw 能力路由)、requiredSkills、expectedOutput 和 workspacePatch 契约。App 不需要手写任务参数:
import { buildContentFactoryAgentTask } from './agent-task-contract.mjs';
const task = buildContentFactoryAgentTask('content_factory.copy.generate', {
projectId,
input: { projectId, scenarioIds },
});
// task 已包含 capabilityHints: ['lime.capability.research.search', 'lime.capability.image.generate']本地验证
npm run cli -- validate docs/examples/content-factory-app --version 0.7
npm run cli -- project docs/examples/content-factory-app
npm run cli -- readiness docs/examples/content-factory-app