【S3W3 交叉评测】Printf:便携 Agent 的需求兑现、策略门禁与 Skill 契约一致性建议 #20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
1. 项目理解
我理解本项目由三个相互独立的产品组成:
三个产品没有被虚构成运行时强耦合关系。当前仓库还提供了一个可离线运行的 Printf Wave 3 Agent,用四个 Skill 将需求处理为 HTML、发布计划、Hub 登记草稿和执行轨迹。
本次代码验证主要针对该便携 Agent;线上 printf、lprintf 和 Hub 的后端源码不在当前公开仓库中,因此只依据文档和截图理解其产品能力。
2. 项目亮点
3. 当前问题和疑点
3.1 策略门禁与文档及验收标准不一致
文档明确要求“平台不提供 SSH”这类安全边界说明能够通过,但实际请求:
“制作一个页面,说明平台不提供 SSH、root 和端口映射”
会被直接拒绝。
另一方面,以下文档明确禁止的请求却会通过:
当前实现主要依赖有限关键词包含判断,与 agent.json 中的 default_deny 描述不一致。
建议采用能力分类和语义判断,并为文档中的全部禁止能力建立参数化测试,同时增加“安全说明应放行”的测试。
3.2 生成页面没有真正落实用户需求
官方示例要求生成包含“议程、嘉宾和报名入口”的活动落地页。
实际生成的页面没有对应区块或报名入口,只在页面顶部重复了原始需求,主体仍然是固定的“从一句话开始、受控生成、可体验结果”三张卡片。
建议让确定性 fallback 至少根据需求生成对应区块,并在生成后输出 requested_sections、generated_sections 和 missing_sections,避免文件生成成功但用户任务没有完成。
3.3 便携 Agent 没有按声明的 Skill 工作流执行
文档流程包含:
实际便携 Agent只执行一次意图检查,没有 create_preview、生成文件检查或发布前检查,并在同一轮直接创建发布计划。
建议让便携 Agent遵守公开 Skill 前置条件;或者明确标注其只是更小的演示切片,不把缺失步骤列为已执行 trace。
3.4 Skill manifest 与实际工具输入输出不一致
当前 load_contracts 只核对工具名称,不验证 JSON Schema。
例如:
建议在运行时使用 JSON Schema 验证每次工具调用的输入和输出,并为契约不匹配增加失败测试。
3.5 发布基础地址需要限制
便携 Agent允许通过 --public-base 写入任意地址,包括 HTTP localhost 或私网地址。
这与受控 HTTPS 域名和禁止私网目标的产品边界不一致。建议正式模式只允许 gp-pilot.lprintf.com,测试地址必须通过显式 test mode 启用,并在产物中标记为非发布 URL。
3.6 建议区分公开测试和线上系统测试
当前公开仓库实际可运行的是 4 项便携 Agent测试;评测文档列出的身份隔离、运行时、异步任务和 token 审计等测试并未包含在仓库中。
建议在 README 中分别列出:
4. 优先改进建议
建议优先处理:
5. 综合评价
项目的产品矩阵、发布边界和真实用户验证思路具有较强完整性,三个产品的解耦关系也比上一版材料更清楚。
当前主要问题集中在公开的便携 Agent:它可以稳定生成文件,但需求理解和页面生成仍较浅;策略检查与公开规则不一致;Skill contract 目前更多是说明文件,还没有成为实际运行时约束。
修复需求兑现、策略语义和契约执行后,便携 Agent才能更有力地证明线上产品所强调的“受控创作与发布”能力。
已提交草稿 PR #21:#21
其中专门澄清:
--public-base只控制便携 Printf Agent 写入release-plan.json的计划 URL,不是 lprintf Client mapping target,也不限制 lprintf 将任意 Client 可达的内网/公网 HTTP 服务发布为公网 HTTPS。对正式模式限制它,是为了防止测试地址被误读为 printf 正式发布证据。本 PR 同时接受策略误拒/漏检、需求未兑现、预览与发布前门禁缺失、Skill 契约未校验等问题,但只提交文档澄清,不会关闭 #20;代码项将在实现与测试合并后逐项处理。