【帖子标题】:attune-forms is now on PyPI — and as of this week, it’s a Claude Code plugin.

【帖子标题】:attune-forms 现已上线 PyPI —— 而且从本周开始,它还是一个 Claude Code 插件。

【帖子正文】: Last week I wrote about the idea: an agent’s question should be a typed, validated artifact, not a sentence. This week the machinery shipped as a standalone open-source library.

【帖子正文】: 上周我写了这样一个想法:智能体(agent)提出的问题应该是一个类型化、经过验证的工件(artifact),而不是一句话。本周,这套机制已作为独立的开源库正式发布。

attune-forms gives AI coding agents a second channel beside free-form chat: declarative, validated forms. Independent decisions batch into one round-trip instead of twenty questions. Malformed questions are refused at build time; malformed answers are refused at collection time. Nothing is silently accepted in either direction.

attune-forms 为 AI 编程智能体提供了自由聊天之外的第二个通道:声明式、经过验证的表单。独立的决策可以批量打包为一次往返,而不是二十个问题。格式错误的提问在构建阶段即被拒绝;格式错误的回答在收集阶段即被拒绝。任何方向都不会有静默接受的情况。

Beyond plain fields, three constructs carry conversational meaning:

除了普通字段之外,三种结构承载着对话性含义:

• Decision — the agent proposes: recommended option first, a “why” rationale, a one-line tradeoff under every alternative.

• Decision(决策)—— 智能体提出方案:推荐选项在前,附带”为什么”的理由说明,每个备选方案下方都有一行利弊权衡。

• Pushback — structured disagreement: your approach and the agent’s alternative side by side, and overruling the agent is a first-class outcome, not a failure.

• Pushback(反驳)—— 结构化的异议:你的方案与智能体的替代方案并排展示,而否决智能体是一等公民的结果,而非失败。

• Progress — a status report whose blocked items become a picker: reading the status and unblocking the work are the same gesture.

• Progress(进度)—— 一种状态报告,其中被阻塞的项目会变成选择器:阅读状态与解除阻塞是同一个操作。

One schema, three surfaces: an interactive HTML widget where the host renders rich content, batched plain questions in the terminal, native MCP elicitation where the host supports it. The form degrades — it never breaks.

一套模式(schema),三种呈现界面:交互式 HTML 组件,由宿主渲染丰富内容;终端中的批量纯文本提问;以及宿主支持时的原生 MCP 引导(elicitation)。表单可以降级 —— 但永远不会崩溃。

Two ways in.

两种接入方式。

As a Claude Code plugin (skill + MCP server, no Python setup):

作为 Claude Code 插件(skill + MCP 服务器,无需 Python 环境配置):

claude plugin marketplace add Smart-AI-Memory/attune-forms

claude plugin marketplace add Smart-AI-Memory/attune-forms

claude plugin install attune-forms@attune-forms

claude plugin install attune-forms@attune-forms

As a Python library:

作为 Python 库:

pip install attune-forms

pip install attune-forms

Python 3.10+, one runtime dependency, 380+ tests, CI on Linux/macOS/Windows, Apache 2.0.

Python 3.10+,一个运行时依赖,380+ 项测试,CI 覆盖 Linux/macOS/Windows,Apache 2.0 许可证。

The part I keep coming back to: every scoping and design decision in building this library ran through the grammar itself — v0.1.0 to v0.4.0 in three days, dogfooded end to end.

我反复回味的一点是:构建这个库时的每一个范围界定和设计决策,都经过了这个语法本身 —— 三天内从 v0.1.0 迭代到 v0.4.0,全流程自产自用(dogfooded)。

The full argument:

完整论述:

https://www.linkedin.com/pulse/communication-grammar-ai-agents-patrick-roebuck-sutse

https://www.linkedin.com/pulse/communication-grammar-ai-agents-patrick-roebuck-sutse

Code:

代码:

https://github.com/Smart-AI-Memory/attune-forms

https://github.com/Smart-AI-Memory/attune-forms

submitted by

由以下用户提交

/u/Business-Appeal-2748

/u/Business-Appeal-2748

[link]

[链接]

[comments]

[评论]