一个CLI式的Agent工具,采用Nuitka构建,可以配合交叉编译工具链实现跨平台。基础结构如下:
- 在
src/utils/cli/interactive_cli.py中的“Interactive Loop”相当于Agent Loop; - 并将每一次的Agent Iterate (Tool Call)动作放到
src/core/agent.py中的“step”执行。
- CLI式交互,无GUI;
- Tools均在
src/tool下实现,可跟随主程序一并构建; - 完善的日志、会话管理。
Python 版本建议采用 3.11 及以上。
git clone git@github.com:SwordofMorning/Dandelion.git
# 或者
git clone https://github.com/SwordofMorning/Dandelion.git
# 进入目录
cd Dandelion建议先通过conda或者venv来管理环境,随后按照如下的方式安装依赖:
# 适用于只想直接运行 Dandelion 源码的用户
pip install .
# 包含打包工具、测试框架等开发所需依赖
pip install ".[dev]"
# 编辑模式
pip install -e ".[dev]"对于初次使用程序的用户来说,需要在.env/下配置:
api.cfg,包含API Key、LLM模型、路由配置等内容;devices.yaml,如果需要使用串口或者SSH访问其他设备,需要配置此表。
完成上述配置后,可以直接通过python main.py来运行程序:
(dandelion) xiaojintao@U26S:~/Workspace/Dandelion$ python main.py
[>] Initializing Dandelion Project (v0.0.0-dev-260807-abc123-ci)...
[+] Agent Initialization Successful. Model: deepseek-v4-flash
[+] MAX_TOKENS=160000, MAX_CONTEXT_TOKENS=819200
================ SHELL READY ================
[+] Bash-style Tab completion enabled (Powered by prompt_toolkit).
================= WORKSPACE =================
Git-Style Session Management:
branch -a : List all available sessions.
branch -d <name/id> : Delete one session.
checkout <name/id> : Switch to an existing session.
checkout -b <name> : Create and switch to a new session.
Vim-Style Editing:
vim : Open system editor (Vim/Notepad) to draft prompt.
load <filepath> : Load a local file into the prompt buffer.
Core Operations:
status : View current session and staged buffer.
commit : Send the staged buffer to LLM.
clear : Clear the staged buffer.
help / quit / exit : System commands.
====================================================
deepseek-v4-flash:(staged_msg)> exit
[*] Terminating Dandelion Shell. Goodbye.
其中:
MAX_TOKENS表示LLM最大输出长度;MAX_CONTEXT_TOKENS表示LLM上下文长度,包含前述LLM的输出长度;prompt_toolkit用来提供tab补全功能;deepseek-v4-flash是当前的Main Agent (Router)的名称;staged_msg是当前会话(Session Branch)的名称。
在Releases页面,Dandelion提供了多个架构、平台的发行版。其中,针对Ubuntu上的glibc版本问题,本项目采用docker直接为不同版本的系统进行构建。因此建议Linux用户可以直接下载对应的glibc版本的产物。
同时,由于长度等原因,可能需要点击Show all xx assets才能显示完成的构建产物,这里请注意点击。
这里的使用方式和前述的源码类似,在进入到Dandelion文件夹后,通过:
# Windows 平台
./dandelion.cmd
# Linux 平台
./dandelion.sh来执行程序,两者均指向其子目录下的dandelion二进制文件。这里旨在通过以脚本的形式简化目录。