Skip to content

Conversation

@ym-han
Copy link
Contributor

@ym-han ym-han commented Dec 1, 2025

This is a convenience PR that collects all the changes. When actually reviewing, though, it'd probably be easier to review the constituent PRs.

To understand the dependency structure of the PRs, see https://gist.github.com/ym-han/1eefc2057ffd02428ac3405821959768

To get a quick sense for what docs have been done and what else is left, see #736 (comment) (please do read this comment first).

How to see the docs

First, make sure you've installed the docs deps:

uv pip install .[docs]

Local Development Server

To start a local server with hot reload:

mkdocs serve
# Then open <http://127.0.0.1:8000/> in your browser.

Build Static Site

To build the static documentation site:

mkdocs build

The output (which includes the various llm.txes) will be in the site/ directory.

See also the note in docs/development.md on marimo notebooks.

What needs to get added to CI

This was mentioned in the comment, but just in case:

  • need to set up CI for xdoctest
  • tests / checks of the marimo notebooks, if you decide to stick with marimo (but as I told Ivan, it's easy to switch to a different option because it's easy to export marimo notebooks to markdown etc)

Depending on the docs platform you go with, you might also need to add CI checks to make sure the links work etc.

Misc resources

Doc site packages

Ivan was asking, so: for reference, the non-Mintlify docs sites solutions I'm aware of include:

