Skip to main content

Agents-ufy-Core (AuC): asyncio single-agent framework

Project description

AuC

Agents-ufy-Core — ufy 体系中的单智能体 Python 核心框架。

AuC 基于 asyncio,提供可插拔推理循环(默认 ReAct)、LLM 适配、工具权限分级(L1/L2/L3)与可观测事件流。与 AuM 协同时,吸收 Claude Code 式工程纪律:上下文切片项目军规(.aurules高危操作 IM 二次授权

v0.2.9 — VS Code 风格多终端标签、PyPI 版本更新提示(Web Code/Chat + CLI);v0.2.8 起 Web PTY 终端、工作区删除/重命名、对话定义角色。

CI PyPI Python License: MIT

特性概览

能力 说明
ReAct 循环 流式推理、并行工具调用、上下文压缩、检查点回滚
多模型 OpenAI Chat Completions、Anthropic Messages、DeepSeek 兼容网关
工具分级 L1 只读 / L2 沙盒写 / L3 二次授权;危险命令自动升级
终端 UI prompt-toolkit 多行输入、斜杠命令、Plan / 自治模式
Web UI Code + Chat 双模式、工作区、项目预览/代理运行、SSE 流式对话
IM 授权 Telegram、QQ(OneBot 11)L3 审批卡片
进化记忆 .auc/evolution.yaml 经验召回与金块固化
沙盒 文件读写、Shell、grep/glob、URL 抓取(SSRF 防护)

安装

从 PyPI(推荐)

pip install ufy-auc              # 仅核心(无 HTTP / 无 Web)
pip install "ufy-auc[chat]"      # 终端对话(llm + cli,日常推荐)
pip install "ufy-auc[web]"       # 网页 UI
pip install "ufy-auc[all]"       # 全部可选组件
pip install "ufy-auc[dev]"       # 开发/CI(pytest + 全部组件)

PyPI 包名为 ufy-aucimport auc 不变;CLI 仍为 auc / auc-web)。PyPI 上的 auc 已被其他项目占用。

从源码

git clone https://github.com/ufy2024/AuC.git && cd AuC
pip install -e ".[chat]"       # 或 .[all] / .[dev]

可选组件对照

