角色变了
工程内循环,规格、实现、测试、审查、观测、回写 SDD,整条交给智能体跑。它用的是真工具,动的是真仓库,过的是真门禁。
智能体工程这门手艺,是搭这样一个环境:智能体值得托付,交给它执行;裁决权始终在人手里。VLSC 不是先悟出道理再找例子,是从现场一路走到这里的。
两条现场教训把这句话磨得更锋利。其一,稀缺的不是连接数量,是连接质量:人与智能体、工具、现场之间的每条链接,都得带语义、带溯源、带闭环反馈、带有界权限、带故障隔离、带可审查的目标。其二,自动化的成色,不看它在你盯着时做了多少,看那个夜晚还在不在。
撑起本页的是三个主张,每一个都拿工件对账,不拿观点对账。
四百五十年前,王阳明把这条分界写成了两句话:
知是行之始,行是知之成。
知是行的开端,行是知的完成。
王阳明《传习录》
工程内循环,规格、实现、测试、审查、观测、回写 SDD,整条交给智能体跑。它用的是真工具,动的是真仓库,过的是真门禁。
因为智能体动手之前,真的会把契约读进来。AGENTS.md、活体
SDD、领域本体,不再是摆着看的文档,是运行时上下文。
现场纪律炼出了值得复用的契约,也留下了智能体永远不能代签的部分:PCB、台架、RF 安全、真实台站。
想法从来不是死于糟糕,是死于等待。想到与做到之间的那条沟,如今塌了:尝试又多又便宜。可一次尝试算不算成立,查起来依然贵;算不算数,裁起来依然归人。智库开了,治库没开,这一半得靠手建,本页大半篇幅都在讲它。故事见《思接千载,行在须臾》。
这条分界线不按任务大小画,不按技能高低画,按「结果错了谁负责」画。
智能体动手之前先读约束注册表;每条主张该用什么办法验,就验什么办法;验完把结论写回它出发时那份契约。
本体不是 FDE 的第四阶段,智能体工程也没让 FDE 退役。两个循环咬合在一起,各自都握着否决权。
Echo 看真实台站和操作者。Delta 用可运行的垂直切片,去证风险最高的那条假设。Product 把结果固化成能运维的边界、契约、可复用组件,这才是日后交得给智能体的东西。
产品证据让词汇稳定下来,把不变量逼出水面。下一轮工作,不管人做还是智能体做,都能拿到更干净的问题、更清楚的边界、更少的偶然协议假设。
支持链拿自己当迭代对象。迭代的单元不是 commit,是没人解答的用户症状。每条 🐞
上报都带着分类(bug / feature / noise)落进
公开看板。分类就是决策:noise 关掉,bug 自动排期,feature
留给操作员。无人值守的实施者只产出带护栏的 unified diff
补丁,落在隔离的 fde/<id>
分支上,全套测试绿了才提交。main
机器不许碰,合入是人的动作。回路的终点,从一条已答复工单,挪到了一处已审查分支。
PCB 制板,台架 bring-up。EFHW V3.0 的设计和固件都已写完;实物板子出来之前,它的主张只能算设计目标。
真实电台上的 PTT 路径与发射权限。服务端测试通过,不等于客户端签字放行。
在操作者自己的天线、波段条件与邻居环境下的现场验证。
发布决策,以及什么能标成「已发布」。这个标签是对一个具体的人的承诺。
Engineering 是一整套体系:现场意图进去,出来的是可重复的执行、可审查的增量、可追溯的证据、可复用的资产。
业务、技术、产品三层约束,围出一个执行环境:Agent、工具、测试、部署、现场遥测都在里面。
外层 Echo → Delta → Product 包着内层 Specify → Implement → Test → Review → Observe → Update SDD 工程闭环。
设计意图顺流进实现,代码、测试、部署、现场证据逆流回来,校准这份活的双向契约。
硬件与运行目标不同,架构也不同;共享的基础是控制权、媒体流、安全、可观测性与证据。
MRRC Universal 提供基于 Hamlib
的广泛远控;MRRC FT-710 完成 Direct USB
垂直验证;MRRC Modern 通过
RadioBackend 与
RadioCapabilities 完成平台化。
SunMRRC 负责 ExpertSDR 侧台站状态和 IQ/音频流;其客户端包括 Web 与原生 iOS 客户端 SunsdrMobile,后者不是独立产品族。
MRRC-FT8 协调时隙敏感的数字模式流程;EFHW 把执行活动推进到天线边缘,关注 RF 测量、舵机动作与限位安全。
每个产品族都沿同一条证据路径来讲。客户端归在持有权威状态和安全契约的那个系统名下。
面向 Hamlib/rigctld 支持设备的通用远程操作。
AGENTS.md:运行与验证、配置与端口约定、/CONFIG
重启陷阱在行动前告知智能体。尚无机器可读约束注册表。普查
2026-09-12。
从单机型验证演化到能力驱动多机型平台的直接 CAT/音频路径。
RadioBackend 与
RadioCapabilities。
AGENTS.md +
.agents/skills/sdd-guardian/:ft710 17
条、modern 21 条,带 severity、sdd_ref、scope
glob 与 patterns。SessionStart → prime
加载,PreToolUse(Edit|Write) → hook
在落盘前阻断。普查 2026-09-12。
harness/index.json。
客户端成熟度并不一样。FT710Mobile 有一个未解决的 P0 PTT 安全问题;服务端或别的客户端过了测试,都不等于它能标“安全完成”。
面向 SunSDR2 DX 生态的台站侧控制与 Direct-IQ 媒体系统。
sunsdr 仓库根的 AGENTS.md 与
CLAUDE.md,位于一份逆向协议文档与活体 SDD
之前。无约束注册表,因此本节不主张编辑前门禁。普查
2026-09-12。
PROTOCOL.md,以及后续各族当作边界来源引用的 SDD
章节。
将时间、解码周期、操作意图和发射调度纳入同一安全边界的数字模式工作流。
AGENTS.md +
.agents/skills/sdd-guardian/:14 条约束,含
vendor-readonly、no-direct-serial、ptt-authority,由同一套
prime / hook 执行。普查 2026-09-12。
wsjtx-3.0.2/
只读,改动走 dsp/patched/。
把阻抗观测转化为受约束舵机执行的 RF 边缘控制器。
CLAUDE.md 走;efhw-knowledge/
是共享本体来源。无固件约束注册表。普查 2026-09-12。
复用发生在显式架构平面上,不等于协议不同、设备不同、成熟度不同也能互换。
控制意图、权威状态、控制租约(Control Lease)、能力发现和幂等协调。
音频、IQ、瀑布图、封帧、节奏、缓冲及传输丢失行为。
电台后端、协议绑定、USB 端点、DSP 集成和 RF 执行器。
PTT 联锁、超时回 RX、功率/行程限制、单所有者转换与故障隔离。
操作意图、定时 QSO、调谐搜索、重试、取消与恢复。
Web/PWA/原生交互、反馈、控件、无障碍和移动端人体工学。
特化项保留已声明约束或契约。
客户端消费服务,但不拥有服务的系统边界。
组件实现接口、能力或协议绑定。
证据影响后续设计,但不暗示代码或契约继承。
一百万个部件随机连线,连不出一颗大脑;一百个智能体互相对话,也谈不出集体理性。网络值多少,数节点数边数不出来:一套只能解释成功网络、解释不了噪声、失败、偏见和治理的连接理论,是不完整的。把复利式网络和噪声放大器分开的,是六个工程属性。本页的全部机制,就是给每条链接配齐这六个属性。完整论证见《链接为王》。
收发双方对含义有契约。本站的做法:双语本体加活体
SDD。CommandIntent
对智能体、约束注册表、人工审查,说的是同一句话。
结论能顺藤摸瓜回到数据、模型版本、运行上下文。本站的做法:每项主张都带版本、环境、方法、日期;harness/index.json
不存内容,引用因此永不过时。
系统要看动作生效没有,不把命令当成既成事实。本站的做法:CommandIntent ≠ StateReport,poll-stale-guard
这条约束,外加一条老老实实标成「发了就不回头」的发射路径。
读、写、动作的权限都写明边界。本站的做法:控制租约、唯一串口所有者、PTT
权限、vendor-readonly,再加一个在落盘前就拦下编辑的
pre-edit hook。
一个点坏了,不能自动拖垮全网。本站的做法:超时回 RX、失效安全的行程限位、隔离的
fde/<id> 分支。main
机器不许碰。
「系统在优化什么」,人得能看懂、能质疑、能改。本站的做法:分类结果公开在
FDE 看板上,每条约束都带一个能拿来辩论的
sdd_ref,合入始终归人。
这不是文档习惯。同一套术语、边界、公理,三个地方都在用:智能体拿它当上下文,编辑前门禁拿它拦违规,人拿它做审查。它仍是一份靠产品证据撑着的轻量双语契约,不是 RDF/OWL 部署,不是知识图谱库,也不是新加的运行框架。
| 本体概念 / 公理 | 消费方 | 真实锚点 |
|---|---|---|
Policy/Constraint:单一权威状态持有者、Serial
独占
|
Agent 运行时硬阻断 |
ft8 no-direct-serial——“rigctld is the sole
serial owner”[AD-008];ft710 / modern
cat-direct-serial-io [AD-002]
|
Safety:TX 授权与 PTT 所有权 |
Agent 运行时硬阻断 |
ft8 ptt-authority——“PTT controlled only by rig
and safety components”[AD-007; NFR-050; Ch15]
|
CommandIntent ≠ Actuation |
Agent 侧 info 提示 |
ft710 ptt-release-no-verify——“TX0 is
fire-and-forget”[AD-007; Ch15; V1.2]
|
Observation:陈旧读不得污染状态 |
info 约束 + 单测 |
ft710 / modern poll-stale-guard [AD-009; §9.6;
V1.7 filter race fix]
|
Protocol Binding ≠ Capability |
代码事实 + 约束特化 |
Modern audio-pyaudio-rate:由 FT-710 固定 44.1k
改为“rate comes from backend capabilities”[AD-011 amended
V2.9/V2.14]
|
Evidence/Provenance:知识不得过时 |
路由索引不存内容 |
harness/index.json——“holds no content — refs
are sliced live from SDD/*.md, so it never goes stale”
|
Information Object:变更即文档同步 |
生命周期强制 |
SKILL.md Phase 0–6;docs-sync 规则
[§14]
|
block /
warn / info),带指回架构裁决或真实事故的
sdd_ref,带 scope 通配与
patterns。harness/sdd_context.py 提供
prime / check / hook;
install_hooks.py 注册
SessionStart → prime 与
PreToolUse(Edit|Write) → hook。
一套语义,三方消费:智能体上下文、运行时阻断、人工审查。本节循的那套方法,七个步骤、层级陷阱、槽面规则,《本体开发方法论精读》逐条提炼过,也拿这些工件审了一遍。
拥有权限和责任的操作员、管理员、维护者或自动控制器。
电台、天线、调谐器、接口、传感器、执行器和台站环境。
台站服务、客户端、后端、适配器、解码器、DSP 或持久化组件。
执行活动、观测活动、发射、接收、调谐、解码、同步与恢复。
控制意图、状态报告、帧、采样、事件、QSO、Profile 或证据记录。
调谐、PTT、模式、音频、IQ 流、解码、匹配和测量。
授权、租约、超时、联锁、功率限制、时间窗与安全状态规则。
支撑成熟度主张的来源、版本、环境、方法、结果、日期和限制。
主体、凭据、角色、许可、控制租约、所有者与委派。
台站、电台、收发机、天线、调谐器、传感器与执行器。
能力、服务、端点、依赖、可用性和降级。
意图、请求变更、物理/软件活动、测量结果和状态报告。
协议绑定、设备适配器、CAT、rigctld、WebSocket、串口、USB 和数据包。
RF 信号、IQ 采样、音频流、帧、频谱、SWR、频率和电平。
时刻、区间、时隙、截止时间、工作流状态、QSO、取消和重试。
联锁、安全状态、超时、故障、不确定性、限制、恢复和监督。
主张、来源工件、版本、测试方法、环境、结果和限制。
能力说的是产品族能做什么;证据成熟度说的是主张证到了哪一步。两件事不能混为一谈。
| 维度 | MRRC Universal | MRRC Direct USB | SunMRRC | MRRC-FT8 | EFHW |
|---|---|---|---|---|---|
| 主要设备 | Hamlib 支持的电台 | FT-710;Modern 的十一种机型 | SunSDR2 DX / ExpertSDR | 电台与音频接口 | EFHW 匹配网络与 ESP32-S3 |
| 控制协议 | rigctld / Hamlib | USB 串口直连 CAT | ExpertSDR 侧控制服务 | 工作流与电台集成 | 本地固件 / 远程命令面 |
| 媒体 | 远程音频与瀑布图 | USB/远程音频与瀑布图 | IQ 与音频流 | 收发音频 | 测量遥测,不含操作音频 |
| 频谱源 | 配置的接收后端 | 按机型定义 USB/IQ 路径 | Direct-IQ 流 | 解码通带 | RF 检测器测量 |
| DSP | 依赖系统/后端 | 按 Profile 定义服务端/客户端管线 | IQ/音频处理链 | FT8 编解码 | 有界搜索与测量滤波 |
| 工作流 | 通用操作控制 | 通用操作控制 | SDR 操作 | 时隙 QSO 状态机 | 测量→移动→稳定→评估 |
| RF 执行 | 电台命令/PTT | 电台命令/PTT | 电台命令/PTT | 定时发射 | 舵机匹配 |
| 客户端 | Web / PWA | Web/PWA、FT710Mobile、FT710Android | Web、SunsdrMobile iOS | 工作流 UI | 本地与远程控制界面 |
| 安全模型 | 服务端权威与会话监督 | 后端权威、PTT 状态机、客户端分别验收 | 控制所有权与超时回 RX | 定时 TX 保护和操作状态 | 行程/功率限制与有界执行 |
功能标签不等于成熟度主张。每项结果都要标出方法、环境、版本,以及还剩多少不确定性。
$ python3 .agents/skills/sdd-guardian/harness/sdd_context.py check probe_b4_tmp.py
SDD-GUARDIAN: blocking violations found:
[BLOCK] cat-no-dn (AD-014; SDD V1.2 freq-drift incident) probe_b4_tmp.py:2: return c.query("DN;")
→ On the FT-710, 'DN;' is NOT a DNR query — it steps the active VFO DOWN ~20 Hz per call. Polling it caused a live frequency-drift incident (V1.2). DNR level is intentionally not polled.
$ echo $?
2
现场事故落成 SDD 裁决,裁决落成机器可读约束,这条约束挡住了智能体把事故重新引进来。这就是本页的主张,而且当场可复现。
源码:v1.8.1
Windows 安装包:v1.8.0
自动化测试:439 项
源码、发布包、测试执行和电台验收分别记录。 过程证据: B4 阻断被验证
版本:v1.25.5
Profile:十一种——FT-710、FTDX10、FTDX101D、FTDX101MP、FTX-1F、FT-891、IC-7300、IC-7300MK2、IC-705、IC-7610、IC-7760
自动化测试:1897 项
IC 系列真机验收与自动化覆盖单列。 过程证据: B4 阻断被验证
公开版本:发布记录
现场演进:SDD V1.8
公开软件包和后续现场设计不视为同一已部署工件。 过程证据: B4 阻断被验证
设计:完成
固件:完成
PCB / 台架:待完成
物理验证前不声明台架或现场验证。 过程证据: B2 规格·计划留痕
| 工件 | 主张 | 证据类别 | 边界 / 限制 |
|---|---|---|---|
| MRRC Universal | 通用远程电台产品族 | 已发布 / 运行 | 行为仍依赖 Hamlib 后端与台站配置。 |
| MRRC FT-710 v1.8.1 | FT-710 直连源码基线;439 项测试 | 自动化测试 | Windows 安装包为 v1.8.0;测试数不等于全部硬件验收。 |
| MRRC Modern v1.25.5 | 十一个机型 Profile;1897 项测试 | 自动化测试 | IC 真机验收单独记录。1897 项于 2026-10-11 在 macOS 上、用仓库自己的虚拟环境(Python 3.13)运行,无收集错误,取代 2026-09-12 快照(v1.14.3,724 项)。用系统 Python 3.9 跑同一套测试会在收集期因 X | None 注解失败,环境局限,非产品缺陷。 |
| SunMRRC / SunsdrMobile | 台站服务与原生 iOS 客户端 | 按场景记录现场证据 | 服务端与客户端证据不可互换。 |
| MRRC-FT8 | 公开基线与 SDD V1.8 演进 | 发布 + 现场演进 | 两个版本明确分离。 |
| EFHW V3.0 | 设计与固件完成 | 设计目标 | PCB 和台架验证待完成。 |