集成新的Beaver后端服务到应用实例中,替换原有的nanobot实现。 主要变更包括: - 在Dockerfile和环境配置中添加Beaver相关路径和配置变量 - 更新工作目录结构从.nanobot到.beaver - 实现Beaver引擎加载器,支持配置文件加载和工具组装 - 添加内置工具如ListDirectoryTool、ReadFileTool、SearchFilesTool - 更新消息处理流程,支持通道适配器和网关模式 - 重构技能系统,支持显式工具提示和嵌入式检索 - 改进错误处理和生命周期管理 此变更使应用实例能够使用统一的Beaver后端进行AI代理运行时管理。
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
from beaver.engine import AgentLoop, EngineLoader
|
|
from beaver.foundation.events import InboundMessage, MessageBus, OutboundMessage
|
|
from beaver.interfaces.channels import ChannelManager, MemoryChannelAdapter
|
|
from beaver.interfaces.gateway.main import run_gateway
|
|
from beaver.interfaces.web.app import create_app
|
|
from beaver.interfaces.web.schemas import WebChatRequest, WebChatResponse
|
|
|
|
|
|
def test_agent_loop_boots(tmp_path) -> None:
|
|
loop = AgentLoop(loader=EngineLoader(workspace=tmp_path))
|
|
loaded = loop.boot()
|
|
assert "echo" in loaded.tools
|
|
assert "memory" in loaded.tools
|
|
assert "session_search" in loaded.tools
|
|
|
|
|
|
def test_web_app_factory() -> None:
|
|
app = create_app()
|
|
assert app.title == "Beaver Backend"
|
|
|
|
|
|
def test_gateway_entry_imports() -> None:
|
|
assert callable(run_gateway)
|
|
|
|
|
|
def test_message_bus_imports() -> None:
|
|
bus = MessageBus()
|
|
assert isinstance(bus, MessageBus)
|
|
assert InboundMessage(channel="test", content="hello").channel == "test"
|
|
assert OutboundMessage(channel="test", content="ok", session_id=None, finish_reason="stop").content == "ok"
|
|
|
|
|
|
def test_channel_imports() -> None:
|
|
bus = MessageBus()
|
|
channel = MemoryChannelAdapter(bus)
|
|
manager = ChannelManager(bus)
|
|
manager.register(channel)
|
|
assert manager.channels["memory"] is channel
|
|
|
|
|
|
def test_web_schema_imports() -> None:
|
|
assert WebChatRequest(message="hello").message == "hello"
|
|
assert WebChatResponse(
|
|
session_id="s",
|
|
run_id="r",
|
|
output_text="ok",
|
|
finish_reason="stop",
|
|
tool_iterations=0,
|
|
).output_text == "ok"
|