模式 命令 包含
核心 pip install ufy-auc 框架 + YAML(无 HTTP / 无 Web)
llm pip install "ufy-auc[llm]" httpx,调用 OpenAI / Anthropic / DeepSeek
cli pip install "ufy-auc[cli]" prompt-toolkit 终端增强
chat pip install "ufy-auc[chat]" llm + cli(终端对话推荐
web pip install "ufy-auc[web]" FastAPI 网页 UI + 工作区 + 项目运行
telegram pip install "ufy-auc[telegram]" Telegram L3 二次授权
qq pip install "ufy-auc[qq]" QQ L3 二次授权(OneBot 11)
all pip install "ufy-auc[all]" 上述全部
dev pip install "ufy-auc[dev]" pytest + 全部(CI / 本地开发)

可组合:pip install "ufy-auc[chat,web]"openaillm 的兼容别名。运行 auc extras 查看完整列表。

快速开始

1. 配置大模型

auc config init                              # ~/.Au/AuC/settings.json
auc config init --provider deepseek          # DeepSeek 模板
export DEEPSEEK_API_KEY=sk-...               # 或 OPENAI_API_KEY / ANTHROPIC_API_KEY
auc config show

配置格式为 JSON(Claude Code 风格),详见仓库内 docs/model-config.md

2. 终端对话

auc chat "你好"
auc chat "hi" -p anthropic -m claude-sonnet-4-20250514
auc chat                                    # 进入交互 REPL(/help /plan /autonomy …)
auc undo --list                             # 检查点回滚

3. Web UI

auc web --sandbox ./my-project              # http://127.0.0.1:8765
# 或
auc-web --sandbox ./my-project

侧栏可浏览工作区、运行沙盒内项目(HTML / Node / Python)、在 Chat 模式与智能体对话(含 L3 授权弹窗、图片上传)。

4. 程序化调用

import asyncio
from auc import AgentConfig, DefaultAgent, DefaultToolRegistry, InMemoryModelClient, make_echo_tool
from auc.messages import ToolCall
from auc.model import AssistantMessage

async def main():
    reg = DefaultToolRegistry()
    t, p = make_echo_tool()
    reg.register(t, p)
    model = InMemoryModelClient(responses=[
        AssistantMessage(content=None, tool_calls=[
            ToolCall(id="1", name="echo", arguments={"x": 1}),
        ]),
        AssistantMessage(content="done", tool_calls=None),
    ])
    agent = DefaultAgent(AgentConfig(agent_id="demo", model=model, tools=reg))
    print((await agent.run("run echo")).output)

asyncio.run(main())

更多示例见 examples/

CLI 命令

命令 说明
auc chat 终端对话(推荐 [chat]
auc web 启动 Web UI(推荐 [web]
auc config init/show/set/migrate 管理 settings.json
auc slice 语义切片(Au-Context Slicer)
auc undo 检查点列表与回滚
auc run 脚本化单次运行(--reply 调试)
auc dispatch IM 遥控分发
auc extras 打印可选安装模式

设计亮点(Claude Code 经验)

机制 实现要点
Au-Context Slicer SemanticSlicerContextPackage
Au-Rules Matrix FileRulesPort + .aurules
L3 二次授权 TelegramApprovalPortQQApprovalPortWebApprovalPortConsoleApprovalPort
自治与升级 AutonomyPolicy、危险 Shell 自动升 L3
检查点 write_file / delete_path / run_command 快照与 auc undo
进化记忆 EvolutionMemoryPort.auc/evolution.yaml

开发与测试

pip install -e ".[dev]"
pytest -q                                    # 267 项用例
pytest -q --cov=auc --cov-fail-under=75    # CI 同款(当前约 80%)
ruff check auc tests

CI:GitHub Actions,Python 3.11 / 3.12,覆盖率门槛 ≥75%。

文档

设计文档位于仓库 docs/ 目录(本地克隆后可见):

文档 说明
docs/design-philosophy.md 设计哲学与生态蓝图
docs/architecture.md 总体架构
docs/model-config.md OpenAI / Anthropic / DeepSeek 配置
docs/tool-privilege.md L1/L2/L3 工具权限
docs/aum-compatibility.md AuM 联调与版本
docs/test-report.md 测试报告与覆盖率

路线图

已完成(v0.2.x)

  • ReAct 循环、run_stream、事件总线
  • OpenAI / Anthropic / DeepSeek 流式客户端
  • 沙盒文件、Shell、搜索、URL 抓取工具
  • 检查点回滚、Plan 模式、自治策略、上下文压缩
  • 终端 REPL(斜杠命令、prompt-toolkit)
  • Web UI(工作区、项目运行、SSE Chat、L3 授权队列)
  • Telegram + QQ(OneBot 11)IM 二次授权
  • 进化记忆与金块固化
  • 267 项 pytest、CI 覆盖率门槛

进行中 / 计划

  • ConversationStore 上移共享(M2)
  • Usage 上报与进化层联动
  • 独立 AuM 仓库生产化(持久化、向量索引、Webhook)

仓库与发布

pip install -U "ufy-auc[chat]"

许可

MIT — 见 LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ufy_auc-0.2.9.tar.gz (345.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ufy_auc-0.2.9-py3-none-any.whl (364.1 kB view details)

Uploaded Python 3

File details

Details for the file ufy_auc-0.2.9.tar.gz.

File metadata

  • Download URL: ufy_auc-0.2.9.tar.gz
  • Upload date:
  • Size: 345.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for ufy_auc-0.2.9.tar.gz
Algorithm Hash digest
SHA256 263b15262166078b34d208bd62567c7ecc00e448e18e13ff1c0f3b2f013d7ec7
MD5 a85b4ef5dfa8c9286aa8db6d300b49f7
BLAKE2b-256 8975528756fb7afadc074023eaff6e300334479b0980f81404ecceb2d1e82fbb

See more details on using hashes here.

File details

Details for the file ufy_auc-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: ufy_auc-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 364.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for ufy_auc-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 29e23adff38eb02a8dfe4827551d82d6939d3e2dc02c195bfe54a742b909d27d
MD5 b76f1eb500e8966e34f0fa663102fec4
BLAKE2b-256 da9f264cce57b0e1a922230f35f6c696f73549e8af9d1ff1499de9648876dd7c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page