|
|
|
|
|
by longtermop
133 days ago
|
|
The microservices framing resonates but surfaces an interesting security question. In your orchestration example: research = await research_agent.call("Find Q3 earnings...")
analysis = await doc_agent.call(f"Analyze this data: {research}")
When one agent's output flows directly into another's input, you've created an implicit trust boundary. What happens if the research skill fetches data from a compromised source that includes adversarial instructions? The doc_agent receives {research} as trusted input but it's actually attacker-controlled content.Skills that touch external systems (web scrapers, API clients, document parsers) become injection surfaces. This is analogous to the microservices problem of validating input at service boundaries, but harder because the "input" here is natural language that gets interpreted, not just parsed. Curious how boxlite handles sanitization between skill invocations. Is there a recommended pattern for treating inter-agent data as untrusted, or does the micro-VM isolation handle this by containing blast radius rather than preventing injection? (Working on related problems at Aeris PromptShield - this is genuinely one of the trickier aspects of composable agent architectures.) |
|