Merged
Conversation
# Conflicts: # golem-common/src/model/agent/protobuf.rs
mschuwalow
reviewed
Feb 25, 2026
| credentials_provider, | ||
| region: Region::default(), | ||
| } | ||
| pub async fn new(_token: &str, _role_arn: &str) -> Self { |
Contributor
There was a problem hiding this comment.
Suggested change
| pub async fn new(_token: &str, _role_arn: &str) -> Self { | |
| pub async fn new() -> Self { |
| .await | ||
| .expect("Failed to start MinIO"); | ||
| let container = tryhard::retry_fn(|| { | ||
| GenericImage::new("minio/minio", "RELEASE.2025-01-20T14-49-07Z") |
Contributor
There was a problem hiding this comment.
why switch to a specific image? This is another things that will need to be updated
Contributor
Author
There was a problem hiding this comment.
The old one (which was Minio::default()) was failing with the updated aws crates (which I updated to reduce some redundant transitive dependencies to try to make the build faster).
Maybe it could have been updated by updating testcontainers_modules instead but that affects more things
| script_runner = "@duckscript" | ||
| script = """ | ||
| components = array | ||
| array_push ${components} agent-counters/.wit |
Contributor
There was a problem hiding this comment.
Looking at the manifests of the test-components these are still needed, no?
Contributor
Author
There was a problem hiding this comment.
WIT dirs are not needed anymore. That should be updated in the manifests
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.
Resolves #2459
Resolves #2461 (by completely removing it instead of making it optional)
Resolves #1093
Replaces the old invocation model and APIs with a new, agent oriented one on all levels.
HTTP APIs
Worker-service no longer has the old
invoke-and-awaitandinvokeendpoints. The only way to invoke is the newinvoke-agentendpoint (already created as part of the bridge SDK epic, now extended/fully implemented)The
launch-new-workerendpoint (creates an agent without invoking anything on it) now accepts invocation context and principal.Note: further API changes to be expected in a next step where we try to remove the need to explicitly use component-ids when it can be inferred from agent type, but that's intentionally NOT part of this PR.
gRPC APIs
The old invocation gRPC endpoints are removed from both the worker-exeuctor and the worker-service. A single new endpoint is created that matches the
invoke-agenthttp endpoint, directly using agentic types (agent-type, data-value, etc) and supporting trigger, schedule and await together.All the endpoints that potentially create an agent instance have been extended with an optional principal parameter.
WIT changes
Restructured our WIT packages significantly:
golem:coregolem:rpcdoes not exist anymore, became part ofgolem:agent/host@1.5.0The old
wasm-rpcresource is now agentic - its constructor gets agent-type and data-value, and its methods are invoking agent methods using the agent data model too.Significant changes to the oplog (described below) are applied in the WIT version of the oplog too, and now we also have two types of oplog entries on WIT level just like in code:
oplog-entryandpublic-oplog-entry. This was an old ticket (#1093) that reduces the data travelling in oplog processor calls. Anenrich-oplog-entrieshost function has been added to convert between them if needed.Oplog changes
The most important oplog changes:
ImportedFunctionInvokedhas been renamed toHostCallExportedFunctionInvokedandExportedFunctionCompletedis nowAgentInvocationStartedandAgentInvocationFinishedPendingAgentInvocation) are now using theAgentInvocationandAgentInvocationPayloadtypes to talk about invocations.AgentInvocationis a sum type describing all the possible invocations that we support now:AgentInitializationmeans the agent'sinitializeis being calledAgentMethodcalls an arbitrary agent method through the agentinvokeinterfaceSaveSnapshotandLoadSnapshotare special, non-agentic calls for snapshottingProcessOplogEntriesis a special non-agentic call for oplog processor pluginsManualUpdateis a placeholder in the invocation queue to execute a snapshot-based updateExecutor internals
AgentInvocationand its related types. This becomes lowered to raw wasmtime invocation just at the end of the invocation chain.Others
IntoValue/FromValuederivation macros, and explicit unit test verifying that they produce the same type that's in WIT (foroplog-entry)Out of scope
The agent-id format does not change by this PR - agent-type name is still kebab-cased and the arguments are using the WAVE syntax extended with custom syntax for unstructured/multimodal. The invocation API itself is also expecting agent type name to be the kebab-cased variant.
The next task in the epic will consider changing these (#2835)