Skip to content

Conversation

@moonpyt
Copy link
Collaborator

@moonpyt moonpyt commented Jan 21, 2026

1、Add an asynchronous lock to the run() method. If run() is called again while an Agent instance is executing a task, it will throw an "Agent is busy" error instead of throwing the state into chaos.
2. Increased the _default_timeout from 30s/60s to 120s.
We optimize the waiting logic when selecting tools for LLM, especially for the processing of Images and documents, leaving enough time for the model to "digest" (up to 180s).
3. Added a neo skill
4. Add a script to the normal research skill, otherwise it won't run

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7dd0ee2f6b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 114 to +116
# Timeout configurations
self._default_timeout = 30.0
self._state_transition_timeout = 5.0
self._memory_operation_timeout = 10.0
self._default_timeout = kwargs.get("_default_timeout", 30.0)
self._state_transition_timeout = kwargs.get("_state_transition_timeout", 5.0)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Respect subclass default timeout

The base initializer overwrites _default_timeout strictly from kwargs, which means subclass defaults are ignored. For example, ToolCallAgent now defines _default_timeout = 120.0, but constructing it without an explicit _default_timeout still resets it to 30 seconds here, so the “increased timeout” change doesn’t actually take effect and long tool or multimodal steps can still time out unexpectedly. Consider defaulting to the already-set attribute (e.g., getattr(self, "_default_timeout", 30.0)) or passing _default_timeout in subclasses.

Useful? React with 👍 / 👎.

Comment on lines +111 to +115
elif action == "get_asset_info":
tool = GetAssetInfoByNameTool()
result = await tool.execute(
asset_name=params.get("name"),
Limit=params.get("limit", 5),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Accept documented asset_name for get_asset_info

The neo-query skill documentation instructs callers to use the asset_name field (see examples/skills/neo-query/SKILL.md), but the script only reads params.get("name"). If the skill sends the documented asset_name, this call passes None to GetAssetInfoByNameTool, which will fail or return empty results for valid queries. Please also read params.get("asset_name") here to match the documented interface.

Useful? React with 👍 / 👎.

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.

1 participant