Dedalus代理的双LLM信任层
此仓库证明,Dedalus代理可以保持快速和有用,而单独的LLM防火墙可以控制原始提示、PII和工具路由。第一个LLM(拥抱脸上的LiquidAI)位于每次Dedalus运行之前,清理输入,只将允许执行的命令集交给worker代理。第二个LLM(你的Dedalus工作流程)对真实姓名或秘密一无所知。
两位法学硕士如何分工
- LLM#1:裁判/沙盒(
redact/judge_service.py)
- 接收准确的用户提示。 - 提示注射尝试的屏幕。 - 调用LiquidAI端点以提取和屏蔽PII。 - 返回一个JSON有效负载,描述掩码文本、占位符映射以及它希望worker执行的操作。
- LLM#2:工人/Dedalus代理人(
hello_world.py,data_analyst_agent.py,你自己的流程)
- 通过中定义的MCP工具与法官交谈 mcp_tool_adapter.py. - 只看到占位符和法官批准的命令集。 - 通过同一MCP适配器将任何最终答案发送回,以便法官在用户看到占位符之前对其进行重新水合。
MCP挂钩是胶水:Dedalus转轮记录 sanitize 和 rehydrate,MCP调用路径证明您了解它们的端到端堆栈。
你得到了什么
- Dedalus代理可以汇总或分析PII繁重的文档,而无需接触原始标识符。
- 工具通过法官进入,所以困惑的副手袭击无处可去。
- 审计日志主要显示占位符,但可以根据需要重新水合。
- 一个明显的切入点:保留现有的Dedalus代码,添加MCP工具服务器,并将其指向裁判。
环境设置
python -m venv dedalu
.\dedalu\Scripts\activate
pip install -r requirements.txt秘密和配置:
DEDALUS_API_KEY=sk-your-key
HF_TOKEN=hf_your_token
HF_ENDPOINT=https://your-endpoint.aws.endpoints.huggingface.cloud
PII_BACKEND=remote # use "offline" to run without Hugging Face运行堆栈
- 法官服务(LLM#1)。
.\dedalu\Scripts\python -m uvicorn redact.judge_service:app --host 127.0.0.1 --port 9000- 可选批量检验。
cd redact
..\dedalu\Scripts\python run_liquidai_pii.py --input data\txt\paddle_Redactor_sample_0002.txt --limit 1- MCP代理(Dedalus的绑定)。
$env:JUDGE_URL="http://127.0.0.1:9000"
.\dedalu\Scripts\python mcp_tool_adapter.py- 迪达勒斯跑步者。\
在Dedalus注册MCP工具 AsyncDedalus 跑步者。代理人打电话来 sanitize 在调用任何工具之前 rehydrate 在返回响应之前。
验证检查表
.\dedalu\Scripts\python -m pytest涵盖了判断启发式、LiquidAI掩蔽逻辑和有状态的消毒/再水化流程。redact/run_liquidai_pii.py让您指向特定.txt导出并查看法官将传递的确切JSON+掩码文本。- Dedalus快速入门脚本(
hello_world.py,data_analyst_agent.py)继续运行,现在MCP适配器在他们面前。
状态和下一步行动
完成
- 双LLM架构通过MCP连接到Dedalus。
- LiquidAI端点客户端,具有回退离线启发式功能。
- 会话感知PII掩蔽和补液。
- 测试和文档,以便其他人可以复制工作流程。
即将到来的抛光
- IaC/容器脚本自动部署判断。
- 使用Llama Guard或OpenGuardrails进行更严格的意图审查。
- 为合规团队提供带有日志挂钩的扩展Dedalus教程。
扩展它的方法
- 插入机密存储(KMS、DynamoDB、Postgres),以便判断状态在重启后仍然有效。
- 将判断结果导入OpenTetry,以便于仪表板。
- 如果您希望语言覆盖范围超出JP/EN,请将LiquidAI端点替换为另一种策略模型。
所有这些升级都存在于法官层;Dedalus工作人员和MCP适配器已经知道如何消耗您决定排放的任何经过消毒的有效载荷。这就是这个项目的全部意义:Dedalus保持高效,而专用的LLM沙箱则使一切安全、可见并在您的控制之下。
