You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(extensions): add register_tools() for raw Agno toolkits & providers
Lets custom/*.py attach any Agno tool that is not a single decorated function —
a Toolkit instance or a context provider's get_tools() list (Drive, Gmail,
Calendar, Slack, etc.) — to the agent without editing core code:
from dango.extensions import register_tools
from agno.context.gdrive import GoogleDriveContextProvider
register_tools(*GoogleDriveContextProvider().get_tools())
register_tools(*objs) flattens lists/tuples and stores raw objects; they flow
into the agent via get_custom_tools() alongside decorated tools, and are exposed
to the agent only (never slash commands). Docs cover usage and note that Agno's
Scheduler is a runtime/cron layer that does not fit Dango's model. 44 tests pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- [Custom Commands & Tools](https://raw.githubusercontent.com/zhiro-labs/dango/main/docs/features/extensions.md): Write your own Discord slash commands and agent tools in Python in a gitignored custom/ directory. Three decorators — @command, @agent_tool, @command_and_tool — with per-function opt-in for agent access. One function can be both a slash command and an LLM-callable tool; a normalized Ctx works across both call paths.
20
+
- [Custom Commands & Tools](https://raw.githubusercontent.com/zhiro-labs/dango/main/docs/features/extensions.md): Write your own Discord slash commands and agent tools in Python in a gitignored custom/ directory. Three decorators — @command, @agent_tool, @command_and_tool — with per-function opt-in for agent access. One function can be both a slash command and an LLM-callable tool; a normalized Ctx works across both call paths. register_tools() attaches any Agno toolkit or context provider (Drive, Gmail, Calendar, Slack, etc.) to the agent without editing core code.
21
21
- [Workflow Architecture](https://raw.githubusercontent.com/zhiro-labs/dango/main/docs/features/workflow.md): Four-step Agno Workflow — FetchHistory → LLMChat → ExtractRenderTables → SendResponse. Entry point: `on_message` in ChatCog (and the `/deep` command), which builds message_data and calls workflow.arun().
0 commit comments