Unfortunately, I don't know which of these would be most suitable for you. But the Zensical stuff does suggest that mkdocs isn't a good long-term solution (I went with mkdocs initially just because it's a common choice; hadn't known then that it didn't seem well-maintaned).

@chatgpt-codex-connector
Copy link

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@ym-han ym-han marked this pull request as draft December 1, 2025 15:22
@greptile-apps
Copy link

greptile-apps bot commented Dec 1, 2025

Greptile Overview

Greetile Summary

This pull request represents a comprehensive documentation overhaul for the DimensionalOS (DimOS) robotics framework. The changes transform a technically functional but under-documented codebase into a well-documented library with extensive API documentation, conceptual guides, and interactive tutorials. The PR adds a complete MkDocs documentation system with Material theme, including structured navigation across Home, Quickstart, Tutorials, Concepts, and API Reference sections.

Key additions include comprehensive docstrings using the annotated_doc library for enhanced type documentation, three progressive tutorials (skill basics, agent integration, multi-agent systems), conceptual documentation for core components (Agents, Skills, Modules, Blueprints, Transport), and complete API reference documentation. The changes also introduce Marimo notebook-based tutorials embedded as pre-rendered HTML to provide interactive learning experiences while maintaining compatibility with the documentation build system.

The documentation effort covers the entire framework architecture, from low-level transport abstractions and module coordination to high-level agent orchestration and skill creation patterns. This represents a significant improvement in developer experience and accessibility for the robotics framework that integrates LLM-based reasoning with distributed robotic systems.

Important Files Changed

Filename Score Overview
mkdocs.yml 4/5 New comprehensive MkDocs configuration with Material theme, navigation structure, and specialized plugins
dimos/protocol/skill/skill.py 5/5 Added extensive documentation and type annotations for the core skills system
dimos/agents2/agent.py 5/5 Comprehensive documentation enhancement with detailed API contracts and usage examples
dimos/agents2/spec.py 5/5 Major documentation upgrade with type annotations and architectural explanations
dimos/core/blueprints.py 5/5 Added extensive docstrings explaining the declarative module composition system
dimos/core/module_coordinator.py 5/5 Comprehensive method documentation with examples and lifecycle management details
dimos/core/module.py 5/5 Added detailed docstring to foundational ModuleBase class with usage patterns
dimos/core/transport.py 4/5 Enhanced with comprehensive class documentation and transport selection guidance
dimos/core/stream.py 4/5 Added detailed Transport documentation with inheritance hierarchy and type annotations
dimos/protocol/skill/coordinator.py 4/5 Extensive documentation for cross-event-loop synchronization patterns
dimos/protocol/skill/type.py 4/5 Added comprehensive documentation for skill system type definitions
docs/tutorials/multi_agent/planner_subagents.py 2/5 Missing import will cause runtime error (dimos.utils.logging_config)
docs/api/skills.md 4/5 New API documentation with spelling error ("caapbilities")
docs/concepts/transport.md 4/5 New comprehensive transport documentation with minor typo ("mthods")
docs/concepts/blueprints.md 4/5 New blueprints documentation with typo ("waht") and variable naming inconsistency
pyproject.toml 4/5 Added documentation dependencies and xdoctest configuration
All other files 4-5/5 Various documentation improvements, new tutorial files, and configuration updates

Confidence score: 4/5

  • This PR is generally safe to merge but requires attention to several documentation errors and one critical runtime issue
  • Score reflects comprehensive documentation improvements with some quality issues: spelling errors in docs/api/skills.md and docs/concepts/transport.md, missing import in docs/tutorials/multi_agent/planner_subagents.py that will cause runtime failure, variable naming inconsistencies in docs/concepts/blueprints.md, and potential dependency issues with annotated_doc package availability
  • Pay close attention to docs/tutorials/multi_agent/planner_subagents.py for the missing import error and review documentation files for spelling/consistency issues before merge

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Additional Comments (1)

  1. dimos/core/transport.py, line 81 (link)

    syntax: duplicate T = TypeVar("T") definition - line 66 already defines this

41 files reviewed, 17 comments

Edit Code Review Agent Settings | Greptile


- :material-robot: **Agents**

---
Copy link

Choose a reason for hiding this comment

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

style: Extra space indentation - should align with line 15 for consistency

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment on lines +255 to +262
agent_transport: Annotated[
type[PubSub],
Doc(
"""Transport class for publishing agent messages. Must be a PubSub subclass that
can be instantiated with no arguments. Used for observability (e.g., by the
`agentspy` CLI tool)."""
),
] = lcm.PickleLCM # type: ignore[type-arg]
Copy link

Choose a reason for hiding this comment

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

logic: The type annotation allows None but the default is a concrete class - this could cause type checking inconsistencies.

@ym-han ym-han force-pushed the all-ym-changes branch 8 times, most recently from 5892809 to a30d4fe Compare December 2, 2025 10:51
Copy link
Contributor

@leshy leshy left a comment

Choose a reason for hiding this comment

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

totally my notes while scrolling through the docs, will do more


**TODO:** Stash will be writing the intro to DimOS

The framework enables neurosymbolic orchestration of Agents as generalized spatial reasoners/planners and Robot state/action primitives as functions.
Copy link
Contributor

Choose a reason for hiding this comment

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

this is really intense and flowery marketing language, I don't understand what it means.

I'd call it just framework (not os!) for general robotics

```
<!-- TODO: Check what the installation directions should be, post-release; hopefully it will be this easy after the library gets published -->

## Define a skill
Copy link
Contributor

@leshy leshy Dec 2, 2025

Choose a reason for hiding this comment

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

imo we are too proud of LLMs and agents and they are too much at our forefront, I have langchain, I can write my own agent integration in a day, I don't care about this when looking into robotics frameworks. I want to see robotics specific capabilities here

I also don't care to learn about the module system before I see actual capabilities that I can use (that I cannot write myself in a few days) AFTER the capabilities are demonstrated I might care to learn about the module system if I have to for my usecase

so I want mapping, navigation, data transfer, viewing/control UI, etc for my robot.

IMO we should ultra bias this quickstart towards a few solid platform(s) we support, split it in a few parts immediately, you choose general/sim/go2/g1 and give people something tangible they can run quickly

llm_agent(system_prompt="You're a friendly robot. Use greet when asked to say hello."),
)
.global_config(n_dask_workers=1)
.build()
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm scrolling to see a description or pictures or videos of what I'm reading about and deploying, before reading any code. I don't care what blueprints are at this stage

```

``` {title="Output"}
Hello! How are you doing today?
Copy link
Contributor

Choose a reason for hiding this comment

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

oh it's just a chat agent? I can hook into openai myself I don't care about chat agents at this point

> [!WARNING]
> **Don't use both `@skill` and `@rpc` decorators on a single method** - The `@skill` wrapper can't be pickled for LCM transport. Use `@skill()` for agent tools, `@rpc` for module-to-module calls.
## Related concepts
Copy link
Contributor

Choose a reason for hiding this comment

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

Ideally at the end of this I have a small piece of code I can run and see this working, demonstrating all skill types in something simple I can play with - I'd suggest our webcam agent experiment. ideally with live audio I/O

Actually first I want to run this, see the value, then maybe I'll read the rest

(reducers, passive/active skills etc)

@ym-han ym-han force-pushed the all-ym-changes branch 5 times, most recently from f979707 to abaa1a5 Compare December 3, 2025 18:14
ym-han added 16 commits December 3, 2025 18:15
…Add griffe_typingdoc for PEP 727 docs to mkdocs.yml. Add `annotated-doc` for documenting parameters etc in an inline fashion

doc type
@ym-han ym-han force-pushed the all-ym-changes branch 2 times, most recently from 6440ebb to 9f0ee75 Compare December 4, 2025 07:12
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