Skip to content

Conversation

@jakelorocco
Copy link
Contributor

Funcs that can't currently have requirements were defaulting to sampling strategies because they call act under the hood. I explicitly set those to None.

Longterm, we have an issue with sampling strategies and tool calling. If a sampling strategy copies an action, it looks like its returning that copied action. I believe this was causing issues because we would be calling tools on that new action instead of the original one. This was causing issues in the mobject table example I also fixed. Here's a small example of what happens:

my_db = Db()
print(my_db) # 1
result = m.transform(my_db, "add a two")
print(result) # 1, 2
print(my_db) # 1 <--- original object didn't get modified

@mergify
Copy link

mergify bot commented Oct 3, 2025

Merge Protections

Your pull request matches the following merge protections and will not be merged until they are valid.

🟢 Enforce conventional commit

Wonderful, this rule succeeded.

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|release)(?:\(.+\))?:

@jakelorocco jakelorocco marked this pull request as ready for review October 3, 2025 15:08
@HendrikStrobelt
Copy link
Contributor

Funcs that can't currently have requirements were defaulting to sampling strategies because they call act under the hood. I explicitly set those to None.

Longterm, we have an issue with sampling strategies and tool calling. If a sampling strategy copies an action, it looks like its returning that copied action. I believe this was causing issues because we would be calling tools on that new action instead of the original one. This was causing issues in the mobject table example I also fixed. Here's a small example of what happens:

my_db = Db()
print(my_db) # 1
result = m.transform(my_db, "add a two")
print(result) # 1, 2
print(my_db) # 1 <--- original object didn't get modified

Isn't the immutability a feature ?

@jakelorocco
Copy link
Contributor Author

Immutability might be a feature, but it doesn't mesh with our current examples / understandings of mobjects. Ie if the LLM calls a tool that should modify and object, I shouldn't really be copying the whole object, and then running the tool on that new object.

We don't know what the object is, if it can even be copied, and if the end user can just set old_object = new_object in their code.

@jakelorocco jakelorocco merged commit c8d4601 into main Oct 3, 2025
4 checks passed
@jakelorocco jakelorocco deleted the jal/fix-sampling-default branch October 3, 2025 17:32
@jakelorocco jakelorocco mentioned this pull request Oct 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants