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.4 — 支持 OpenAIAnthropicDeepSeek;终端 + Web 双端;267 项测试、覆盖率 ≥80%。

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.4.tar.gz (162.6 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.4-py3-none-any.whl (156.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ufy_auc-0.2.4.tar.gz
  • Upload date:
  • Size: 162.6 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.4.tar.gz
Algorithm Hash digest
SHA256 399747ef0800919222a3af370d8f91e6bf6bee693b0ec08574c29d61a3e38807
MD5 e0726be1303a3006779e7ee1de433e1f
BLAKE2b-256 5b2645f1d7c7ea224d593ecbfa4bce3221f0fad020582e9de9e59ed33a948e6a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ufy_auc-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 156.4 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 05847883b2bbcaa15f2debd6589d7ae57569f5d8714516fcf5daba096c264249
MD5 4f3a53f5fde40506ef6cc3845660495f
BLAKE2b-256 e56eadaf9b07f3fb02c16cd853c275b2f934540d0a2e968890900c7b163a9bf0

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