Repository navigation
fix(substrate): let the golden actor fetch git and S3 skill sources - #3435
Open
danielle-mustillo wants to merge 5 commits into
Open
danielle-mustillo wants to merge 5 commits into
danielle-mustillo wants to merge 5 commits into
Conversation
danielle-mustillo
force-pushed
the
danielle-mustillo/golden-egress-policy
branch
from
October 29, 2026 06:17
7330005 to
98d9463
Compare
…ources The golden actor fetches git and S3 skill sources at startup, but its ActorTemplate has no golden egress policy, so the fetch is blocked. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
danielle-mustillo
force-pushed
the
danielle-mustillo/golden-egress-policy
branch
from
October 29, 2026 20:20
98d9463 to
0d2e7c3
Compare
Agents with git or S3 skill sources never became Ready. The golden actor downloads those sources when it starts, but it had no egress policy, so Substrate blocked the download. The ActorTemplate now sets golden_egress_policy to allow only the hosts of those sources, for the root agent and its shared agents. Sessions keep their own egress policy. kagent install turns on Substrate's GoldenEgressPolicy preview gate. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
danielle-mustillo
force-pushed
the
danielle-mustillo/golden-egress-policy
branch
from
October 29, 2026 20:35
0d2e7c3 to
e2ab68d
Compare
… gate Without Substrate's GoldenEgressPolicy preview gate, Substrate rejects a template with a golden egress policy. Expect a message that names the gate, and a retry that makes the Agent Ready once the gate is on. Other validation errors on the same template must stay terminal. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
…gate Substrate rejects a golden egress policy while its GoldenEgressPolicy preview gate is off, and reports golden_egress_policy as Forbidden. For that error only, the Agent status names the gate and the controller retries with backoff. The Agent becomes Ready after the gate is turned on, with no controller restart. Other validation errors stay terminal. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
danielle-mustillo
force-pushed
the
danielle-mustillo/golden-egress-policy
branch
from
October 29, 2026 21:28
e2ab68d to
8b91387
Compare
danielle-mustillo
marked this pull request as ready for review
October 29, 2026 21:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Agents with skills from git or S3 never become Ready. They fail with
GoldenActorCrashed.The golden actor is the first copy of an Agent, and each session starts from its snapshot. The golden actor downloads git and S3 skills when it starts. It has no egress policy, so Substrate blocks the download. The Agent's
egressPolicyRefsapply only to sessions.We found this while testing the example Agents in #3417.
What changed
golden_egress_policy. The policy allows only the git and S3 hosts of the Agent's skills, including skills of its shared agents.kagent installturns on Substrate'sGoldenEgressPolicypreview gate, which Substrate needs to accept the policy.ActorTemplateRejectedand names the gate. The controller keeps retrying, so the Agent becomes Ready after you turn on the gate. Other validation errors still stop retrying.Agents without git or S3 skills don't change.
Example
An AgentTemplate with a git skill:
kagent now adds this to the compiled ActorTemplate:
The Agent's
Readycondition:GoldenEgressPolicygate onFalse,GoldenActorCrashedTrueGoldenEgressPolicygate offFalse,GoldenActorCrashedFalse,ActorTemplateRejected, names the gateKnown limits
GoldenEgressPolicyto its Helmpreviewlist.403 SignatureDoesNotMatch, because Substrate's egress gateway drops the port from the Host header.Testing
On Kind with
kagent install, Agents with GitHub skills and an S3 skill become Ready, andload_skillreturns the skill. On main they fail withGoldenActorCrashed. With the gate off, the Agent shows the gate message, then becomes Ready once the gate is on.