核心能力
Multi-Protocol
同一工具通过 MCP / Python / Tcl 三种协议暴露。Agent 无需感知协议差异——无论你用哪种方式调用 iPL.place,底层访问的是同一个 iDB,返回的是同一份结构化结果。工程师用 Tcl、AI 平台用 MCP、数据科学家用 Python——各自用最熟悉的语言。
Typed Contracts
每个工具调用都有严格的 request/result schema 验证。在网关层就完成类型校验——传入参数类型不对、缺少必填字段、数值越界,请求被立即拒绝并返回明确的错误信息。Agent 永远收不到不完整或格式错误的工具结果。
Security Isolation
Agent 调用在沙箱中执行——不能直接访问文件系统,不能发起网络请求,不能 fork 子进程。Interface 的沙箱层确保 Agent 只能通过类型化的工具接口与设计状态交互,任何越权行为在网关层就被拦截。
Rate Limiting
防止 Agent 在优化循环中过度调用耗尽计算资源。基于 token bucket 的自适应限流——Agent 在短时间内发起大量调用时自动降速,避免资源竞争同时保持交互体验。
Audit Log
所有 Agent 调用的完整审计日志——谁在什么时候调用了什么工具、传入什么参数、得到什么结果、耗时多少。日志结构化存储,可用于性能分析、安全审计、以及 Agent 行为复现。
多协议示例
三种协议下调用同一个工具 iPL.place 的完整示例。
from ieda import AgentClient
client = AgentClient(protocol="python")
design = client.load_design("aes_core", tech="sky130")
# All validation happens inside Interface gateway
result = client.call("iPL.place",
design=design,
effort="standard",
congestion_weight=0.3,
timing_weight=0.7)
# Typed result — guaranteed by contract
print(f"HPWL: {result.hpwl:.2e}")
print(f"Max Density: {result.max_density:.2%}")
print(f"WNS: {result.wns:.4f}")
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "iPL.place",
"arguments": {
"design_ref": "aes_core@sky130",
"effort": "standard",
"congestion_weight": 0.3,
"timing_weight": 0.7
}
}
}
// Typed response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{
"type": "text",
"text": "{\"hpwl\": 1.25e7, \"max_density\": 0.78, \"wns\": -0.042}"
}]
}
}
# Tcl interface — same tool, same result iDB::load_design aes_core sky130 # Parameters validated by Interface gateway set result [iPL::place -effort standard \ -congestion_weight 0.3 \ -timing_weight 0.7] # Structured result access puts "HPWL: [dict get $result hpwl]" puts "Max Density: [dict get $result max_density]" puts "WNS: [dict get $result wns]"
安全模型
┌─────────────────────────────────────────────────┐
│ Agent (LLM) │
└────────────────┬────────────────────────────────┘
│ MCP / Python / Tcl
▼
┌─────────────────────────────────────────────────┐
│ Interface Gateway │
│ ┌───────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Schema │ │ Sandbox │ │ Rate Limiter │ │
│ │ Validator │ │ Layer │ │ (Token Bkt) │ │
│ └───────────┘ └──────────┘ └──────────────┘ │
│ ┌───────────────────────────────────────────┐ │
│ │ Audit Logger │ │
│ └───────────────────────────────────────────┘ │
└────────────────┬────────────────────────────────┘
│ allowed tool calls only
▼
┌─────────────────────────────────────────────────┐
│ iDB + Tools │
└─────────────────────────────────────────────────┘