如果你觉得有用,请留言 — 我每条必读。
【5月5日】Coding Agent Harness:99%开发者不知道的AI编程Agent安全护盾 🔥
先说一个让你后背发凉的数字:目前绝大多数 AI 编程 Agent 都是以 root 权限运行在系统中,拥有完整文件系统权限,直接执行大模型生成的任何代码——没有任何安全边界。
今天要介绍的这个 GitHub 开源项目 Coding Agent Harness,用 Rust 写了一个专门给 AI 编程 Agent 用的沙箱执行环境,近 4000 GitHub Stars,但知道它的人少之又少。
让我们来看看 5 个连官方文档都没写清楚的安全模式。
模式一:沙箱代码执行 —— 那层缺失的防护
大多数开发者的做法(危险):
# 危险:直接执行
result = agent.execute(code_string)
用 Harness 的正确做法:
from harness import AgentHarness, Policy
policy = Policy()
policy.allow_filesystem("/tmp/agent-workspace") # 只能在 /tmp
policy.allow_network(False) # 禁止网络
policy.max_execution_time = 60 # 最长60秒
policy.max_tokens = 8192 # 限制输出
harness = AgentHarness(policy=policy)
result = harness.execute(agent_code)
print(f"安全执行完成: {result.status}")
为什么重要:这个策略在 Rust 运行时层面强制执行,即使攻击者突破了 Python 层,Rust 沙箱依然可以终止并记录违规。
模式二:工具权限范围控制 —— 没人配置的精细化权限
被忽视的宝藏功能:Harness 有比任何 MCP 服务商都细粒度的权限体系,但绝大多数开发者直接 allow_all=True 就完事了。
from harness import ToolScope, PolicyBuilder
# 正确做法:最小权限原则
policy = (
PolicyBuilder()
.allow_tool("read_file", path_pattern="**/*.py") # 只能读 .py
.allow_tool("write_file", path_pattern="/tmp/output/**") # 只能写这个目录
.allow_tool("execute_bash", timeout=30,
allowed_commands=["python3", "git", "ruff"])
.deny_tool("delete_file") # 禁止删除
.deny_tool("network_request",
exceptions=["localhost:8080"])
.build()
)
关键洞察:可以精确到文件路径模式——Agent 能读 .py 但不能读 .env,能写 /tmp 但不能碰你的 home 目录。
模式三:执行审计日志 —— 默认关闭的隐藏超能力
被忽视的真相:Harness 会自动记录每次工具调用、每次文件访问、每次代码执行到不可篡改的审计日志。绝大多数开发者从来没配置过,导致违规行为悄悄溜走。
from harness import AgentHarness, AuditLogger
import json
# 启用审计日志 — 默认是关闭的!
logger = AuditLogger(
backend="file",
path="/var/log/agent-audit/audit.jsonl",
redact_sensitive=True, # 自动抹除敏感信息
log_level="verbose"
)
harness = AgentHarness(
policy=policy,
audit_logger=logger,
on_violation="log_and_reject" # 或 "terminate"
)
# 事后分析违规记录:
with open("/var/log/agent-audit/audit.jsonl") as f:
for line in f:
entry = json.loads(line)
if entry.get("violation"):
print(f"⚠️ {entry['timestamp']}: {entry['violation_type']}")
print(f" 工具: {entry['tool']}, 路径: {entry.get('resource', 'N/A')}")
隐藏超能力:这些日志可以接入 SIEM 系统,检测 AI Agent 行为异常,同时满足代码审查追溯的合规要求。
模式四:多 Agent 隔离 —— Google A2A 协议没告诉你的安全真相
Google 的 A2A 协议现在很火(Hacker News 450分),但几乎没人讨论 Agent 互相通信时的安全问题。
用 Harness,可以把多个 Agent 运行在完全隔离的隔舱里:
from harness import Compartment, CompartmentalizedHarness
from harness.policies import PolicyBuilder
# 为不同 Agent 创建隔离隔舱
code_review = Compartment(
name="code-reviewer",
policy=(
PolicyBuilder()
.allow_tool("read_file", path_pattern="**/*.py")
.allow_tool("execute_bash", allowed_commands=["pytest", "ruff"])
.build()
),
resource_limit_mb=512,
)
security_scan = Compartment(
name="security-scanner",
policy=(
PolicyBuilder()
.allow_tool("read_file", path_pattern="**/*")
.allow_tool("execute_bash", allowed_commands=["semgrep", "bandit"])
.allow_network(True)
.build()
),
resource_limit_mb=1024,
)
harness = CompartmentalizedHarness()
harness.register(code_review)
harness.register(security_scan)
review_result = harness.run("code-reviewer", task=review_task)
scan_result = harness.run("security-scanner", task=scan_task)
# 两个 Agent 内存空间完全隔离,Rust 级别保证
这是 A2A 对话中缺失的一环——A2A 处理通信,Harness 处理安全边界。
模式五:实时 Token 预算强制 —— 省钱的隐藏福利
被忽视的好处:Harness 可以在 Agent 级别、会话级别、任务级别强制 Token 预算,防止 LLM 成本悄悄失控。
from harness import AgentHarness, TokenBudget
budget = TokenBudget(
max_input_tokens=50000,
max_output_tokens=10000,
cost_limit_usd=0.50, # 硬性成本上限
on_limit="graceful_stop" # 或 "terminate", "warn"
)
harness = AgentHarness(
policy=policy,
token_budget=budget,
llm_provider="openai",
model="gpt-4o"
)
result = harness.execute(task)
print(f"已用 Token: {result.tokens_consumed}")
print(f"成本: ${result.cost_usd:.4f}")
print(f"预算余额: ${budget.remaining():.4f}")
结合 Rust 级别的强制执行,Token 预算无法被绕过,就算 Agent 试图操纵自己的执行上下文也不行。Python 方案给不了你这个保证。
数据来源
- GitHub: Coding Agent Harness — 3,942 Stars(Rust,Agent 安全)
- Hacker News: A2A Protocol — Google Agent2Agent — 450 分
- HN 讨论: Coding Agent Harness 安全讨论
- Reddit r/MachineLearning: 多 Agent 安全和隔离模式讨论激增
核心洞察
AI Agent 生态正在为 Agent 通信建立漂亮的协议(A2A、MCP),但在 Agent 安全方面严重落后。Coding Agent Harness 是少数几个从运行时层面解决这个问题的项目。
上面的模式不是杞人忧天——而是运维成熟度的体现。如果你现在部署 AI Agent 到生产环境而没有这些边界,一道提示词注入就能让你出大事。
延伸阅读
- MCP 的黑暗秘密:上下文窗口优化的5个隐藏技巧
- GitHub 22模型:这个开源AI Agent平台悄悄集成了400个MCP服务商
- 5个2026年的MCP Server模式,让你的AI Agent能力翻倍
讨论时间
你在用什么方式保护你的 AI Agent? 留言告诉我——我特别想知道:
- 你是怎么处理多 Agent 通信安全问题的?
- 生产环境里遇到过提示词注入吗?
- 你的审计流水线是怎么设计的?
每条留言我都会看,也会回复。如果这篇文章帮你省了调试时间,转给需要它的同事吧。
Top comments (0)