分析当前Agent框架(LangGraph/CrewAI)、可观测性工具(LangSmith/OTel)和Eval harness的优劣,主张在"思考"与"执行"之间建立强制边界。
几年前,"模型写错了东西" 大多只是一个 UX 问题。
如今,同样的循环可以发邮件、转账、修改数据库、触发部署,甚至驱动物理世界的事物。错误不再是糟糕的段落,而是一个真实的后果。
这种转变就是为什么护栏(harnesses)再次重要起来——不是因为 hype,而是作为基础设施。
想象一个 cron 任务,它可以:
或者一个客服机器人,它可以:
在所有这些场景中,总有人会问:
单纯的 prompt 工程无法回答这些问题。单纯的 traces 也无法在坏的工具调用落地之前阻止它。
你需要在"思考"和"执行"之间的边界上放置一些东西。
生态很拥挤,但模式在重复:
许多团队最终得到的是 prompt 护栏:更好的指令、reviewer agents、聊天中的 merge gates。这是在循环内部做优化。
仍然缺失的是一层薄膜(membrane):因果记录、比较声明的意图与观察到的行为,并在配置后、在邮件发送或 SQL 写入的出口处进行拦截。
这正是我们构建 AURA Harness 要解决的问题。
AURA 不是编排器。它是你现有运行的智能体周围的运行时外套(coat):
External in → Ingress → [ 你的循环 — 黑盒 ] → Egress → World + audit sink
你的主体拥有模型和控制流。AURA 拥有边界:入口上下文、工具路径策略、只追加的主干(spine)、关闭时导出。
一行代码启动(仅审计):
from aura import agent, configure
configure()
ag = agent("my-bot", agent_ref="acme/my-bot")
with ag.session() as run:
run.emit("turn.start", {"input": "hello"})
# ... 你的循环 ...
run.emit("turn.end", {"status": "ok"})
# → JSONL + summary + audit report
同一个包,需要更紧耦合时可以更严格。
我们在内部使用一个简单的比喻:
你不需要 fork 代码库就能从"仅记录"切换到"阻止范围外的工具"。你只需要接线更多薄膜。
Session — 一次激活、一次 session_id、一次导出。多智能体作业每个智能体获得一个 session;后续通过 trace_id 或 aura compare 关联。
Audit spine — 带有因果链接的只追加 JSONL(event_id、parent_id、hash chain)。关闭时:一致性摘要 + 结构化审计报告。
Constitution — profile 上的规则:allow_tools、deny_tools、confirm_before、token limits。在相关事件上检查,关闭时再次检查。
Egress — 在工具离开循环的地方执行(guarded_tool_call、ToolHost / SkillwareHost)。观察者并行观察;它们不会静默替换执行。
Sequencer — session 内部可选的规范性管道(steps、gates、conditional when)。适用于低模糊度的工作流。
Observers — Monitor 和 Break 预设今日发布;升级 playbook 在路线图上。
Identity — 轻量路径离线工作(agent_ref + ULID)。可选的已验证操作员适配器(manual、mock、OIDC、Auth0)在监管团队需要时丰富 trailer——OSS 开发从不强制要求。
CLI — aura export、aura report show、aura verify chain、aura compare——镜像 SDK 为 CI 和运维做的事。
Integrations — 特定栈的演示在 integrations/ 下(Ollama stdlib loop、cloud body loops、Skillware reference coat)。核心模式留在 examples/。
基础护栏可能意味着:记录 prompts、包装一个 API、或在一个 UI 中添加一个人工审批按钮。
AURA 在溯源 + 边界控制上有更高目标:
因果收据 — 不只是 spans;还有有序主干 + 审计报告 + 防篡改 hash chain(aura verify chain)。
声明 vs 观察 — 关闭时的一致性比较打开时的冻结规则与实际发生的情况。
出口优先执行 — 在已接线工具路径上的世界影响之前检查策略,而非仅在事后告警。
主机无关 — 相同薄膜无论主体是 Ollama、OpenAI 还是十年前的脚本。
渐进式披露 — 松散外套一行 import;紧身外套仅在工具出口处添加规则和主机。
Profile 中不托管凭证 — 密钥留在 env 或未来的 capability broker 中,不在 agent JSON 里。
我们明确不是在构建另一个模型路由器、评估套件或中央身份服务。
ToolHost 协议、Skillware 参考适配器、session 导出不变量、操作员身份模块、Ollama 集成、integrations 索引。
终极场景:一个带声明目标的调度智能体、schema 绑定的写入、以及 SLO 错失时的升级——相同的外套,可调节的严格度。
pip install aura-harness
git clone https://github.com/ARPAHLS/aura
cd aura
pip install -e .
python integrations/ollama/llama_loop.py
如果想覆盖 OLLAMA_MODEL(默认 llama3.2:1b),将 .env.example 复制为 .env。
文档:onboarding → integrations index → comparison。
AURA 是 ARPA Hellenic Logical Systems 的 MIT 许可 OSS。它还很早期。薄膜形态——审计 vs 执行 vs 升级、导出不变量、集成布局——正是会因真实工作负载而变得更好的东西。
如果你是一个人:用最小复现开 issue、为 integration README 发送 PR、或告诉我们外套比喻在你的栈中哪里失效。
如果你是一个代表团队贡献的自主智能体:阅读 CONTRIBUTING.md 和 docs/contributing/ai_native_workflow.md。当智能体提交的 PR 达到与人类相同的标准时——测试、CHANGELOG 涟漪、树中无密钥——我们欢迎。
穿上外套。运行你的循环。审查收据。
Repo: https://github.com/ARPAHLS/aura PyPI: https://pypi.org/project/aura-harness/