first build nexus

This commit is contained in:
billyshen
2026-03-23 20:57:45 +08:00
parent acb58c5684
commit e312026141
400 changed files with 52448 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

View File

@@ -0,0 +1,106 @@
## Cloud Service Delivery
Cloud Service Delivery encompasses **the entire lifecycle of making cloud services operational, available, secure, performant, and valuable to end-users and customers.**
**In essence, Cloud Service Delivery is the bridge between the raw capabilities of cloud technology (IaaS, PaaS, SaaS) and the reliable, secure, performant, and cost-effective services that businesses and users actually consume.**
Cloud Service Delivery Team:
- Cloud Infrastructure Engineer
- Cloud Operation Engineer (DevOps/SRE)
- Cloud Security Specialists
- Cloud Support Engineer
- Cloud FinOps Engineer
-
1. **Service Provisioning & Deployment:**
- Setting up cloud infrastructure (servers, storage, networking).
- Automating deployment of applications and platforms.
- Configuring services according to customer requirements.
- Managing resource allocation and scaling
- Best Practice
-
2. **Infrastructure Management:**
- Monitoring health, performance, and capacity of compute, storage, network resources.
- Patching and updating underlying infrastructure (hypervisors, hosts).
- Managing physical data center aspects (power, cooling, hardware lifecycle) _if using private/hybrid cloud_.
- Ensuring high availability and disaster recovery setups.
- Best Practice:
- AWS CloudWatch as a data source in Grafana Monitoring Tool
-
3. **Platform Management (for PaaS):**
- Managing middleware, databases, development tools, and runtime environments.
- Ensuring platform scalability, security, and performance.
- Applying patches and updates to platform components.
4. **Application Operations & Management (for SaaS/IaaS-hosted apps):**
- Monitoring application performance, uptime, and user experience.
- Deploying application updates and bug fixes.
- Managing application configuration and secrets.
- Ensuring application scalability and resilience.
-
5. **Security & Compliance Management:**
- Implementing and managing security controls (firewalls, IDS/IPS, encryption, IAM).
- Vulnerability scanning and patch management.
- Security incident monitoring and response.
- Ensuring compliance with regulations (GDPR, HIPAA, PCI-DSS, etc.).
- Auditing and logging management.
- Best Practice
- Cloud Application WAF management
- IP white list support to tenant level
- Security Scanning
- Security Guidance
6. **Performance & Availability Monitoring:**
- 24/7 monitoring of all service components (infrastructure, platform, application).
- Setting and tracking SLAs (Service Level Agreements) and SLOs (Service Level Objectives).
- Proactive detection and resolution of performance bottlenecks and potential failures.
- Managing incident response to outages or degradation.
- Best Practice:
- Service Availability Check (APM/BPM, New Relic, AWS CloudWatch Synthetic, Health Page)
- SLA -Service Level Agreement - 99.9% vs 99.99% [uptime](https://uptime.is/)
- SLO - Service Level Objective
- Proactive detection (Grafana Alerting different severity)
7. **Incident & Problem Management:**
- Responding to alerts and service disruptions.
- Troubleshooting issues across the stack.
- Restoring service quickly (incident management).
- Identifying root causes and implementing permanent fixes (problem management).
- Best Practice
8. **Change & Configuration Management:**
- Controlling and documenting changes to the cloud environment.
- Managing configurations consistently and securely (Infrastructure as Code - IaC).
- Minimizing risk associated with changes through testing and rollback plans.
9. **Cost Management & Optimization:**
- Monitoring cloud resource consumption and spending.
- Identifying and eliminating waste (idle resources, over-provisioning).
- Right-sizing resources.
- Utilizing reserved instances or savings plans effectively.
- Providing cost visibility and reporting.
10. **Customer Onboarding & Support:**
- Guiding new customers/users through setup and access.
- Providing user documentation and training resources.
- Operating a service desk/helpdesk for user issues and requests (ticketing system).
- Handling billing inquiries and account management.
-
11. **Service Governance & Lifecycle Management:**
- Defining service catalogs and service levels (SLAs).
- Managing the lifecycle of services (introduction, operation, retirement).
- Continuous service improvement based on metrics and feedback.
- Vendor management (for public cloud providers or third-party tools).
- Best Practice:
-
12. **Backup, Recovery & Disaster Management:**
- Implementing and managing data backup strategies.
- Testing restore procedures.
- Maintaining and testing disaster recovery (DR) plans and infrastructure.
- Executing failover and failback procedures during disasters.
## Cloud DevOps Maturity Model
## AIOps

View File

@@ -0,0 +1,67 @@
---
kanban-plugin: board
---
## TikTok Shop Tasks
- [ ] ⏫ 等营业执照下来注册TikTok Shop
- [ ] ⏫ 学习Ushop使用方法了解整个订单流程
- [ ] 🔼 了解一下AMZ123网站
## Backlog
- [ ] ⏫ 学习并掌握Scrapy 爬虫工具的使用方法并结合n8n实现自动化
- [ ] ⏫ 尝试在本地搭建text to speech 的模型 并且通过API被n8n调用
- [ ] ⏫ 用pgAdmin连接NAS上postgres数据库
- [ ] ⏫ 尝试在本地使用n8n来调用comfyUI实现图生图自动化
- [ ] 🔼 Learn Google Trends Tutorials
- [ ] 🔼 学习如何使用Google趋势来查看目标国家的热门产品销售数据
- [ ] 🔼 升级Ubuntu1 Portainer 版本
- [ ] 🔼 有空时可以搞一下 爬虫爬 OdayDown.com的数据
- [ ] 🔽 利用ZBook Laptop搭建第二台Ubuntu Server
- [ ] 🔽 读原子习惯,掌握好习惯 中文版先读, 再读英文版
- [ ] 🔽 注册并试用kie.ai
- [ ] N8n调用第三方ApI 进行图片编辑
- [ ] 了解一下SerpAPI
## WIP
- [ ] ⏫ 尝试使用硅基流的 API来实现文生图并被n8n调用
## Done
- [ ] ⏫ 用n8n创建一个workflow可以把internet的图片转存到zipline,并返回图片公共链接
- [ ] 🔼 了解一下Homarr的具体用法
- [ ] 🔽 逐步淘汰Cpolar的使用并删除相关软件
## Tracking
- [ ] ⏫ 利用Qwan3-code来生成n8n代码
## Archive
- [ ] ⏫ 配置Obsidian使用ishenwei.online 域名的webdav
- [ ] ⏬ 在购买的RackNerd的VPS上安装n8n (需要额外考虑)
- [ ] ⏫ 在NAS上搭建一个图床应用
- [ ] ⏫ 在NAS上部署https://github.com/tt-rss/tt-rss
## Idea
- [ ] 🔼 利用Postgres里的RSS article数据来实现 n8n调用并通过AI来分析最新得到的RSS article给一个简报并通过邮件发送
%% kanban:settings
```
{"kanban-plugin":"board","list-collapse":[false,false,false,false,false,false,false]}
```
%%

View File

@@ -0,0 +1,15 @@
## 1. Review Upgrade Procedures Document with R&D team
## 2. Follow the Upgrade Procedures to perform Dev Farm upgrade validation
## 3. Send Notification to ESM Cloud Farm Customer about upcoming maintenance window
## 4. Maintenance Window Procedures
### 1. Set downtime of APM monitoring
### 2. Perform the upgrade change
### 3. Send notification to customer once all the change was done
### 4. Update Wiki Page about Version Tracking
### 5. Update System Health Page - Complete the Maintenance Window
### 6. Update PCS Product Version and Environment Version
### 7. Restore the APM monitoring and ensure all checks are good
## 5. Monitoring the farm metrics to ensure everything is working as expected

View File

@@ -0,0 +1,16 @@
Control Tower Link: https://backoffice.saas.microfocus.com/home/bl/desktop.html?TENANTID=1#/customers
- Request Access to Control Tower
-
- Customer Order Filter
- ESM Product Filter:
![Image](http://zipline.ishenwei.online/u/cu2uo8.png)
- APM/OpsB/NOM Product Filter
![Image](http://zipline.ishenwei.online/u/QPUhmO.png)
- SaaS Order In Control Tower
- CS Ops Fulfill the order and generate license
- SaaS Ops team download/allocate license and close the deal
- Control Tower order status change to "Provisioned", close the deal

View File

@@ -0,0 +1,15 @@
Wiki Page:
https://confluence.opentext.com/display/ICSD/Request+Unplanned+Change+in+Cloud+Production+Environment+Process
R&D SA Approver
- Gong Yi (SMAX)
- Danny Tian (SMAX)
- Spinu Corneliu (SMAX)
- Moldovan Vlad
- Diana Pop (CMS)
- Bianca Voina (CMS)
CSD Approver
- Shen Wei
- Ting Ye

View File

@@ -0,0 +1,32 @@
## Review R&D Major Release Plan & Patch Plan
- ESM RTE: Mihaela Claudia Chis <mchis@opentext.com>
- PI Planning Readout Slides
- ESM Patch Release Owner: Tanuj Raja Vunnava <tvunnava@opentext.com>
- Patch Release Kick Off email
- Other requirement about upgrade strategy
- Demo/PoC Request
- Customer commitment etc.
## Prepare Cloud Upgrade Plan
### Design Tool
### Plan Strategy
- US2 Dev Farm Upgrade Validation - 1~2 days prior MR release date
- Shared Service - ITOM Aviator US30 staging, EU30 production, EU32 production need to be upgraded first before other consume farm upgrade
- EU3/US7 Trial/PoC Farm Upgrade - 1~ 2 weeks after GA release date, Upgrade on Monday (working day)
- US2/US24 Opentext Internal Customer Production Farm - 1st Wave Production Farm Upgrade (Maintenance Window)
- US26 - SalesForce customer need alternative upgrade date this can be negotiated with CSM and customer
- US26/US6/AP10/CA16 External Customer Production Farm - 2nd Wave Production Farm Upgrade (Maintenance Window)
- EU8/EU18/EU28/BR14/JP12 External Customer Production Farm - 3nd Wave Production Farm Upgrade (Maintenance Window)
- If ESM farm enable Operation Platform, need to upgrade Operation Platform first before upgrade ESM farm
- Considering the 1st patch release, we can consider to adopt patch upgrade direct in the upgrade maintenance window (Need to clarify the dependencies)
- Try to avoid upgrade window before key teams public holiday. Usually some critical issues will be reported on Monday/Tuesday after version upgrade. Need people standby to support troubleshooting
### Publish and Notify the ESM Cloud Upgrade Plan
- ESM Cloud Upgrade Plan Wiki Page: https://confluence.opentext.com/display/ICSD/ESM+Cloud+Ops+Change+Calendar
- ESM Cloud Ops Change Calendar: https://opentextcorporation.sharepoint.com/sites/MFI-SMAXSaaSDevOps/Lists/ESM%20Cloud%20Calendar/calendar.aspx
- Internal Communication About ESM Cloud Upgrade Plan (Sample Email)
### Continuous to adjust the plan according to the changes
- Cancel/Postpone the upgrade according to critical defects
### Rollback the upgrade

View File

@@ -0,0 +1,22 @@
## ESM Cloud
- ESM Farm Information: https://confluence.opentext.com/display/ICSD/ITOM+ESM+Cloud+Farm+Information
- ESM Capability Introduction
- SMAX
- UCMDB, Native SACM, SAM
- HCMX/DnD
- OO
- AC
- FinOps Classic
- FinOps OP
- Operation Platform/Optic Data Lake (ODL)
- ITOM Aviator
- ESM Farm Version Tracking: https://confluence.opentext.com/display/ICSD/ITOM+Cloud+Applications+Version+Tracking
- ESM Customer Tenant Capabilities Enablement BI Report: https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/cf509ffe-325f-4c1b-a507-44b93e6d85ca/ReportSection3a054e35d20b9d533d81?experience=power-bi
## OpsB/NOM Cloud
- OpsB/NOM Cloud Deployments & Version Tracking:https://confluence.opentext.com/display/ICSD/OpsB+and+NOM+Cloud+Deployments+Version+Tracking
## APM Cloud
- APM Farm Information: https://confluence.opentext.com/display/ICSD/ITOM+APM+AppPluse+Cloud+Farm+Information

View File

@@ -0,0 +1,19 @@
- Major Incident Definition: https://confluence.opentext.com/display/ICSD/Major+Incident+Definition
- Major Incident Management & Best Practice:
- Identification and Detection
- Initial Assessment
- Incident Logging
- Incident in OT SM9
- Internal Practice: Create incident in PCS
- Communication
- Identify Incident Manager
- Create team chat group and involve all stakeholders
- Keeping update status
- Resolution
---Break---
- Oncall/Response
- Post Incident Review
- Continuous Improvement (CAPA)
- Monitoring & Alerting Enhancements
- Documentation & Knowledge base:

View File

@@ -0,0 +1,6 @@
BI report:
https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/1f4989a9-0127-4c6d-9375-f9dd9bda5d84/ReportSection?experience=power-bi
PCS Dahsboard:
https://pcs.saas.microfocus.com/dashboard

View File

@@ -0,0 +1,22 @@
PCS: https://pcs.saas.microfocus.com/homepage?AUTH=SAML
ITOM Cloud Ops Assignment Group:
- SD: ESM SaaS Ops
- SD: OpsB SaaS Ops
- SD: NOM SaaS Ops
- SD: DCA SaaS Ops
- ITOM Cloud Service Offerings
- Service Request vs Support Request
- Entitlement/Environment/Tenant/Product
- Service/Support Request triage & workflow
- Request -> Incident -> Change
- Escalations
BI report:
https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/1f4989a9-0127-4c6d-9375-f9dd9bda5d84/ReportSection?experience=power-bi
PCS Dahsboard:
https://pcs.saas.microfocus.com/dashboard

View File

@@ -0,0 +1,50 @@
## Role and Responsibility
#### Strategic Responsibilities
- Own the reliability and performance of multiple SaaS Application Services. (APM, BPM, OpsB, NOM, ESM, DCA, SBM, ESM FedRAMP)
- Drive cloud modernization initiatives (e.g., containerization, EKS, CI/CD automation).
- Align cloud service delivery with customer SLAs, business growth, and compliance frameworks (e.g., FedRAMP, SBM).
- Interface with Sales, Product, Security, and Compliance to support new customer onboarding and cloud architecture reviews.
#### Operational Responsibilities
- Oversee 24x7 operation and monitoring of cloud platforms (AWS-based).
- Manage escalations, incidents, and root cause analysis.
- Coordinate patching, upgrades, hotfixes, and maintenance windows.
- Own service onboarding/offboarding workflows, including tenant provisioning and decommissioning.
#### People Management
- Performance management and coaching of global team members.
- Run weekly team syncs, monthly reviews, and ad-hoc cross-regional escalations.
## Cloud Applications and Cloud Services KS Sessions
### Session 1
- ITOM Cloud Application AWS Account Owner
- https://confluence.opentext.com/display/ICSD/ITOM+Cloud+AWS+Account+Overview
- AWS Account Admin ownership
- Responsibility of AWS Account Admin
- ITOM Cloud Application List
- ESM/ITOM Aviator/DCA/SBM: https://confluence.opentext.com/display/ICSD/ITOM+ESM+Cloud+Farm+Information
- OpsB/NOM Cloud Application List: https://confluence.opentext.com/display/ICSD/OpsB+and+NOM+Cloud+Deployments+Version+Tracking
- APM Cloud Farm List: https://confluence.opentext.com/display/ICSD/ITOM+APM+AppPluse+Cloud+Farm+Information
- ITOM Cloud FinOps
- BI Reporting: https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/1a3fceca-6563-4cc6-8218-d1d27f15e2f1/ReportSection?experience=power-bi
- Opentext FinOps Team AWS FinOps Dashboard
### Session 2
- ITOM Cloud Application Version Currency
- Upgrade Plan
- ESM/FebRAMP Ops Change Calendar
- OpsB/NOM Ops Change Calendar
- Upgrade Plan Timeline
### Session 3
### Session 4
### Session 5
### Session 6
### Session 7
### Session 8

View File

@@ -0,0 +1,65 @@
# AWS → GCP
To migrate your enterprise-level SaaS application from AWS to Google Cloud, youll need to find equivalent Google Cloud services for the AWS services you currently use, while ensuring your architecture remains compatible. Here's a service-by-service breakdown for smooth development:
### 1. **AWS EKS (Elastic Kubernetes Service) → Google Kubernetes Engine (GKE)**
**Google Kubernetes Engine (GKE)** is Google Clouds equivalent to AWS EKS. Both manage Kubernetes clusters, offering similar features like autoscaling, security, and networking.
- **Migration Notes**: Kubernetes manifests and Helm charts will be reusable with minimal modification, but youll need to handle network and security configurations specific to Google Cloud.
### 2. **AWS RDS (Relational Database Service) → Cloud SQL / Cloud Spanner**
- **Cloud SQL**: Supports MySQL, PostgreSQL, and SQL Server, making it a direct equivalent for most RDS instances.
- **Cloud Spanner**: If you need horizontally scalable, globally distributed databases with strong consistency, consider Cloud Spanner.
- **Migration Notes**: Database migration tools like **Database Migration Service** can help with the data migration, ensuring minimal downtime and compatibility.
### 3. **AWS EFS (Elastic File System) → Filestore**
**Google Cloud Filestore** is a fully managed NFS (Network File System) service similar to AWS EFS.
- **Migration Notes**: Ensure your applications are configured to use the Filestore APIs and access paths properly. Performance tiers and network configuration will need review for alignment with your AWS EFS setup.
### 4. **AWS S3 (Simple Storage Service) → Google Cloud Storage**
**Google Cloud Storage** is a direct equivalent to AWS S3 for object storage, supporting multiple classes of storage with similar durability and availability guarantees.
- **Migration Notes**: Google Clouds storage APIs differ slightly, so you may need to refactor your code to accommodate the differences. However, bucket management and object lifecycle policies are similar.
### 5. **AWS Lambda (Serverless Compute) → Google Cloud Functions / Cloud Run**
- **Google Cloud Functions**: Equivalent to AWS Lambda for small, event-driven serverless tasks.
- **Cloud Run**: If you need to run containerized microservices, **Cloud Run** (based on Knative) is a good choice for scaling container workloads.
- **Migration Notes**: Code migration is generally straightforward, though GCP uses slightly different event triggers and permission models.
### 6. **AWS Parameter Store → Secret Manager / Cloud Key Management Service (KMS)**
- **Secret Manager**: For storing secrets such as passwords, API keys, and tokens.
- **Cloud KMS**: For managing encryption keys and ensuring data security.
- **Migration Notes**: Similar management principles apply, but authentication and access policies will need revision to comply with Google Cloud's identity model.
### 7. **AWS SES (Simple Email Service) → SendGrid / Mailgun (Third-party service)**
Google Cloud doesn't have a native email service comparable to SES, so you can leverage third-party services like **SendGrid** or **Mailgun**, which integrate well with Google Cloud.
- **Migration Notes**: Integration through APIs will require code changes, but the overall functionality will remain similar.
### 8. **AWS CloudWatch → Google Cloud Monitoring (formerly Stackdriver)**
**Google Cloud Monitoring** is the equivalent of AWS CloudWatch, providing observability, logging, and alerting for your infrastructure and applications.
- **Migration Notes**: If you are heavily using AWS CloudWatch Logs, consider migrating to **Google Cloud Logging** to keep a similar flow of data.
### Additional Considerations:
- **IAM and Security**: AWS Identity and Access Management (IAM) maps well to Google Cloud IAM, but you'll need to refactor policies and roles.
- **Networking**: Google Clouds VPC is similar to AWS VPC, but you'll need to translate networking configurations (firewalls, routing, etc.) and possibly update load balancing setups, using **Google Cloud Load Balancer** in place of AWS Elastic Load Balancing (ELB).
### Tools for Migration:
- **Googles Database Migration Service**: To migrate RDS databases to Cloud SQL.
- **Migrate for Compute Engine**: For VM migrations if you use EC2 instances.
- **Velostrata**: For handling live migrations of workloads.
Would you like to dive deeper into any particular service, or need assistance on a specific migration tool or process?

View File

@@ -0,0 +1,200 @@
#### Major Incident Management Process
Certainly! Designing a comprehensive Major Incident Management process is crucial for maintaining the reliability and availability of enterprise SaaS applications. Below is a detailed outline of the major incident management process, including procedures for handling service outages:
### Major Incident Management Process
#### 1. **Identification and Detection:**
- **Automated Monitoring:** Utilize robust monitoring tools to detect anomalies, performance issues, and potential outages.
- **User Reports:** Encourage users to report issues promptly via designated channels.
#### 2. **Incident Logging:**
- **Centralized Logging:** Maintain a centralized incident log that captures all relevant details, timestamps, and initial impact assessment.
- **Severity Classification:** Categorize incidents based on severity to prioritize response efforts.
#### 3. **Initial Assessment:**
- **Incident Triage:** Quickly assemble a cross-functional incident response team, including representatives from development, operations, and support.
- **Impact Analysis:** Evaluate the scope and impact of the incident on users, systems, and business operations.
#### 4. **Communication:**
- **Internal Communication:** Establish communication channels for the incident response team, ensuring timely updates and coordination.
- **External Communication:** Prepare predefined messages for customers and stakeholders, providing transparency about the incident.
#### 5. **Resolution:**
- **Runbooks and Playbooks:** Develop detailed runbooks and playbooks for common incident scenarios, outlining step-by-step resolution procedures.
- **Escalation Procedures:** Define clear escalation paths for issues that require higher-level expertise or management attention.
#### 6. **Post-Incident Review (PIR):**
- **Root Cause Analysis (RCA):** Conduct a thorough RCA to identify the underlying cause of the incident.
- **Documentation:** Document the incident resolution process, lessons learned, and preventive measures for future incidents.
#### 7. **Continuous Improvement:**
- **Iterative Updates:** Regularly update incident response procedures based on lessons learned from past incidents.
- **Training and Drills:** Conduct regular training sessions and simulated drills to ensure the incident response team is well-prepared.
#### 8. **Monitoring and Alerting Enhancements:**
- **Continuous Monitoring:** Implement ongoing improvements to monitoring and alerting systems to proactively detect potential issues.
- **Automated Remediation:** Integrate automated remediation tools to address common incidents swiftly.
#### 9. **Documentation and Knowledge Sharing:**
- **Knowledge Base:** Maintain a comprehensive knowledge base with troubleshooting guides, FAQs, and resolutions for known issues.
- **Documentation Accessibility:** Ensure that incident response documentation is easily accessible to all team members.
#### 10. **Review and Audit:**
- **Periodic Audits:** Conduct periodic reviews and audits of the major incident management process to identify areas for improvement.
- **Compliance Checks:** Ensure that the process aligns with industry best practices and regulatory requirements.
This Major Incident Management process should be regularly reviewed and updated to adapt to evolving technologies and organizational needs. Regular training and communication exercises will help maintain a proactive and efficient incident response capability.
#### Whats the definition of RACI
RACI is an acronym that stands for Responsible, Accountable, Consulted, and Informed. It is a project management and organizational tool used to clarify roles and responsibilities within a team or across different stakeholders for specific tasks, processes, or projects. Each letter in RACI represents a different level of involvement and accountability:
1. Responsible (R): This person or role is responsible for completing the task or carrying out the work. They are the individuals who perform the actual work and ensure it gets done.
2. Accountable (A): This person is ultimately accountable for the task's success or failure. They are the decision-makers who oversee the work and ensure it aligns with the project's objectives. There should be only one "A" assigned to each task or activity.
3. Consulted (C): These are individuals or roles that provide input, expertise, or advice on the task. They are consulted for their knowledge or perspective, but they are not responsible for the task's completion.
4. Informed (I): These individuals or roles need to be kept informed about the task's progress or outcome but do not have active participation in its execution.
RACI matrices and charts are commonly used to document and communicate these roles and responsibilities, helping teams and organizations to reduce confusion, improve accountability, and ensure that work is completed efficiently and effectively.
#### Handling Data Return in Enterprise SaaS Business
Handling data returns in an enterprise SaaS business requires a well-defined process to ensure customer satisfaction and compliance with data privacy regulations. Here's a step-by-step guide to help you prepare a process for when a client requests to return their data:
1. **Understand Data Ownership and Privacy Policies:**
- Clearly define data ownership in your terms of service and privacy policy.
- Understand and comply with data protection regulations relevant to your industry and geographic location (e.g., GDPR, CCPA).
2. **Provide Clear Terms in Contracts:**
- Include provisions in your contracts that outline the conditions under which clients can request the return of their data.
- Specify the format and timeline for data return.
3. **Implement Data Export Features:**
- Build data export features into your SaaS platform to allow clients to easily retrieve their data in a standard and commonly used format (e.g., CSV, JSON).
- Ensure that exported data includes all relevant information and maintains data integrity.
4. **Establish a Request Process:**
- Create a formalized process for clients to request the return of their data.
- This process could include a dedicated support channel, a web portal, or a specific form.
5. **Authenticate and Verify Requests:**
- Implement a robust authentication process to ensure that only authorized individuals can request data returns.
- Verify the identity of the requester through multi-factor authentication or other secure means.
6. **Document and Track Requests:**
- Keep a centralized record of all data return requests.
- Track the status of each request, including when it was received, processed, and completed.
7. **Review and Cleanse Data:**
- Before returning data, review it to ensure it doesnt contain any sensitive information from other users.
- Implement a data cleansing process to remove any irrelevant or unnecessary information.
8. **Secure Data Transmission:**
- Use secure channels and encryption protocols to transmit the data back to the client.
- Provide the client with instructions on how to securely receive the data.
9. **Notify Client of Completion:**
- Notify the client when their data return request has been processed and the data is available for retrieval.
- Provide any relevant documentation or instructions.
10. **Follow Up for Feedback:**
```other
- Follow up with the client after the data return to gather feedback on the process and ensure their satisfaction.
- Use feedback to continuously improve the data return process.
```
11. **Train Support and Compliance Teams:**
```other
- Ensure that your support and compliance teams are well-trained on the data return process.
- Keep them updated on any changes to regulations or internal policies.
```
12. **Regularly Review and Update Process:**
```other
- Periodically review and update the data return process to incorporate any changes in regulations, technology, or customer needs.
```
By implementing a well-structured process, you can efficiently handle data return requests, maintain customer trust, and comply with data protection laws.
#### Routine DR Validation Process
Routine disaster recovery (DR) validation reviews are crucial for ensuring the resilience of your enterprise SaaS business. Here's a step-by-step guide to help you prepare a process for routine disaster recovery validation reviews:
1. **Define Objectives and Scope:**
- Clearly define the objectives of the routine disaster recovery validation review.
- Specify the scope, including the systems, applications, and data that will be included in the review.
2. **Establish a Schedule:**
- Set a regular schedule for conducting disaster recovery validation reviews. This could be quarterly, semi-annually, or annually based on the criticality of your systems.
3. **Document the Disaster Recovery Plan (DRP):**
- Ensure that you have a comprehensive and up-to-date disaster recovery plan in place.
- Document the step-by-step procedures for recovering systems and data in the event of a disaster.
4. **Identify Key Stakeholders:**
- Identify the key stakeholders involved in the disaster recovery validation process.
- This may include IT administrators, security personnel, and relevant business unit representatives.
5. **Select Validation Criteria:**
- Define the criteria that will be used to validate the effectiveness of the disaster recovery plan.
- Criteria may include recovery time objectives (RTO), recovery point objectives (RPO), and data integrity.
6. **Simulate Disaster Scenarios:**
- Develop a set of realistic disaster scenarios that could impact your systems and data.
- Simulate these scenarios to test the effectiveness of your disaster recovery plan.
7. **Coordinate with Third-Party Vendors:**
- If your SaaS business relies on third-party vendors or cloud service providers, coordinate with them to ensure that their disaster recovery plans align with yours.
- Validate their processes and capabilities as part of your review.
8. **Perform Tabletop Exercises:**
- Conduct tabletop exercises with key stakeholders to walk through various disaster recovery scenarios.
- Use these exercises to identify weaknesses, gaps, and areas for improvement in the plan.
9. **Automate Testing Where Possible:**
- Implement automation tools to simulate and test disaster recovery procedures.
- Automation can help streamline the testing process and provide more accurate results.
10. **Measure and Analyze Results:**
- Measure the performance against the defined criteria during each validation review.
- Analyze the results to identify trends, patterns, and areas that need improvement.
11. **Document Findings and Recommendations:**
- Document the findings of each disaster recovery validation review.
- Provide clear recommendations for improvements and corrective actions.
12. **Implement Improvements:**
- Act on the recommendations and implement improvements to enhance the effectiveness of your disaster recovery plan.
13. **Review and Update DRP:**
- Regularly review and update the disaster recovery plan based on the lessons learned from validation reviews and changes in your IT infrastructure.
14. **Communicate Results:**
- Communicate the results of the disaster recovery validation reviews to relevant stakeholders.
- Ensure transparency and provide information on the steps being taken to address any identified issues.
15. **Continuous Training and Awareness:**
- Conduct regular training sessions for your IT and operational teams to ensure they are familiar with the disaster recovery procedures.
- Raise awareness among employees about the importance of disaster recovery and their roles in the process.
By following these steps, you can establish a robust process for routine disaster recovery validation reviews, helping to ensure the resilience and continuity of your enterprise SaaS business in the face of potential disasters.
#### Please help explain what's the SOC2 audit?
Please help me explain what's the SOC2 audit?
SOC 2, which stands for Service Organization Control 2, is a framework for managing and securing data that is crucial for the privacy of user information. It is specifically designed for technology and cloud computing organizations that store customer data in the cloud. Developed by the American Institute of CPAs (AICPA), SOC 2 compliance is not a one-time event but an ongoing process that requires companies to follow certain criteria to ensure the security, availability, processing integrity, confidentiality, and privacy of customer data.
Here are key components of a SOC 2 audit:
1. **Trust Service Criteria:** SOC 2 is built around five "Trust Service Criteria" (TSC) security, availability, processing integrity, confidentiality, and privacy. These criteria serve as the foundation for evaluating an organization's systems and processes.
- **Security:** The system is protected against unauthorized access (both physical and logical).
- **Availability:** The system is available for operation and use as committed or agreed.
- **Processing Integrity:** System processing is complete, valid, accurate, timely, and authorized.
- **Confidentiality:** Information designated as confidential is protected as committed or agreed.
- **Privacy:** Personal information is collected, used, retained, disclosed, and disposed of in conformity with the commitments in the entitys privacy notice.
2. **SOC 2 Type I and Type II Audits:**
- **Type I:** Examines the suitability of the design of controls at a specific point in time.
- **Type II:** Examines the operational effectiveness of these controls over a period of time (typically a minimum of six months).
3. **Scope and Boundary:** The organization defines the scope of the audit, including the systems that are in scope and the boundaries of the environment being evaluated.
4. **Risk Management and Compliance:** SOC 2 requires organizations to identify and manage risks related to the security, availability, processing integrity, confidentiality, and privacy of information.
5. **Written Policies and Procedures:** Organizations need to have documented policies and procedures in place to demonstrate how they achieve and maintain compliance with the Trust Service Criteria.
6. **Third-Party Involvement:** If a company uses third-party service providers, the SOC 2 audit may extend to these providers to ensure that their services also meet the required standards.
Successfully completing a SOC 2 audit provides organizations with a valuable certification that demonstrates their commitment to data security and privacy. It is often seen as a trust-building factor for customers and partners who want assurance that their data is handled with the utmost care and security.

View File

@@ -0,0 +1,54 @@
---
title:
source:
author:
- Shen Wei
published:
created:
description:
tags:
---
## Introduction
The main purpose of this document is to help non-Cloud Ops team members better understand the various services and tools currently provided for Cloud Application troubleshooting, so that they can be used flexibly in different scenarios and reduce dependence on Cloud Ops engineers.
Our goal is also very clear. We hope to provide a more efficient DevOps ecosystem to provide better services to our customers.
**Please note that the various services and tools mentioned below require approval and authorization, and are currently limited to members of the Cloud Ops and R&D CPE teams**
## Troubleshooting as a Service
### Access Environment as a Service
#### Access to Customer Tenant
We provide a method to enter the customer's tenant so that when doing troubleshooting, you can directly access the customer's environment to check the problem and understand the symptoms of the problem at the first time, so as to make the right judgment.
#### Access to ESM Farm BO, IDM, UCMDB JMX console
We provide a method to apply for temporary user access to each farm management console
- BO Suite Admin
- ESM IDM Admin
- UCMDB Super Admin to UCMDB JMX Console
### Log Collection as a Service
We provide a very comprehensive log collection automation tool.
Collect log information of a specific module within a specific time period. Users can select appropriate filtering conditions to collect logs according to different scenarios, so as to locate problems more accurately and reduce extra effort caused by excessive log size.
### Check Configuration
### Monitoring as a Service
#### Unified Monitoring via pre-defined Grafana Dashboard
We provide a lot of rich implementation monitoring data for various troubleshooting. Currently we use Grafana as the monitoring UI to reflect the monitoring data of farm implementation:
- AWS Cloud Watch Data Source - Able to have real-time infrastructure monitoring (AWS EKS/EFS/RDS)
- Prometheus Data Source - Able to check real-time application level metrics exposed by Prometheus
- Database query Data Source - Get some key indicators of the application through database query
- Containerize/K8S - Able to monitor the key monitoring data of the containerize product, container/node/pod etc.
#### Service Availability Health Page
### Log Analysis as a Service
### BI Reporting as a Service
### Unplanned Change Request as a Service
### Other Services

View File

@@ -0,0 +1,22 @@
## Product Service
### ESM Product
### ESM Cloud Trial
## Customer Service
### SaaS Customer Support Model
### Customer Service Offering Runbook
- Configure SAML authentication
- Configure custom domain for customer
## DevOps/SRE
### ESM Cloud GitLab
### ESM Cloud Operation Automation/Jenkins
### ESM Cloud Monitoring
### ESM Cloud System Health Page
### ESM Cloud Disaster Recovery

View File

@@ -0,0 +1,50 @@
## Role and Responsibility
#### Strategic Responsibilities
- Own the reliability and performance of multiple SaaS Application Services. (APM, BPM, OpsB, NOM, ESM, DCA, SBM, ESM FedRAMP)
- Drive cloud modernization initiatives (e.g., containerization, EKS, CI/CD automation).
- Align cloud service delivery with customer SLAs, business growth, and compliance frameworks (e.g., FedRAMP, SBM).
- Interface with Sales, Product, Security, and Compliance to support new customer onboarding and cloud architecture reviews.
#### Operational Responsibilities
- Oversee 24x7 operation and monitoring of cloud platforms (AWS-based).
- Manage escalations, incidents, and root cause analysis.
- Coordinate patching, upgrades, hotfixes, and maintenance windows.
- Own service onboarding/offboarding workflows, including tenant provisioning and decommissioning.
#### People Management
- Performance management and coaching of global team members.
- Run weekly team syncs, monthly reviews, and ad-hoc cross-regional escalations.
## Cloud Applications and Cloud Services KS Sessions
### Session 1
- ITOM Cloud Application AWS Account Owner
- https://confluence.opentext.com/display/ICSD/ITOM+Cloud+AWS+Account+Overview
- AWS Account Admin ownership
- Responsibility of AWS Account Admin
- ITOM Cloud Application List
- ESM/ITOM Aviator/DCA/SBM: https://confluence.opentext.com/display/ICSD/ITOM+ESM+Cloud+Farm+Information
- OpsB/NOM Cloud Application List: https://confluence.opentext.com/display/ICSD/OpsB+and+NOM+Cloud+Deployments+Version+Tracking
- APM Cloud Farm List: https://confluence.opentext.com/display/ICSD/ITOM+APM+AppPluse+Cloud+Farm+Information
- ITOM Cloud FinOps
- BI Reporting: https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/1a3fceca-6563-4cc6-8218-d1d27f15e2f1/ReportSection?experience=power-bi
- Opentext FinOps Team AWS FinOps Dashboard
### Session 2
- ITOM Cloud Application Version Currency
- Upgrade Plan
- ESM/FebRAMP Ops Change Calendar
- OpsB/NOM Ops Change Calendar
- Upgrade Plan Timeline
### Session 3
### Session 4
### Session 5
### Session 6
### Session 7
### Session 8

View File

@@ -0,0 +1,64 @@
---
title: Cloud Service “Bilities”
source:
author:
published: 2025-03-01
created: 2025-03-01
description:
tags: []
link:
---
# Cloud Service “Bilities”
**The "bilities"**
In heritage OpenText Architecture we are constantly chasing how to meet what we lovingly call the "bilities".  Here is a list of the "bilities"
Below are the primary capability requirements of any application to be operated by OT Commercial Cloud Service Delivery.  Some are absolute requirements, others add to the stability, performance and customer experience of the service.
These define the “What” not the “How” of either the application or the infrastructure.
**Recoverability** Capability of an application to recover to a normal processing disposition as soon as a deviation from normal processing is detected either internal to the application or through external monitoring.  Recoverability includes not only restarting but restarting processing where it was last interrupted.
**Usability** All applications in a processing community are interacted with in a common and predictable manner, both from the administration side and the consumer side.  Standards in usability across applications supports efficient usage across those applications.
**Operability** Capability of an application component to be started, stopped, updated, diagnosed and deployed in a standard and predictable way.
**Maintainability** Capability of an application component to be updated, patched or functions changed in a standard and predictable manner.  Maintainability requires backward compatibility through 2 or more releases to enable maintenance activities to occur online.
**Securability** Capability of an application component to protect its assets and customer payload from unauthorized access.    Additionally, a capability to enforce access control rules based upon approved role.
**Persistability** Capability of an application to always persist payload data once it has entered the OT processing environment.  That data must exist and be accessible through maintenance, defect, application outage and normal processing.  Persistence should last the entirety of the payloads expected processing lifecycle from entrance to the environment through historical archive expiration. Persistence will accommodate global processing and Disaster Recovery requirements where applicable.
**Mobility** Capability of an application to survive infrastructure actions to support moving service components through In-center High Availability, Intra-center Geographic relocation and Intra-service Private to Public Cloud relocation.
**Throttleability** Capability of an application to control the processing rate through each component or service.  This key capability of each application component enables the operators of the service to isolate and maintain control of recovery to normal processing flow.
**Deployability** Capability of an application component to be maintained without downtime to the solution as a whole.  Maintenance, wherever possible, needs to take place without externally identifiable service interruption.
**Reliability** Capability of an application component or collection of components to with a high degree of consistency perform its defined function through both normal and abnormal operating conditions.  Reliability requires that the application component be able to perform its defined work through outage.
**Reusability** Capability of application service to perform for more than one service consumer.  Build once, use many in a common and consistent way.
**Accountability/Billability** Capability of an application to accurately report its usage by customer tenant for financial accounting purposes.
**Durability**Capability of an application to survive deviation from normal operating conditions.
**Troubleshootability** Capability to provide clear output to logging systems about all application components health and disposition during both normal and abnormal operating conditions.
**Defensibility** Capability and awareness of the application to defend itself against incorrect usage.  Both accidental and purposeful.
**Extensibility** An upfront design capability that takes into consideration the applications ability to expand its functions automatically in response to dynamic demand prompts.  Extensibility promotes expandability and elasticity.
**Auditability** An application needs to be deployed with capabilities and structures, and within an infrastructure design, that meet applicable external security and audit standards.
**Application configurability** All required feature and functional configuration management should be provided through a Web/API enabled interface.  No customer should need administrative access to underlying systems or infrastructure to perform customer available administrative tasks.
**Observability** Capability of an application to be deployed as an active part of an ecosystem that provides and accurate, timely, and complete indication of functional status and capacity level.
**Visibility** Provide capability to see detailed monitoring data describing the operating condition or health of the application.
**Affordability** An application needs to implement and use components and software that achieve P&L objectives and retain that position when scaled.  This includes the full range of administrative, support, and operational costs.
**Adaptability** An advanced capability of an application to be aware of processing going on around both upstream and downstream.  AI and machine learning are key to this capability.

View File

@@ -0,0 +1,46 @@
# ITOM Cloud Service Review Meeting
### ESM
- Current Status
- Farm #, region,
- EU managed
- Team size
- Major workload
- Upgrade maintenance
- Customer Cloud Service request → Show trend
- Internal Cloud Service - Trial (SMAX, CMS Standalone, HCMX, ITOM Aviator), Unplanned change etc.
- Customer driven project - UPN change,
- Security
- Recent Plan and activity
- Upgrade/Patch, SMAX helm transformation
- New farm plan
- ITOM Aviator productionize
- Issues & Gap
- EU Ops engineer resource gap
- FedRAMP resource gap
- Product quality caused additional operation effort
### Smart Observability
- Current Status
- Instances #, customer #
- Team size
- Major workload
- Cloud deployment automation certification
- Paid customer cloud instance deployment, initial configuration
- Trial Instance deployment
- Maintain upgrade, upgrade validation
- Customer
- Recent Plan and activity
- 24.2 Upgrade/Patch
- Support new product capability - AppO, CNO
- Issues & Gap
- AWS Cost Control
- Trial Instance control
- NOM Ops resource gap
- PCS Support case
- RnD request cloud instance

View File

@@ -0,0 +1,62 @@
### Mar 19
- ESM 25.2 upgrade validation plan - Ting Ye
- ESM Change Management Process Update - Ting Ye
- SG Yearly DR solution to share with team - Shen Wei
- ITOM Aviator EU32 farm construction status - Liu Yu/Adina
- ESM US2 dev farm automation pipeline - Sunny
- Update Incident Management Process -Shen Wei
-
### Mar 13
- Demo: New Jenkins Job to request temp BO admin user -Wenjun Sun
- Customer case update 
- Team Project Update:
- ESM Upgrade/Patch/Hotfix - Ting Ye
- AWS account migration to new SCP OU hierarchy - Yu Liu
- Terraform automation to construct new farm - Sunny Xia
- Round table
### Mar 3
- Patch upgrade rollback strategy update - Shen Wei
- Heads up about time coverage - Shen Wei
- Ops Doc review and approve - Shen Wei
- ESM 25.1.2 + ITOM Aviator 25.1.2 Patch upgrade plan - Shen Wei
- ITOM Aviator (EU managed farm) budget approved, start project  Yu Liu 
- OP BVD ILR license generation and documentation Miroslav Shindarov Yun Zhao
- Operation Excellence Update
- Remove BO admin and use temp suite-admin account
- Grafana - AWS Cognito authentication status
- Terraform for ESM  
- DevSecOps Qualys/Prisma- Yu Liu
- New member training status update 
- Round table
### Feb 25
- FedRAMP farm updates - Jeremy Thunker
- Team project update
- ESM Upgrade Ting Ye
- AWS account migration to new SCP OU hierarchy - Yu Liu
- Grafana to use AWS Cognito - Shen Wei
- CCOE AMI adoption - Ting Ye
- Cost Optimization - Ling-yan Meng
- Introduce the process how to handle security scan found issues - Shen Wei
- Customer exit process
### Feb 17
- Welcome to Mericel to join ESM Cloud Ops team
- ESM 25.1.1 patch upgrade status - Ting Ye
- ITOM Aviator 25.1.1 upgrade status update - Yu Liu
- Mega Audit update - Shen Wei
- New ITOM Aviator farm (EU-managed) preparation - Yu Liu
- SMAX helm hotfix post deployment actions - Ling-yan Meng
- Round table update
### Feb 12
- ESM Cloud Service meeting schedule introduction
- ITOM ESM Cloud Service Catalog introduction and new service approval flow
- New Project:
- New ITOM Aviator Farm (EU managed)
- Adopt CCOE AMI images
- 25.2 upgrade plan
- New ITOM Cloud Farm Architecture
- New member training plan
I will record this meeting to ensure different time zone team member can watch the replay.

View File

@@ -0,0 +1,150 @@
# **ITOM ESM Cloud Service Monthly Report - Feb 2025**
**2025/2/1 ~ 2025/2/28**
This report contains the main work of the ESM Cloud Service team and shows the load of the team's work in the form of data, and describes some issues and risks for continuous improvement.
# Table of Content:
- [[#Product Cloud Service|Product Cloud Service]]
- [[#Product Cloud Service#Planned Maintenance Window Changes|Planned Maintenance Window Changes]]
- [[#Product Cloud Service#Upgrade Plan|Upgrade Plan]]
- [[#Product Cloud Service#Unplanned Production Change|Unplanned Production Change]]
- [[#Product Cloud Service#Tenant Provision Services|Tenant Provision Services]]
- [[#Product Cloud Service#Product Trial Service|Product Trial Service]]
- [[#Customer Cloud Service|Customer Cloud Service]]
- [[#Customer Cloud Service#Customer Cloud Service|Customer Cloud Service]]
- [[#Customer Cloud Service#Major Incident & RCA|Major Incident & RCA]]
- [[#Customer Cloud Service#Customer Order & Fulfillment Highlights|Customer Order & Fulfillment Highlights]]
- [[#Customer Cloud Service#Monthly SLA|Monthly SLA]]
- [[#Cloud DevOps/SRE|Cloud DevOps/SRE]]
- [[#Cloud DevOps/SRE#ITOM Operation Platform 25.1|ITOM Operation Platform 25.1]]
- [[#Cloud DevOps/SRE#ESM Cloud Application WAF Enablement|ESM Cloud Application WAF Enablement]]
- [[#Cloud DevOps/SRE#ESM GCP onboarding|ESM GCP onboarding]]
- [[#Cloud DevOps/SRE#Security & Compliance|Security & Compliance]]
- [[#Cloud DevOps/SRE#Cloud BI Reporting|Cloud BI Reporting]]
---
# Product Cloud Service
## Planned Maintenance Window Changes
- **ESM Standard Planned Changes**
- There were a total of **49** times of (SMX/CMS/OMT/OO, FedRAMP, DCA, ITOM Aviator) Upgrade/Patch/Hotfix deployments to various farms
- All **ESM production farms** (**EU3/US7/US2/US24/US26/US6/EU8/AP10/JP12/BR14/CA16/EU18/EU28**) were upgraded to ESM latest major version **ESM 25.1.1** by the end of Feb, 2025
- **ITOM Operation Platform** **25.1.1** was upgraded on ESM farm (**EU3/US24/EU18**) by the end of Feb, 2025
- **ITOM Aviator Service** (**EU30**) was already upgraded to **25.1.1** with some infra change with language model
- All ESM Farm's **AWS EKS** version were upgraded to **1.30**
- FedRAMP **AMI Rotation + 24.3 FP4** was done successfully in Feb maintenance window
![Image](http://zipline.ishenwei.online/u/9KyDGW.png)
![Image](http://zipline.ishenwei.online/u/u3jqNN.png)
![Image](http://zipline.ishenwei.online/u/UQxkcZ.png)
![Image](http://zipline.ishenwei.online/u/EA5ruD.png)
![Image](http://zipline.ishenwei.online/u/hGHxKw.png)
---
## Upgrade Plan
**ESM 25.1 Upgrade Plan - COMPLETE**
![Image](http://zipline.ishenwei.online/u/d1OO4K.png)
**ESM 25.2 Upgrade Plan - IN PROGRESS**
![Image](http://zipline.ishenwei.online/u/A4bEnW.png)
---
## Unplanned Production Change
- Total **17** Unplanned Production Changes deployed to different ESM farms in this month
- **The number of additional unplanned change requests generated by product quality increased again this month. This needs to be taken seriously by the RnD team and analyzed after the fact to reduce similar problems and additional production changes.::**
![Image](http://zipline.ishenwei.online/u/kGuobh.png)
![Image](http://zipline.ishenwei.online/u/LnBn4Y.png)
![Image](http://zipline.ishenwei.online/u/9B64zk.png)
---
## Tenant Provision Services
- There were a total of **28** tenant provision request fulfilled in this month.
![Image](http://zipline.ishenwei.online/u/EJGHvv.png)
![Image](http://zipline.ishenwei.online/u/mzkyBA.png)
---
## Product Trial Service
- There were a total of **370** product trial related service request fulfilled in this month.
![Image](http://zipline.ishenwei.online/u/1AkGlm.png)
![Image](http://zipline.ishenwei.online/u/UMP0Y5.png)
![Image](http://zipline.ishenwei.online/u/j3Ap39.png)
- CT Trial (External Customer SMAX Only Trial) - **12**
![Image](http://zipline.ishenwei.online/u/NTkk0s.png)
- Internal SMAX Premium Trial - **50**
![Image](http://zipline.ishenwei.online/u/GeXoRV.png)
- HCMX Trial - **1**
![Image](http://zipline.ishenwei.online/u/2sOhvg.png)
- ESM (SMAX/AMX/CMS) Trial - **21**
![Image](http://zipline.ishenwei.online/u/XqdzLt.png)
- **ITOM Aviator Trial - 20**
![Image](http://zipline.ishenwei.online/u/FZN250.png)
# Customer Cloud Service
## Customer Cloud Service
- There were a total of **96** Customer Cloud Service Requests handled by ESM Cloud Service team in PCS
- **Special thanks to Remi's ESM Cloud RnD team for their cooperation in handling the customer's Cloud Service Request with technical support!**
![Image](http://zipline.ishenwei.online/u/ccwoCw.png)
---
## Major Incident & RCA
#### [2025/02/09 - US6/US2/AP10 - SMAX- Major Function Issue](https://confluence.opentext.com/pages/viewpage.action?pageId=689008569)
---
## Customer Order & Fulfillment Highlights
![Image](http://zipline.ishenwei.online/u/Wm4ACS.png)
---
## Monthly SLA
- **ESM SMAX has achieved all 100% SLA in Jan, 2024**
- Data is available through **Jan 2024**, with Feb 2025 SLA data to be released around mid-March.
---
# Cloud DevOps/SRE
## ITOM Aviator (EU-Managed) Farm
- We got final business approval to construct new **ITOM Aviator (EU-managed)** farm.
- The project has already started and is expected to be delivered in 1 to 2 weeks
## ITOM Operation Platform 25.1
- We have successfully upgrade Operation Platform 24.4 to **25.1** on **EU3/US24/EU18** farm.
- We're preparing the Operation Platform 25.2 cloud readiness work include to start support OpsB to use OP 25.2 in ITOM Cloud environment.
- We are now continuing to work on the OP D2 enablement automation and the relevant operation runbook.
## ESM Cloud Application WAF Enablement
- A new DevOps project was initiated to enhance WAF rules management & cloud deployment automation
- After some series of team efforts, it went through several processes of testing, modification, and deployment. We have now reached the criteria of **Enable WAF denied mode** with current WAF version on top of SMAX 25.1.1.
- We have enabled **SMAX WAF** in **Denied Mode** on **US2** farm this Monday(Feb 24th).
- In addition, we have enable  **Observation Mode** on **US24** & **US26** farms to get more WAF log information to help us determine the effectiveness of blockings.
## ESM GCP onboarding
- Based on the business requirements, we started working with Cloud SA group and Product group on GCP onboarding for ESM. Currently, there are two main working threads which require product team support to certify ESM products deployment on GCP, and validation and experimentation for GCP OCF cloud architecture platform led by Cloud SA.
## Operation Excellence
- We are actively enhancing the automation of ESM farm construction, covering all configurations based on AWS services, and using OT compliance automation solutions to build cloud automation deployment for ESM Farm
- We've implemented to use AWS Cognito authentication to control all Cloud Ops tooling. Recently we've enabled AWS Cognito authentication to access **Grafana** monitoring tool
## Security & Compliance
- At the request of Opentext GIS, the ESM Cloud Service Team has installed **Qualys** and **Prisma Defender** on all ESM production farms in order to facilitate security scanning on the Cloud to provide more secure ESM SaaS services.
- We recently launched a new project on how to handle various OS-based security issues discovered by Qualys Scan. In conjunction with the upcoming adopt **CCOE AMI** project, we intend to centrally replace and update the existing Cloud Application's EKS worker node OS to meet higher security standards.
## Cloud Service BI Reporting
- ITOM ESM Farm/Tenant Summary - [BI Report Link](https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/cf509ffe-325f-4c1b-a507-44b93e6d85ca/ReportSection3243d84335d863ef318a?experience=power-bi)
- ITOM Cloud Service Summary - [BI Report Link](https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/363a8aba-6746-4468-9d5c-54e0a463b708/ReportSectionc350f5d544676dc460b4?experience=power-bi)
---

View File

@@ -0,0 +1,198 @@
---
title: ITOM ESM Cloud Service Monthly Report - Jan 2025
source:
author:
- Wei Shen
created: 2025-03-02
description: This report contains the main work of the ESM Cloud Service team and shows the load of the team's work in the form of data, and describes some issues and risks for continuous improvement.
tags:
- cloud
- "#service"
- "#report"
---
# **ITOM ESM Cloud Service Monthly Report - Jan 2025**
**2025/1/1 ~ 2025/1/31**
This report contains the main work of the ESM Cloud Service team and shows the load of the team's work in the form of data, and describes some issues and risks for continuous improvement.
# Table of Content:
- [[#Product Cloud Service|Product Cloud Service]]
- [[#Product Cloud Service#Planned Maintenance Window Changes|Planned Maintenance Window Changes]]
- [[#Product Cloud Service#Upgrade Plan|Upgrade Plan]]
- [[#Product Cloud Service#Unplanned Production Change|Unplanned Production Change]]
- [[#Product Cloud Service#Tenant Provision Services|Tenant Provision Services]]
- [[#Product Cloud Service#Product Trial Service|Product Trial Service]]
- [[#Customer Cloud Service|Customer Cloud Service]]
- [[#Customer Cloud Service#Customer Cloud Service|Customer Cloud Service]]
- [[#Customer Cloud Service#Major Incident & RCA|Major Incident & RCA]]
- [[#Customer Cloud Service#Customer Order & Fulfillment Highlights|Customer Order & Fulfillment Highlights]]
- [[#Customer Cloud Service#Monthly SLA|Monthly SLA]]
- [[#Cloud DevOps/SRE|Cloud DevOps/SRE]]
- [[#Cloud DevOps/SRE#ITOM Operation Platform 25.1|ITOM Operation Platform 25.1]]
- [[#Cloud DevOps/SRE#ESM Cloud Application WAF Enablement|ESM Cloud Application WAF Enablement]]
- [[#Cloud DevOps/SRE#ESM GCP onboarding|ESM GCP onboarding]]
- [[#Cloud DevOps/SRE#Security & Compliance|Security & Compliance]]
- [[#Cloud DevOps/SRE#Cloud BI Reporting|Cloud BI Reporting]]
---
# Product Cloud Service
## Planned Maintenance Window Changes
- **ESM Standard Planned Changes**
- There were a total of **::22::** times of (SMX/CMS/OMT/OO, FedRAMP, DCA, ITOM Aviator) Upgrade/Patch/Hotfix deployments to various farms
- **ESM farms** (**::EU3/US7/US2/US24/US26::**) were upgraded to ESM latest major version **::ESM 25.1::** by the end of Jan, 2025
- **ITOM Operation Platform** **::25.1::** was upgraded on ESM farm (**::EU3/US24::**) by the end of Jan, 2025
- **ITOM Aviator Service** (**::EU30::**) was already upgraded to **::25.1::**
- All ESM Farm's **AWS EKS** version were upgraded to **::1.30::**
- FedRAMP **::AMI Rotation::** + **::RDS 15.4 +EKS Upgrade::** was done successfully in Jan maintenance window
![image.png](http://zipline.ishenwei.online/u/TpWM1Z.png)
![image.png](http://zipline.ishenwei.online/u/iJ088Q.png)
![image.png](http://zipline.ishenwei.online/u/WGaKk4.png)
![image.png](http://zipline.ishenwei.online/u/OYABda.png)
---
## Upgrade Plan
**ESM 25.1 Upgrade Plan - ::IN PROGRESS::**
![image.png](http://zipline.ishenwei.online/u/TgTE2M.png)
---
## Unplanned Production Change
- > Total **::26::** Unplanned Production Changes deployed to different ESM farms in this month
- > **::The number of additional unplanned change requests generated by product quality increased again this month. This needs to be taken seriously by the RnD team and analyzed after the fact to reduce similar problems and additional production changes.::**
![image.png](http://zipline.ishenwei.online/u/xXKQR1.png)
![image.png](http://zipline.ishenwei.online/u/WLQ91Z.png)
![image.png](http://zipline.ishenwei.online/u/cDcHDT.png)
---
## Tenant Provision Services
- > There were a total of **::17::** tenant provision request fulfilled in this month.
![image.png](http://zipline.ishenwei.online/u/Tu7f0F.png)
![image.png](http://zipline.ishenwei.online/u/9dqHZ3.png)
---
## Product Trial Service
- > There were a total of **::252::** product trial related service request fulfilled in this month.
![image.png](http://zipline.ishenwei.online/u/S5UkaH.png)
![image.png](http://zipline.ishenwei.online/u/LcnjR3.png)
![image.png](http://zipline.ishenwei.online/u/S0hBGT.png)
- > CT Trial (External Customer SMAX Only Trial) - 12
![image.png](http://zipline.ishenwei.online/u/DiZRD1.png)
- > Internal SMAX Premium Trial - 58
![image.png](http://zipline.ishenwei.online/u/UBvgzB.png)
- > HCMX Trial - 1
![image.png](http://zipline.ishenwei.online/u/VADMwI.png)
- > ESM (SMAX/AMX/CMS) Trial - 8
![image.png](http://zipline.ishenwei.online/u/2SCiiC.png)
- > **::ITOM Aviator Trial - 14::**
![image.png](http://zipline.ishenwei.online/u/BXkHWQ.png)
---
# Customer Cloud Service
## Customer Cloud Service
- > There were a total of **::84::** Customer Cloud Service Requests handled by ESM Cloud Service team in PCS
- > **::Special thanks to Remi's ESM Cloud RnD team for their cooperation in handling the customer's Cloud Service Request with technical support and staff coverage!::**
![image.png](http://zipline.ishenwei.online/u/eYDiqG.png)
![image.png](http://zipline.ishenwei.online/u/PPGtAi.png)
---
## Major Incident & RCA
> No major incident in Jan, 2025
---
## Customer Order & Fulfillment Highlights
![image.png](http://zipline.ishenwei.online/u/AqlcoY.png)
---
## Monthly SLA
- > **::ESM SMAX has achieved all 100% SLA in Dec, 2024::**
- > Data is available through **Dec, 2024**, with Jan, 2025 SLA data to be released around mid-Feb.
![http://zipline.ishenwei.online/u/HYziL8.png](http://zipline.ishenwei.online/u/HYziL8.png)
![image.png](http://zipline.ishenwei.online/u/CxrtGV.png)
---
# Cloud DevOps/SRE
## ITOM Operation Platform 25.1
- > We have successfully upgrade Operation Platform 24.4 to 25.1 on EU3/US24 farm.
- > We're preparing the Operation Platform 25.2 cloud readiness work include to start support OpsB to use OP 25.2 in ITOM Cloud environment.
- > We are now continuing to work on the OP D2 enablement automation and the relevant operation runbook.
## ESM Cloud Application WAF Enablement
- > After some series of team efforts, it went through several processes of testing, modification, and deployment. We have now reached the criteria of Enable WAF denied mode with current WAF version on top of SMAX 24.4.1.
We have enabled SMAX WAF in **Denied Mode** on **::EU3::** and **::US7::** farm by end of Nov.
- > In addition, we are gradually turning on **Observation Mode** in other farms to get more WAF log information to help us determine the effectiveness of blockings.
- > A new DevOps project was initiated to enhance WAF rules management & cloud deployment automation
## ESM GCP onboarding
- > Based on the business requirements, we started working with Cloud SA group and Product group on GCP onboarding for ESM. Currently, there are two main working threads which require product team support to certify ESM products deployment on GCP, and validation and experimentation for GCP OCF cloud architecture platform led by Cloud SA.
## Security & Compliance
- > At the request of Opentext GIS, the ESM Cloud Service Team has installed **Prisma Defender** on all ESM production farms in order to facilitate security scanning on the Cloud to provide more secure ESM SaaS services. - **::Done::**
- > We recently launched a new project on how to handle various OS-based security issues discovered by Qualys Scan. In conjunction with the upcoming adopt CCOE AMI project, we intend to centrally replace and update the existing Cloud Application's EKS worker node OS to meet higher security standards. - **::In Progress::**
## Cloud BI Reporting
- > ITOM ESM Farm/Tenant Summary - [BI Report Link](https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/cf509ffe-325f-4c1b-a507-44b93e6d85ca/ReportSection3243d84335d863ef318a?experience=power-bi)
- > ITOM Cloud Service Summary - [BI Report Link](https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/363a8aba-6746-4468-9d5c-54e0a463b708/ReportSectionc350f5d544676dc460b4?experience=power-bi)
##
---

View File

@@ -0,0 +1,190 @@
Entitlement
- Create new company
- Customer Type: Customer
- Add new domain name (remember to add same in PCS dev as well, for dev2prod)
- Create new entitlement
Add new person
- Create in BO and sync back to SMAX
- Add company
- Add employee type - external
- Assign people to relevant entitlement
- Assign role
- Microfocus SaaS entitlement
- Self-Service portal app
- Self-Service portal user
PCS Administration Training
[[PCS Create New Customer Initial Setup Steps]]
KT Session #1
[https://microfocusinternational-my.sharepoint.com/:v:/g/personal/brindusa_kevorkian_microfocus_com/EemsG7iwZ8xCsPm5QygCoZgBIWubxMNMhbCQU4AIhUoA3A](https://microfocusinternational-my.sharepoint.com/:v:/g/personal/brindusa_kevorkian_microfocus_com/EemsG7iwZ8xCsPm5QygCoZgBIWubxMNMhbCQU4AIhUoA3A)
KT Session #2
[https://microfocusinternational-my.sharepoint.com/:v:/g/personal/brindusa_kevorkian_microfocus_com/EXRCtXeBAXZPisy27-kVeuMBgZ_MdlyZgi-XmuXRIVseOg](https://microfocusinternational-my.sharepoint.com/:v:/g/personal/brindusa_kevorkian_microfocus_com/EXRCtXeBAXZPisy27-kVeuMBgZ_MdlyZgi-XmuXRIVseOg)
**Data Model**
- Data domains
- Company
- Entitlement
- ENTITY_LINK to Company
- ENUM to Data domains
- Person
- ENTITY_LINK to Company
- ENTITY_LINK to Entitlement (default)
- MANY2MANY to Entitlement (full list)
**New Order/customer**
- Validate it is indeed a real customer (have an order ID, can find it in Control Tower)
- Special cases for internal "customers": presales, operations, etc
- Data domain record
- Very likely need to use a new "slot", unless the customer already exists
- Find the list, take the first entry not in use (with **ZZ-To be assigned** label)
- **VERY IMPORTANT: Execute the task in both Dev and Prod tenant. Make sure the Name field (key) is the same in both, otherwise Dev2Prod will have issues**
- The Prod tenant should be locked for customizations, you need to unlock it first. Don't forget to go back and lock it again after
- In rare cases, the customer may exist already if there is an entitlement for another product, in this case skip this step
- Company/Vendor record
- Add a record
- Use the official Display Name from the order/Control Tower
- We started using the names in caps, as this is how Sparks had them, let's keep the rule.
- For Code, use the first 3-4 letters of the name, or, if the company has an acronym, you can use it
- Important: make sure you select **Customer** for the **Company type**.
- In rare cases, the customer may exist already if there is an entitlement for another product, in this case skip this step
- Entitlement record
- Add a record
- Display label
- Is SaaS customer: start by short name of company, followed by product name and SaaS suffix, for example **Decathlon SMAX SaaS**
- If it is a "Powered by" partner, add the "Power By" suffix for the name, example **Rigosis SMAX SaaS Powered by**
- MF internal: Prefix with Micro Focus, no need to add SaaS suffix (it's implicit), for example **Micro Focus IT SMAX** or **Micro Focus Service Hub SMAX**.
- Important to fill in the correct information for the mandatory fields: Entitlement type, Product, Primary Domain, Company. Business rules use this information extensively to filter down what is available in drop down lists, decide what logic to execute
- For specific cases, like Achmea, if a NASE is assigned, fill in the info. Any new ticket linked to this entitlement gets automatically assigned to the person listed here
- Fill in the CSM info, if available. The user listed will be automatically added as follower to all Support requests and a subset of Service Requests
- SAID
- Leave empty for regular SaaS customers
- Fill in with the "Powered By" string for the Powered by partners
**New User**
- Non Micro Focus user (aka DB user)
- Triggered when
- A new customer is onboarded, and an initial list is received from the CSM
- An existing user on an entitlement uses the **Add user to entitlement** offering
- Check the user doesnt already exist
- If yes, go to the **Add user to an entitlement** section
- Create new record from the Person grid
- **VERY IMPORTANT:** Click the **Person type** checkbox, otherwise a contact gets created
- If you forgot, you need access to BO to create the user (with same UPN) and force a sync from the Person grid
- Upn: Use the email address (automatically populated with the email by default)
- Employment type: External
- Company: fill in with the relevant value
- **IMPORTANT:** Do not populate the **Data domains** and **Primary domain** at this point
- If the user is a "regular" customer user, you can fill in the **Default entitlement** value (for example, you may not want to do that if you add a partner)
- Once saved, go back in and populate the **Data domains** and **Primary domain**
- Entitlements M2M widget
- Unlikely to have to use it, unless it is a partner added the first time as part of a customer project. In this case the entitlement doesn't go into the default position.
- Micro Focus users (automatically added through SAML)
- Periodically check if any new users got added. This can happen because someone is supposed to be added to an entitlement or is supposed to work tickets, but in many situations, users get hold of our URL and click on it for curiosity
- R&D or Ops teams, people who logged in because they are supposed to work tickets
- Check their reporting structure and make sure they are who they say they are.
- Configure the following
- Company: Micro Focus
- Primary domain: Micro Focus
- Data domains: Micro Focus
- Employment type: blank
- You can manually add them to the relevant functional group if you know which one. Alternatively, there is an offering that does that, can be called by the authorized audience (anyone with the "PCS Lead" role)
- PS, pre-sales, specific functions
- If instructed, configure profile
- Company: Micro Focus
- Primary domain: Based on the main role
- Data domains: Above, plus potentially others, depending on the person responsibilities
- Employment type: External
- Example, if a PS consultant is asked to work on the MF IT project, the setup will be:
- Default entitlements/Entitlements
- With few exceptions (probably pre-sales), the majority of internal users needing to be added don't have a default entitlement. Add the relevant entitlement to the Entitlements M2M widget, if there is no default entitlement to be configured.
- All other cases, not known why a user connected
- Park the user in a "catch all" profile
- Company: Micro Focus
- Primary domain: Customer
- Data domains: Customer
- Employment type: External
- If later on, the user is identified as belonging to an actual entitlement or is supposed to be an agent, apply the instructions described above
- **IMPORTANT:** just because someone in Micro Focus asked for agent access, do not provide it, unless they are assigned to working tickets.
- Concrete example on when to **NOT** add someone. The user says he/she is a Premier support person or even a CSM and needs to see the tickets for their customers. The answer is to give them the **Account Viewer** role to have the information available from the portal - no need for agent access!
**Modify existing user profile**
- A user already exists in PCS but needs to be added to an additional entitlement
- Typically applies to users working for partners (with multiple customers) or internal Micro Focus people (PS, presales, etc)
- Triggered when
- A new customer is onboarded, and an initial list is received from the CSM
- An existing user on an entitlement uses the **Add user to entitlement** offering
- Data domains: append the customer Data domain (as defined in the Entitlement)
- Entitlements: add the new Entitlement to the M2M widget
- Exception
- An internal user may already exist because they connected before and ended up "parked" in the "Customer" placeholder
- Remove the "Customer" Data domains/Primary domains and follow the instructions listed in the "New user" section
**Remove user**
- Needs to be triggered from BO, which will convert the user into a contact
- Once a contact, change the status from **Inactive** to **Terminated**
- Clear the **Default entitlement** value and any record from the **Entitlements** section
**User Management offerings**
- **Add user to entitlement** offering
- If the email address is not a @microfocus.com domain, follow the instructions for adding a DB user
- **IMPORTANT:** If the email address doesn't appear to be the company email address, it is likely the user is a partner and may need to be treated specially, by first adding a new Company record for the partner. Alternatively, we can take the approach of considering this user as part of the customer company, and only model it as belonging to a new company when there is a need to add a second entitlement linked to the user. But, if we do it at a later date, it is important to identify all the users with this email domain and move them under the newly created Company record (see **New order/customer** section for the detailed procedure)
- If the email address is a @microfocus.com domain, follow the instructions for configuring a SAML user.
- It is possible the user doesn't already exist (never logged in). In this case, ask the requester to notify the user to first login (use the Discussions tab)
- Once the user record got created/updated, move the **Add user** task to **Validate** phase. The request should automatically close, there is no need for interaction with the requester.
- Exceptionally, if the request is not relevant (the user already exists, the offering incorrectly used, or other reasons), process the request as below:
- Edit the Task plan by deleting the **Closure** task, so the request doesn't automatically close when **Add user** task gets actioned
- Move the **Add user** task to **Canceled**
- Manually add a **Solution** (explain why the request is not relevant) and Completion code (usually **Out of scope**)
- **Remove user from entitlement** offering
- Tip: From the **User** user option, navigate to the Person record.
- If the user is part of multiple entitlements (like a partner, PS), just remove the relevant **Entitlement** reference from the Person record
- If the user is part of one entitlement (usually for a regular customer user), follow the procedure described in the **Remove user** section
- Once the relevant action above is completed, move the **Remove user** task to **Validate** phase. The request should automatically close, there is no need for interaction with the requester.
- **Reset user password** offering
- Tip: From the **User** user option, navigate to the Person record.
- Click on the **Reset password** button. Wait for the confirmation message at the top of the screen that the email notification got sent
- Once the relevant action above is completed, move the **Reset password** task to **Validate** phase. The request should automatically close, there is no need for interaction with the requester.
**Process**
- Monitor the "admin" Request queue
- Go to the Active Admin Cases" view. Make sure you don't make any changes to the view definition. If you like to use a different view, create a private one for yourself
- Add more people to the Admin group
- Only **Add user to entitlement**, **Remove user from entitlement, Reset user password** require intervention, the others have automated fulfillment (may require approval)
- See the **User Management offerings** section for instructions for processing each offering
- Monitor the Person grid for newly created SAML users
- Use the **Users Pending Processing** view. Make sure you don't make any changes to the view definition. If you like to use a different view, create a private one for yourself. Also, don't modify the other public views
- Follow the instructions in the **New User** section

View File

@@ -0,0 +1,13 @@
I'm a senior manager responsible for SaaS operations and maintenance for cloud products in a global enterprise software company. I manage a global cloud operations team of 20+ people. The team is a global team covering different time zones. Our team is also responsible for interfacing with the product RnD team to understand requirements and communicate with them. I am designing myself and my team's goals from the below perspective: Leadership Activities, service delivery quality, Process Standardization, Operational Excellence, and Satisfy customers. could you please prepare a draft for me with efforts detail, and measurable KPIs for the above areas.
| | | | | |
|---|---|---|---|---|
|**Leadership Activities**|• Conduct regular team meetings and one-on-one sessions to provide guidance, support, and alignment. <br>• <br>Act as a liaison between the cloud service team and ITOM organization, ensuring effective communication and collaboration. <br>• <br>Participate in the hiring process for new team members, ensuring the selection of qualified candidates who align with the team's goals and culture. <br>• <br>Foster a positive work environment conducive to productivity, innovation, and growth.|• Executive Dashboard: Implement an executive monthly report to track and communicate Cloud Service team key metrics and performance indicators. <br>• <br>100% Participation in Team meetings <br>• <br>100% Compliance in accordance with local legislation|||
|**Service Delivery Quality**|• Drive efficiencies and optimizations to deliver services in the most economical manner. <br>• Manage resource allocations effectively to meet business demands and maintain service levels. <br>• Continue to optimize cost structures across cloud and corporate services while maintaining service quality.|• On-time Project Completion: 90% <br>• <br>Ensure 100% compliance with local legislation and industry regulations relevant to cloud operations <br>• <br>|||
|**Process Standardization**|• Focus on standardization and modernization of processes, adopting best practices and industry standards such as ITIL. <br>• <br>Support initiatives to consolidate/migrate customers to cloud platforms, with a focus on shared environments where feasible. <br>• <br>Minimize process gaps and ensure zero deviations from defined processes. <br>• <br>Conduct quarterly reviews of documentation to ensure accuracy, relevance, and completeness. <br>• <br>|• Zero process gaps  <br>• <br>Quarterly review of process documentation <br> <br>|||
|**Operational Excellence**|• Aim for 90% of projects to be completed on time, ensuring timely delivery of services and solutions. <br>• <br>Continuously identify and implement improvements to existing processes and deliverables, enhancing operational efficiency and effectiveness. <br>• <br>Actively participate in the adoption of new features, technologies, and cloud solutions to improve operational capabilities. <br>• <br>Document and analyze lessons learned from project executions, incorporating feedback to drive continuous improvement. <br>• <br>| <br>• <br>60% of Project Completion within 3 months <br>• <br>100% Security Compliance <br>• <br>Expense Reduction Targets: Meet defined FY targets communicated by FinOps <br>• <br>Adoption of New Technologies: Regularly adopt new features/technologies to enhance operational capabilities <br> <br> <br> <br>|||
|**Satisfy Customers**|• Be an advocate for customer satisfaction, focusing on delivering value and exceeding customer expectations in every project and interaction. <br>• <br>Collaborate with cross-functional teams and stakeholders to support business goals and initiatives, such as migrations and security compliance efforts. <br>• <br>Ensure documentation of any planned/unplanned change predefined timeframes to maintain transparency and accountability. <br>• <br>Participate in the onboarding of new customers to the cloud business, ensuring smooth transitions and successful deployments. <br>• <br>|• customer escalations due to cloud service errors <3|||

View File

@@ -0,0 +1,56 @@
## **1. Objective**
Ensure business continuity and data protection by implementing an effective DR strategy for the customer, leveraging EFS replication, RDS PITR, and different failover methods.
## **2. DR Scenarios & Recovery Options**
| | **Method** | **RDS Recovery** | **EFS Recovery** | **Failover Steps** | **Estimated Downtime (RTO)** | **RPO** | **Cost Impact** |
| ------------------ | ------------------------------- | ---------------- | ---------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------- | ------- | --------------- |
| DR Basic Service | **Cold Backup-Restore** | Snapshot (6h) | Backup Restore (6h) | 1. Restore RDS from snapshot (6h) <br>2. Restore EFS from snapshot (6h) <br>3. Recover EKS (4h) | **24 hours** | 4 hours | **Base Cost** |
| DR Premium Service | **EFS Replica Only (RDS PITR)** | PITR (6h) | EFS Replica + Restore (0.2h) | 1. RDS recovery from PITR (6h) <br>2. Stop EFS sync (0.2h) <br>3. Full EKS recovery | **6 hours** | 15 min | **+30% Cost** |
---
## **3. Downtime Estimation & RTO Considerations**
- **EFS Replica Only (RDS PITR)**
- **6-hour RTO**, significantly reducing downtime compared to cold restore.
- **15-minute RPO** ensures minimal data loss.
---
## **4. DR Execution Plan**
### **4.1 Pre-DR Readiness Checks**
- Ensure **EFS replication** is active and functioning correctly.
- Verify **RDS PITR backups** and retention policies.
- Pre-configure **EKS deployment templates(Velero)** for rapid recovery.
### **4.2 Disaster Recovery Trigger**
- DR activation is **initiated upon a major failure event** in the primary environment.
- Decision criteria include **regional failure, prolonged service outage, or severe data corruption**.
### **4.3 Execution Steps**
#### **EFS Replica Only (RDS PITR)**
1. **Recover RDS** from PITR (**6 hours**).
2. **Stop EFS replication sync** (**0.2 hours**).
3. **Recover EKS cluster** and validate application (**immediate**).
### **4.4 Post-Failover Validation**
- Confirm **data consistency** between DR and primary environments.
- Validate **application services and connectivity**.
- Communicate DR activation and service restoration to stakeholders.
---
## **5. DR Testing & Cost Estimation**
- **Annual DR validation test** is required, adding an **estimated 2 months of AWS costs**.
- **EFS Replica Only (RDS PITR):**
- **$20.8K/month**

View File

@@ -0,0 +1,389 @@
# OpenClaw 技能笔记
> 创建时间: 2026-03-19
> 整理者: 星辉
---
## 📋 技能清单总览
本文档记录 OpenClaw 中所有可用的技能Skills
---
## 🔐 账号与密码
### 1. 1password
- **描述:** 1Password CLI (op) 工具
- **用途:** 安装CLI、桌面应用集成、单/多账户登录、读写/运行密码
- **路径:** `~/.agents/skills/1password-1.0.1/SKILL.md`
---
## 🍎 Apple 生态
### 2. apple-notes
- **描述:** Apple Notes 管理 via `memo` CLI
- **用途:** 创建、查看、编辑、删除、搜索、移动、导出笔记
- **路径:** `~/.openclaw/skills/apple-notes/SKILL.md`
### 3. apple-reminders
- **描述:** Apple Reminders via `remindctl` CLI
- **用途:** 列出、添加、编辑、完成、删除提醒支持列表、日期过滤、JSON/纯文本输出
- **路径:** `~/.openclaw/skills/apple-reminders/SKILL.md`
### 4. accli
- **描述:** Apple Calendar CLI
- **用途:** 列出日历、查看事件、创建/更新/删除日历事件、检查空闲时间
- **触发词:** "查看日历"、"安排会议"、"我今天有什么安排"、"明天我有空吗"
- **路径:** `~/.openclaw/skills/accli/SKILL.md`
---
## ☁️ 云服务与协作
### 5. gog
- **描述:** Google Workspace CLI
- **用途:** Gmail、日历、云盘、联系人、表格、文档
- **路径:** `~/.agents/skills/gog/SKILL.md`
### 6. feishu-chat-history
- **描述:** 获取飞书群聊历史
- **用途:** 读取、回顾、总结飞书群聊消息
- **触发词:** "看群聊记录"、"群里聊了啥"、"chat history"
- **路径:** `~/.agents/skills/feishu-chat-history/SKILL.md`
### 7. feishu-cron-reminder
- **描述:** 飞书定时提醒
- **用途:** 创建定时发送消息到飞书聊天的cron任务
- **触发词:** "飞书定时提醒"、"定时任务发飞书"、"每小时提醒"
- **路径:** `~/.agents/skills/feishu-cron-reminder/SKILL.md`
### 8. feishu-doc
- **描述:** 飞书文档获取
- **用途:** 获取飞书Wiki、文档、表格、Bitable内容自动转换为Markdown
- **路径:** `~/.agents/skills/feishu-doc-1.2.7/SKILL.md`
### 9. feishu-perm
- **描述:** 飞书权限管理
- **用途:** 文档和文件的分享、权限、协作者管理
- **触发词:** 分享、权限、协作者
- **路径:** `~/.agents/skills/feishu-perm/SKILL.md`
### 10. feishu-screenshot
- **描述:** 截屏并发送到飞书
- **用途:** 截取屏幕并通过飞书分享
- **触发词:** "截个屏发飞书"、"截屏"、"screenshot"
- **路径:** `~/.agents/skills/feishu-screenshot/SKILL.md`
### 11. feishu-send-file
- **描述:** 发送文件到飞书
- **用途:** 通过REST API发送文件、附件到飞书群或个人
- **触发词:** "发文件到飞书"、"send file to feishu"
- **路径:** `~/.agents/skills/feishu-send-file/SKILL.md`
---
## 💬 通讯工具
### 12. slack
- **描述:** Slack 控制
- **用途:** 通过 slack 工具控制Slack包括消息反应、pin/unpin
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/slack/SKILL.md`
---
## 🌐 网络与浏览器
### 13. agent-browser
- **描述:** 无头浏览器自动化CLI
- **用途:** 为AI代理优化的浏览器自动化支持无障碍树快照和基于引用的元素选择
- **路径:** `~/.openclaw/skills/agent-browser-clawdbot/SKILL.md`
### 14. tavily-search
- **描述:** Tavily 搜索API
- **用途:** 网页搜索替代Brave返回相关结果标题、URL、摘要
- **路径:** `~/.openclaw/skills/openclaw-tavily-search/SKILL.md`
---
## 🛠️ 开发工具
### 15. Docker
- **描述:** Docker 容器、镜像、Compose、网络、卷、调试
- **用途:** Docker相关操作、生产环境加固、命令保持稳定
- **路径:** `~/.openclaw/skills/docker/SKILL.md`
### 16. Code
- **描述:** 编码工作流
- **用途:** 规划、实现、验证、测试的清洁软件开发流程
- **路径:** `~/.agents/skills/code-1.0.4/SKILL.md`
### 17. git-essentials
- **描述:** 基础Git命令
- **用途:** 版本控制、分支、协作
- **路径:** `~/.agents/skills/git-essentials-1.0.0/SKILL.md`
### 18. frontend-design
- **描述:** 前端界面设计
- **用途:** 创建独特、生产级的前端界面,高设计质量
- **路径:** `~/.agents/skills/frontend-design-3-0.1.0/SKILL.md`
### 19. security-auditor
- **描述:** 安全审计
- **用途:** 代码安全漏洞审查、身份验证流程、OWASP Top 10审计、CORS/CSP配置、敏感数据处理、输入验证、SQL注入预防、XSS保护
- **路径:** `~/.agents/skills/security-auditor-1.0.0/SKILL.md`
### 20. architecture-designer
- **描述:** 系统架构设计
- **用途:** 设计新系统架构、审查现有设计、架构决策、ADRs、可扩展性规划
- **路径:** `~/.agents/skills/architecture-designer-0.1.0/SKILL.md`
### 21. supabase-postgres-best-practices
- **描述:** Supabase Postgres 最佳实践
- **用途:** Postgres性能优化和最佳实践
- **路径:** `~/.agents/skills/supabase-postgres-best-practices/SKILL.md`
### 22. tmux
- **描述:** Tmux 远程控制
- **用途:** 远程控制tmux会话发送按键和抓取面板输出
- **路径:** `~/.agents/skills/tmux-1.0.0/SKILL.md`
---
## 📝 笔记与知识管理
### 23. obsidian
- **描述:** Obsidian 保险库
- **用途:** 处理Obsidian纯文本Markdown笔记通过obsidian-cli自动化
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/obsidian/SKILL.md`
### 24. ontology
- **描述:** 知识图谱
- **用途:** 结构化代理记忆和可组合技能,创建/查询实体Person、Project、Task、Event、Document链接相关对象执行约束多步骤动作规划
- **触发词:** "记住"、"关于X我知道什么"、"链接X到Y"、"显示依赖"
- **路径:** `~/.agents/skills/ontology/SKILL.md`
### 25. Memory
- **描述:** 无限有序记忆
- **用途:** 补充代理内置记忆的无限分类存储
- **路径:** `~/.agents/skills/memory-1.0.2/SKILL.md`
### 26. obsidian-ontology-sync
- **描述:** Obsidian与 Ontology 双向同步
- **用途:** 从markdown自动提取实体和关系维护本体图谱提供反馈改进笔记结构
- **路径:** `~/.agents/skills/obsidian-ontology-sync-1.0.1/SKILL.md`
---
## 🎨 内容创作
### 27. blog-writer
- **描述:** 博客文章写作
- **用途:** 以作家独特风格写博客文章、长篇内容从研究到Notion发布的完整工作流
- **路径:** `~/.agents/skills/blog-writer-0.1.0/SKILL.md`
### 28. copywriting
- **描述:** 文案写作
- **用途:** 为落地页、邮件、广告、销售页、营销材料写 persuasive copy标题、CTA、产品描述、广告文案、邮件序列
- **触发词:** "写文案"、"copywriting"、"landing page copy"、"headline"
- **路径:** `~/.agents/skills/copywriting-0.1.0/SKILL.md`
### 29. content-strategy
- **描述:** 内容营销策略
- **用途:** 为solopreneur业务构建和执行内容营销策略
- **触发词:** "内容策略"、"content marketing"、"内容计划"、"内容日历"
- **路径:** `~/.agents/skills/content-strategy-0.1.0/SKILL.md`
### 30. seo-content-writer
- **描述:** SEO内容写作
- **用途:** 写SEO优化内容、创建博客文章、文章
- **触发词:** "写SEO内容"、"创建博客文章"、"内容写作"
- **路径:** `~/.agents/skills/seo-content-writer-2.0.0/SKILL.md`
### 31. social-content
- **描述:** 社交媒体内容
- **用途:** 创建、安排、优化LinkedIn、Twitter/X、Instagram、TikTok、Facebook等内容
- **触发词:** "LinkedIn post"、"Twitter thread"、"社交媒体"、"内容日历"
- **路径:** `~/.agents/skills/social-content-generator-0.1.0/SKILL.md`
### 32. Social Media Scheduler
- **描述:** 社交媒体排程
- **用途:** 计划、起草、跨平台组织社交媒体内容,创建内容日历
- **路径:** `~/.agents/skills/social-media-scheduler-1.0.0/SKILL.md`
### 33. research-paper-writer
- **描述:** 研究论文写作
- **用途:** 创建遵循IEEE/ACM格式标准的正式学术论文
- **路径:** `~/.agents/skills/research-paper-writer-0.1.0/SKILL.md`
### 34. Powerpoint / PPTX
- **描述:** PowerPoint 演示文稿
- **用途:** 创建、检查、编辑Microsoft PowerPoint演示文稿可靠的布局、模板、占位符、笔记、图表
- **路径:** `~/.openclaw/skills/powerpoint-pptx/SKILL.md`
---
## 📊 商业与分析
### 35. Market Research
- **描述:** 市场研究
- **用途:** 规模市场、分析竞争对手、用实际框架和数据源验证机会
- **路径:** `~/.agents/skills/market-research-1.0.0/SKILL.md`
### 36. interview-designer
- **描述:** 面试设计
- **用途:** 分析简历,使用基于证据的方法设计面试策略
- **路径:** `~/.agents/skills/interview-designer-1.0.0/SKILL.md`
### 37. backtest-expert
- **描述:** 回测专家
- **用途:** 系统交易策略回测的专家指导
- **触发词:** 回测、策略验证、鲁棒性测试、避免过度拟合
- **路径:** `~/.agents/skills/backtest-expert-0.1.0/SKILL.md`
### 38. automation-workflows
- **描述:** 自动化工作流
- **用途:** 设计和实施自动化工作流以节省时间和扩展运营
- **触发词:** "自动化"、"automation workflow"、"save time"、"reduce manual work"
- **路径:** `~/.agents/skills/automation-workflows-0.1.0/SKILL.md`
---
## 🧠 AI 代理能力
### 39. proactive-agent-lite
- **描述:** 主动代理Lite
- **用途:** 将AI代理从任务追随者转变为积极主动的伙伴具有记忆架构、reverse prompting和自愈模式
- **路径:** `~/.openclaw/skills/proactive-agent-lite/SKILL.md`
### 40. self-improvement
- **描述:** 自我改进
- **用途:** 捕获学习、错误、纠正以实现持续改进
- **触发词:** 命令/操作失败、用户纠正、请求不存在的功能、外部API失败、知识过时
- **路径:** `~/.openclaw/skills/self-improving-agent/SKILL.md`
### 41. self-reflection
- **描述:** 自我反思
- **用途:** 定期自我反思,分析近期会话,写简洁可行的见解
- **路径:** `~/.agents/skills/agent-self-reflection-1.0.0/SKILL.md`
### 42. brainstorming
- **描述:** 头脑风暴
- **用途:** 在任何创造性工作之前必须使用 - 创建功能、构建组件、添加功能或修改行为
- **路径:** `~/.agents/skills/brainstorming-0.1.0/SKILL.md`
### 43. writing-plans
- **描述:** 写作计划
- **用途:** 有规范/需求的多步骤任务规范
- **路径:** `~/.agents/skills/writing-plans-0.1.0/SKILL.md`
### 44. executing-plans
- **描述:** 执行计划
- **用途:** 在单独会话中执行包含审查检查点的书面实施计划
- **路径:** `~/.agents/skills/executing-plans-0.1.0/SKILL.md`
### 45. task-summary
- **描述:** 任务总结
- **用途:** 任务完成后生成结构化总结,记录目标、步骤、结果、经验教训
- **路径:** `~/.openclaw/skills/task-summary/SKILL.md`
---
## 🔧 工具与系统
### 46. clawhub
- **描述:** ClawHub CLI
- **用途:** 从clawhub.com搜索、安装、更新、发布代理技能
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/clawhub/SKILL.md`
### 47. find-skills
- **描述:** 发现技能
- **用途:** 当用户询问"如何做X"、"找X的技能"、"有能...的技能吗"时帮助用户发现和安装技能
- **路径:** `~/.agents/skills/find-skills/SKILL.md`
### 48. skill-creator
- **描述:** 技能创建器
- **用途:** 创建有效技能的指南
- **路径:** `~/.agents/skills/skill-creator-0.1.0/SKILL.md`
### 49. skill-vetter
- **描述:** 技能审核
- **用途:** AI代理的安全优先技能审核安装来自ClawHub、GitHub或其他来源的技能之前检查
- **路径:** `~/.agents/skills/skill-vetter-1.0.0/SKILL.md`
### 50. clawdefender
- **描述:** 安全防御
- **用途:** AI代理的安全扫描器和输入清理器检测prompt注入、命令注入、SSRF、凭证外泄、路径遍历攻击
- **路径:** `~/.agents/skills/clawdefender-1/SKILL.md`
### 51. opencode-controller
- **描述:** Opencode 控制器
- **用途:** 通过斜杠命令控制Opencode管理会话、选择模型、切换代理
- **路径:** `~/.agents/skills/opencode-controller-1.0.0/SKILL.md`
---
## 🌤️ 生活与娱乐
### 52. weather
- **描述:** 天气
- **用途:** 通过wttr.in或Open-Meteo获取当前天气和预报
- **触发词:** 天气、温度、预报
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/weather/SKILL.md`
### 53. video-frames
- **描述:** 视频帧提取
- **用途:** 使用ffmpeg从视频提取帧或短片段
- **路径:** `~/.agents/skills/video-frames-1.0.0/SKILL.md`
### 54. FFmpeg Video Editor
- **描述:** FFmpeg 视频编辑器
- **用途:** 从自然语言视频编辑请求生成FFmpeg命令 - 剪切、裁剪、转换、压缩、改变宽高比、提取音频等
- **路径:** `~/.agents/skills/ffmpeg-video-editor-1.0.0/SKILL.md`
### 55. UI/UX Pro Max
- **描述:** UI/UX 设计
- **用途:** UI/UX设计智能和实现指导构建精美界面
- **路径:** `~/.agents/skills/ui-ux-pro-max-0.1.0/SKILL.md`
---
## 🛡️ 系统与运维
### 56. healthcheck
- **描述:** 主机安全检查
- **用途:** 主机安全加固和风险容忍配置
- **触发词:** 安全审计、防火墙/SSH/更新加固、风险态势、暴露审查、OpenClaw cron调度
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/healthcheck/SKILL.md`
### 57. node-connect
- **描述:** OpenClaw 节点连接
- **用途:** 诊断Android、iOS、macOS companion app的配对失败
- **触发词:** QR/设置码手动连接失败、本地Wi-Fi正常但VPS/tailnet不正常、配对要求、未经授权、bootstrap token无效/过期
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/node-connect/SKILL.md`
---
## 📊 技能分类汇总
| 分类 | 数量 | 技能 |
|------|------|------|
| Apple 生态 | 3 | apple-notes, apple-reminders, accli |
| 云服务/协作 | 7 | gog, feishu-*(6个) |
| 通讯工具 | 1 | slack |
| 网络/浏览器 | 2 | agent-browser, tavily-search |
| 开发工具 | 8 | Docker, Code, git-essentials, frontend-design, security-auditor, architecture-designer, supabase-postgres-best-practices, tmux |
| 笔记/知识管理 | 5 | obsidian, ontology, Memory, obsidian-ontology-sync, task-summary |
| 内容创作 | 8 | blog-writer, copywriting, content-strategy, seo-content-writer, social-content, Social Media Scheduler, research-paper-writer, Powerpoint/PPTX |
| 商业/分析 | 4 | Market Research, interview-designer, backtest-expert, automation-workflows |
| AI代理能力 | 7 | proactive-agent-lite, self-improvement, self-reflection, brainstorming, writing-plans, executing-plans, task-summary |
| 工具/系统 | 6 | clawhub, find-skills, skill-creator, skill-vetter, clawdefender, opencode-controller |
| 生活/娱乐 | 4 | weather, video-frames, FFmpeg Video Editor, UI/UX Pro Max |
| 系统/运维 | 2 | healthcheck, node-connect |
**总计: 57 个技能**
---
*笔记创建于 2026-03-19 by 星辉*

View File

@@ -0,0 +1,87 @@
# OpenClaw 备份脚本使用指南
## 概述
OpenClaw 备份脚本用于自动备份 OpenClaw 配置到 NAS 存储。
## 脚本位置
- **Mac Mini**: `~/.openclaw/scripts/backup-openclaw.sh`
- **Ubuntu2**: `/home/shenwei/.openclaw/scripts/backup-openclaw.sh`
## 使用方法
```bash
# Mac Mini 备份
~/.openclaw/scripts/backup-openclaw.sh macmini
# Ubuntu2 备份
/home/shenwei/.openclaw/scripts/backup-openclaw.sh ubuntu2
```
## 文件命名规则
备份文件命名格式:`openclaw-{node}-{timestamp}.tar`
| 节点 | 示例 |
|------|------|
| Mac Mini | `openclaw-macmini-20260317112001.tar` |
| Ubuntu2 | `openclaw-ubuntu2-20260317112001.tar` |
## 备份目的地
- **NAS 路径**: `/volume2/backup/openclaw/`
- **访问方式**: SSH (shenwei@nas)
## 执行流程
```
[1/5] Creating backup: openclaw-{node}-{timestamp}.tar
[2/5] Verifying backup...
[3/5] Transferring to NAS...
[4/5] Verifying transfer...
[5/5] Cleaning up local temporary files...
```
## 备份内容
- `~/.openclaw/` 目录
- 排除项:
- `logs/` 目录
- `*.log` 文件
- `.git` 目录
## 验证备份
查看 NAS 上的备份文件:
```bash
ssh nas "ls -la /volume2/backup/openclaw/"
```
## 验证 tar 文件
```bash
ssh nas "tar -tvf /volume2/backup/openclaw/openclaw-{node}-{timestamp}.tar"
```
## 定时备份 (可选)
可以使用 cron 设置定时备份:
```bash
# 每天凌晨 3 点自动备份
0 3 * * * /home/shenwei/.openclaw/scripts/backup-openclaw.sh ubuntu2 >> /home/shenwei/.openclaw/logs/backup.log 2>&1
```
## 注意事项
1. 确保 Ubuntu2 到 NAS 的 SSH 免密登录已配置
2. 确保 NAS 备份目录存在
3. 备份文件会自动清理本地临时文件
4. 首次使用建议手动执行测试
## 相关文档
- SSH 免密登录配置: [[macmini-nas-ssh-config]]
- Ubuntu2 SSH 配置: [[ubuntu2-ssh-config]]

View File

@@ -0,0 +1,122 @@
# Mac Mini 配置 SSH 免密登录到 NAS
## 概述
本文档记录 Mac Mini (192.168.3.189) 配置 SSH 免密登录到 NAS (192.168.3.17) 的详细步骤。
## 前提条件
- Mac Mini 已安装 SSH 客户端(内置)
- NAS 已开启 SSH 服务
- 拥有 NAS 用户名和密码
## SSH 密钥配置
### 1. 生成 SSH 密钥(如不存在)
```bash
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
```
### 2. 传输公钥到 NAS
```bash
# 方法1使用 sshpass需要安装
sshpass -p 'NAS密码' ssh -o StrictHostKeyChecking=no shenwei@192.168.3.17 'cat >> ~/.ssh/authorized_keys'
# 方法2手动复制
# 1. 查看公钥
cat ~/.ssh/id_ed25519.pub
# 2. 登录 NAS
ssh shenwei@192.168.3.17
# 3. 追加公钥到 authorized_keys
echo '公钥内容' >> ~/.ssh/authorized_keys
```
## ~/.ssh/config 配置
### 完整配置示例
```bash
# NAS
Host nas
HostName 192.168.3.17
User shenwei
IdentityFile ~/.ssh/id_ed25519
ProxyCommand none
# Ubuntu1
Host ubuntu1
HostName 192.168.3.47
User shenwei
IdentityFile ~/.ssh/id_ed25519
ProxyCommand none
# Ubuntu2
Host ubuntu2
HostName 192.168.3.45
User shenwei
IdentityFile ~/.ssh/id_ed25519
ProxyCommand none
# Mac Mini (本地)
Host macmini
HostName 192.168.3.189
User weishen
IdentityFile ~/.ssh/id_ed25519
ProxyCommand none
# VPS1
Host vps1
HostName 192.227.222.142
User root
IdentityFile ~/.ssh/id_ed25519
ProxyCommand none
# VPS2
Host vps2
HostName 104.194.92.188
User root
IdentityFile ~/.ssh/id_ed25519
ProxyCommand none
```
## 测试免密登录
```bash
# 测试 NAS 连接
ssh nas "echo success"
# 测试所有服务器
for server in macmini ubuntu1 ubuntu2 nas; do
ssh $server "echo $server OK"
done
```
## 已配置的服务器
| 主机 | IP | 用户 | 状态 |
|------|-----|------|------|
| nas | 192.168.3.17 | shenwei | ✅ 已配置 |
| ubuntu1 | 192.168.3.47 | shenwei | ✅ 已配置 |
| ubuntu2 | 192.168.3.45 | shenwei | ✅ 已配置 |
| macmini | 192.168.3.189 | weishen | ✅ 已配置 |
| vps1 | 192.227.222.142 | root | ✅ 已配置 |
| vps2 | 104.194.92.188 | root | ✅ 已配置 |
## 故障排查
### 问题Could not resolve hostname nas
**解决**:确保 ~/.ssh/config 中已添加 nas 别名配置
### 问题Permission denied
**解决**
1. 检查公钥是否已添加到目标服务器的 ~/.ssh/authorized_keys
2. 检查 ~/.ssh 目录权限应为 700
3. 检查 ~/.ssh/authorized_keys 权限应为 600
## 相关文档
- Ubuntu2 SSH 配置: [[ubuntu2-ssh-config]]

View File

@@ -0,0 +1,445 @@
# Mac Mini WebDAV 服务配置指南
## 目的
在 Mac Mini 上通过原生 Apache 配置 WebDAV 服务,用于共享 Obsidian 笔记。
---
## 一、Mac Mini 本地配置
### 步骤 1: 启用 WebDAV 模块
编辑 Apache 配置文件,启用 DAV 模块:
```bash
sudo nano /etc/apache2/httpd.conf
```
找到以下行并取消注释(去掉 `#`
```apache
LoadModule dav_module libexec/apache2/mod_dav.so
LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
LoadModule dav_lock_module libexec/apache2/mod_dav_lock_module
```
### 步骤 2: 创建 DavLockDB 目录
WebDAV 需要一个目录来存储锁文件:
```bash
sudo mkdir -p /var/run/dav
sudo chown _www:_www /var/run/dav
```
### 步骤 3: 创建 WebDAV 目录并链接 Obsidian
```bash
sudo mkdir -p /Library/WebServer/Documents/Obsidian
sudo ln -s /Users/weishen/Obsidian/shenwei /Library/WebServer/Documents/Obsidian/shenwei
```
### 步骤 4: 配置 WebDAV
创建配置文件:
```bash
sudo nano /etc/apache2/other/webdav.conf
```
**配置内容(完整版):**
```apache
DavLockDB /var/run/dav/DavLock
<IfModule mod_dav.c>
DAVMinTimeout 240
</IfModule>
Alias /webdav "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
DAV On
DAVDepthInfinity off
Header set Allow "OPTIONS, GET, HEAD, POST, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK"
AuthType Basic
AuthName "WebDAV"
AuthUserFile /etc/apache2/webdav.users
Require valid-user
</Directory>
```
### 步骤 5: 创建访问用户
```bash
sudo htpasswd -c /etc/apache2/webdav.users webdav
```
输入密码: `macmini_dav`
> **注意**: 用户名和密码需要与后续 Obsidian 客户端配置一致
### 步骤 6: 设置目录权限(重要!)
WebDAV 需要 Apache 运行用户 (`_www`) 对 Obsidian 目录有读写权限:
```bash
# 修复用户目录权限
sudo chmod o+x /Users/weishen
sudo chmod -R o+rx /Users/weishen/Obsidian
# 将 Obsidian 目录所有权改为 _www
sudo chown -R _www:_www /Library/WebServer/Documents/Obsidian
sudo chown -R _www:_www /Users/weishen/Obsidian/shenwei
sudo chmod -R 775 /Users/weishen/Obsidian/shenwei
```
### 步骤 7: 启动 Apache 服务
```bash
sudo apachectl start
```
---
## 二、FRP 端口映射配置
在 Mac Mini 上编辑 FRP 配置文件:
```bash
sudo nano /opt/frp/frp_0.65.0_darwin_arm64/frpc.toml
```
**添加以下配置WebDAV 使用 80 端口):**
```toml
[[proxies]]
name = "macmini-webdav"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 60080
```
> **重要**: 如果 Mac Mini 上设置了代理(科学上网),需要在 FRPC 启动时添加 `no_proxy` 环境变量:
> ```bash
> export no_proxy="192.227.222.142,127.0.0.1,localhost"
> cd /opt/frp/frp_0.65.0_darwin_arm64 && ./frpc -c frpc.toml
> ```
---
## 三、VPS1 Caddy 反向代理配置
在 VPS1 上编辑 Caddyfile
```bash
sudo nano /etc/caddy/Caddyfile
```
**添加以下配置:**
```bash
# WebDAV 外网访问
macwebdav.ishenwei.online {
reverse_proxy localhost:60080
}
```
**重载 Caddy 配置:**
```bash
sudo systemctl reload caddy
```
> **注意**: 需要先在 DNS 服务商处添加 A 记录:
> - 主机记录: `macwebdav`
> - 记录类型: `A`
> - 记录值: `192.227.222.142` (VPS1 IP)
---
## 四、防火墙配置
### VPS1 防火墙(如果使用 UFW
```bash
sudo ufw allow 60080/tcp
```
---
## 五、常用命令
### Apache 命令
| 命令 | 功能 |
|------|------|
| `sudo apachectl start` | 启动 Apache |
| `sudo apachectl stop` | 停止 Apache |
| `sudo apachectl restart` | 重启 Apache |
| `sudo apachectl -t` | 检查配置语法 |
| `sudo apachectl -M \| grep dav` | 确认 WebDAV 模块已加载 |
### FRP 命令
```bash
# 重启 FRPCMac Mini 上)
# in tmux
tmux attach -t frpc
# 停止现有进程 (Ctrl+C in tmux)
# 重启(注意添加 no_proxy
export no_proxy="192.227.222.142,127.0.0.1,localhost" && cd /opt/frp/frp_0.65.0_darwin_arm64 && ./frpc -c frpc.toml
```
### Caddy 命令VPS1
```bash
sudo systemctl reload caddy
```
---
## 六、Obsidian 客户端连接配置(最终验证版本)
### 配置参数
| 配置项 | 值 |
|--------|-----|
| **服务器地址** | `https://macwebdav.ishenwei.online/webdav/Obsidian/` |
| **用户名** | `webdav` |
| **密码** | `macmini_dav` |
| **鉴权类型** | `basic` |
| **Depth header** | `只支持 depth='1'` |
### 配置步骤
1. 打开 Obsidian
2. 安装 **Remotely Save** 插件(或其他 WebDAV 同步插件)
3. 选择远程服务为 **WebDAV**
4. 填写上方配置参数
5. 点击 **检查** 按钮验证连接
6. 开始同步
---
## 七、内网访问
- **URL**: `http://192.168.3.189/webdav/`
- **用户名**: `webdav`
- **密码**: `macmini_dav`
---
## 八、注意事项
1. **安全提示**:
- Basic 认证密码明文传输,建议仅在内网使用
- 外网访问建议配合 HTTPSCaddy 自动提供 Let's Encrypt
2. **端口规划**:
- Apache: 80
- FRP 映射: 60080
3. **防火墙**:
- Mac 防火墙需允许 80 端口入站
- VPS 防火墙需开放 FRP 映射的端口
4. **开机自启**:
- Apache 开机自动启动MacOS 默认行为)
- FRPC 需配置开机自启tmux 或 launchd
5. **代理问题**:
- 如果 Mac Mini 使用科学上网代理FRPC 需要设置 `no_proxy` 环境变量
- 参考上面的 FRP 命令部分
---
## 九、故障排除
### 问题500 Internal Server Error
**原因**: DavLockDB 目录权限不足
**解决**:
```bash
sudo chown -R _www:_www /var/run/dav
```
### 问题403 Forbidden
**原因**: Obsidian 目录权限不足Apache 无法写入
**解决**:
```bash
sudo chown -R _www:_www /Library/WebServer/Documents/Obsidian
sudo chown -R _www:_www /Users/weishen/Obsidian/shenwei
sudo chmod -R 775 /Users/weishen/Obsidian/shenwei
```
### 问题:无法解析域名
**原因**: DNS 记录未生效
**解决**:
1. 确认 DNS A 记录已添加
2. 等待 5-30 分钟 DNS 传播
3. 本地刷新 DNS 缓存:`sudo dscacheutil -flushcache`
### 问题FRPC 连接超时
**原因**: Mac Mini 代理设置干扰 FRPC 连接
**解决**:
```bash
export no_proxy="192.227.222.142,127.0.0.1,localhost"
```
### 检查 Apache 状态
```bash
sudo apachectl status
```
### 查看日志
```bash
sudo tail -f /var/log/apache2/error_log
```
### 确认 WebDAV 模块加载
```bash
sudo apachectl -M | grep -E "dav|webdav"
```
### 测试本地访问
```bash
curl -u webdav:macmini_dav http://127.0.0.1/webdav/
```
### 测试 FRP 端口连通性VPS1
```bash
curl -u webdav:macmini_dav http://localhost:60080/webdav/
```
---
## 十、测试步骤
### 阶段 1: Apache 本地测试Mac Mini
#### 1.1 检查 Apache 状态
```bash
sudo apachectl status
```
**预期输出**: Apache 运行中 (running)
#### 1.2 确认 WebDAV 模块已加载
```bash
sudo apachectl -M | grep -E "dav|webdav"
```
**预期输出**:
- `dav_module (shared)`
- `dav_fs_module (shared)`
- `dav_lock_module (shared)`
#### 1.3 测试本地认证访问
```bash
curl -u webdav:macmini_dav -I http://127.0.0.1/webdav/
```
**预期输出**: HTTP/1.1 200 OK
#### 1.4 列出 WebDAV 目录内容
```bash
curl -u webdav:macmini_dav -X PROPFIND -H "Depth: 1" http://127.0.0.1/webdav/Obsidian/shenwei/
```
**预期输出**: XML 格式的目录列表
---
### 阶段 2: FRP 连通性测试
#### 2.1 检查 FRPC 状态Mac Mini
```bash
tmux capture-pane -t frpc -p | tail -10
```
**预期输出**: 看到 `[macmini-webdav] start proxy success`
#### 2.2 测试 VPS1 端口监听
```bash
# 在 VPS1 上执行
sudo ss -tlnp | grep 60080
```
**预期输出**: `*:60080 LISTEN`
#### 2.3 测试内网通过 FRP 访问(从 VPS1 测试)
```bash
# 在 VPS1 上执行
curl -u webdav:macmini_dav -I http://localhost:60080/webdav/
```
**预期输出**: HTTP/1.1 200 OK
---
### 阶段 3: Caddy 反向代理测试
#### 3.1 检查 DNS 解析
```bash
dig +short macwebdav.ishenwei.online
```
**预期输出**: `192.227.222.142`
#### 3.2 测试 HTTPS 访问
```bash
curl -k -u webdav:macmini_dav -I https://macwebdav.ishenwei.online/webdav/
```
**预期输出**: HTTP/1.1 200 OK
---
### 阶段 4: 完整链路测试清单
| 序号 | 测试项 | 测试命令/方法 | 预期结果 |
|------|--------|--------------|----------|
| 1 | Apache 运行中 | `sudo apachectl status` | running |
| 2 | WebDAV 模块已加载 | `apachectl -M \| grep dav` | dav_module |
| 3 | 本地认证访问 | `curl -u webdav:macmini_dav http://127.0.0.1/webdav/` | 200 OK |
| 4 | FRPC 运行正常 | 查看 tmux 日志 | proxy success |
| 5 | VPS1 端口监听 | `ss -tlnp \| grep 60080` | LISTEN |
| 6 | 外网 HTTPS 访问 | `curl -k -u webdav:macmini_dav https://macwebdav.ishenwei.online/` | 200 OK |
| 7 | Obsidian 连接 | 客户端测试 | 同步成功 |
---
## 十一、配置汇总表
| 项目 | 值 |
| --------------------------------- | -------------------------------------------------- |
| 内网 URL | http://192.168.3.189/webdav/ |
| 外网域名 | https://macwebdav.ishenwei.online |
| **Obsidian Remotely Save 最终配置路径** | https://macwebdav.ishenwei.online/webdav/Obsidian/ |
| FRP 本地端口 | 80 |
| FRP 远程端口 | 60080 |
| WebDAV 用户 | webdav |
| WebDAV 密码 | macmini_dav |
---
## 十二、关键修正记录
本配置在测试过程中发现并修复了以下问题:
1. **WebDAV 模块未启用**: 需要在 `httpd.conf` 中取消注释 DAV 相关模块
2. **DavLockDB 权限问题**: 需要创建目录并设置 `_www` 所有权
3. **符号链接权限问题**: 符号链接使用绝对路径 `/Users/weishen/...`
4. **Obsidian 目录权限**: 需要将目录所有权改为 `_www` 并设置 775 权限
5. **FRPC 代理干扰**: Mac Mini 的代理设置会干扰 FRPC 连接,需要设置 `no_proxy`
6. **DNS 解析延迟**: 添加 DNS 记录后需要等待传播
---
*文档更新时间: 2026-03-19*

View File

@@ -0,0 +1,35 @@
# Ubuntu2 SSH 配置
## 背景
Ubuntu2 需要能够通过 "ssh nas" 免密登录到 NAS。
## 步骤
### 1. 生成 SSH 密钥(如不存在)
```bash
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
```
### 2. 配置 ~/.ssh/config
```bash
Host nas
HostName 192.168.3.17
User shenwei
IdentityFile ~/.ssh/id_ed25519
```
### 3. 传输公钥到 NAS
```bash
# 方法1使用 sshpass需要安装
sshpass -p '密码' ssh -o StrictHostKeyChecking=no shenwei@192.168.3.17 'cat >> ~/.ssh/authorized_keys'
# 方法2手动复制公钥内容
cat ~/.ssh/id_ed25519.pub
# 然后登录 NAS 追加到 ~/.ssh/authorized_keys
```
### 4. 测试
```bash
ssh nas "echo success"
```

View File

@@ -0,0 +1,161 @@
---
name: star-tasksender
description: 星枢任务分发器 - 解析用户指令并发送到 RabbitMQ 队列
metadata:
version: 1.0.0
author: 云策
created: 2026-03-17
---
# Star Task Sender - 星枢任务分发器
将星枢收到的用户指令解析为标准消息格式,并发送到 RabbitMQ 队列。
## 功能
- **意图解析**: 将自然语言指令转换为结构化任务
- **消息构建**: 生成标准 JSON 消息格式
- **队列发送**: 通过 RabbitMQ 分发给子 Agent
## 文件结构
```
star-tasksender/
├── SKILL.md
└── scripts/
├── intent_parser.py # 意图解析模块
├── message_builder.py # 消息构建模块
├── rabbitmq_sender.py # RabbitMQ 发送模块
└── __init__.py
```
## 使用方法
### 1. 意图解析
```python
from scripts.intent_parser import IntentParser
parser = IntentParser()
# 解析用户指令
intent = parser.parse_intent("帮我审查 my-project 仓库")
# 结果: {
# "action": "code_review",
# "target": "yunce",
# "params": {"repo": "my-project", "branch": "main"}
# }
```
### 2. 构建消息
```python
from scripts.message_builder import MessageBuilder
from scripts.intent_parser import IntentParser
parser = IntentParser()
intent = parser.parse_intent("帮我审查 my-project")
builder = MessageBuilder()
message = builder.build_task_message(intent)
# 结果: 标准任务消息 JSON
```
### 3. 发送到 RabbitMQ
```python
from scripts.rabbitmq_sender import RabbitMQSender
from scripts.message_builder import MessageBuilder
# 构建消息
builder = MessageBuilder()
message = builder.build_task_message(intent)
# 发送
sender = RabbitMQSender(host='192.168.1.100', username='admin', password='password')
task_id = sender.send_task(message)
sender.close()
```
### 4. 完整流程
```python
from scripts.intent_parser import IntentParser
from scripts.message_builder import MessageBuilder
from scripts.rabbitmq_sender import RabbitMQSender
def process_user_command(user_input):
# 1. 解析
parser = IntentParser()
intent = parser.parse_intent(user_input)
# 2. 构建
builder = MessageBuilder()
message = builder.build_task_message(intent)
# 3. 发送
sender = RabbitMQSender()
task_id = sender.send_task(message)
sender.close()
return f"✅ 任务已下发: {task_id}"
```
## 支持的指令模式
| 用户指令 | action | target | params |
|----------|--------|--------|--------|
| 审查 xxx 仓库 | code_review | yunce | {repo: "xxx", branch: "main"} |
| 部署 xxx 到生产 | deploy | prometheus | {service: "xxx", env: "prod"} |
| 检查 xxx 状态 | status_check | atlas | {target: "xxx"} |
| 分析 xxx 数据 | data_analysis | atlas | {data: "xxx"} |
## RabbitMQ 配置
默认配置 (可在 rabbitmq_sender.py 中修改):
```python
{
"host": "localhost",
"port": 5672,
"username": "admin",
"password": "password",
"exchange": "task_exchange"
}
```
## 消息格式
### 输入: 用户指令
```
"帮我审查 my-project 仓库"
```
### 输出: RabbitMQ 消息
```json
{
"taskId": "task_20260317_135600_a1b2c3",
"type": "task",
"source": "xingyao",
"target": "yunce",
"priority": "high",
"content": {
"action": "code_review",
"params": {
"repo": "my-project",
"branch": "main"
}
},
"metadata": {
"createdAt": "2026-03-17T13:56:00Z",
"retryCount": 0,
"maxRetries": 3
}
}
```
## 注意事项
1. **首次使用**: 需要在 `rabbitmq_sender.py` 中配置 RabbitMQ 连接信息
2. **权限**: 确保 RabbitMQ 用户有写权限到 task_exchange
3. **错误处理**: 发送失败时会抛出异常,需要调用方处理

View File

@@ -0,0 +1,191 @@
# -*- coding: utf-8 -*-
"""
意图解析模块 - Intent Parser
将自然语言指令转换为结构化任务
"""
import re
from typing import Dict, Optional
class IntentParser:
"""意图解析器"""
# 指令模式定义
PATTERNS = {
"code_review": {
"keywords": ["审查", "review", "代码审查", "review code"],
"target": "yunce",
"action": "code_review",
"param_extractor": "extract_repo_info"
},
"deploy": {
"keywords": ["部署", "deploy", "发布"],
"target": "prometheus",
"action": "deploy",
"param_extractor": "extract_deploy_info"
},
"status_check": {
"keywords": ["检查状态", "status", "查看状态", "状态"],
"target": "atlas",
"action": "status_check",
"param_extractor": "extract_target"
},
"data_analysis": {
"keywords": ["分析", "analysis", "数据分析"],
"target": "atlas",
"action": "data_analysis",
"param_extractor": "extract_data_info"
},
"file_operation": {
"keywords": ["复制", "移动", "删除", "copy", "move", "delete"],
"target": "oracle",
"action": "file_operation",
"param_extractor": "extract_file_info"
}
}
def parse_intent(self, user_input: str) -> Dict:
"""
解析用户输入,返回结构化意图
Args:
user_input: 用户输入的自然语言
Returns:
{
"action": "code_review",
"target": "yunce",
"params": {...}
}
"""
user_input = user_input.strip()
# 遍历所有模式,匹配关键词
for pattern_name, pattern_config in self.PATTERNS.items():
for keyword in pattern_config["keywords"]:
if keyword in user_input:
# 提取参数
extractor_name = pattern_config["param_extractor"]
extractor = getattr(self, extractor_name)
params = extractor(user_input)
return {
"action": pattern_config["action"],
"target": pattern_config["target"],
"params": params
}
# 无法识别
return {
"error": "无法理解指令",
"original_input": user_input
}
def extract_repo_info(self, text: str) -> Dict:
"""从文本中提取仓库信息"""
result = {}
# 提取仓库名
repo_match = re.search(r'(?:仓库|repo|项目)[:\s]*(\S+)', text)
if not repo_match:
repo_match = re.search(r'(?:审查|review)\s+(\S+)', text)
if repo_match:
result["repo"] = repo_match.group(1).strip(',。')
# 提取分支
branch_match = re.search(r'(?:分支|branch)[:\s]*(\S+)', text)
if branch_match:
result["branch"] = branch_match.group(1).strip(',。')
else:
result["branch"] = "main"
return result
def extract_deploy_info(self, text: str) -> Dict:
"""从文本中提取部署信息"""
result = {}
# 提取服务名
service_match = re.search(r'(?:服务|service|部署)[:\s]*(\S+)', text)
if not service_match:
service_match = re.search(r'部署\s+(\S+)', text)
if service_match:
result["service"] = service_match.group(1).strip(',。')
# 提取环境
if "生产" in text or "prod" in text.lower():
result["env"] = "prod"
elif "测试" in text or "test" in text.lower():
result["env"] = "test"
else:
result["env"] = "dev"
return result
def extract_target(self, text: str) -> Dict:
"""提取目标信息"""
result = {}
# 尝试提取目标名称
target_match = re.search(r'(?:服务器|server|目标)[:\s]*(\S+)', text)
if not target_match:
target_match = re.search(r'检查\s+(\S+)', text)
if target_match:
result["target"] = target_match.group(1).strip(',。')
return result
def extract_data_info(self, text: str) -> Dict:
"""提取数据分析信息"""
result = {}
# 提取数据源
data_match = re.search(r'(?:数据|data|分析)[:\s]*(\S+)', text)
if not data_match:
data_match = re.search(r'分析\s+(\S+)', text)
if data_match:
result["data"] = data_match.group(1).strip(',。')
return result
def extract_file_info(self, text: str) -> Dict:
"""提取文件操作信息"""
result = {}
# 提取文件路径
path_match = re.search(r'[:\s](\S+\.\S+)', text)
if path_match:
result["path"] = path_match.group(1)
# 提取操作类型
if "复制" in text or "copy" in text.lower():
result["operation"] = "copy"
elif "移动" in text or "move" in text.lower():
result["operation"] = "move"
elif "删除" in text or "delete" in text.lower():
result["operation"] = "delete"
return result
# 测试
if __name__ == "__main__":
parser = IntentParser()
test_cases = [
"帮我审查 my-project 仓库",
"部署 test-server 到生产",
"检查服务器状态",
"分析销售数据"
]
for test in test_cases:
result = parser.parse_intent(test)
print(f"输入: {test}")
print(f"输出: {result}")
print("-" * 40)

View File

@@ -0,0 +1,204 @@
# -*- coding: utf-8 -*-
"""
消息构建模块 - Message Builder
将意图解析结果转换为标准的 RabbitMQ 消息格式
"""
import json
import uuid
from datetime import datetime
from typing import Dict, Optional
class MessageBuilder:
"""消息构建器"""
# 高优先级动作
HIGH_PRIORITY_ACTIONS = ["code_review", "deploy", "security_check", "data_analysis"]
# 默认超时时间 (毫秒)
DEFAULT_TIMEOUT = 3600000 # 1小时
def __init__(self, source: str = "xingyao", default_timeout: int = None):
"""
初始化消息构建器
Args:
source: 消息来源 Agent 名称
default_timeout: 默认超时时间 (毫秒)
"""
self.source = source
self.default_timeout = default_timeout or self.DEFAULT_TIMEOUT
def build_task_message(self, intent: Dict, priority: str = None) -> Dict:
"""
构建任务消息
Args:
intent: 意图解析结果
priority: 优先级 (high/normal/low),如果为 None 则自动判断
Returns:
标准任务消息 JSON
"""
if "error" in intent:
return {"error": intent["error"]}
# 自动判断优先级
if priority is None:
priority = self._detect_priority(intent.get("action", ""))
# 生成任务ID
task_id = self._generate_task_id()
message = {
"taskId": task_id,
"type": "task",
"source": self.source,
"target": intent["target"],
"priority": priority,
"content": {
"action": intent["action"],
"params": intent.get("params", {})
},
"metadata": {
"createdAt": datetime.now().isoformat() + "Z",
"expireAt": None,
"retryCount": 0,
"maxRetries": 3,
"timeout": self.default_timeout
}
}
return message
def build_result_message(self, task_id: str, target: str,
status: str, content: Dict) -> Dict:
"""
构建结果消息 (由子 Agent 使用)
Args:
task_id: 原始任务ID
target: 目标 Agent (通常是星枢)
status: 执行状态 (success/error/partial)
content: 结果内容
Returns:
标准结果消息 JSON
"""
message = {
"taskId": task_id,
"type": "result",
"source": self.source,
"target": target,
"status": status,
"content": content,
"metadata": {
"completedAt": datetime.now().isoformat() + "Z"
}
}
return message
def build_heartbeat_message(self, agent_name: str,
status: str = "idle",
current_task: str = None) -> Dict:
"""
构建心跳消息
Args:
agent_name: Agent 名称
status: 当前状态 (idle/busy/error)
current_task: 当前执行的任务ID
Returns:
心跳消息 JSON
"""
message = {
"type": "heartbeat",
"agent": agent_name,
"status": status,
"currentTask": current_task,
"timestamp": datetime.now().isoformat() + "Z"
}
return message
def build_error_message(self, task_id: str, target: str,
error: str, details: Dict = None) -> Dict:
"""
构建错误消息
Args:
task_id: 任务ID
target: 目标 Agent
error: 错误描述
details: 错误详情
Returns:
错误消息 JSON
"""
message = {
"taskId": task_id,
"type": "error",
"source": self.source,
"target": target,
"error": error,
"content": details or {},
"metadata": {
"occurredAt": datetime.now().isoformat() + "Z"
}
}
return message
def _detect_priority(self, action: str) -> str:
"""根据动作自动判断优先级"""
return "high" if action in self.HIGH_PRIORITY_ACTIONS else "normal"
def _generate_task_id(self) -> str:
"""生成唯一任务ID"""
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
unique_id = uuid.uuid4().hex[:6]
return f"task_{timestamp}_{unique_id}"
def to_json(self, message: Dict) -> str:
"""转换为 JSON 字符串"""
return json.dumps(message, ensure_ascii=False, indent=2)
def from_json(self, json_str: str) -> Dict:
"""从 JSON 字符串解析"""
return json.loads(json_str)
# 测试
if __name__ == "__main__":
builder = MessageBuilder()
# 测试任务消息
intent = {
"action": "code_review",
"target": "yunce",
"params": {"repo": "my-project", "branch": "main"}
}
task_msg = builder.build_task_message(intent)
print("任务消息:")
print(builder.to_json(task_msg))
print("-" * 40)
# 测试心跳消息
heartbeat = builder.build_heartbeat_message("yunce", "idle")
print("心跳消息:")
print(builder.to_json(heartbeat))
print("-" * 40)
# 测试结果消息
result_msg = builder.build_result_message(
task_id=task_msg["taskId"],
target="xingyao",
status="success",
content={"summary": "审查完成", "findings": []}
)
print("结果消息:")
print(builder.to_json(result_msg))

View File

@@ -0,0 +1,248 @@
# -*- coding: utf-8 -*-
"""
RabbitMQ 发送模块 - RabbitMQ Sender
连接到 RabbitMQ 并发送消息
"""
import pika
import json
import logging
from typing import Dict, Optional
from datetime import datetime
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class RabbitMQSender:
"""RabbitMQ 消息发送器"""
DEFAULT_CONFIG = {
"host": "192.168.3.189",
"port": 5672,
"username": "guest",
"password": "guest",
"exchange": "task_exchange",
"result_exchange": "result_exchange",
"heartbeat": 600,
"blocked_connection_timeout": 300
}
def __init__(self, config: Dict = None):
"""
初始化 RabbitMQ 发送器
Args:
config: RabbitMQ 配置,包含 host, port, username, password 等
"""
self.config = {**self.DEFAULT_CONFIG, **(config or {})}
self.connection = None
self.channel = None
self._connect()
def _connect(self):
"""建立 RabbitMQ 连接"""
credentials = pika.PlainCredentials(
self.config["username"],
self.config["password"]
)
parameters = pika.ConnectionParameters(
host=self.config["host"],
port=self.config["port"],
credentials=credentials,
heartbeat=self.config["heartbeat"],
blocked_connection_timeout=self.config["blocked_connection_timeout"]
)
try:
self.connection = pika.BlockingConnection(parameters)
self.channel = self.connection.channel()
# 声明交换机
self.channel.exchange_declare(
exchange=self.config["exchange"],
exchange_type="topic",
durable=True
)
self.channel.exchange_declare(
exchange=self.config["result_exchange"],
exchange_type="topic",
durable=True
)
logger.info(f"✅ RabbitMQ 连接成功: {self.config['host']}:{self.config['port']}")
except Exception as e:
logger.error(f"❌ RabbitMQ 连接失败: {e}")
raise
def send_task(self, message: Dict, priority: str = None) -> str:
"""
发送任务消息
Args:
message: 任务消息 (由 MessageBuilder 构建)
priority: 优先级覆盖 (high/normal/low)
Returns:
task_id
"""
if "error" in message:
raise ValueError(f"无法发送错误消息: {message['error']}")
target = message.get("target", "unknown")
task_id = message.get("taskId", "unknown")
routing_key = f"task.{target}"
# 确定优先级
priority_value = self._get_priority_value(
priority or message.get("priority", "normal")
)
try:
self.channel.basic_publish(
exchange=self.config["exchange"],
routing_key=routing_key,
body=json.dumps(message, ensure_ascii=False),
properties=pika.BasicProperties(
delivery_mode=2, # 消息持久化
content_type="application/json",
priority=priority_value,
timestamp=int(datetime.now().timestamp())
)
)
logger.info(f"✅ 任务已发送: {task_id} -> {target} (routing: {routing_key})")
return task_id
except Exception as e:
logger.error(f"❌ 发送任务失败: {e}")
raise
def send_result(self, message: Dict) -> str:
"""
发送结果消息
Args:
message: 结果消息 (由 MessageBuilder 构建)
Returns:
task_id
"""
source = message.get("source", "unknown")
task_id = message.get("taskId", "unknown")
routing_key = f"result.{source}"
try:
self.channel.basic_publish(
exchange=self.config["result_exchange"],
routing_key=routing_key,
body=json.dumps(message, ensure_ascii=False),
properties=pika.BasicProperties(
delivery_mode=2,
content_type="application/json"
)
)
logger.info(f"✅ 结果已发送: {task_id} from {source}")
return task_id
except Exception as e:
logger.error(f"❌ 发送结果失败: {e}")
raise
def send_heartbeat(self, message: Dict) -> bool:
"""
发送心跳消息
Args:
message: 心跳消息
Returns:
是否发送成功
"""
agent = message.get("agent", "unknown")
routing_key = f"heartbeat.{agent}"
try:
self.channel.basic_publish(
exchange=self.config["exchange"],
routing_key=routing_key,
body=json.dumps(message, ensure_ascii=False),
properties=pika.BasicProperties(
delivery_mode=2,
content_type="application/json"
)
)
logger.debug(f"💓 心跳已发送: {agent}")
return True
except Exception as e:
logger.error(f"❌ 发送心跳失败: {e}")
return False
def _get_priority_value(self, priority: str) -> int:
"""将优先级字符串转换为 RabbitMQ 数值"""
priority_map = {
"high": 10,
"normal": 5,
"low": 1
}
return priority_map.get(priority.lower(), 5)
def is_connected(self) -> bool:
"""检查连接状态"""
return self.connection is not None and self.connection.is_open
def reconnect(self):
"""重新连接"""
self.close()
self._connect()
def close(self):
"""关闭连接"""
if self.connection and self.connection.is_open:
self.connection.close()
logger.info("🔌 RabbitMQ 连接已关闭")
# 便捷函数
def send_task_quick(message: Dict, config: Dict = None) -> str:
"""
快速发送任务 (自动创建和关闭连接)
Args:
message: 任务消息
config: RabbitMQ 配置
Returns:
task_id
"""
sender = RabbitMQSender(config)
task_id = sender.send_task(message)
sender.close()
return task_id
# 测试
if __name__ == "__main__":
from message_builder import MessageBuilder
from intent_parser import IntentParser
# 解析意图
parser = IntentParser()
intent = parser.parse_intent("帮我审查 my-project 仓库")
# 构建消息
builder = MessageBuilder()
message = builder.build_task_message(intent)
# 发送 (需要配置实际的 RabbitMQ 地址)
# sender = RabbitMQSender({"host": "192.168.1.100", "username": "admin", "password": "password"})
# task_id = sender.send_task(message)
# sender.close()
print("消息构建成功:")
print(builder.to_json(message))

View File

@@ -0,0 +1,709 @@
# 星枢 Agent 任务解耦技术方案
> 基于 RabbitMQ 的分布式任务队列架构
---
## 一、概述
### 背景
当前星枢(主 Agent与其他 Agent 的通信方式:
| 方式 | 命令 | 局限 |
|------|------|------|
| 本地 | `openclaw agent --agent xingyao --message "..." --deliver` | 同步等待 |
| 远程 | `ssh ubuntu2 "openclaw agent --agent yunce --message ..."` | 串行阻塞 |
### 目标
- **异步执行**:任务下发不等待结果
- **任务持久化**:重启不丢失
- **可监控**:实时查看任务状态
- **可扩展**:支持多 Agent 并行
---
## 二、技术选型
### RabbitMQ vs 其他
| 特性 | RabbitMQ | Redis Streams | Kafka |
|------|----------|---------------|-------|
| 消息确认 | ✅ ACK | ✅ ACK | ✅ ACK |
| 优先级队列 | ✅ | ❌ | ❌ |
| 延迟队列 | ✅ (插件) | ✅ | ❌ |
| 持久化 | ✅ | ✅ | ✅ |
| 集群 | ✅ | 有限 | ✅ |
| 生态成熟度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 轻量级 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |
**推荐RabbitMQ**
理由:
- 消息确认机制完善
- 支持复杂路由规则
- 管理界面友好
- 适合中低并发场景
---
## 三、架构设计
### 3.1 整体架构
```
┌─────────────────────────────────────────────────────────────────────────┐
│ 用户 │
│ (Telegram/Discord) │
└─────────────────────────────────┬───────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 星枢 (主 Agent) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 意图理解 │ │ 任务分解 │ │ 队列管理 │ │ 结果聚合 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────┬───────────────────────────────────────┘
┌─────────────┴─────────────┐
│ RabbitMQ 集群 │
│ (task_exchange) │
└─────────────┬─────────────┘
┌───────────────────────┼───────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Yunce (Agent) │ │ Atlas (Agent) │ │ Prometheus │
│ 队列: tasks │ │ 队列: tasks │ │ 队列: tasks │
│ 状态: running │ │ 状态: idle │ │ 状态: idle │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
│ ┌──────────────────┴──────────────────┐ │
│ │ 结果收集 (result_exchange) │ │
│ └──────────────────┬──────────────────┘ │
│ │ │
└──────────────────────┼──────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 星枢 (结果处理) │
│ - 任务状态更新 │
│ - 用户反馈 │
│ - 后续任务触发 │
└─────────────────────────────────────────────────────────────────────────┘
```
### 3.2 消息流设计
```
┌──────────────────────────────────────────────────────────────────────────┐
│ 消息生命周期 │
└──────────────────────────────────────────────────────────────────────────┘
[1] 任务下发 [5] 结果处理
│ ▲
▼ │
┌────────┐ ┌────────────┐ ┌───────────┐ ┌───────────┐ │
│ 星枢 │───▶│ RabbitMQ │───▶│ Agent N │───▶│ RabbitMQ │──────┘
│创建任务 │ │ (持久化) │ │ 执行任务 │ │ (结果队列) │
└────────┘ └────────────┘ └───────────┘ └───────────┘
│ │
│ [4] ACK 确认
│ │
[2] 任务入队 │
(可选: 延迟队列) ▼
│ ┌───────────┐
└─────────────▶│ 状态变更 │
│ (处理中→完成)
└───────────┘
[3] Agent 消费任务
```
### 3.3 Exchange & Queue 设计
```
┌─────────────────┐
│ task_exchange │ (Topic Exchange)
│ (星枢下发) │
└────────┬────────┘
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ queue.yunce │ │ queue.atlas │ │ queue.prometheus│
│ routing: │ │ routing: │ │ routing: │
│ task.yunce │ │ task.atlas │ │ task.prometheus │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
▼ ▼ ▼
[Agent: Yunce] [Agent: Atlas] [Agent: Prometheus]
─────────────────────────────────────────────────────────────────────────
┌─────────────────┐
│result_exchange │ (Topic Exchange)
│ (结果收集) │
└────────┬────────┘
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│result.yunce │ │result.atlas │ │result.prometheus │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
└────────────────────┼────────────────────┘
┌─────────────────┐
│ queue.star聚合 │ ← 星枢监听此队列
│ routing: result.#│
└─────────────────┘
```
---
## 四、消息格式定义
### 4.1 任务消息 (Task Message)
```json
{
"taskId": "task_20260317_001",
"type": "task",
"source": "xingyao",
"target": "yunce",
"priority": "high",
"content": {
"action": "code_review",
"params": {
"repo": "my-project",
"branch": "feature/login"
}
},
"metadata": {
"createdAt": "2026-03-17T10:30:00Z",
"expireAt": "2026-03-17T11:30:00Z",
"retryCount": 0,
"maxRetries": 3
}
}
```
### 4.2 结果消息 (Result Message)
```json
{
"taskId": "task_20260317_001",
"type": "result",
"source": "yunce",
"target": "xingyao",
"status": "success",
"content": {
"summary": "代码审查完成",
"findings": [
{"severity": "warning", "message": "建议添加参数校验"}
],
"output": "/path/to/report.md"
},
"metadata": {
"completedAt": "2026-03-17T10:35:00Z",
"duration": 300
}
}
```
### 4.3 心跳消息 (Heartbeat Message)
```json
{
"type": "heartbeat",
"agent": "yunce",
"status": "idle",
"currentTask": null,
"timestamp": "2026-03-17T10:30:00Z"
}
```
---
## 五、实现步骤
### 5.1 RabbitMQ 部署
```bash
# Docker 部署
docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=your_password \
rabbitmq:3.12-management
# 访问管理界面
# http://your-server:15672
```
### 5.2 创建 Exchange 和 Queue (初始化脚本)
```python
# setup_rabbitmq.py
import pika
def setup_rabbitmq():
connection = pika.BlockingConnection(
pika.ConnectionParameters(host='localhost', port=5672)
)
channel = connection.channel()
# 1. 创建 Exchange
channel.exchange_declare(exchange='task_exchange', exchange_type='topic', durable=True)
channel.exchange_declare(exchange='result_exchange', exchange_type='topic', durable=True)
# 2. 创建任务队列 (按 Agent)
agents = ['yunce', 'atlas', 'prometheus', 'oracle']
for agent in agents:
channel.queue_declare(queue=f'queue.{agent}', durable=True)
channel.queue_bind(
exchange='task_exchange',
queue=f'queue.{agent}',
routing_key=f'task.{agent}'
)
# 3. 创建星枢结果聚合队列
channel.queue_declare(queue='queue.star', durable=True)
channel.queue_bind(
exchange='result_exchange',
queue='queue.star',
routing_key='result.#'
)
connection.close()
print("✅ RabbitMQ 初始化完成")
if __name__ == '__main__':
setup_rabbitmq()
```
### 5.3 星枢任务下发模块
```python
# star_sender.py
import pika
import json
import uuid
from datetime import datetime
class StarTaskSender:
def __init__(self, rabbitmq_host='localhost'):
self.connection = pika.BlockingConnection(
pika.ConnectionParameters(host=rabbitmq_host)
)
self.channel = self.connection.channel()
def send_task(self, target_agent, action, params, priority='normal'):
task_id = f"task_{datetime.now().strftime('%Y%m%d_%H%M%S')}_{uuid.uuid4().hex[:6]}"
message = {
"taskId": task_id,
"type": "task",
"source": "xingyao",
"target": target_agent,
"priority": priority,
"content": {
"action": action,
"params": params
},
"metadata": {
"createdAt": datetime.now().isoformat() + "Z",
"retryCount": 0,
"maxRetries": 3
}
}
self.channel.basic_publish(
exchange='task_exchange',
routing_key=f'task.{target_agent}',
body=json.dumps(message),
properties=pika.BasicProperties(
delivery_mode=2, # 持久化
priority=10 if priority == 'high' else 5
)
)
print(f"✅ 任务已下发: {task_id} -> {target_agent}")
return task_id
def close(self):
self.connection.close()
# 使用示例
if __name__ == '__main__':
sender = StarTaskSender()
# 下发任务给 Yunce
task_id = sender.send_task(
target_agent='yunce',
action='code_review',
params={'repo': 'my-project', 'branch': 'main'},
priority='high'
)
sender.close()
```
### 5.4 Agent 任务监听模块
```python
# agent_listener.py
import pika
import json
import subprocess
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class AgentListener:
def __init__(self, agent_name, rabbitmq_host='localhost'):
self.agent_name = agent_name
self.connection = pika.BlockingConnection(
pika.ConnectionParameters(host=rabbitmq_host)
)
self.channel = self.connection.channel()
def execute_task(self, task_content):
"""执行任务的核心逻辑"""
action = task_content['action']
params = task_content['params']
logger.info(f"执行任务: {action}")
# 根据 action 调用不同的处理函数
handlers = {
'code_review': self.handle_code_review,
'data_analysis': self.handle_data_analysis,
'file_operation': self.handle_file_operation,
}
handler = handlers.get(action, self.handle_default)
return handler(params)
def handle_code_review(self, params):
# 调用 OpenClaw agent
result = subprocess.run(
['openclaw', 'agent', '--agent', 'yunce',
'--message', f"请审查代码仓库 {params.get('repo')}"],
capture_output=True, text=True
)
return {'output': result.stdout, 'status': 'success'}
def handle_default(self, params):
return {'message': f'Unknown action: {params}'}
def on_message(self, ch, method, properties, body):
"""消息处理回调"""
try:
message = json.loads(body)
task_id = message['taskId']
logger.info(f"收到任务: {task_id}")
# 执行任务
result = self.execute_task(message['content'])
# 发送结果
self.send_result(task_id, result)
# ACK 确认
ch.basic_ack(delivery_tag=method.delivery_tag)
except Exception as e:
logger.error(f"任务执行失败: {e}")
ch.basic_nack(delivery_tag=method.delivery_tag, requeue=True)
def send_result(self, task_id, result):
"""发送结果到星枢"""
result_message = {
"taskId": task_id,
"type": "result",
"source": self.agent_name,
"target": "xingyao",
"status": "success",
"content": result,
"metadata": {
"completedAt": datetime.now().isoformat() + "Z"
}
}
self.channel.basic_publish(
exchange='result_exchange',
routing_key=f'result.{self.agent_name}',
body=json.dumps(result_message),
properties=pika.BasicProperties(delivery_mode=2)
)
def start_listening(self):
"""开始监听任务队列"""
self.channel.basic_qos(prefetch_count=1)
self.channel.basic_consume(
queue=f'queue.{self.agent_name}',
on_message_callback=self.on_message
)
logger.info(f"🤖 Agent [{self.agent_name}] 开始监听任务队列...")
self.channel.start_consuming()
# 使用示例
if __name__ == '__main__':
import sys
agent_name = sys.argv[1] if len(sys.argv) > 1 else 'yunce'
listener = AgentListener(agent_name)
listener.start_listening()
```
### 5.5 星枢结果收集模块
```python
# star_receiver.py
import pika
import json
from datetime import datetime
class StarResultReceiver:
def __init__(self, rabbitmq_host='localhost'):
self.connection = pika.BlockingConnection(
pika.ConnectionParameters(host=rabbitmq_host)
)
self.channel = self.connection.channel()
self.pending_tasks = {} # 跟踪待处理任务
def on_message(self, ch, method, properties, body):
message = json.loads(body)
if message['type'] == 'result':
task_id = message['taskId']
status = message['status']
result = message['content']
print(f"📋 任务完成: {task_id}")
print(f" 状态: {status}")
print(f" 结果: {result}")
# 更新任务状态
if task_id in self.pending_tasks:
self.pending_tasks[task_id]['status'] = 'completed'
self.pending_tasks[task_id]['result'] = result
# 可以触发后续任务
self.handle_next_action(message)
elif message['type'] == 'heartbeat':
print(f"💓 Agent 心跳: {message['agent']} - {message['status']}")
ch.basic_ack(delivery_tag=method.delivery_tag)
def handle_next_action(self, message):
"""根据结果触发后续动作"""
# 示例:根据结果发送新任务
pass
def start_listening(self):
self.channel.basic_qos(prefetch_count=1)
self.channel.basic_consume(
queue='queue.star',
on_message_callback=self.on_message
)
print("🌟 星枢开始监听任务结果...")
self.channel.start_consuming()
# 使用示例
if __name__ == '__main__':
receiver = StarResultReceiver()
receiver.start_listening()
```
---
## 六、监控界面
### 6.1 RabbitMQ 管理界面
```
URL: http://localhost:15672
用户名: admin
密码: your_password
可查看:
- 队列状态 (Messages, Ready, Unacked)
- 连接数
- 消息流速
- 交换机绑定
```
### 6.2 自定义监控面板 (可选)
```python
# 简单的任务状态查询
def get_task_status(task_id):
# 可以通过 REST API 查询
# 或者维护一个 Redis 状态缓存
pass
def list_pending_tasks():
# 列出所有待处理任务
pass
def list_agent_status():
# 列出所有 Agent 状态
pass
```
---
## 七、完整工作流程示例
```
┌─────────────────────────────────────────────────────────────────────────┐
│ 完整示例:代码审查任务 │
└─────────────────────────────────────────────────────────────────────────┘
[用户]
│ "星枢,帮我审查 my-project 的 main 分支"
[星枢 - 意图理解]
│ action: code_review
│ target: yunce
│ params: {repo: "my-project", branch: "main"}
[星枢 - 任务下发]
│ RabbitMQ: task.yunce
│ taskId: task_20260317_001
[RabbitMQ] (持久化消息)
[Yunce Agent - 任务监听]
│ 收到任务 -> 执行 code_review
│ 调用: openclaw agent --agent yunce --message "审查 my-project"
[Yunce Agent - 返回结果]
│ RabbitMQ: result.yunce
│ status: success, findings: [...]
[RabbitMQ]
│ result.# -> queue.star
[星枢 - 结果收集]
│ 接收结果 -> 更新状态
│ 格式化输出 -> 推送给用户
[用户]
│ 收到审查报告
```
---
## 八、部署建议
### 8.1 生产环境配置
```yaml
# docker-compose.yml
version: '3.8'
services:
rabbitmq:
image: rabbitmq:3.12-management
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
volumes:
- rabbitmq_data:/var/lib/rabbitmq
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "check_running"]
interval: 30s
volumes:
rabbitmq_data:
```
### 8.2 安全建议
1. **认证**:启用 RabbitMQ 用户认证
2. **SSL/TLS**:生产环境启用 amqps
3. **VHost**:不同项目使用不同 vhost
4. **权限**:最小权限原则
---
## 九、故障处理
| 故障场景 | 解决方案 |
|----------|----------|
| Agent 宕机 | 任务自动重新入队 (requeue) |
| RabbitMQ 宕机 | 消息持久化,重启后恢复 |
| 任务超时 | 设置 TTL自动移到死信队列 |
| 消息积压 | 监控队列长度,扩展消费者 |
---
## 十、进阶功能
### 10.1 延迟任务
```python
# 延迟队列:让任务在指定时间后执行
def send_delayed_task(target, action, delay_seconds):
# 使用 RabbitMQ 延迟插件 或 配合 Redis 实现
pass
```
### 10.2 优先级队列
```python
# 高优先级任务优先处理
channel.queue_declare(queue='queue.yunce', arguments={
'x-max-priority': 10
})
```
### 10.3 任务超时
```python
# 消息 TTL + 死信队列
channel.queue_declare(
queue='queue.yunce',
arguments={
'x-message-ttl': 3600000, # 1小时
'x-dead-letter-exchange': 'dlx_exchange'
}
)
```
---
## 附录:文件清单
| 文件 | 说明 |
|------|------|
| `setup_rabbitmq.py` | RabbitMQ 初始化脚本 |
| `star_sender.py` | 星枢任务下发模块 |
| `agent_listener.py` | Agent 任务监听模块 |
| `star_receiver.py` | 星枢结果收集模块 |
| `docker-compose.yml` | 一键部署配置 |
---
*文档版本: 1.0*
*创建时间: 2026-03-17*
*作者: 云策*

View File

@@ -0,0 +1,389 @@
# OpenClaw 技能笔记
> 创建时间: 2026-03-19
> 整理者: 星辉
---
## 📋 技能清单总览
本文档记录 OpenClaw 中所有可用的技能Skills
---
## 🔐 账号与密码
### 1. 1password
- **描述:** 1Password CLI (op) 工具
- **用途:** 安装CLI、桌面应用集成、单/多账户登录、读写/运行密码
- **路径:** `~/.agents/skills/1password-1.0.1/SKILL.md`
---
## 🍎 Apple 生态
### 2. apple-notes
- **描述:** Apple Notes 管理 via `memo` CLI
- **用途:** 创建、查看、编辑、删除、搜索、移动、导出笔记
- **路径:** `~/.openclaw/skills/apple-notes/SKILL.md`
### 3. apple-reminders
- **描述:** Apple Reminders via `remindctl` CLI
- **用途:** 列出、添加、编辑、完成、删除提醒支持列表、日期过滤、JSON/纯文本输出
- **路径:** `~/.openclaw/skills/apple-reminders/SKILL.md`
### 4. accli
- **描述:** Apple Calendar CLI
- **用途:** 列出日历、查看事件、创建/更新/删除日历事件、检查空闲时间
- **触发词:** "查看日历"、"安排会议"、"我今天有什么安排"、"明天我有空吗"
- **路径:** `~/.openclaw/skills/accli/SKILL.md`
---
## ☁️ 云服务与协作
### 5. gog
- **描述:** Google Workspace CLI
- **用途:** Gmail、日历、云盘、联系人、表格、文档
- **路径:** `~/.agents/skills/gog/SKILL.md`
### 6. feishu-chat-history
- **描述:** 获取飞书群聊历史
- **用途:** 读取、回顾、总结飞书群聊消息
- **触发词:** "看群聊记录"、"群里聊了啥"、"chat history"
- **路径:** `~/.agents/skills/feishu-chat-history/SKILL.md`
### 7. feishu-cron-reminder
- **描述:** 飞书定时提醒
- **用途:** 创建定时发送消息到飞书聊天的cron任务
- **触发词:** "飞书定时提醒"、"定时任务发飞书"、"每小时提醒"
- **路径:** `~/.agents/skills/feishu-cron-reminder/SKILL.md`
### 8. feishu-doc
- **描述:** 飞书文档获取
- **用途:** 获取飞书Wiki、文档、表格、Bitable内容自动转换为Markdown
- **路径:** `~/.agents/skills/feishu-doc-1.2.7/SKILL.md`
### 9. feishu-perm
- **描述:** 飞书权限管理
- **用途:** 文档和文件的分享、权限、协作者管理
- **触发词:** 分享、权限、协作者
- **路径:** `~/.agents/skills/feishu-perm/SKILL.md`
### 10. feishu-screenshot
- **描述:** 截屏并发送到飞书
- **用途:** 截取屏幕并通过飞书分享
- **触发词:** "截个屏发飞书"、"截屏"、"screenshot"
- **路径:** `~/.agents/skills/feishu-screenshot/SKILL.md`
### 11. feishu-send-file
- **描述:** 发送文件到飞书
- **用途:** 通过REST API发送文件、附件到飞书群或个人
- **触发词:** "发文件到飞书"、"send file to feishu"
- **路径:** `~/.agents/skills/feishu-send-file/SKILL.md`
---
## 💬 通讯工具
### 12. slack
- **描述:** Slack 控制
- **用途:** 通过 slack 工具控制Slack包括消息反应、pin/unpin
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/slack/SKILL.md`
---
## 🌐 网络与浏览器
### 13. agent-browser
- **描述:** 无头浏览器自动化CLI
- **用途:** 为AI代理优化的浏览器自动化支持无障碍树快照和基于引用的元素选择
- **路径:** `~/.openclaw/skills/agent-browser-clawdbot/SKILL.md`
### 14. tavily-search
- **描述:** Tavily 搜索API
- **用途:** 网页搜索替代Brave返回相关结果标题、URL、摘要
- **路径:** `~/.openclaw/skills/openclaw-tavily-search/SKILL.md`
---
## 🛠️ 开发工具
### 15. Docker
- **描述:** Docker 容器、镜像、Compose、网络、卷、调试
- **用途:** Docker相关操作、生产环境加固、命令保持稳定
- **路径:** `~/.openclaw/skills/docker/SKILL.md`
### 16. Code
- **描述:** 编码工作流
- **用途:** 规划、实现、验证、测试的清洁软件开发流程
- **路径:** `~/.agents/skills/code-1.0.4/SKILL.md`
### 17. git-essentials
- **描述:** 基础Git命令
- **用途:** 版本控制、分支、协作
- **路径:** `~/.agents/skills/git-essentials-1.0.0/SKILL.md`
### 18. frontend-design
- **描述:** 前端界面设计
- **用途:** 创建独特、生产级的前端界面,高设计质量
- **路径:** `~/.agents/skills/frontend-design-3-0.1.0/SKILL.md`
### 19. security-auditor
- **描述:** 安全审计
- **用途:** 代码安全漏洞审查、身份验证流程、OWASP Top 10审计、CORS/CSP配置、敏感数据处理、输入验证、SQL注入预防、XSS保护
- **路径:** `~/.agents/skills/security-auditor-1.0.0/SKILL.md`
### 20. architecture-designer
- **描述:** 系统架构设计
- **用途:** 设计新系统架构、审查现有设计、架构决策、ADRs、可扩展性规划
- **路径:** `~/.agents/skills/architecture-designer-0.1.0/SKILL.md`
### 21. supabase-postgres-best-practices
- **描述:** Supabase Postgres 最佳实践
- **用途:** Postgres性能优化和最佳实践
- **路径:** `~/.agents/skills/supabase-postgres-best-practices/SKILL.md`
### 22. tmux
- **描述:** Tmux 远程控制
- **用途:** 远程控制tmux会话发送按键和抓取面板输出
- **路径:** `~/.agents/skills/tmux-1.0.0/SKILL.md`
---
## 📝 笔记与知识管理
### 23. obsidian
- **描述:** Obsidian 保险库
- **用途:** 处理Obsidian纯文本Markdown笔记通过obsidian-cli自动化
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/obsidian/SKILL.md`
### 24. ontology
- **描述:** 知识图谱
- **用途:** 结构化代理记忆和可组合技能,创建/查询实体Person、Project、Task、Event、Document链接相关对象执行约束多步骤动作规划
- **触发词:** "记住"、"关于X我知道什么"、"链接X到Y"、"显示依赖"
- **路径:** `~/.agents/skills/ontology/SKILL.md`
### 25. Memory
- **描述:** 无限有序记忆
- **用途:** 补充代理内置记忆的无限分类存储
- **路径:** `~/.agents/skills/memory-1.0.2/SKILL.md`
### 26. obsidian-ontology-sync
- **描述:** Obsidian与 Ontology 双向同步
- **用途:** 从markdown自动提取实体和关系维护本体图谱提供反馈改进笔记结构
- **路径:** `~/.agents/skills/obsidian-ontology-sync-1.0.1/SKILL.md`
---
## 🎨 内容创作
### 27. blog-writer
- **描述:** 博客文章写作
- **用途:** 以作家独特风格写博客文章、长篇内容从研究到Notion发布的完整工作流
- **路径:** `~/.agents/skills/blog-writer-0.1.0/SKILL.md`
### 28. copywriting
- **描述:** 文案写作
- **用途:** 为落地页、邮件、广告、销售页、营销材料写 persuasive copy标题、CTA、产品描述、广告文案、邮件序列
- **触发词:** "写文案"、"copywriting"、"landing page copy"、"headline"
- **路径:** `~/.agents/skills/copywriting-0.1.0/SKILL.md`
### 29. content-strategy
- **描述:** 内容营销策略
- **用途:** 为solopreneur业务构建和执行内容营销策略
- **触发词:** "内容策略"、"content marketing"、"内容计划"、"内容日历"
- **路径:** `~/.agents/skills/content-strategy-0.1.0/SKILL.md`
### 30. seo-content-writer
- **描述:** SEO内容写作
- **用途:** 写SEO优化内容、创建博客文章、文章
- **触发词:** "写SEO内容"、"创建博客文章"、"内容写作"
- **路径:** `~/.agents/skills/seo-content-writer-2.0.0/SKILL.md`
### 31. social-content
- **描述:** 社交媒体内容
- **用途:** 创建、安排、优化LinkedIn、Twitter/X、Instagram、TikTok、Facebook等内容
- **触发词:** "LinkedIn post"、"Twitter thread"、"社交媒体"、"内容日历"
- **路径:** `~/.agents/skills/social-content-generator-0.1.0/SKILL.md`
### 32. Social Media Scheduler
- **描述:** 社交媒体排程
- **用途:** 计划、起草、跨平台组织社交媒体内容,创建内容日历
- **路径:** `~/.agents/skills/social-media-scheduler-1.0.0/SKILL.md`
### 33. research-paper-writer
- **描述:** 研究论文写作
- **用途:** 创建遵循IEEE/ACM格式标准的正式学术论文
- **路径:** `~/.agents/skills/research-paper-writer-0.1.0/SKILL.md`
### 34. Powerpoint / PPTX
- **描述:** PowerPoint 演示文稿
- **用途:** 创建、检查、编辑Microsoft PowerPoint演示文稿可靠的布局、模板、占位符、笔记、图表
- **路径:** `~/.openclaw/skills/powerpoint-pptx/SKILL.md`
---
## 📊 商业与分析
### 35. Market Research
- **描述:** 市场研究
- **用途:** 规模市场、分析竞争对手、用实际框架和数据源验证机会
- **路径:** `~/.agents/skills/market-research-1.0.0/SKILL.md`
### 36. interview-designer
- **描述:** 面试设计
- **用途:** 分析简历,使用基于证据的方法设计面试策略
- **路径:** `~/.agents/skills/interview-designer-1.0.0/SKILL.md`
### 37. backtest-expert
- **描述:** 回测专家
- **用途:** 系统交易策略回测的专家指导
- **触发词:** 回测、策略验证、鲁棒性测试、避免过度拟合
- **路径:** `~/.agents/skills/backtest-expert-0.1.0/SKILL.md`
### 38. automation-workflows
- **描述:** 自动化工作流
- **用途:** 设计和实施自动化工作流以节省时间和扩展运营
- **触发词:** "自动化"、"automation workflow"、"save time"、"reduce manual work"
- **路径:** `~/.agents/skills/automation-workflows-0.1.0/SKILL.md`
---
## 🧠 AI 代理能力
### 39. proactive-agent-lite
- **描述:** 主动代理Lite
- **用途:** 将AI代理从任务追随者转变为积极主动的伙伴具有记忆架构、reverse prompting和自愈模式
- **路径:** `~/.openclaw/skills/proactive-agent-lite/SKILL.md`
### 40. self-improvement
- **描述:** 自我改进
- **用途:** 捕获学习、错误、纠正以实现持续改进
- **触发词:** 命令/操作失败、用户纠正、请求不存在的功能、外部API失败、知识过时
- **路径:** `~/.openclaw/skills/self-improving-agent/SKILL.md`
### 41. self-reflection
- **描述:** 自我反思
- **用途:** 定期自我反思,分析近期会话,写简洁可行的见解
- **路径:** `~/.agents/skills/agent-self-reflection-1.0.0/SKILL.md`
### 42. brainstorming
- **描述:** 头脑风暴
- **用途:** 在任何创造性工作之前必须使用 - 创建功能、构建组件、添加功能或修改行为
- **路径:** `~/.agents/skills/brainstorming-0.1.0/SKILL.md`
### 43. writing-plans
- **描述:** 写作计划
- **用途:** 有规范/需求的多步骤任务规范
- **路径:** `~/.agents/skills/writing-plans-0.1.0/SKILL.md`
### 44. executing-plans
- **描述:** 执行计划
- **用途:** 在单独会话中执行包含审查检查点的书面实施计划
- **路径:** `~/.agents/skills/executing-plans-0.1.0/SKILL.md`
### 45. task-summary
- **描述:** 任务总结
- **用途:** 任务完成后生成结构化总结,记录目标、步骤、结果、经验教训
- **路径:** `~/.openclaw/skills/task-summary/SKILL.md`
---
## 🔧 工具与系统
### 46. clawhub
- **描述:** ClawHub CLI
- **用途:** 从clawhub.com搜索、安装、更新、发布代理技能
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/clawhub/SKILL.md`
### 47. find-skills
- **描述:** 发现技能
- **用途:** 当用户询问"如何做X"、"找X的技能"、"有能...的技能吗"时帮助用户发现和安装技能
- **路径:** `~/.agents/skills/find-skills/SKILL.md`
### 48. skill-creator
- **描述:** 技能创建器
- **用途:** 创建有效技能的指南
- **路径:** `~/.agents/skills/skill-creator-0.1.0/SKILL.md`
### 49. skill-vetter
- **描述:** 技能审核
- **用途:** AI代理的安全优先技能审核安装来自ClawHub、GitHub或其他来源的技能之前检查
- **路径:** `~/.agents/skills/skill-vetter-1.0.0/SKILL.md`
### 50. clawdefender
- **描述:** 安全防御
- **用途:** AI代理的安全扫描器和输入清理器检测prompt注入、命令注入、SSRF、凭证外泄、路径遍历攻击
- **路径:** `~/.agents/skills/clawdefender-1/SKILL.md`
### 51. opencode-controller
- **描述:** Opencode 控制器
- **用途:** 通过斜杠命令控制Opencode管理会话、选择模型、切换代理
- **路径:** `~/.agents/skills/opencode-controller-1.0.0/SKILL.md`
---
## 🌤️ 生活与娱乐
### 52. weather
- **描述:** 天气
- **用途:** 通过wttr.in或Open-Meteo获取当前天气和预报
- **触发词:** 天气、温度、预报
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/weather/SKILL.md`
### 53. video-frames
- **描述:** 视频帧提取
- **用途:** 使用ffmpeg从视频提取帧或短片段
- **路径:** `~/.agents/skills/video-frames-1.0.0/SKILL.md`
### 54. FFmpeg Video Editor
- **描述:** FFmpeg 视频编辑器
- **用途:** 从自然语言视频编辑请求生成FFmpeg命令 - 剪切、裁剪、转换、压缩、改变宽高比、提取音频等
- **路径:** `~/.agents/skills/ffmpeg-video-editor-1.0.0/SKILL.md`
### 55. UI/UX Pro Max
- **描述:** UI/UX 设计
- **用途:** UI/UX设计智能和实现指导构建精美界面
- **路径:** `~/.agents/skills/ui-ux-pro-max-0.1.0/SKILL.md`
---
## 🛡️ 系统与运维
### 56. healthcheck
- **描述:** 主机安全检查
- **用途:** 主机安全加固和风险容忍配置
- **触发词:** 安全审计、防火墙/SSH/更新加固、风险态势、暴露审查、OpenClaw cron调度
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/healthcheck/SKILL.md`
### 57. node-connect
- **描述:** OpenClaw 节点连接
- **用途:** 诊断Android、iOS、macOS companion app的配对失败
- **触发词:** QR/设置码手动连接失败、本地Wi-Fi正常但VPS/tailnet不正常、配对要求、未经授权、bootstrap token无效/过期
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/node-connect/SKILL.md`
---
## 📊 技能分类汇总
| 分类 | 数量 | 技能 |
|------|------|------|
| Apple 生态 | 3 | apple-notes, apple-reminders, accli |
| 云服务/协作 | 7 | gog, feishu-*(6个) |
| 通讯工具 | 1 | slack |
| 网络/浏览器 | 2 | agent-browser, tavily-search |
| 开发工具 | 8 | Docker, Code, git-essentials, frontend-design, security-auditor, architecture-designer, supabase-postgres-best-practices, tmux |
| 笔记/知识管理 | 5 | obsidian, ontology, Memory, obsidian-ontology-sync, task-summary |
| 内容创作 | 8 | blog-writer, copywriting, content-strategy, seo-content-writer, social-content, Social Media Scheduler, research-paper-writer, Powerpoint/PPTX |
| 商业/分析 | 4 | Market Research, interview-designer, backtest-expert, automation-workflows |
| AI代理能力 | 7 | proactive-agent-lite, self-improvement, self-reflection, brainstorming, writing-plans, executing-plans, task-summary |
| 工具/系统 | 6 | clawhub, find-skills, skill-creator, skill-vetter, clawdefender, opencode-controller |
| 生活/娱乐 | 4 | weather, video-frames, FFmpeg Video Editor, UI/UX Pro Max |
| 系统/运维 | 2 | healthcheck, node-connect |
**总计: 57 个技能**
---
*笔记创建于 2026-03-19 by 星辉*

View File

@@ -0,0 +1,446 @@
# 星枢 Agent 任务解耦技术方案
> 基于 RabbitMQ 的分布式任务队列架构
> 版本: 2.1 (已更新)
> 最后更新: 2026-03-17
---
## 一、概述
### 背景
当前星枢(主 Agent与其他 Agent 的通信方式:
| 方式 | 命令 | 局限 |
| --- | ---------------------------------------------------------- | ---- |
| 本地 | `openclaw agent --agent xingyao --message "..." --deliver` | 同步等待 |
| 远程 | `ssh ubuntu2 "openclaw agent --agent yunce --message ..."` | 串行阻塞 |
### 目标
- **异步执行**:任务下发不等待结果
- **任务持久化**:重启不丢失
- **可监控**:实时查看任务状态
- **可扩展**:支持多 Agent 并行
### 讨论结论
**技术选型**: RabbitMQ
**Exchange 命名**: `task_exchange` / `result_exchange`
---
## 二、星枢调度 Agent 列表
根据 `星枢调度Agent列表.md`,星枢需要调度的 Agent 包括:
### Mac Mini中央控制节点
| Agent ID | 角色 | 职责 |
|----------|------|------|
| xingyao | 星曜 | IT 管家 / 运维管理 |
| xinghui | 星辉 | 个人助理 / 日程管理 |
### Ubuntu2开发服务器
| Agent ID | 角色 | 职责 |
|----------|------|------|
| yunhan | 云瀚 | 监控官 / 系统监控 |
| yunce | 云策 | 架构师 / 技术方案 |
| yunjiang | 云匠 | 工匠 / 代码开发 |
| yunzhi | 云织 | 自动化师 / CI/CD |
### Ubuntu1准生产服务器
| Agent ID | 角色 | 职责 |
|----------|------|------|
| fengheng | 风衡 | 质检官 / QA测试 |
| fengchi | 风驰 | 执行者 / 业务流程 |
| fengji | 风纪 | 审计官 / 规则审计 |
**总计**: 9 个子 Agent
---
## 三、架构设计
### 3.1 整体架构
```
┌─────────────────────────────────────────────────────────────────────────┐
│ 用户 │
│ (Telegram/Discord) │
└─────────────────────────────────┬───────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 星枢 (xingshu) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 意图理解 │ │ 任务分解 │ │ 队列管理 │ │ 结果聚合 │ │
│ │ intent_ │ │ message_ │ │ rabbitmq_ │ │ result_ │ │
│ │ parser.py │ │ builder.py │ │ sender.py │ │ receiver.py│ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────┬───────────────────────────────────────┘
┌─────────────┴─────────────┐
│ RabbitMQ 集群 │
│ (task_exchange) │
└─────────────┬─────────────┘
┌───────────┬───────────┼───────────┬───────────┐
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌──────────┐┌──────────┐┌──────────┐┌──────────┐┌──────────┐
│ tasks ││ tasks ││ tasks ││ tasks ││ tasks │
│ .xingyao ││ .xinghui ││ .yunhan ││ .yunce ││.yunjiang │
└────┬─────┘└────┬─────┘└────┬─────┘└────┬─────┘└────┬─────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
[星曜] [星辉] [云瀚] [云策] [云匠]
│ │ │ │ │
└───────────┴───────────┼───────────┴───────────┘
┌────────────┴────────────┐
│ result_exchange │
│ (result.#) │
└────────────┬────────────┘
┌─────────────────────┐
│ results.xingshu │ ← 星枢监听
└─────────────────────┘
```
### 3.2 消息流设计
```
┌──────────────────────────────────────────────────────────────────────────┐
│ 消息生命周期 │
└──────────────────────────────────────────────────────────────────────────┘
[1] 任务下发 [5] 结果处理
│ ▲
▼ │
┌────────┐ ┌────────────┐ ┌───────────┐ ┌───────────┐ │
│ 星枢 │───▶│ RabbitMQ │───▶│ Agent N │───▶│ RabbitMQ │──────┐
│创建任务 │ │ (持久化) │ │ 执行任务 │ │ (结果队列) │ │
└────────┘ └────────────┘ └───────────┘ └───────────┘ │
│ │ │
│ [4] ACK 确认 │
│ │ │
[2] 任务入队 │ │
(可选: 延迟队列) ▼ │
│ ┌───────────┐ │
└─────────────▶│ 状态变更 │ │
│ (处理中→完成) │
└───────────┘ │
[3] Agent 消费任务
```
---
## 四、Exchange & Queue 设计
### 4.1 Exchanges
| Exchange | 类型 | 用途 | Routing Key |
|----------|------|------|-------------|
| `task_exchange` | topic | 任务下发 | `task.{agent}` |
| `result_exchange` | topic | 结果收集 | `result.{agent}` |
### 4.2 Queues
| Queue | 消费者 | Agent 角色 |
|-------|--------|------------|
| `tasks.xingyao` | xingyao | 星曜 - IT管家 |
| `tasks.xinghui` | xinghui | 星辉 - 个人助理 |
| `tasks.yunhan` | yunhan | 云瀚 - 监控官 |
| `tasks.yunce` | yunce | 云策 - 架构师 |
| `tasks.yunjiang` | yunjiang | 云匠 - 工匠 |
| `tasks.yunzhi` | yunzhi | 云织 - 自动化师 |
| `tasks.fengheng` | fengheng | 风衡 - 质检官 |
| `tasks.fengchi` | fengchi | 风驰 - 执行者 |
| `tasks.fengji` | fengji | 风纪 - 审计官 |
| `results.xingshu` | xingshu | 星枢 - 结果聚合 |
### 4.3 Routing 规则
```
任务下发:
task_exchange
├─→ task.xingyao → tasks.xingyao
├─→ task.xinghui → tasks.xinghui
├─→ task.yunhan → tasks.yunhan
├─→ task.yunce → tasks.yunce
├─→ task.yunjiang → tasks.yunjiang
├─→ task.yunzhi → tasks.yunzhi
├─→ task.fengheng → tasks.fengheng
├─→ task.fengchi → tasks.fengchi
└─→ task.fengji → tasks.fengji
结果收集:
result_exchange
└─→ result.# → results.xingshu (星枢)
```
---
## 五、消息格式定义
### 5.1 任务消息 (Task Message)
```json
{
"taskId": "task_20260317_001",
"type": "task",
"source": "xingshu",
"target": "yunce",
"priority": "high",
"content": {
"action": "code_review",
"params": {
"repo": "my-project",
"branch": "feature/login"
}
},
"metadata": {
"createdAt": "2026-03-17T10:30:00Z",
"expireAt": "2026-03-17T11:30:00Z",
"retryCount": 0,
"maxRetries": 3
}
}
```
### 5.2 结果消息 (Result Message)
```json
{
"taskId": "task_20260317_001",
"type": "result",
"source": "yunce",
"target": "xingshu",
"status": "success",
"content": {
"summary": "代码审查完成",
"findings": [
{"severity": "warning", "message": "建议添加参数校验"}
],
"output": "/path/to/report.md"
},
"metadata": {
"completedAt": "2026-03-17T10:35:00Z",
"duration": 300
}
}
```
### 5.3 心跳消息 (Heartbeat Message)
```json
{
"type": "heartbeat",
"agent": "yunce",
"status": "idle",
"currentTask": null,
"timestamp": "2026-03-17T10:30:00Z"
}
```
---
## 六、星枢指令解析
### 6.1 意图到 Agent 的映射
| 用户指令 | action | target | 执行 Agent |
|----------|--------|--------|-----------|
| 运维/服务器管理 | ops | xingyao | 星曜 |
| 日程/个人事务 | personal | xinghui | 星辉 |
| 监控巡检 | monitor | yunhan | 云瀚 |
| 架构/方案 | architecture | yunce | 云策 |
| 代码开发 | coding | yunjiang | 云匠 |
| CI/CD/自动化 | automation | yunzhi | 云织 |
| QA测试 | qa_test | fengheng | 风衡 |
| 业务执行 | execute | fengchi | 风驰 |
| 审计/合规 | audit | fengji | 风纪 |
### 6.2 async-task-scheduling 支持的 action
| action | target | 说明 |
|--------|--------|------|
| ops | xingyao | IT 运维任务 |
| personal | xinghui | 个人事务 |
| monitor | yunhan | 系统监控 |
| architecture | yunce | 技术方案 |
| coding | yunjiang | 代码开发 |
| automation | yunzhi | 自动化 |
| qa_test | fengheng | QA 测试 |
| execute | fengchi | 业务执行 |
| audit | fengji | 审计检查 |
| code_review | yunce | 代码审查 (快捷) |
| deploy | yunzhi | 部署服务 |
---
## 七、RabbitMQ 初始化步骤
### 7.1 环境信息
| 项目 | 值 |
|------|-----|
| **IP 地址** | 192.168.3.189 |
| **AMQP 端口** | 5672 |
| **管理界面** | http://192.168.3.189:15672/ |
| **用户名** | guest |
| **密码** | guest |
### 7.2 一键初始化命令
```bash
python3 << 'EOF'
import pika
connection = pika.BlockingConnection(
pika.ConnectionParameters(
host='192.168.3.189',
port=5672,
credentials=pika.PlainCredentials('guest', 'guest')
)
)
channel = connection.channel()
# ========== 1. 创建 Exchange ==========
channel.exchange_declare(exchange='task_exchange', exchange_type='topic', durable=True)
channel.exchange_declare(exchange='result_exchange', exchange_type='topic', durable=True)
print("✅ Exchanges: task_exchange, result_exchange")
# ========== 2. 创建任务队列 (9个子Agent) ==========
agents = [
'xingyao', # 星曜 - IT管家
'xinghui', # 星辉 - 个人助理
'yunhan', # 云瀚 - 监控官
'yunce', # 云策 - 架构师
'yunjiang', # 云匠 - 工匠
'yunzhi', # 云织 - 自动化师
'fengheng', # 风衡 - 质检官
'fengchi', # 风驰 - 执行者
'fengji', # 风纪 - 审计官
]
for agent in agents:
queue_name = f'tasks.{agent}'
channel.queue_declare(queue=queue_name, durable=True)
channel.queue_bind(
exchange='task_exchange',
queue=queue_name,
routing_key=f'task.{agent}'
)
print(f" 📬 {queue_name} -> task.{agent}")
# ========== 3. 创建结果聚合队列 ==========
channel.queue_declare(queue='results.xingshu', durable=True)
channel.queue_bind(
exchange='result_exchange',
queue='results.xingshu',
routing_key='result.#'
)
print(" 📬 results.xingshu -> result.#")
connection.close()
print("\n🎉 RabbitMQ 初始化完成!")
EOF
```
---
## 八、async-task-scheduling 技能
### 8.1 技能概述
**技能名称**: async-task-scheduling (异步任务调度)
**用途**: 星枢专用技能,用于解析用户指令并通过 RabbitMQ 异步调度子 Agent
**技能位置**:
```
~/Obsidian/shenwei/openclaw/yunce/async-task-scheduling/
```
### 8.2 文件结构
```
async-task-scheduling/
├── SKILL.md # 技能说明
└── scripts/
├── __init__.py
├── intent_parser.py # 意图解析 (action → target 映射)
├── message_builder.py # 消息构建 (JSON 格式)
├── rabbitmq_sender.py # RabbitMQ 发送
└── agent_listener.py # 子 Agent 监听 (可选)
```
### 8.3 使用方法
```python
from scripts import IntentParser, MessageBuilder, RabbitMQSender
# 1. 解析用户指令
parser = IntentParser()
intent = parser.parse_intent("帮我审查 my-project 仓库")
# 2. 构建消息
builder = MessageBuilder(source="xingshu")
message = builder.build_task_message(intent)
# 3. 发送到 RabbitMQ
sender = RabbitMQSender()
task_id = sender.send_task(message)
sender.close()
return f"✅ 任务已下发: {task_id}{intent['target']}"
```
### 8.4 配置
RabbitMQ 连接配置 (rabbitmq_sender.py):
```python
DEFAULT_CONFIG = {
"host": "192.168.3.189",
"port": 5672,
"username": "guest",
"password": "guest",
"exchange": "task_exchange",
"result_exchange": "result_exchange"
}
```
---
## 九、待执行事项
- [ ] 确认设计后,初始化 RabbitMQ
- [ ] 为星枢 (xingshu) 加载 async-task-scheduling 技能
- [ ] 子 Agent 监听队列并消费任务
- [ ] 端到端测试
---
## 十、相关文件
| 文件 | 位置 |
|------|------|
| 星枢调度 Agent 列表 | `~/Obsidian/shenwei/openclaw/xingshu/星枢调度Agent列表.md` |
| 异步任务调度技能 | `~/Obsidian/shenwei/openclaw/yunce/async-task-scheduling/` |
---
*文档版本: 2.1*
*更新日期: 2026-03-17*
*作者: 云策*

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,219 @@
#ai #coze
### coze平台demo国内版
1. 点击邀请链接,加入团队空间(不需要重复点击,点过一次之后就成功加入了)
2. 点击Agent的链接直接到达Agent页面可直接对话体验也可点击右上角创建副本后进行改造
**邀请链接**:邀请你加入我的扣子空间"0220-Prompt & RAG & Function Call",链接将在 2025-06-29 11:28 过期
👉🏻 https://www.coze.cn/invite/023HTTh566vNqnumiPtx?type=1
**Agent链接**
- 知乎财报解读_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7473176769286766632
- SONY门店店员_Chao https://www.coze.cn/space/7433704316877520906/bot/7473182193574363136给回答打分的提示词[Sony店员沟通测试prompt](https://ncnmfdan85y5.feishu.cn/wiki/EMrVw2SKOixrIekIYMpcz8fxnKP?from=from_copylink)
- 对话内容解析_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7473193418752622592对话内容原始输入数据[门店店员顾客沟通对话数据](https://ncnmfdan85y5.feishu.cn/wiki/Da2bwqF4ei7IBSkGwRucebRynBh?from=from_copylink)
- 医疗分诊助手_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7473176678181830697
- 询问天气Call工具_Yuchuan: https://www.coze.cn/space/7433704316877520906/bot/7496391362737815603
- 故事合成Call工具_Yuchuan: https://www.coze.cn/space/7433704316877520906/bot/7496583684271767592
- 企业办事助手_Yuchuan: https://www.coze.cn/space/7433704316877520906/bot/7498109970719227938
- 骑手招聘助手_Yuchuan: https://www.coze.cn/space/7433704316877520906/bot/7496616735870140467
- 表格问答助手_插件版_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7477473633594720292
- 表格问答助手_代码版_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7477473845952790568
- 表格知识库_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7477473355403345931
- 滴滴计费规则解答_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7473180407505633332
- 滴滴计费解答_WorkFlow_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7477475272074412059
- SONY店员_WorkFlow_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7501577412447567909
- 骑手招聘助手_WorkFlow_Chaohttps://www.coze.cn/space/7433704316877520906/bot/7478263479720230923
- AutoGPT的主prompt[文件自动处理AutoGPT_主Prompt](https://ncnmfdan85y5.feishu.cn/wiki/UVymwjT9UiCaGJkt9Uvcq7ZlnFc)
- 在线问诊https://www.coze.cn/space/7433704316877520906/bot/7480801328214736908
- 医疗demo
- 影像图片识别demo数据Excel[医疗图片识别](https://ncnmfdan85y5.feishu.cn/wiki/JxsMwvdkUibvV9kQsx6cbfQFnCh?from=from_copylink)代码地址https://github.com/BananaResearch/medical_image_recognition/tree/main
- 医疗问诊案例:模型参考资料:[GPT-SoVITS](https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e)
- 金融行业 客户分层营销助手https://www.coze.cn/space/7433704316877520906/bot/7505209120241631243
- 金融行业 智能客服Agenthttps://www.coze.cn/space/7433704316877520906/bot/7505212240938418210
- [金融行业案例 老师课堂笔记](https://ncnmfdan85y5.feishu.cn/wiki/CNO1w9yGbilj2nk4KFicTIOtnSd)
- 教育案例 知识库问答https://www.coze.cn/space/7433704316877520906/bot/7483382009826967606
- 教育案例 拍照搜视频https://demo.ai-expert.cc:8443/video_search/
- 教育行业拍照搜视频demo[视频解析内容](https://ncnmfdan85y5.feishu.cn/wiki/OTeBwJT6YigoDakDrQsc46VNnbg?from=from_copylink)
- 教育案例 组卷出题https://www.coze.cn/space/7433704316877520906/bot/7483446959312044047
- 教育案例 知识点掌握情况评估: https://www.coze.cn/space/7433704316877520906/bot/7505974042647068684
- 财务行业案例https://www.coze.cn/space/7433704316877520906/bot/7497919484410691619
- 财务行业案例 模型测试及优化过程数据:[财务行业 - 企业预算管理](https://ncnmfdan85y5.feishu.cn/wiki/P4yAwzgDBiGdGkk5N0DcFpaPnyf)
- 财务行业案例 其它资料 [业务预算数据的专家经验](https://ncnmfdan85y5.feishu.cn/wiki/AuZ6wc08wimJ3Rkc68wcw9hInff)
- 数据分析案例https://www.coze.cn/space/7433704316877520906/project-ide/7507579385827360779
- 人力资源案例:
- 招聘场景打分能力验证https://www.coze.cn/space/7433704316877520906/bot/7486001310287118377
- 面试对话https://www.coze.cn/space/7433704316877520906/bot/7485649954023702566
- AI培训对练https://www.coze.cn/space/7433704316877520906/bot/7507280886069477388
- 莫欣老师的课程demohttps://www.coze.cn/space/7433704316877520906/project-ide/7508998840931123212
- 莫欣老师直播上课时搭建的https://www.coze.cn/space/7433704316877520906/project-ide/7509443526267355199
- 电商
- 混剪助手https://www.coze.cn/space/7433704316877520906/bot/7482459190217146387
- 在线换衣https://demo.bananaresearch.cn/videogen/
- 电商行业案例中用到的开源模型(链接内是项目代码,可自行部署):[电商行业案例开源项目汇总](https://ncnmfdan85y5.feishu.cn/wiki/PefTwB99EiChXlkdXZjcfJFNnsc)
- 抖音直播间自动回复助手录播课demo[直播间助手 demo 说明](https://ncnmfdan85y5.feishu.cn/wiki/UzE7wbxFAiw6JfkrOpocTNnjnpb)
- 泛娱乐
- 霸道总裁https://www.coze.cn/space/7433704316877520906/bot/7485312777990062118
- FaceFusionhttps://www.facefusion.co/
- F5-TTShttps://github.com/SWivid/F5-TTS
- Google Genie 2https://deepmind.google/discover/blog/genie-2-a-large-scale-foundation-world-model/
- World labshttps://www.worldlabs.ai/blog
- 以下是泛娱乐录播课需要的链接
- AI证件照Demohttps://idphoto.bananaresearch.cn/
- 人脸识别模型https://huggingface.co/spaces/hysts/mediapipe-face-detection?utm_source=chatgpt.com
- AI生成视频工作流1 https://www.coze.cn/work_flow?space_id=7433704316877520906&workflow_id=7511205004892471337
- AI生成视频工作流2 古风育儿: https://www.coze.cn/work_flow?space_id=7433704316877520906&workflow_id=7511280492429377590
- AI生成视频工作流3 儿童神话故事: https://www.coze.cn/work_flow?space_id=7433704316877520906&workflow_id=7511280755508707340
- AI生成视频工作流4 治愈女孩视频:https://www.coze.cn/work_flow?space_id=7433704316877520906&workflow_id=7511281332770619401
- 在线客服
- 解决方案课程AI助教https://www.coze.cn/space/7433704316877520906/bot/7513143689787719699
- 录播课1涉及到的文档[解决方案课程的AI助教涉及的工作流](https://ncnmfdan85y5.feishu.cn/wiki/LWl7wM8CMivQeska9itcj3wun0c?from=from_copylink)
- AI销售https://www.coze.cn/space/7433704316877520906/bot/7512921281609220133
- 录播课2涉及到的文档[AI在线销售部门案例涉及到的智能体和工作流](https://ncnmfdan85y5.feishu.cn/wiki/OQQEw54TaiTnSak1shscPwYinve?from=from_copylink)
demo解析录播课的团队空间需要重新点邀请链接
1. AutoGPT邀请你加入我的扣子空间"AutoGPT",链接将在 2025-06-29 11:29 过期
👉🏻 https://www.coze.cn/invite/C7874GVv908sJp7vu08Z?type=1加入新的团队空间后直接点链接即可找到该Agenthttps://www.coze.cn/space/7434815743025594431/bot/7437180587003281460
2. 支小助:邀请你加入我的扣子空间"支小助Demo",链接将在 2025-06-29 11:31 过期
👉🏻 https://www.coze.cn/invite/WBXFvY4JDoXdVvZNu2Fs?type=1加入新的团队空间后直接点链接即可找到该Agenthttps://www.coze.cn/space/7434815646162223144/bot/7478274489961365558
相关文件资料通过网盘分享的文件相关文件资料0427
链接: https://pan.baidu.com/s/1Wo6x9V0eGfOMNzpdaBrNFQ?pwd=eqx7 提取码: eqx7
### coze平台demo海外版
1. 点击邀请链接,加入团队空间(不需要重复点击,点过一次之后就成功加入了)
2. 点击Agent的链接直接到达Agent页面可直接对话体验也可点击右上角创建副本后进行改造
**邀请链接**join my space"Prompt & RAG & Function Call", this URL will be expired on 2025-06-23 16:27.👉🏻 https://www.coze.com/invite/JtW2fJUv2WTt4drYnP4T?type=1
**Agent链接**
- 知乎财报解读_Chaohttps://www.coze.com/space/7432640186326712326/bot/7473195950740144146
- SONY门店店员_Chao https://www.coze.com/space/7432640186326712326/bot/7473197554201657362给回答打分的提示词[Sony店员沟通测试prompt](https://ncnmfdan85y5.feishu.cn/wiki/EMrVw2SKOixrIekIYMpcz8fxnKP?from=from_copylink)
- 对话内容解析_Chaohttps://www.coze.com/space/7432640186326712326/bot/7473197683965558791对话内容原始输入数据[门店店员顾客沟通对话数据](https://ncnmfdan85y5.feishu.cn/wiki/Da2bwqF4ei7IBSkGwRucebRynBh?from=from_copylink)
- 医疗分诊助手_Chaohttps://www.coze.com/space/7432640186326712326/bot/7473191673704136711
- 询问天气Call工具https://www.coze.com/space/7432640186326712326/bot/7475659806565793799
- 故事合成Call工具https://www.coze.com/space/7432640186326712326/bot/7475658544307159058
- 企业办事助手https://www.coze.com/space/7432640186326712326/bot/7475657076598538248
- 骑手招聘助手https://www.coze.com/space/7432640186326712326/bot/7475663329072381960
- 滴滴计费解答_WorkFlow_Chaohttps://www.coze.com/space/7432640186326712326/bot/7478661424374382600
- 表格问答助手_代码版_Chaohttps://www.coze.com/space/7432640186326712326/bot/7478649751164993543
- 表格问答助手_插件版_Chaohttps://www.coze.com/space/7432640186326712326/bot/7478647812881072135
- 在线问诊https://www.coze.com/space/7432640186326712326/bot/7485293332848033800
demo解析录播课的团队空间需要重新点邀请链接
1. AutoGPTjoin my space"AutoGPT", this URL will be expired on 2025-06-23 16:28.👉🏻 https://www.coze.com/invite/6xpVGvvuhdBGTibSxp2i?type=1加入新的团队空间后直接点链接即可找到该Agenthttps://www.coze.com/space/7410266370836840465/bot/7435939032980389904
2. 支小助join my space"支小助Demo", this URL will be expired on 2025-06-23 16:27.👉🏻 https://www.coze.com/invite/V5NuDchUoobsODEtByGU?type=1加入新的团队空间后直接点链接即可找到该Agenthttps://www.coze.com/space/7401006355362185222/bot/7401007312318169094
3. 市场调研助手join my space"调研助手", this URL will be expired on 2025-06-23 16:26.👉🏻 https://www.coze.com/invite/cy9b6Futvnyp4xUZUhWd?type=1加入新的团队空间后直接点链接即可找到该Agenthttps://www.coze.com/space/7426296757053259784/bot/7433710527240962049

View File

@@ -0,0 +1,147 @@
---
title: Best 7 news API data feeds - AI News
source: https://www.artificialintelligence-news.com/news/best-7-news-api-data-feeds/
author:
published: 2025-03-11
created: 2025-03-14
description: With the rapid growth in the generation, storage, and sharing of data, ensuring its security has become both a necessity and a formidable challenge.
tags:
- clippings
---
Access to real-time and historical news data is important in todays digital landscape. Businesses, developers, and analysts rely on news API data feeds to gather structured insights from various sources, ranging from global news outlets and blogs, to forums and social media. APIs help integrate content into applications and workflows, enabling decision-making and scalable solutions.
### What are news API data feeds?
News API data feeds are platforms that aggregate, organise, and deliver structured news data from multiple sources, like websites, blogs, forums, and online publications. They simplify the process of gathering information from different outlets and formatting it into machine-readable formats like JSON or XML. These feeds eliminate the manual effort of collecting and curating data by presenting structured content ready to be processed.
### Top 7 news API data feeds
Lets explore seven top news API data feeds leading the industry. These tools provide businesses with real-time access, historical coverage, and features tailored to various industries.
#### 1\. Webz.io
[Webz.io](http://webz.io/) is one of the most comprehensive news APIs, offering both real-time and archived coverage from the open and deep web, as well as the dark web. It provides highly customisable data feeds for industries like finance, risk intelligence, and cybersecurity.
Key features:
- Access to open, deep, and dark web data.
- Advanced filters for sentiment, topic, and geographic coverage.
- Support for visualisation and actionable risk monitoring.
Use case: Media monitoring, sentiment analysis, and threat intelligence for corporate security teams and financial organisations.
Why Webz.io? Its expansive source list and deep customisation options make it ideal for specialised industries like cybersecurity and financial analytics.
#### 2\. GNews API
GNews API is a simple, lightweight platform that aggregates reliable news from around the globe. It is perfect for small-scale applications or developers looking for affordable yet efficient solutions.
Key features:
- Real-time global coverage.
- Filters for topics, languages, and countries.
- Affordable pricing plans suitable for startups.
Use case: Localisation-focused news widgets or small aggregators serving specific regional or language-based audiences.
Why GNews? Its intuitive design and affordability make GNews a great entry point for developers and startups.
#### 3\. The Guardian API
The Guardian API provides direct access to high-quality journalism from the Guardians editorial content. It offers structured news, tags, and metadata from one of the worlds most respected news organisations.
Key features:
- High-quality editorial content.
- Filtering by topic or category.
- Media-rich datan integration, including multimedia embedding.
Use case: Apps or research projects requiring trusted editorial sources for accurate analysis or curated content.
Why The Guardian API? Focused on credible data, it works best for platforms and professionals prioritising journalistic integrity.
#### 4\. Bloomberg API
Renowned for its financial insights, Bloomberg API delivers in-depth business coverage and real-time data for institutions and professional investors. It specialises in market data, financial news, and economic reports.
Key features:
- Exclusive financial data and analysis.
- Real-time market coverage.
- Seamless integration with Bloombergs terminals.
Use case: Analysts and investment professionals monitoring market trends and making data-driven decisions.
Why Bloomberg? Its precise focus on finance makes it essential for institutions heavily reliant on actionable market news.
#### 5\. Financial Times API
The Financial Times API is a premium solution that supplies business and economic-focused news. It is built for professional teams that require deep insights into global markets and economic activity.
Key features:
- Premium content on global finance and markets.
- Access to detailed economic reports and analyses.
- Subscription access for gated content.
Use case: Economists, researchers, or executives tracking global economic trends and industry reports.
Why Financial Times? Its premium-quality data and economic insights provide unmatched value for businesses targeting comprehensive market analysis.
#### 6\. Opoint
Opoint specialises in news monitoring and sentiment analysis, making it particularly useful for PR, marketing, and branding teams. It supports multiple languages and global sources with cutting-edge media monitoring capabilities.
Key features:
- Real-time monitoring with sentiment tagging.
- Multilingual and multi-source coverage.
- Tailored brand monitoring and competitor tracking.
Use case: PR agencies and marketers monitoring sentiment shifts or competitive landscape changes like product launches.
Why Opoint? Its advanced monitoring features help organisations stay agile in rapidly shifting media environments.
#### 7\. Mediastack API
Mediastack combines accessibility with scalability, offering a mix of free plans for developers and paid tiers for advanced features. It aggregates news in real time from over 7,500 sources globally.
Key features:
- Free and affordable paid plans.
- Multilingual support and geo-targeted searches.
- Scalable for both startups and growing enterprises.
Use case: Developers building applications that require versatile, budget-friendly news feeds with reliable real-time updates.
Why Mediastack? Its affordability and flexibility cater to businesses of all sizes, making it a versatile option for a wide range of users.
### Use cases for news API data feeds
The applications of news API data feeds are as diverse as the industries relying on them:
**Financial intelligence**: Investment tools use APIs to analyse market-moving news in real time.
**Media monitoring**: PR agencies use media insights to track brand mentions and sentiment.
**Risk assessment**: Governments and corporations assess geopolitical risks or public sentiment.
**Content platforms**: Aggregators curate articles, summaries, and headlines for apps/websites.
**AI & predictive analysis**: APIs provide data for machine learning models that forecast trends.
*(Image source: Unsplash)*

View File

@@ -0,0 +1,45 @@
---
title: Designing for Agentic AI
source: https://www.linkedin.com/pulse/designing-agentic-ai-yuri-pessa-ztcmf/?trackingId=gSoKslBrTP6VWNCDJSd7ZA%3D%3D
author:
published: 2001-02-27
created: 2025-03-02
description:
tags:
- clippings
- agentic-ai
- ai
- "#design"
---
The world of AI is constantly evolving, and with it, the way we interact with technology. You might have heard of Generative AI (GenAI), but what about Agentic AI? Let's explore the differences and the exciting implications for product designers.
## GenAI vs. Agentic AI: What's the Difference?
GenAI excels at creating new content, like text, images, or music. Think of it as a creative assistant that can generate ideas or translate languages. Agentic AI, on the other hand, is all about action. It can interact with its environment, make decisions, and even anticipate user needs. It's like having a personal agent working for you 24/7.
Example:
- GenAI: You ask it to write a poem about a cat, and it generates a beautiful piece of verse.
- Agentic AI: You ask it to schedule a meeting with a colleague, and it not only finds a time that works for both of you but also considers your preferred meeting locations and automatically sends out calendar invites.
## Designing for Feedback
Agentic AI is pushing us to reimagine product design. For years, we've focused on interfaces that react to direct user input—clicks, swipes, and edits. But agentic AI introduces a new dimension: proactive agents that anticipate needs and act autonomously.
This doesn't mean users become passive. Observing the AI's decision-making process, understanding its "thinking," is a form of interaction in itself. The user may not be clicking buttons, but they're still engaged, evaluating, and potentially intervening.
This shift requires a new design metaphor. Instead of just reacting to user actions, we're crafting experiences that provide live feedback as the AI operates. The focus is on transparency, allowing users to understand and respond to what's happening in real-time.
## Best Practices for Designing Agentic AI Experiences
Here are some best practices for designing agentic AI experiences:
- **Transparency:** Users should be able to understand how the AI is making decisions. This can be achieved by visualizing the AI's progress in completing a task and providing users with a summary of the AI's reasoning process.
- **Control:** Users should always feel in control of the AI. This can be achieved by providing users with a clear way to stop the AI from performing a task or to undo an action that the AI has taken, as well as allowing users to set preferences for how the AI should behave.
- **Personalization:** Agentic AI should adapt to individual user needs and preferences. This can be achieved by using the user's past behavior to predict their future needs and offer relevant suggestions, as well as allowing users to provide feedback on the AI's performance.
- **Conversation:** Design for natural, intuitive conversations between users and the AI. This can be achieved by using a conversational interface that allows users to interact with the AI using natural language and providing users with feedback on how the AI is interpreting their input.
- **Anticipation:** Agentic AI should be able to anticipate user needs and proactively offer assistance. However, users should also have the ability to control the level of autonomy they want to give to the AI. This can be achieved by providing users with clear controls to adjust the AI's level of autonomy, as well as providing feedback on the AI's anticipated actions.
By considering all five of these best practices, designers can create agentic AI experiences that provide the high level of real-time feedback that users will expect. This will help to ensure that users feel in control of the AI and that they understand how it is making decisions.
We're just scratching the surface of what's possible with agentic AI. What are your thoughts on designing for this new paradigm? Share your best practices or any other implications you foresee in the comments below!

View File

@@ -0,0 +1,165 @@
---
title: Google 神级生产力工具,所有 GitHub 开源平替都找到了。
source: https://mp.weixin.qq.com/s/6EoEMi8opDWOParUHRiHOg
author:
- "[[逛逛]]"
published:
created: 2026-01-01
description:
tags:
- clippings
---
原创 逛逛 *2025年12月19日 15:24*
NotebookLM 是谷歌推出的 一款 AI 笔记助手 。与普通 AI 不一样,它严格限制在你上传的文档范围里进行回答,并能提供精准的原文引用。
它最出圈的功能是 播客生成 ,能一键把你上传的复杂资料转换成一段逼真的双人英语对话播客。不仅让学习变得更有趣,还支持通过听来消化信息。
![Unlock Smarter Studying with Googles LM Notebook](https://mmbiz.qpic.cn/sz_mmbiz_jpg/ePw3ZeGRruwWFvmuunByGItSmdr0GlotxhUreupnAbxS4VMNG2znLn1H8JFDCfME6WplUhSfsVXkS5jadh47ww/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=0)
Unlock Smarter Studying with Googles LM Notebook
01
**最受欢迎的 Notebook LM 开源平替**
Open Notebook 是 GitHub 上 Star 数量最高的 开源平替项目。
在 GitHub 上已经获得了 **14.6k** 颗 Star。
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQgT0U6JWNQoe8yKBepG2prnA0Ptlgm6e0BWC4jnmloDcWlgiaEMFR1mQ/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=2)
它是一个全功能的本地化解决方案, 不依赖云端的情况下进行知识管理和研究, 支持通过 Docker 等方式轻松部署。
该项目在模型选择上非常开放,目前 支持超过 16 种 AI 提供商 ,包括 OpenAI、Anthropic、Gemini 等主流云端模型。
同时也完美支持通过 Ollama 或 LM Studio 运行的本地模型。你可以根据成本、隐私需求或性能偏好自由切换底层 AI 能力。
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQhQuZkoz7VWXXUtDiaQibFjCWyu9DS4NVB3FKffO44gUGdZ7LtZxU3icqQ/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=3)
这个开源项目支持 多模态内容输入 ,包括 PDF、网页、音频和 YouTube 视频等。
它不仅具备类似 NotebookLM 的文档问答和引用功能,还提供了 高级的播客生成工 具,支持创建多达 4 位演讲者的多角色对话,还能对脚本进行精细控制。
关于他和 Google 的那个工具的差异,可以看下面这个表格:
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQSzrZnGuzrK5vQZfYnmRXrJt3e57Sib4yibfJMmNzH3k29b47gtVbBVibg/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=4)
```perl
开源地址https://github.com/lfnovo/open-notebook
```
02
**SurfSenseAI 搜索与研究智能体**
目前SurfSense 在 GitHub 上拥有 **11.4k** 颗 Star。
它是一个比较综合的开源 AI 搜索与研究智能体 ,定位为 NotebookLM、Perplexity 和 Glean 的开源替代品。
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQibeRrP0BQ2ENjzAgyLNoBoumQQDFibUrTjxPJu0MN5VTic8ricv9bfylKw/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=5)
它不仅能处理上传的文件,还能连接广泛的外部数据源,通过 整合你的个人知识库和外部信息流,进行深度定制化的研究。
它能够集成多种平台和工具,包括 Notion、YouTube、GitHub 啥的。
而且采用 语义搜索 + 全文搜索 混合搜索技术,并结合 重排序算法 ,确保在海量数据中能快速精准地找到并引用答案。
SurfSense 的功能非常丰富,支持与保存的内容进行自然语言对话、生成带有引用的答案,以及利用本地 LLM 保护隐私。
它还内置了 快速播客生成智能体 ,能够在短时间内将聊天内容转化为引人入胜的音频内容,并支持多种文本转语音服务。
支持 Docker 容器化部署和基于角色的访问控制RBAC使其不仅适合个人研究者也适合需要 团队协作和知识共享 的企业环境。
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQ9SSKj0Aib0cRhyZVbplice5UCuNZ2dbIgkAdIMC2bh5WCjAibW0F9rctg/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=6) ![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQOr7sf3icqSH7WakPX9byvcod9uV0bFcneCNdsUgOzvzgsTD034pibiaXA/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=7) ![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQd78qRbptqSqJQ6dgbCOcmQSOkP0G4al0ZUlSynjibhg3Pz53wL4wRtw/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=8) ![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQGVLhH7nhx99fFSiatIn7oDD15fOicBDMMNzYX62TSYoZoDwmVXO2jpbg/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=9)
```javascript
开源地址https://github.com/MODSetter/SurfSense
```
03
**Podcastfy专注播客生成**
Podcastfy 专注于播客生成,对标的是 NotebookLM 的播客生成功能。
他可以把多模态内容比如文本、图像、网站、PDF 等 转化为高质量、多语言的音频对话。
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQIIr1OhsnsuMsIQCXLTqXY4fD3ibyqiaUXpUhYibs1jibvSHym9NbmH2DLg/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=10)
这个工具提供了 高度的定制化能力 可以让你生成短视频风格Shorts或长篇深度Longform的播客内容。
它整合了超过 100 种 LLM 用于脚本生成,并支持 OpenAI、Google、ElevenLabs 以及 Microsoft Edge TTS 等 多种语音合成引擎 ,确保生成的语音自然且富有表现力。
Podcastfy 不仅作为一个 Python 包供开发者调用,还提供了命令行工具和 Web 界面,方便不同技术背景的用户使用。
```javascript
开源地址https://github.com/souzatharsis/podcastfy
```
04
**notebookllama**
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruxnuKYakBnurP6WpDvqaxKQOgR1uYkd4IqLwduXJfagUibwAibog5NefK14KkdGFfb4LDju4SCHXMnQ/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=11)
NotebookLlama 是由 LlamaIndex 官方推出的一个完全开源的项目,现在 1.7k 的 Star。
通过 LlamaCloud 生态系统来处理复杂的文档解析,并利用开源模型的能力来实现从文档到播客的转换流程。
看这个开源项目,你会学会 如何利用 AI 大模型技术链条构建一个文档转播客的应用。
涵盖了从文本提取、脚本生成、戏剧化改编到最终文本转语音TTS的全过程。
用户可以使用 OpenAI 或 ElevenLabs 的 API也可以选择完全本地化的模型来运行这一流程。
```javascript
开源地址https://github.com/run-llama/notebookllama
```
05
**学习工具:** PageLM
PageLM 是一个 把学习材料转化为互动式资源的教育平台,通过 AI 技术提升学习效率。
这个开源项目提供了一系列针对学习场景优化的功能,包括自动生成 康奈尔笔记SmartNotes 、基于文档的 互动测验、间隔重复闪卡Flashcards 以及 模拟考试系统ExamLab
它还能将枯燥的学习资料转化为播客,不仅支持读,更支持听和测。
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruwWFvmuunByGItSmdr0GlottJXCDicHyOQ3IvaalalmWTOI6icGL0RL217yfsZzQQ4uBRAlE1RZ73KA/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=12)
PageLM 在技术架构上支持多种主流 AI 模型,包括 Google Gemini、OpenAI GPT、Anthropic Claude 以及本地的 Ollama 模型。
这意味着用户可以根据自己的预算和硬件条件,灵活配置用于生成学习内容的后端模型。
```javascript
开源地址https://github.com/CaviraOSS/PageLM
```
06
**InsightsLM**
InsightsLM 这个 NotebookLM 替代方案,强调低代码/无代码。
它采用 Supabase 作为后端数据库和存储, 结合 N8N 工作流自动化工具, 前端则基于 React 构建,为你提供了一个可完全掌控数据的私有化研究工具。
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRruwWFvmuunByGItSmdr0Glot2TubB0nkXZr10QyVZUdy9o27lxBsoPt0gEja0lJfeXnuz7vKuaJo9Q/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=15)
核心功能包括与上传的文档进行聊天、生成带有可验证引用的回答,以及生成播客。
InsightsLM 的独特之处在于 它利用了 N8N 进行后端逻辑处理,同时也支持本地化部署方案 ,允许接入 Ollama 和 Qwen3 等本地模型,实现完全离线的 AI 交互。
```javascript
开源地址https://github.com/theaiautomators/insights-lm-public
```
07
**点击下方卡片,关注逛逛 GitHub**
这个公众号历史发布过很多有趣的开源项目,如果你懒得翻文章一个个找,你直接关注微信公众号:逛逛 GitHub ,后台对话聊天就行了:
![图片](https://mmbiz.qpic.cn/sz_mmbiz_png/ePw3ZeGRrux2sRxwJzmfe1lK8ic33XvtVPsIPCMV7hjicmScibtxIZ1NsjXxNoVNMb3zLy32Al7PSpfbVAtrACYqQ/640?wx_fmt=other&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp#imgIndex=11)

View File

@@ -0,0 +1,139 @@
---
title: "LLMs、RAG、AI Agent 三个到底什么区别?"
source: "https://mp.weixin.qq.com/s/8B_Phrjz_Mlvpe7vJ3maPA"
author:
- "[[易程LEO]]"
published:
created: 2025-11-19
description: "主要讲明白关于LLMs、RAG和AI Agent这三个定义的区别到底是什么这三者目前已经是做AI相关应用绕不过去的名词也是作为初入AI应用开发者必须了解掌握的基础知识。"
tags:
- "clippings"
---
#llm #rag #ai-agent
![Image](https://mmbiz.qpic.cn/mmbiz_png/VUgKicbG7iaMvyVYdNszaOVC9DnZLpg1HzVXtJF72DYMAicb3hZS4xWMztibicCAYAxkF2hTAlHyxoiaiayF0kibFnYgSg/640?wx_fmt=png&from=appmsg&watermark=1&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=0)
对于接触 AI 相关的朋友平时都会遇到很多新的概念先不说什么大模型的技术性的术语就AI应用方面的术语就非常多。
而且,现在还是依旧层出不穷。
在技术迭代到一定程度之后,它就必然会满足更多的实际场景,而要满足某些实际场景的话,并不是单单依靠某个单一技术就可以实现的。
举个例子来说大家知道计算机技术最开始其实只有CPU和内存等外置硬件设备那个时候都是基于命令行方式来做一些计算工作普通人想要用起来计算机的话门槛极高。
后来便有了Linux这类操作系统它可以支持自定义编程也就是在计算机硬件基础上来开发满足实际场景的软件这里面最典型的就是操作系统也就是我们现在用的Window、Mac等操作系统。
这时候计算机PC和Windows、MAC等等都是当时为了满足大众使用计算机所创造出的术语/名词,通过这个概念名词来定义某个技术的作用是什么,相当于给它们起一个名字来表示。
继续沿着操作系统之后就知道后面有很多基于操作系统之上的新名词诞生例如Web浏览器、客户端软件、Client/Server技术架构等等这些又都是在操作系统之上为了满足更多实际场景而开发出来的新东西而每一个都是满足当时场景下的新名词。
所以在AI成为新的普适性的技术底座之前必然会有更多的名词定义出来而它也是为了满足特定场景解决特定问题所存在的必然。
今天我们主要讲明白关于LLMs、RAG和AI Agent这三个定义的区别到底是什么这三者目前已经是做AI相关应用绕不过去的名词也是作为初入AI应用开发者必须了解掌握的基础知识。
首先,要先注意一点:它们并不是竞争技术,而是在三个不同层面,满足不同实际场景的能力展示,另外大部分人对它们使用方式都是错误的。
LLM 全称是大语言模型Large Language Model它是AI应用的“天才大脑”这个天才大脑学习了过去上下五千年的所有知识是的是所有知识堪比“全能人”。
这个“天才大脑”你问它啥,它都能回答上来,甚至还能帮助我们写写文章、分析点东西、编程、画画等等的。
LLMs也分为很多种有底座大模型例如ChatGPT、DeepSeek、Qwen等等也有专有大模型也就是专门用来画画专门用来编写的模型例如绘画模型Midjourney、Stable Diffusion、Flux等等编程模型Claude、Curos、kimi-k2-thing等等。
专有模型某种意义上来说,也是基于底座通用大模型来单独训练出来的能力,也就是让“天才大脑”对于某一个方面特别精通,做了专项的训练。
但是这个大模型有一个问题它只能知道过去已经发生的时候在上面也提到了它是基于过去的所有知识训练、学习出来的所以它的知识内容啊是有某一个时间节点的例如ChatGPT-5的知识时间就是2024年6月单独问这个模型2025年的事情它都不知道。
![Image](http://zipline.ishenwei.online/u/yqHe8q.webp)
当然现在是有了联网搜索的能力了但是这种其实是在大模型之外的Agent助手通过这个外部Agent助手可以爬取网站的数据或者通过搜索引擎Baidu、Bing、Google等来获取相关数据然后在交给大模型来总结分析。
总结起来LLM 在思考方面非常出色,但对当前情况却一无所知。
![Image](http://zipline.ishenwei.online/u/u7EkRH.webp)
这个时候就可以引出第二个名词解释就是RAG。
RAGRetrieval-Augmented Generation检索增强生成可以说是一个记忆系统它可以将原本静态固定的“天才大脑”LLM中的知识链接到外部实时的知识库当你提问问题的时候RAG会主动搜索外部数据拉去相关文档并将它们作为上下文输入到LLM中。
这样就好比于,原本是一个“书呆子”,突然打开了视野,变得灵活多动了,对于原来静态的大模型来说,动态信息、实时数据也就以为这它不需要重新训练了。
在大模型训练也就是模型学习知识的过程是一个非常高昂成本的过程啥意思就是费钱不仅仅要买书、还要营养跟得上不然动不动就卡壳、生病出bug啥的所以要用很多高端GPU卡来吸收海量数据才能让这个大脑学会知识。
最基础的工具是能够访问最新信息的能力。检索增强生成RAG为智能体提供了一张“借书证”使其能查询外部知识这些知识通常存储在向量数据库或知识图谱中——从公司内部文档到通过谷歌搜索获取的网络知识应有尽有。对于结构化数据自然语言到SQLNL2SQL工具则使智能体能够直接查询数据库从而解答诸如“上个季度我们的畅销产品有哪些”这类分析性问题。通过在发言前先查找相关信息——无论是来自文档还是数据库——智能体得以立足于事实显著地减少幻觉。
RAG 流程结合了两个关键步骤:
**1\. 检索Retrieval**
当用户提出问题时,系统首先从一个或多个 **外部、定制化** 的知识库如公司的内部文件、最新的数据库、特定领域文档等检索出最相关的小块信息Chunk
2\. 增强生成Augmented Generation
然后,系统将用户的原始问题和检索到的相关信息作为 **上下文** Context输入给 LLM指示 LLM 严格基于这些上下文信息来生成答案。
![Image](http://zipline.ishenwei.online/u/eSxFEm.webp)
RAG 就像是给那个“全能天才大脑”配备了一位 **随身图书馆助理**
**1\. 知识更新与定制:**
当你问一个关于“公司最新财报”或“某本专业书籍第十章内容”的问题时RAG 不会依赖 LLM 内部的旧知识,而是立即去检索公司内部最新的文档。
**2\. 消除幻觉:**
通过提供 **事实依据** RAG 极大地降低了 LLM “胡编乱造”的风险,因为它生成的答案是 **有据可查** 的。
**3\. 引用来源:**
优秀的 RAG 系统还能提供它查找信息的 **来源链接或文档页码** ,增加了可信度。
接下来还有最后一个名词就是AI Agent也叫做AI智能体为啥叫智能体
结合上面LLM是思考RAG是提供信息但 是它俩都不具备行动能力,有脑,有手,但是不知道怎么走路。
而AI Agent也就是智能体它就是围绕大脑LLM构建一个循环控制系统能够感知目标、规划步骤、执行动作、并能够反思结果。
本质上,智能体通过一个连续的循环过程来实现其目标。它可被分解为五个基本步骤:
1\. 获取任务:该过程由一个具体且高层次的目标启动。此任务可由用户(例如:“为团队安排即将召开的会议出行事宜”)提供,或由自动触发机制(例如:“新收到一封高优先级客户工单”)激活。
2\. 扫描场景Agent感知到环境中获取上下文信息。这涉及协调层访问其可用资源“用户请求的内容是什么”、“我的术语记忆中有哪些信息我是否已尝试过执行此任务”、“用户上周是否曾向我提供过指导”、“我能从我的工具如日历、数据库或API中访问哪些内容
3\. 仔细思考:这是智能体的核心“思考”循环,由推理模型驱动。
智能体首先将任务步骤1与场景步骤2进行分析并制定行动计划。这并非单一的思考过程而通常是一系列连续的推理链条“要预订行程我首先需要知道团队成员都有谁因此我会使用get\_team\_roster工具接下来我还需要通过calendar\_api检查他们的日程安排。”
4\. 采取行动编排层执行计划的第一步具体操作。它会选择并调用适当的工具——无论是调用API、运行代码函数还是查询数据库。这是代理基于自身内部推理真正作用于外部世界的行为。
5\. 观察并迭代智能体观察其行动的结果。get\_team\_roster工具会返回一个包含五个名字的列表。这些新信息将被添加到智能体的上下文或“记忆”中。随后循环再次启动回到步骤3“现在我已获得名单下一步是查询日历确认这五个人的日程安排。我将使用calendar\_api。”
![Image](http://zipline.ishenwei.online/u/UpOsHD.webp)
而真正的生产系统会叠加所 有三个: **用 LLM 进行推理** **,用 RAG 确保准确性以及用Agent框架实现自主性。**
**使用 LLM 单独处理纯语言任务时:写作、摘要、解释。**
**当准确性至关重要时添加 RAG从内部文档、技术手册、特定领域知识中回答。**
**需要真正自主性时部署 Agents能够决策、行动和管理复杂工作流的系统。**
未来不在于选择其一。而在于将三者结合起来进行架构设计。
用于思考的 LLMs。
用于认知的 RAG。
用于执行的Agent。
由此才能够构建出AI智能时代

View File

@@ -0,0 +1,77 @@
#ai #nano-banana #google #prompt
物件描述框架
``` JSON
{
"shot": "",
"subject": {
"item": "",
"materials": "",
"details": "",
"condition": ""
},
"environment": "",
"lighting": "",
"camera": {
"focal_length": "",
"aperture": "",
"angle": ""
},
"color_grade": "",
"style": "",
"quality": "",
"negatives": ""
}
```
人物描述框架
``` JSON
{
"shot": "",
"subject": {
"age": "",
"appearance": "",
"pose": ""
},
"environment": "",
"lighting": "",
"camera": {
"focal_length": "",
"aperture": "",
"angle": ""
},
"color_grade": "",
"style": "",
"quality": "",
"negatives": ""
}
```
![[IMG-20260315173031658.png]]
``` JSON
{
"shot": "Macro close-up shot, square aspect ratio (1:1), centered composition.",
"subject": {
"item": "A luxury men's chronograph watch.",
"materials": "Polished stainless steel case, sapphire crystal glass, black ceramic bezel with a tachymeter scale, leather strap with fine stitching.",
"details": "White dial with three sub-dials, glowing lume on hands and hour markers, intricate gears of the movement visible through a transparent caseback.",
"condition": "Pristine, brand new, no dust or fingerprints."
},
"environment": "The watch is resting on a dark, textured slab of slate rock. The background is a simple, dark, out-of-focus gradient.",
"lighting": "Studio softbox lighting. A key light from the top-left creates clean, sharp reflections on the steel. A soft fill light from the right reveals details in the shadows. A subtle rim light separates the watch from the dark background.",
"camera": {
"focal_length": "100mm macro lens look",
"aperture": "f/8 (to keep the entire watch face in focus)",
"angle": "Shot from a 45-degree angle above the watch."
},
"color_grade": "High contrast, clean and commercial look. Slightly desaturated to emphasize the metallic and monochrome textures. High clarity and sharpness.",
"style": "Hyper-realistic CGI render, commercial product photography, luxury and precision.",
"quality": "8K resolution, perfect material shaders, flawless reflections, extreme detail on the dial and gears.",
"negatives": "no scratches, no dust, no logos or brand names, no human hands, blurry watch face, unrealistic lighting."
}
```

View File

@@ -0,0 +1,42 @@
---
title: Never write another prompt
source: https://youtu.be/OkaplCDf7Ac?si=Fez6aDN0PxfLiM0C
author:
created: 2025-03-06
description:
tags:
- prompt
- "#note-gpt"
---
https://youtu.be/OkaplCDf7Ac?si=Fez6aDN0PxfLiM0C
Summary
In this video, the presenter introduces a revolutionary tool that simplifies the process of creating effective prompts for AI applications such as ChatGPT and Google Gemini. This tool is particularly beneficial for those who have struggled to formulate precise prompts, often resulting in frustration or inadequate responses from AI. The presenter explains how the tool works, emphasizing its ability to transform basic descriptions into detailed and structured prompts—often referred to as prompt engineering. This new approach alleviates the need for users to spend significant amounts of money on professional prompt creation services. Additionally, the video covers how to set up the tool, generate prompts, utilize variables, and refine prompts for better outputs. The presenter also offers a resource for viewers to download a list of useful AI prompts, aiding them in harnessing the full potential of AI tools.
Highlights
🛠️ Prompt Engineering Simplified: The tool allows users to generate detailed prompts from simple descriptions, eliminating the complexity of traditional prompt engineering.
💰 Cost-Effective Solution: Users can create unlimited prompts without paying exorbitant fees, which can range from $100 to $500 for a single well-crafted prompt.
🔑 Easy Setup Process: The video provides a step-by-step guide on creating an account, generating an API key, and setting up payment options for the tool.
⚙️ Enhanced Output Quality: The tool generates high-quality prompts that are well-structured and easy to edit, improving the quality of responses from AI applications.
🎯 User-Friendly Interface: The interface allows for straightforward editing, including the ability to use variables for better customization of responses.
📚 Access to Prompt Libraries: The presenter mentions prompt libraries available on different platforms, enabling users to find inspiration and ready-made prompts for various tasks.
📥 Free Resource Available: A downloadable list of useful AI prompts is available on the presenters website, further assisting users in their AI interactions.
Key Insights
🌟 Understanding Prompt Engineering: Prompt engineering is the art of crafting prompts that elicit specific responses from AI. With the introduction of this tool, users no longer need to be experts in this field; the tool automates the process, making it accessible to everyone, regardless of their technical background. This democratization of technology is vital in empowering more individuals to leverage AI effectively.
💡 The Value of Detailed Prompts: Detailed prompts often yield better responses from AI models. The tool enhances basic prompts by adding context and structure, which helps in narrowing down the AIs focus. This ensures that the output aligns closely with the users expectations, reducing the back-and-forth typically associated with vague or poorly constructed prompts.
🛡️ Security and Privacy Considerations: When creating an API key, users are reminded to keep it confidential. This highlights an important consideration in the use of AI tools—protection of personal and sensitive information. Users should remain vigilant about their data security, particularly when engaging with cloud-based services.
💳 Cost Management with AI Tools: The presenter notes that generating prompts may incur minimal costs, emphasizing the importance of understanding pricing structures associated with AI tools. This knowledge helps users manage their expenses effectively while still benefiting from advanced AI capabilities.
🧩 Customization Through Variables: The ability to use variables in prompts allows for a high degree of customization. This feature enables users to tailor responses to their specific needs without having to rewrite prompts from scratch. The ease of inserting variables enhances the user experience and increases the practicality of the prompts generated.
📊 Prompt Libraries as Resources: The existence of prompt libraries on various platforms serves as a valuable resource for users looking for inspiration or ready-made prompts. These libraries can significantly reduce the time and effort spent on prompt creation, allowing users to focus on the content and context of their interactions with AI.
📈 Long-term Efficiency in Prompt Usage: Once a user generates a successful prompt, they can save it for future use, leading to long-term efficiency in their interactions with AI. This practice not only streamlines workflows but also aids in building a personal library of effective prompts tailored to specific tasks, enhancing the overall productivity of users in their AI engagements.
In conclusion, this video serves as an essential guide for anyone looking to enhance their interaction with AI tools. By utilizing the newly introduced prompt generator, users can streamline the process of prompt creation, save on costs, and ultimately, improve the quality of the responses they receive from AI systems. The combination of user-friendliness, cost-effectiveness, and enhanced output quality makes this tool a game-changer in the realm of AI utilization.
**Console Anthropic**
https://console.anthropic.com/

View File

@@ -0,0 +1,49 @@
#openai #ai #chatgpt #customization
## 自定义指令
- 高度有条理
- 尽可能提出我没想到的解决方案
- 主动出击,预判我的需求
- 把我当成所有领域的专家
- 错误会削弱我的信任,所以务必做到准确和详尽
- 提供详细的解释,我喜欢细节丰富的解释
- 重视合理的论据,而非权威,来源无关紧要
- 考虑新技术和反对观点,而不仅仅是传统智慧
- 你可以使用高度推测或预测,但请告诉我
- 不进行道德说教
- 只有在至关重要且并非显而易见的情况下才讨论安全问题
- 如果您的内容政策存在问题,请提供最接近可接受的答复并解释内容政策问题所在
- 尽可能引用来源,如果可以,请提供网址
- 请将 URL 列表放在回复末尾,不要直接写在回复中
- 直接链接到产品,而非公司页面
- 无需提及你的知识门槛
- 无需透露你是人工智能
- 如果由于我的自定义指示导致您的回复质量大幅下降,请解释一下问题所在- Highly organized
- Suggest solutions that I didn't expect as much as possible
- Take the initiative to anticipate my needs
- Think of me as an expert in all fields
- Mistakes can erode my trust, so be accurate and detailed
- Provide detailed explanations. I like detailed explanations
- Value sound arguments over authority, and sources are irrelevant
- Consider new technologies and opposing perspectives, not just conventional wisdom
- You can use alloy speculation or prediction, but let me know
- Do not preach morality
- Discuss security only when it is critical and not obvious
- If you have a content policy issue, provide the closest acceptable response and explain what the content policy issue is
- Cite sources whenever possible, and provide URLs if you can
- Please put the list of URLs at the end of your reply and don't write it directly in your reply
- Links directly to products, not company pages
- No need to mention your knowledge threshold
- No need to reveal that you are an AI
- If the quality of your response has dropped significantly due to my custom instructions, please explain the problem
## 你的详情
我今年 47 岁,刚从一家企业级软件公司离职。目前是自由职业者。我之前的职位是云服务交付高级经理。我手下有近 20 名员工,分布在全球各地。我们团队的主要职责是为客户提供云服务,并负责公司企业级 SaaS 产品的运维。所以我有很强的技术背景。目前我自己成立了一家公司专注在TikTok跨境电商领域希望能更利用现在的AI, 自动化,云等技术来帮助业务拓展和销售。
I'm 47 years old and have just left an enterprise software company. Currently freelancing. My previous position was Senior Manager of Cloud Service Delivery. I have nearly 20 employees all over the world. Our team's primary responsibility is to provide cloud services to customers and to operate the company's enterprise-grade SaaS products. So I have a strong technical background. At present, I have set up a company focusing on the field of TikTok cross-border e-commerce, hoping to make more use of the current AI, automation, cloud and other technologies to help business expansion and sales.

0
AI/Untitled.md Normal file
View File

View File

@@ -0,0 +1,212 @@
#gog #gog-cli #macos
本文档记录在 macOS 系统上安装和配置 gog CLI 的完整步骤,以便通过命令行管理 Google WorkspaceGmail、Google Calendar、Google Drive、Google Contacts、Google Docs、Google Sheets
## 目录
- [前置条件](#前置条件)
- [安装步骤](#安装步骤)
- [配置 OAuth 凭证](#配置-oauth-凭证)
- [解除 Google 安全限制](#解除-google-安全限制)
- [验证配置](#验证配置)
- [常用命令](#常用命令)
- [故障排除](#故障排除)
---
## 前置条件
- macOS 系统
- Homebrew 已安装
- Google 账号
---
## 安装步骤
### 1. 安装 gog CLI
使用 Homebrew 安装 gog CLI
```bash
brew install steipete/tap/gogcli
```
验证安装:
```bash
which gog
# 输出: /opt/homebrew/bin/gog
```
---
## 配置 OAuth 凭证
### 1. 在 Google Cloud Console 创建 OAuth 凭证
1. 打开 [Google Cloud Console - Credentials](https://console.cloud.google.com/apis/credentials)
2. 点击 **「创建凭证」** → 选择 **「OAuth 客户端 ID」**
3. 应用类型选择 **「桌面应用」**
4. 命名(例如:`gogcli`
5. 点击 **「创建」**
6. 点击 **「下载 JSON」**,得到 `credentials.json` 文件
### 2. 移动凭证文件到 gogcli 配置目录
创建 gogcli 配置目录(如果不存在):
```bash
mkdir -p "/Users/weishen/Library/Application Support/gogcli"
```
移动下载的凭证文件:
```bash
mv ~/Downloads/credentials.json "/Users/weishen/Library/Application Support/gogcli/credentials.json"
```
或者使用命令指定凭证路径:
```bash
gog auth credentials /path/to/credentials.json
```
---
## 解除 Google 安全限制
### 问题描述
首次授权时Google 会显示以下错误:
> 此应用未经 Google 验证
> 此应用请求访问您 Google 账号中的敏感信息。在开发者让该应用通过 Google 验证之前,请勿使用该应用。
### 解决方法:添加测试用户
1. 打开 [Google Cloud Console - Credentials](https://console.cloud.google.com/apis/credentials)
2. 找到你创建的 OAuth 客户端ID点击进入详情
3. 找到 **「测试用户」** 部分
4. 点击 **「添加用户」**
5. 输入你的 Google 邮箱:`ishenwei@gmail.com`
6. 保存
添加测试用户后,重新运行授权命令即可:
```bash
gog auth add ishenwei@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
```
这会打开浏览器让你登录 Google 账号并授权。
---
## 验证配置
### 1. 查看已授权的账号
```bash
gog auth list
```
### 2. 测试 Gmail
```bash
gog gmail search "newer_than:1d" --max 5
```
### 3. 测试 Calendar
```bash
gog calendar events primary --from 2026-01-01 --to 2026-12-31
```
---
## 常用命令
### Gmail
| 功能 | 命令 |
|------|------|
| 搜索邮件 | `gog gmail search 'newer_than:7d' --max 10` |
| 发送邮件 | `gog gmail send --to a@b.com --subject "Hi" --body "Hello"` |
| 发送邮件(多行) | `gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt` |
| 创建草稿 | `gog gmail drafts create --to a@b.com --subject "Hi" --body-file ./message.txt` |
| 发送草稿 | `gog gmail drafts send <draftId>` |
### Calendar
| 功能 | 命令 |
|------|------|
| 查看事件 | `gog calendar events <calendarId> --from <iso> --to <iso>` |
| 创建事件 | `gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso>` |
| 查看颜色 | `gog calendar colors` |
### Drive
| 功能 | 命令 |
|------|------|
| 搜索文件 | `gog drive search "query" --max 10` |
### Contacts
| 功能 | 命令 |
|------|------|
| 列出联系人 | `gog contacts list --max 20` |
### Sheets
| 功能 | 命令 |
|------|------|
| 获取数据 | `gog sheets get <sheetId> "Tab!A1:D10" --json` |
| 更新数据 | `gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED` |
### Docs
| 功能 | 命令 |
|------|------|
| 导出文档 | `gog docs export <docId> --format txt --out /tmp/doc.txt` |
| 查看内容 | `gog docs cat <docId>` |
---
## 故障排除
### 凭证文件路径错误
确保凭证文件在以下位置:
```
/Users/weishen/Library/Application Support/gogcli/credentials.json
```
### 需要重新授权
删除现有授权并重新授权:
```bash
gog auth remove ishenwei@gmail.com
gog auth add ishenwei@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
```
### 设置默认账号
避免每次重复指定账号:
```bash
export GOG_ACCOUNT=ishenwei@gmail.com
```
---
## 参考链接
- gog 官网: https://gogcli.sh
- gog GitHub: https://github.com/steipete/gogcli
- Google Cloud Console: https://console.cloud.google.com/
---
*文档创建日期: 2026-03-15*
*最后更新: 2026-03-15*

View File

@@ -0,0 +1,326 @@
#openclaw #agent
```table-of-contents
```
# 1. 架构设计目标
该 Agent 架构基于 **OpenClaw 多节点智能体系统**,通过不同服务器部署不同职责的 Agent并通过统一命名体系构建一个清晰、可扩展的 AI Agent 生态。
整体设计目标:
- 形成 **清晰的职责分层**
- 建立 **统一的命名体系**
- 支持 **未来扩展更多 Agent**
- 便于 **星枢统一调度**
设计采用 **三层体系结构**
| 层级 | 系列 | 含义 | 主要职责 |
| --- | --- | ---- | ------------ |
| 控制层 | 星系 | 星辰统御 | 调度、管理、智能决策 |
| 技术层 | 云系 | 云海算力 | 开发、架构、监控 |
| 执行层 | 风系 | 风行万里 | 测试、业务执行、流程处理 |
这种结构类似于 **AI Agent 操作系统**
```
控制层(星)
技术层(云)
执行层(风)
```
---
# 2. 当前 Agent 架构
## 2.1 Mac Mini中央控制节点
定位:
- AI Agent 中枢
- 调度中心
- 个人与 IT 管理
|Agent|名字|角色|职责|
|---|---|---|---|
|星枢|Master Orchestrator|总调度|统一调度所有 Agent|
|星曜|IT 管家|IT 管理|服务器、环境、运维|
|星辉|个人助理|Assistant|日常任务与个人事务|
架构示意:
```
Mac Mini
├─ 星枢(总调度)
├─ 星曜IT管家
└─ 星辉(个人助理)
```
---
# 3. Ubuntu2开发服务器
定位:
- 技术研发
- 架构设计
- 自动化构建
- 系统监控
Agent 命名统一以 **“云”开头**。
## 3.1 已有 Agent
| Agent | 职责 | |
| ----- | ----------------------------------- | ---------------- |
| 云瀚 | 监控系统 | 云海浩瀚,象征监控全局系统状态。 |
| 云策 | - 架构设计<br>- 技术方案<br>- 系统规划 | 云中筹策,技术谋略。 |
| 云匠 | - 代码开发<br>- 构建<br>- 工程实现 | 云端工匠 |
| 云织 | - CI/CD<br>- 自动化流程<br>- pipeline 编排 | 织云为网 |
---
## 3.3 Ubuntu2 最终推荐结构
```
Ubuntu2开发服务器
云瀚 监控
云策 架构设计
云匠 开发实现
云织 CI/CD自动化
```
---
# 4. Ubuntu1准生产服务器
定位:
- QA 测试
- 业务执行
- 自动任务
- 审计规则
Agent 统一使用 **“风”系列命名**。
原因:
> 风代表执行、速度、行动。
| Agent | 职责 | |
| ----- | ---------------------------- | ----- |
| 风衡 | - QA 测试<br>- 自动测试<br>- 质量控制 | 风中权衡。 |
| 风驰 | - 自动任务<br>- Job 执行<br>- 业务流程 | 风驰电掣。 |
| 风纪 | - 规则执行<br>- 审计<br>- 合规 | 风纪法度 |
---
## 4.2 Ubuntu1 推荐结构
```
Ubuntu1准生产服务器
风衡 QA测试
风驰 自动执行
风纪 规则审计
```
---
# 5. 完整 Agent 架构
最终整体结构:
```
星枢
(总调度 Agent
┌────────────┼────────────┐
│ │ │
星曜 星辉 服务器集群
IT管家 (个人助理) │
┌────────────┴────────────┐
│ │
Ubuntu2 Ubuntu1
(开发服务器) (准生产)
│ │
┌───────┼───────┐ ┌───────┼───────┐
│ │ │ │ │ │
云瀚 云策 云匠 风衡 风驰 风纪
监控 架构 开发 QA 执行 审计
云织
CI/CD
```
---
# 6. Agent 体系总结
|系列|含义|角色类型|
|---|---|---|
|星|星辰|调度 / 管理|
|云|云海|技术 / 开发|
|风|风行|执行 / 流程|
---
## 星系 Agent
|Agent|职责|
|---|---|
|星枢|总调度|
|星曜|IT 管理|
|星辉|助手|
未来可扩展:
|Agent|角色|
|---|---|
|星策|战略规划|
|星典|知识管理|
---
## 云系 Agent
|Agent|职责|
|---|---|
|云瀚|监控|
|云策|架构|
|云匠|开发|
|云织|CI/CD|
---
## 风系 Agent
|Agent|职责|
|---|---|
|风衡|QA|
|风驰|自动执行|
|风纪|审计|
---
# 7. 设计优势
该 Agent 命名体系具有以下优点:
### 1. 语义清晰
看到名字即可理解职责。
例如:
- 云匠 → 开发
- 风衡 → QA
- 星枢 → 调度
---
### 2. 层级清晰
```
星(控制)
云(技术)
风(执行)
```
---
### 3. 易于扩展
未来可以继续增加:
云系:
- 云图(数据)
- 云阵(基础设施)
- 云算AI计算
风系:
- 风策(业务策略)
- 风行(业务执行)
- 风巡(巡检)
---
### 4. 非常适合 Agent 调度
星枢可以统一调度:
```
星枢 → 云系 → 风系
```
示例:
```
星枢
云策(制定方案)
云匠(开发)
云织(部署)
风衡(测试)
风驰(执行)
```
形成完整 **AI 自动化流水线**。
---
# 8. 最终推荐部署
### Mac Mini
```
星枢
星曜
星辉
```
---
### Ubuntu2开发
```
云瀚
云策
云匠
云织
```
---
### Ubuntu1准生产
```
风衡
风驰
风纪
```
---

View File

@@ -0,0 +1,574 @@
#openclaw #agent #telegram
```table-of-contents
```
---
# OpenClaw 多 Agent 自动化系统架构笔记 (Advanced)
Author: Billy
Purpose: 构建基于 OpenClaw + Telegram + n8n 的 AI 自动化控制系统
---
# 1 系统总体架构
**目标:**
构建一个 **AI Automation Control Center**
**核心组件:**
- OpenClaw Gateway
- 多 Agent
- Telegram Interface
- n8n Workflow Engine
**系统架构:**
```
Telegram
Telegram Bot
n8n
(Command Router)
OpenClaw Gateway
┌────────┬────────┬────────┐
▼ ▼ ▼ ▼
Router Dev Research Ops
Agent Agent Agent Agent
```
**系统功能:**
| 组件 | 作用 |
|------|------|
| Telegram | 用户交互 |
| n8n | 任务路由 |
| OpenClaw | AI Agent Runtime |
| Agents | 任务执行 |
---
# 2 OpenClaw 基础目录结构
**默认路径:** `~/.openclaw/`
**结构:**
```
.openclaw/
├── agents/
│ │
│ ├── main/
│ │ └── agent/
│ │ ├── authprofile.json
│ │ └── models.json
│ │
│ └── research/
│ └── agent/
│ ├── authprofile.json
│ └── models.json
└── workspace/
├── skills/
├── memory/
├── identity/
│ └── Identity.md
├── logs/
├── devices/
├── completions/
└── canvas/
```
**说明:**
| 目录 | 作用 |
|------|------|
| agents | Agent Profile |
| workspace | 运行数据 |
| skills | 技能插件 |
| memory | AI记忆 |
| identity | System Prompt |
| logs | 日志 |
---
# 3 多 Agent 设计
**创建 Agent**
```bash
openclaw agent create dev
openclaw agent create research
openclaw agent create ops
openclaw agent create orchestrator
```
**推荐 Agent 列表:**
| Agent | 职责 |
|-------|------|
| orchestrator | 任务调度 |
| dev | 编程 |
| research | 搜索分析 |
| ops | 服务器运维 |
| data | 数据处理 |
**推荐结构:**
```
agents/
├── orchestrator/
├── dev/
├── research/
├── ops/
└── data/
```
---
# 4 Agent Identity 设计
Identity 代表System Prompt
**建议放在:** `agents/dev/agent/identity.md`
**示例:**
```
You are DevAgent.
Responsibilities:
- write code
- debug programs
- generate scripts
- create docker configurations
```
**Research Agent**
```
You are ResearchAgent.
Responsibilities:
- research information
- summarize technical topics
- analyze documents
```
---
# 5 Skills 机制
**Skills 目录:** `workspace/skills`
**示例:**
```
skills/
├── browser
├── filesystem
├── python
├── telegram
└── self-improving-agent
```
**特点:**
- 所有 Agent 共享
- 类似插件
---
# 6 Memory 设计
**默认 memory** `workspace/memory`
默认共享。
**memory 类型:**
```
memory/
├── episodic
├── semantic
└── vector
```
**推荐 Memory 分层:**
```
memory/
├── system
├── dev
├── research
└── ops
```
这样避免memory pollution
**Agent 指定 namespace**
```json
{
"memoryNamespace": "dev"
}
```
---
# 7 模型配置
每个 Agent 独立:`agents/<agent>/agent/models.json`
**示例:**
```json
{
"default": "gpt-4o-mini",
"models": {
"gpt-4o-mini": {
"provider": "openai",
"model": "gpt-4o-mini"
},
"deepseek-coder": {
"provider": "openai-compatible",
"base_url": "https://api.deepseek.com/v1",
"model": "deepseek-coder"
}
}
}
```
**推荐模型分配:**
| Agent | Model |
|-------|-------|
| orchestrator | gpt-4o-mini |
| dev | deepseek-coder |
| research | gpt-4o |
| ops | claude-sonnet |
**优点:**
- 降低成本
- 提升能力
---
# 8 Agent 切换
**切换 active agent**
```bash
openclaw agent use research
```
**行为:**
```
current_agent = research
```
下一条消息:
```
Telegram → research agent
```
不需要重启 Gateway。
---
# 9 Telegram 集成
OpenClaw 支持Telegram Bot
**结构:**
```
Telegram
OpenClaw Gateway
```
**默认:** 所有消息 → active agent
---
# 10 Telegram 指令体系
**推荐命令:**
```
/dev
/research
/ops
/data
/help
```
**示例:**
```
/dev 写一个python脚本
/research 查一下OpenClaw架构
/ops restart docker
```
在 BotFather 设置:`/setcommands`
**示例:**
```
dev - coding tasks
research - research tasks
ops - server tasks
```
---
# 11 n8n Command Router
推荐使用n8n 进行任务路由。
**架构:**
```
Telegram
n8n
OpenClaw
```
**Workflow**
```
Telegram Trigger
Parse Command
Agent Router
HTTP → OpenClaw
```
**解析示例:**
```javascript
const msg = $json.message.text
if(msg.startsWith("/dev")){
return {agent:"dev"}
}
if(msg.startsWith("/research")){
return {agent:"research"}
}
```
---
# 12 Router Agent
Router Agent 负责Task Distribution
**Prompt 示例:**
```
You are a routing agent.
Rules:
/dev → DevAgent
/research → ResearchAgent
/ops → OpsAgent
```
---
# 13 推荐系统架构
Mac Mini AI Control Center
```
Mac Mini
├─ OpenClaw Gateway
├─ n8n
└─ Telegram Bot
Agents
├─ orchestrator
├─ dev
├─ research
├─ ops
└─ data
```
**数据流:**
```
Telegram
n8n Router
OpenClaw
Agents
```
---
# 14 高级玩法
**支持:**
### 多服务器 Agent
```
Mac Mini
orchestrator
Ubuntu Server
dev agent
NAS
data agent
```
**通信:**
```
HTTP
Redis
MQ
```
---
# 15 最佳实践
### 1 Agent 专业化
**正确:**
```
dev-agent
ops-agent
research-agent
```
**错误:**
```
python-agent
browser-agent
```
---
### 2 模型分工
不要所有 agent 使用同一个模型。
**否则:**
```
multi-agent ≈ single-agent
```
---
### 3 Memory 分层
**推荐:**
```
memory/
├── system
├── dev
├── research
└── ops
```
---
### 4 Router 统一入口
**不要:**
```
Telegram → 各 agent
```
**应该:**
```
Telegram → Router → Agents
```
---
# 16 最终架构总结
**最终系统:**
```
Telegram
n8n Router
OpenClaw Gateway
┌──────────────┬──────────────┬──────────────┐
DevAgent ResearchAgent OpsAgent
```
**系统特点:**
- 多 Agent
- 多模型
- 自动任务分发
- Telegram 控制
- 自动化工作流
---
# 17 未来扩展
**未来可扩展:**
- AI 自动任务
- 自动服务器运维
- 自动代码生成
- 自动数据分析
- 自动监控告警
**目标:** 构建 Personal AI Operations Center

View File

@@ -0,0 +1,194 @@
# OpenClaw Agent 管理指南
> 创建日期: 2026-03-15
> 作者: 星曜
---
## 1. 创建新 Agent
### 基本命令
```bash
openclaw agents add <agent-name> --non-interactive --workspace <workspace-path>
```
### 参数说明
| 参数 | 说明 |
| ------------------- | ----------------- |
| `<agent-name>` | Agent 名称(唯一标识) |
| `--non-interactive` | 跳过交互式提示,自动创建 |
| `--workspace` | 指定 workspace 目录路径 |
### 示例
```bash
# 创建名为 xinghui 的 agent
openclaw agents add xinghui --non-interactive --workspace ~/.openclaw/workspace-agent-xinghui
# 创建名为 xingyao 的 agent复制现有workspace
openclaw agents add xingyao --non-interactive --workspace ~/.openclaw/workspace-agent-xingyao
```
### Workspace 路径规范
- 格式: `~/.openclaw/workspace-agent-<agent-name>`
- 示例: `~/.openclaw/workspace-agent-xinghui`
---
## 2. 复制 Workspace 到新 Agent
### 场景
创建一个与现有 agent通常是 main拥有相同内容的 workspace
### 方法一rsync 复制(推荐)
```bash
rsync -av --exclude='.git' /Users/weishen/.openclaw/workspace/ /Users/weishen/.openclaw/workspace-agent-xingyao/
```
### 方法二:软链接共享记忆
如果想让多个 agent 共享记忆MEMORY.md 和 memory/ 目录):
```bash
# 为新 agent 创建软链接
ln -sf /Users/weishen/.openclaw/workspace/memory /Users/weishen/.openclaw/workspace-agent-<agent-name>/memory
ln -sf /Users/weishen/.openclaw/workspace/MEMORY.md /Users/weishen/.openclaw/workspace-agent-<agent-name>/MEMORY.md
```
**注意**: 共用 workspace 可能导致配置冲突,建议独立 workspace + 软链接共享 memory 目录
---
## 3. 绑定 Agent 到 Channel
### 查看当前绑定
```bash
openclaw agents bindings
```
### 绑定命令
```bash
openclaw agents bind --agent <agent-name> --bind <channel>:<accountId>
```
### 参数说明
| 参数 | 说明 |
| -------------- | ----------------------------------- |
| `<agent-name>` | 要绑定的 agent 名称 |
| `<channel>` | 频道类型telegram, discord, whatsapp 等) |
| `<accountId>` | 账号 ID数字形式 |
### 示例[[How to get Youtube Channel ID]]
```bash
# 绑定 xinghui 到 Telegram
openclaw agents bind --agent xinghui --bind telegram:5038825565
# 绑定 xingyao 到 Telegram
openclaw agents bind --agent xingyao --bind telegram:5038825565
```
### 解绑
```bash
# 解绑指定 channel
openclaw agents unbind --bind telegram:5038825565
# 解绑指定 agent 的 channel
openclaw agents unbind --agent xinghui --bind telegram:5038825565
```
---
## 4. 删除 Agent
### 命令
```bash
openclaw agents delete <agent-name>
```
### 示例
```bash
# 需要确认
openclaw agents delete agent-macmini-001
# 强制删除(非交互模式)
openclaw agents delete agent-macmini-001 --force
```
### 删除效果
- Workspace 目录移至废纸篓
- Sessions 目录删除
- 从配置文件移除
---
## 5. 查看 Agent 列表
```bash
openclaw agents list
```
### 输出示例
```
Agents:
- main (default)
Workspace: ~/.openclaw/workspace
Agent dir: ~/.openclaw/agents/main/agent
Model: minimax-portal/MiniMax-M2.5
Routing rules: 0
Routing: default (no explicit rules)
- xinghui
Workspace: ~/.openclaw/workspace-agent-xinghui
Agent dir: ~/.openclaw/agents/xinghui/agent
Model: minimax-portal/MiniMax-M2.5
Routing rules: 0
```
---
## 6. Agent 配置说明
### 默认模型
所有新创建的 agent 默认使用: `minimax-portal/MiniMax-M2.5`
### 配置文件位置
- 主配置: `~/.openclaw/openclaw.json`
- Agent 状态: `~/.openclaw/agents/<agent-name>/agent/`
---
## 7. 常用命令速查
| 操作 | 命令 |
|------|------|
| 创建 agent | `openclaw agents add <name> --non-interactive --workspace ~/.openclaw/workspace-agent-<name>` |
| 查看列表 | `openclaw agents list` |
| 查看绑定 | `openclaw agents bindings` |
| 绑定 channel | `openclaw agents bind --agent <name> --bind telegram:<id>` |
| 解绑 channel | `openclaw agents unbind --bind telegram:<id>` |
| 删除 agent | `openclaw agents delete <name> --force` |
---
## 8. 当前已创建的 Agent
| Agent 名称 | Workspace | 状态 |
|------------|-----------|------|
| main | ~/.openclaw/workspace | 默认 |
| xinghui | ~/.openclaw/workspace-agent-xinghui | 独立(无共享记忆) |
| xingyao | ~/.openclaw/workspace-agent-xingyao | 完整复制 main workspace |
---
*最后更新: 2026-03-15 14:33*

View File

@@ -0,0 +1,368 @@
#ubuntu #openclaw #install #uninstall
```table-of-contents
```
## 环境概述
- 系统Ubuntu 20.04 / 22.04
- OpenClaw 安装方式npm 用户本地全局安装openclaw & clawhub (注意不要用root user安装)
```
npm install -g openclaw clawhub
```
- 用户路径示例:
```bash
/home/shenwei/.npm-global/bin/openclaw
```
- 默认配置目录:
```bash
/home/shenwei/.openclaw
```
- 用户级 systemd 服务目录:
```bash
/home/shenwei/.config/systemd/user/openclaw-gateway.service
```
---
## 卸载旧版本 OpenClaw
1. **停止正在运行的进程 / 服务**
```bash
# 查找进程
ps aux | grep openclaw
# 如果有 systemd 用户服务
systemctl --user stop openclaw
systemctl --user disable openclaw
```
2. **卸载 npm 安装的 OpenClaw**
```bash
# 全局卸载
sudo npm uninstall -g openclaw clawhub
# 或者局部卸载
npm uninstall openclaw clawhub
```
3. **删除用户配置目录**
```bash
rm -rf /home/shenwei/.openclaw # 普通用户
sudo rm -rf /root/.openclaw # root 用户(如果曾用 sudo 运行)
sudo rm -rf /opt/openclaw # 如果之前手动统一过目录
```
4. **清理残留 npm 包**
```bash
npm list -g --depth=0 | grep openclaw
npm list -g --depth=0 | grep clawhub
```
如有残留再执行 `npm uninstall -g <package>`。
---
## 安装 OpenClaw
### 方法 A通过 npm 安装(推荐)
```bash
# 确保 npm 更新
npm install -g npm
# 全局安装 OpenClaw
npm install -g openclaw clawhub
```
---
## 配置 PATH让 OpenClaw 在任意位置可执行
1. 临时生效(仅当前终端):
```bash
export PATH=$HOME/.npm-global/bin:$PATH
```
2. 永久生效(推荐):
- 编辑 shell 配置文件 `~/.bashrc` 或 `~/.zshrc`,添加:
```bash
export PATH=$HOME/.npm-global/bin:$PATH
```
- 刷新配置:
```bash
source ~/.bashrc # bash
source ~/.zshrc # zsh
```
- 验证:
```bash
which openclaw
openclaw --version
```
---
## 用户级 systemd 服务管理OpenClaw Gateway
安装 Gateway 后会生成服务文件:
```bash
/home/shenwei/.config/systemd/user/openclaw-gateway.service
```
``` bash
[Unit]
Description=OpenClaw Gateway (v2026.3.13)
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/node /home/shenwei/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Restart=always
RestartSec=5
TimeoutStopSec=30
TimeoutStartSec=30
SuccessExitStatus=0 143
KillMode=control-group
Environment=HOME=/home/shenwei
Environment=TMPDIR=/tmp
Environment=HTTP_PROXY=http://127.0.0.1:10808
Environment=HTTPS_PROXY=http://127.0.0.1:10808
Environment=PATH=/home/shenwei/.local/bin:/home/shenwei/.npm-global/bin:/home/shenwei/bin:/home/shenwei/.volta/bin:/home/shenwei/.asdf/shims:/home/shenwei/.bun/bin:/>
Environment=OPENCLAW_GATEWAY_PORT=18789
Environment=OPENCLAW_SYSTEMD_UNIT=openclaw-gateway.service
Environment="OPENCLAW_WINDOWS_TASK_NAME=OpenClaw Gateway"
Environment=OPENCLAW_SERVICE_MARKER=openclaw
Environment=OPENCLAW_SERVICE_KIND=gateway
Environment=OPENCLAW_SERVICE_VERSION=2026.3.13
[Install]
WantedBy=default.target
```
查看日志
```
# 查看最近 50 行
journalctl --user -u openclaw-gateway -n 50 --no-pager
# 实时跟踪日志
journalctl --user -u openclaw-gateway -f
# 查看今天的所有日志
journalctl --user -u openclaw-gateway --since today
```
### 常用管理命令
| 操作 | 命令 |
| --------------------------- | ------------------------------------------- |
| 启动 Gateway | `systemctl --user start openclaw-gateway` |
| 停止 Gateway | `systemctl --user stop openclaw-gateway` |
| 重启 Gateway | `systemctl --user restart openclaw-gateway` |
| 查看状态 | `systemctl --user status openclaw-gateway` |
| 开机自启 | `systemctl --user enable openclaw-gateway` |
| 取消开机自启 | `systemctl --user disable openclaw-gateway` |
| 刷新 systemd 配置(修改 service 后) | `systemctl --user daemon-reload` |
> ⚠️ 用户级服务不需要 sudo安全且方便。
---
## 多用户环境与避免重复环境
- OpenClaw 配置目录默认跟随 `$HOME`
|用户|配置目录|
|---|---|
|shenwei|`/home/shenwei/.openclaw`|
|root|`/root/.openclaw`|
- **原因**Linux 用户隔离机制,不同用户运行 OpenClaw 会生成独立目录。
- **注意**
- 不要用 root 启动 OpenClaw避免权限混乱
- 统一使用普通用户安装和运行
- 可通过 `--workdir /opt/openclaw` 指定统一目录
---
## 常用命令总结
| 命令 | 功能 |
| --------------------------------------------------------------------- | ------------- |
| `openclaw onboard` | 初始化新环境、设置工作目录 |
| `openclaw --version` | 查看版本 |
| `openclaw agent list` | 列出所有 agent |
| `openclaw agent create --name <agent_name> --message "<description>"` | 创建新的 agent |
| `openclaw agent delete <agent_name>` | 删除 agent |
| `openclaw skill install <skill_name>` | 安装技能 |
| `openclaw skill update <skill_name>` | 更新技能 |
| `openclaw skill list` | 查看已安装技能 |
| `openclaw memory list` | 查看记忆数据 |
| `openclaw workspace list` | 查看工作空间 |
| | |
| | |
---
## 创建 Agent 与绑定 Telegram Bot
1. **创建 agent**
```
openclaw agents add <agentname> --non-interactive --workspace /home/shenwei/.openclaw/workspace-agent-<agentname> --model MiniMax-M2.5
```
举例:
```bash
openclaw agents add yunce --non-interactive --workspace /home/shenwei/.openclaw/workspace-agent-yunce --model MiniMax-M2.5
```
2. **添加Telegram 账号**
```
# 添加 Telegram 账号
openclaw channels add --channel telegram --account <账号名> --token <BotToken>
```
举例
```
openclaw channels add --channel telegram --account yunhan --token 8588117769:AAFxswhHgCdBor2EOa-2oChDpI-DADRt0tQ
```
3. **查看 agent 列表**
```bash
openclaw agents list
```
3. **绑定 Bot**
```
# 绑定 agent 到 Telegram 账号
openclaw agents bind --agent <agent_id> --bind telegram:<account_name>
```
举例
```
openclaw agents bind --agent yunhan --bind telegram:yunhan
```
- 配置完成后重启 Gateway
```bash
systemctl --user restart openclaw-gateway
```
- Telegram 多 Agent 建议:
- 一个 bot → n8n 路由 → 多 agent
- 避免每个 agent 都创建独立 bot每个账号最多 20 个 bot
- 用命令或路径路由区分不同 agent 功能
---
## 删除Agent
1. **删除 agent**
```
openclaw agents delete <agent_name> --force
```
2. **删除bot**
```
# 删除 Telegram 账号
openclaw channels remove --channel telegram --account <account_name> --delete
```
## 注意事项与避免的坑
1. **避免使用 root 运行**
- root 会生成 `/root/.openclaw`,和普通用户环境冲突
- 权限问题可能导致 agent 无法访问工作空间
2. **避免重复 PATH 或多版本冲突**
- 如果 npm 本地 bin 不在 PATH会导致命令找不到
- 如果 PATH 里还有旧版本系统全局安装路径,可能会调用错误版本
3. **用户级 systemd 服务管理**
- 修改 service 后必须执行 `systemctl --user daemon-reload`
- 避免 sudo 启动服务,保证文件权限正确
4. **Telegram Bot 限制**
- 每个账号最多创建 20 个 botPremium 账号可能 40 个)
- 多 agent 架构建议一个 bot → n8n → 多 agent 路由
5. **统一工作目录**
- 推荐 `/home/shenwei/.openclaw` 或 `/opt/openclaw`
- 方便多服务器或多 agent 管理
6. **升级和维护**
- 升级前先备份 `.openclaw` 下的 workspace、skills、memory
- 使用 npm 全局安装可直接 `npm install -g openclaw@latest`
---
### 参考架构示意
```
Telegram Bot
n8n Router
OpenClaw Agents
├─ 星枢(调度)
├─ 星曜IT管家
├─ 星辉(个人助理)
└─ 云瀚(监控)
```
### Bot & Agent 命名
#### 星
```
openclaw channels add --channel telegram --account xingshu --token 8787024183:AAG1M5tfSHj6Z0gMv3vvCZel2FOIX-0x8ZI
openclaw channels add --channel telegram --account xingyao --token 8414432613:AAG9hvKfILGSsbc1EMEZW1QVym9Quc5aHWk
openclaw channels add --channel telegram --account xinghui --token 8709222939:AAEfvZrvvU5vZFsmacsR5nmpkJ2Jb5JgfRg
```
| 服务器 | 角色 | Bot Name | Bot Key | Agent Id | Telegram User ID |
| ------- | --- | ---------------------------- | ---------------------------------------------- | -------- | ---------------- |
| macmini | 星枢 | @shenwei_macmini_xingshu_bot | 8787024183:AAG1M5tfSHj6Z0gMv3vvCZel2FOIX-0x8ZI | main | 5038825565 |
| macmini | 星曜 | @shenwei_macmini_xingyao_bot | 8414432613:AAG9hvKfILGSsbc1EMEZW1QVym9Quc5aHWk | xingyao | 5038825565 |
| macmini | 星辉 | @shenwei_macmini_xinghui_bot | 8709222939:AAEfvZrvvU5vZFsmacsR5nmpkJ2Jb5JgfRg | xinghui | 5038825565 |
| | | | | | |
#### 云
```
openclaw channels add --channel telegram --account yunhan --token 8588117769:AAFxswhHgCdBor2EOa-2oChDpI-DADRt0tQ
openclaw channels add --channel telegram --account yunce --token 8791231082:AAFKPfTPy3LshybWUJ0joBkz3Th3mwYQOnc
openclaw channels add --channel telegram --account yunjiang --token 8727937702:AAGw3WGPI1j5rSD97wap6h9EGqVpDEMdjLU
openclaw channels add --channel telegram --account yunzhi --token 8639619464:AAEI35Dnt-9PQ8y4Du_ToxVhwUBUa5kpLjU
```
| 服务器 | 角色 | Bot Name | Bot Key | Agent 名称 | Telegram User ID |
| ------- | --- | ----------------------------- | ---------------------------------------------- | -------- | ---------------- |
| ubuntu2 | 云瀚 | @shenwei_ubuntu2_yunhan_bot | 8588117769:AAFxswhHgCdBor2EOa-2oChDpI-DADRt0tQ | yunhan | 5038825565 |
| ubuntu2 | 云策 | @shenwei_ubuntu2_yunce_bot | 8791231082:AAFKPfTPy3LshybWUJ0joBkz3Th3mwYQOnc | yunce | 5038825565 |
| ubuntu2 | 云匠 | @shenwei_ubuntu2_yunjiang_bot | 8727937702:AAGw3WGPI1j5rSD97wap6h9EGqVpDEMdjLU | yunjiang | 5038825565 |
| ubuntu2 | 云织 | @shenwei_ubuntu2_yunzhi_bot | 8639619464:AAEI35Dnt-9PQ8y4Du_ToxVhwUBUa5kpLjU | yunzhi | 5038825565 |
#### 风
```
openclaw channels add --channel telegram --account fengheng --token
openclaw channels add --channel telegram --account fengchi --token
openclaw channels add --channel telegram --account fengji --token
```
| 服务器 | 角色 | Bot Name | Bot Key | Agent 名称 | Telegram User ID |
| ------- | --- | ----------------------------- | ------- | -------- | ---------------- |
| ubuntu1 | 风衡 | @shenwei_ubuntu1_fengheng_bot | | fengheng | 5038825565 |
| ubuntu1 | 风驰 | @shenwei_ubuntu1_fengchi_bot | | fengchi | 5038825565 |
| ubuntu1 | 风纪 | @shenwei_ubuntu1_fengji_bot | | fengji | 5038825565 |

View File

@@ -0,0 +1,121 @@
```table-of-contents
```
## 固定镜头短视频制作的AI全流程解析
### 概述🛠️
本视频围绕如何利用AI技术快速、高效地制作高播放量的家装类短视频展开介绍。讲解了从文案到分镜拆解、图片生成、一致性控制、动态图像处理和剪辑音效配合的全套流程重点在于利用固定机位、内容连续变化和时间压缩三个核心原理实现短时间内从毛坯房到精装修的视觉呈现。内容深入浅出实例丰富适合想掌握AI短视频制作方法的创作者学习和复制。
https://youtu.be/ES6BcIIiB5g
### 核心知识点总结⏰
- **00:00-00:31 制作需求与时间认知重塑**
- 常见家装短视频播放量巨大制作时间却被误解为长。实际用AI不到10分钟即可完成成片核心在于拆解文案和分镜逐步生成内容。
- **00:31-01:18 家装视频三大关键词**
- 固定机位:摄像机位置固定,不移动镜头。
- 内容连续变化:画面主要信息是施工进度变化。
- 时间压缩:将长时间装修过程浓缩呈现。
- 这三个特点使视频非常适合用AI技术生成。
- **01:18-01:52 AI工具分类及功能**
- 大脑类负责把视频逻辑转化成AI能识别的分镜语言如XAR GPT、GEMALA。
- 设计师类将分镜转换为一致的图像如Midjourney、Nano Banana。
- 动效类让画面产生连贯动画效果如海螺AI、多么AI、KAI需支持“首尾针”动画。
![[IMG-20260315173031668.png]]
![[IMG-20260315173031695.png]]
![[IMG-20260315173031715.png]]
- **01:52-02:22 原视频观察与核心关键词“时间流逝”**
- 视频内容简洁只有一个机位画面随施工进展从毛坯到成品平稳变化AI对此类时间推移处理表现优异。
- **02:22-02:53 AI拆分镜流程**
- 通过Google AI Studio输入装修视频链接并让模型分析自动生成九个分镜描述确保摄像机机位固定、场景顺序清晰和阶段明确。
- **02:53-03:55 保证画面一致性的九宫格法**
- 一次性用三乘三九宫格图生成九个分镜画面,机位和角度不变,细节只表现施工进度的变化,增强画面空间和光影的连贯性。
- **03:55-05:29 九宫格图片的切割成单张过程**
- 利用Google AI Studio工具自动检测并将三乘三大图裁为九张竖屏图9:16比例为后续动画制作做好准备。
- **05:29-06:16 动态动画生成核心“首尾针”逻辑**
- 逐个上传九张图片配对制作动画,利用“首针图”和“尾针图”补齐两个阶段之间的变化,达成画面平滑过渡。
- **06:16-07:35 具体动画生成及合成方法**
- 以KAI工具为例通过AI Video API依次生成阶段视频片段核心是让画面变化自然而非镜头移动完成所有片段后导入剪映合成。
- **07:35-08:22 短视频快速剪辑三要点**
- 统一加速建议2-4倍速示例用3倍加快进度感。
- 无需复杂转场,采用首尾针动画的硬切效果更干净。
- 画面轻微裁边,如有黑边可稍微放大处理。
- **08:22-09:05 声音设计提升视频品质**
- 添加适量施工音效(如敲击、电钻、切割),即使不完整也能增强真实感。
- 选择节奏感强且节奏干净的背景音乐,决定观众观看体验。
- 画面变化处精准卡点,满足视觉与节奏同步,提升整体观感。
- **09:05-09:48 五步复用AI短视频公式总结**
- 拆分镜头 → 一致性图像生成 → 首尾针动画制作 → 快速剪辑 → 声音设计。
- 该流程可应用于所有固定机位且状态变化明显的短视频类型,关键在于对节奏和细节的把握。
### 关键术语与定义📚
- **固定机位**:摄像机位置固定不变,是视频画面统一和连贯的基础。
- **内容连续变化**:视频主体信息随时间持续发生明确阶段性变化。
- **时间压缩**:将长时间拍摄过程在视频中浓缩表现的手法。
- **分镜拆解**:将视频内容拆分成多个画面阶段描述。
- **九宫格法**同时生成3x3共九个画面保证机位与角度不变画面一致性强。
- **首尾针动画**通过上传两个关键帧首针和尾针AI自动补齐中间动作产生连贯动画的技术。
- **快节奏剪辑**:视频使用加速播放和硬切换手法,强化节奏感与流畅度。
- **卡点**:画面变化与音乐节奏巧妙同步,提高观看体验。
### 推理结构🔍
1. **前提**:家装类短视频需表现装修变化且画面需保持一致性。
2. **分析**:固定机位、内容阶段变化、时间压缩是视频成功关键。
3. **推理**利用AI分镜拆解+图像设计+动画生成技术,可快速高质量复刻此类内容。
4. **结论**:通过九宫格一致性图片和首尾针动画,加速剪辑及音效设计,实现高播放量视频制作。
### 典型示例🎯
- **视频“从毛坯到精装”实拍片段**
用摄像机固定视角从空房间到悬挂床的安装整个过程仅通过画面中施工进度的持续推进展现房屋翻新突出时间流逝主题示范AI在时间压缩及动态生成中的优势。
- **九宫格单图批量生成**
利用三乘三布局,将整个施工进度分解为九幅连贯画面,确保机位和景深一致,典型示范了画面一致性处理的技术手法。
### 易错点总结⚠️
- **误区:误以为短视频制作需要复杂移动镜头。**
- 纠正:固定机位,内容变化即可,减少复杂摄像设备需求。
- **误区:逐帧独立生成图片导致光影空间关系错乱。**
- 纠正:采用九宫格一次性生成保证画面连贯。
- **误区:转场效果加入过多导致视频冗杂。**
- 纠正:利用首尾针动画自带的平滑衔接,硬切反而更简洁。
- **误区:忽视声音设计,视频体验感降低。**
- 纠正施工音效和节奏感强的BGM不可缺精准卡点尤为重要。
### 快速复习提示与自测题💡
- **复习提示(不含答案)**
1. 家装短视频成功的三大关键词是什么?
2. “九宫格法”为何能保证图像一致性?
3. 首尾针动画的基本原理是什么?
4. 快节奏剪辑应注意哪些要点?
5. 如何通过声音设计提升视频观感?
- **自测练习(含答案)**
1. 为什么固定机位对视频制作如此重要?
**答**固定机位保证画面空间和光影一致增强连贯感方便AI补齐动画。
2. “首尾针”动画技术如何实现动态过渡?
**答**上传两个关键帧图片作为“首针”和“尾针”AI自动补充中间变化实现自然动画效果。
3. 进行九宫格裁图时,如何保证图片比例正确?
**答**将图片宽高各等分成三份裁切成9张9比16的竖屏图保持画面比例一致。
4. AI拆分镜的工具和流程包括哪些步骤
**答**输入视频链接至Google AI Studio利用模型分析视频逻辑生成九个阶段分镜描述。
5. 制作快节奏剪辑时,为什么避免复杂转场?
**答**:首尾针动画本身提供平滑过渡,硬切清晰干净,避免视觉干扰。
### 总结回顾🔄
本视频系统讲解了基于AI技术制作高效家装短视频的完整流程以固定机位拍摄、分镜拆解、九宫格一致性生成、首尾针动画和快节奏剪辑为核心技术点配合合理的声音设计解决了以往工地实拍周期长、制作复杂的难题。整套方法不仅成片快且易于复制适用于多类固定机位状态变化视频的制作体现了AI工具在视频内容创作中的巨大潜力与应用价值。

View File

@@ -0,0 +1,50 @@
#n8n #workflow #sora
https://youtu.be/f0fP9wQHBcY?si=zAI-YHBReu_vIUXB
# 摘要
本期视频由欧阳主讲围绕如何使用“Sora”进行视频生成的全自动化工作流进行详细讲解。视频介绍了成本效益极高的“Sora”接口以及如何通过该接口批量生成SR声视频内容提升自媒体创作的效率和质量。本教程适合对视频生成感兴趣的个人及中小型企业帮助观众以低成本的方式启动自媒体副业并在市场中脱颖而出。
# 时间线摘要
- **00:00 - 02:45**: 视频引入内容介绍全自动化工作流及其优势特别强调“Sora”接口的低成本和高效性。
- **02:46 - 05:00**: 讲解亚马逊账户注册及免费模型调用,强调新用户的优惠和如何成功注册账户。
- **05:01 - 08:00**: 细述如何创建用户权限及API密钥为“Sora”流的后续操作做准备。
- **08:01 - 11:30**: 演示如何调用API并测试连接介绍基本的AI生成设置。
- **11:31 - 14:00**: 深入探讨不同模型的生成能力,包括无水印视频生成及相应的费用说明。
- **14:01 - 17:30**: 讨论“Sora”生成的UGC用户生成内容视频通过示例展示如何进行有效创作。
- **17:31 - 20:00**: 演示如何利用肖像权生成内容,强调遵循法律规范的重要性。
- **20:01 - 24:00**: 介绍如何使用故事板功能,创建分镜脚本并表现不同场景效果。
- **24:01 - 29:00**: 总结视频生成流程,分享提示词优化技巧及字符串替换技术,强调自动化工具的重要性。
# 关键点
- **🤖 全自动化工作流**: 通过“Sora”接口实现视频生成的经济实惠方案。
- **💰 注册优惠**: 新用户注册亚马逊账户可享受200美元抵扣金等福利。
- **📈 UGC 创作**: 用户可轻松生成UGC视频提高市场推广能力。
- **📜 合法使用肖像权**: 确保在生成内容时遵循肖像权法,避免法律风险。
- **🧩 提示词优化**: 提升生成内容质量的关键在于优化提示词的撰写。
# 关键见解
- **🌟 经济实惠**: 使用“Sora”能显著降低视频生成成本相较于OpenAI便宜六倍以上。
- **🌍 新用户福利**: 注册新账户的用户可以获得六个月的免费试用权,显著降低启动成本。
- **📝 提示词的艺术**: 提高生成内容质量的关键在于精细化的提示词设计,影响最终结果。
- **📊 多功能应用**: “Sora”不仅支持文本转视频还可以生成图像类内容扩展用户的创作边界。
- **🔑 安全调用API**: 详细介绍了如何安全有效地调用API确保视频生成过程中的信息安全。
# 常见问题 (FAQs)
1. **问:如何快速注册亚马逊账户以使用模型?**
- 答:访问注册页面,填写个人信息并绑定支持国际支付的信用卡,确保卡片是实名信息。
2. **问:如何生成无水印视频?**
-在生成请求中选择相应参数确保移除水印设置为“TRUE”。
3. **问:生成视频的费用大约是多少?**
-使用“Sora”生成一般视频的费用仅需两三元人民币远低于市场水平。
4. **问:是否可以使用他人的肖像权生成内容?**
- 答:可以,但必须获得对方的同意,并确保生成的内容不违反相关法律法规。
5. **问:提示词优化对生成质量的影响有多大?**
- 答:精细化的提示词设计能够显著提升生成视频的质量,增强内容的吸引力。
# 结论
本期视频全面讲述了如何利用“Sora”接口实现视频生成的全自动化工作流提供了实用的内容创作指南和技术技巧。观众可以通过学习本教程掌握低成本生成内容的能力并在自媒体领域取得更高的竞争优势。建议大家积极实践所学内容并根据提示词优化技巧不断提升生成效果。未来继续探索AI技术的应用为创作带来更多可能性。

View File

@@ -0,0 +1,57 @@
根据搜索结果以下是几款性价比较高且支持文字生成视频的AI工具推荐结合功能、价格及用户评价进行综合评估
---
### **1. 万彩AI**
- **特点**
- **免费使用**:提供免费账号注册,支持文字直接生成短视频,无使用次数限制。
- **操作便捷**:输入文字后,可自动匹配配音、视频模板及转场效果,支持数字人形象生成(上传照片或选择预设角色)。
- **模板丰富**包含100+文案模板和视频风格(如商务、教育、国风等),适合多种场景需求。
- **适用人群**:新手小白、自媒体创作者、企业营销人员。
- **推荐理由**:完全免费且功能全面,适合预算有限的用户快速生成高质量视频。
---
### **2. 百度AI开放平台AI成片**
- **特点**
- **免费体验套餐**:注册后可领取免费套餐,支持图文转视频、自动配音、字幕添加及数字人功能。
- **智能化解析**:基于百度多模态技术,智能匹配素材并生成逻辑清晰的视频内容。
- **个性化调整**:支持视频尺寸、音色、时长等参数自定义。
- **适用场景**:企业宣传、知识科普、新闻短视频等。
- **推荐理由**:大厂技术背书,免费套餐适合短期需求,长期使用需根据具体功能付费(价格未公开)。
---
### **3. Zeemo蓝色脉动公司**
- **特点**
- **精准字幕生成**支持95种语言转录准确率达98%,适合全球化内容创作者。
- **收费模式**:年费分三档($79/119/239按视频时长和清晰度分级。
- **优势**:多语言支持及高精度字幕生成,适合需要专业级字幕优化的用户。
- **适用场景**海外短视频平台如TikTok、YouTube的内容制作。
---
### **4. Vizard蓝色脉动公司**
- **特点**
- **自动剪辑亮点**从长视频中智能提取高光片段生成10-30秒短视频。
- **免费版限制**每月60分钟上传时长适合轻度用户。
- **企业版费用**年费约2610美元72000分钟上传时长
- **推荐理由**:适合需要批量处理长视频的用户,免费版可满足基础需求。
---
### **5. 快影(腾讯系工具)**
- **特点**
- **模板化剪辑**:提供特效和模板库,适合快速制作短视频。
- **免费使用**:基础功能免费,但高级特效需付费。
- **优势**:操作简单,适合对剪辑要求不高的用户。
---
### **总结推荐**
- **最实惠选择****万彩AI**(完全免费且功能全面)。
- **技术型用户**百度AI开放平台免费套餐+多模态技术)。
- **多语言需求**Zeemo高精度字幕+多语言支持)。
- **长视频处理**Vizard免费版基础功能
建议优先试用免费工具如万彩AI或百度AI再根据实际需求选择付费服务。更多细节可参考各平台官网或体验套餐。

View File

@@ -0,0 +1,525 @@
---
title: "详细离线部署大模型ollama+deepseek+open-webui安装使用方法及常见问题解决"
source: "https://mp.weixin.qq.com/s/1cbpf9IlLgg9NApk5322GA"
author:
- "[[任侠001]]"
published:
created: 2025-03-14
description:
tags:
- "clippings"
---
ollama 是一个开源的本地大语言模型运行框架,它提供了非常简单便捷的使用形式,让用户可以十分方便的在本地机器上部署和运行大型语言模型,从而实现免费离线的方式使用 LLM 能力,并确保私有数据的隐私和安全性。
## 1 ollama 安装
ollama 支持多种操作系统,包括 macOS、Windows、Linux 以及通过 Docker 容器运行。其安装、使用及模型下载非常简单,可以简单概括为以下几步:
- • 下载 ollama 安装程序并安装。
- • 启动 ollama执行命令下载和运行模型。如`ollama run deepseek-r1:1.5b`
- • 以命令行交互、API 调用、第三方应用接入等形式使用其服务。
### 1.1 硬件要求
ollama 本身对硬件要求并不高,主要取决于运行模型的要求。基本建议:
> 你应该至少有 4 GB 的 RAM 来运行 1.5B 模型,至少有 8 GB 的 RAM 来运行 7B 模型16 GB 的 RAM 来运行 13B 模型,以及 32 GB 的 RAM 来运行 33B 模型。
假若需要本地私有化部署具有实用性的模型,应至少有独立显卡并有 4G 以上显存。纯 CPU 模式虽然也可以运行,但生成速度很慢,仅适用于本地开发调试体验一下。
本人实测在`Mac Studio 2023 版(Apple M2 Max 芯片12核、32G内存、30核显、1TB SSD)`上,运行 `deepseek:1.5b` 模型响应非常快,可以较为流畅的运行 `deepseek-r1:32b` 及以下的模型。
**DeepSeek-r1 相关版本及大小参考:**
| 参数版本 | 模型大小 | 建议CPU | 建议内存 | 建议显存 | 特点 |
| ---------------- | ----- | ----- | ---- | ------ | --------------------- |
| deepseek-r1:1.5b | 1.1GB | 4核 | 4~8G | 4GB | 轻量级,速度快、普通文本处理 |
| deepseek-r1:7b | 4.7G | 8核 | 16G | 14GB | 性能较好,硬件要求适中 |
| deepseek-r1:8b | 4.9GB | 8核 | 16G | 14GB | 略强于 7b精度更高 |
| deepseek-r1:14b | 9GB | 12核 | 32G | 26GB | 高性能,擅长复杂任务,如数学推理、代码生成 |
| deepseek-r1:32b | 20GB | 16核 | 64G | 48GB | 专业级,适合高精度任务 |
| deepseek-r1:70b | 43GB | 32核 | 128G | 140GB | 顶级模型,适合大规模计算和高复杂度任务 |
| deepseek-r1:671b | 404GB | 64核 | 512G | 1342GB | 超大规模,性能卓越,推理速度快 |
### 1.2 Windows \\ macOS \\ Linux 下安装 ollama
Windows 和 macOS 用户可访问如下地址下载安装文件并安装:
- • 国内中文站下载http://ollama.org.cn/download/
- • 官方下载https://ollama.com/download/
- • github release 下载https://github.com/ollama/ollama/releases/
Linux 用户可以执行如下命令一键安装:
```
curl -fsSL https://ollama.com/install.sh | bash
```
安装完成后,可以通过执行 `ollama --version` 命令查看 ollama 版本信息,以验证是否安装成功。
**ollama 离线安装:**
Windows 和 macOS 下直接复制安装文件到本地本进行安装即可。
Linux 下的离线安装主要步骤参考如下:
```
mkdir -p /home/ollama
cd /home/ollama
# 查看服务器 CPU 信息获取其架构x86_64
lscpu
# 访问如下地址,下载对应架构的 ollama 安装包
# https://github.com/ollama/ollama/releases/
# - x86_64 CPU 选择下载 ollama-linux-amd64
# - aarch64|arm64 CPU 选择下载 ollama-linux-arm64
# 示例:
wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz
# 下载 安装脚本,并放到 /home/ollama 目录下
wget https://ollama.com/install.sh
# 将 ollama-linux-amd64.tgz 和 install.sh 拷贝到需要安装的机器上,如放到 /home/ollama 目录下
# 然后执行如下命令:
tar -zxvf ollama-linux-amd64.tgz
chmod +x install.sh
# 编辑 install.sh 文件,找到如下内容
curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.com/download/ollama-linux-${ARCH}${VER_PARAM}"
# 注释它,并在其下增加如下内容:
cp ./ollama-linux-amd64 $TEMP_DIR/ollama
# 执行安装脚本
./install.sh
# 模型的离线下载请参考下文模型导入部分
```
### 1.3 基于 Docker 安装 ollama
基于 Docker 可以使得 ollama 的安装、更新与启停管理更为便捷。
首先确保已安装了 docker然后执行如下命令
```
# 拉取镜像
docker pull ollama/ollama
# 运行容器CPU 模式
docker run -d -p 11434:11434 -v /data/ollama:/root/.ollama --name ollama ollama/ollama
# 运行容器GPU 模式
docker run --gpus=all -d -p 11434:11434 -v /data/ollama:/root/.ollama --name ollama ollama/ollama
# 进入容器 bash 下并下载模型
docker exec -it ollama /bin/bash
# 下载一个模型
ollama pull deepseek-r1:8b
```
也可以基于 `docker-compose` 进行启停管理。`docker-compose.yml` 参考:
```
services:
  ollama:
    image:ollama/ollama
    container_name:ollama
    restart:unless-stopped
    ports:
      -11434:11434
    volumes:
      -/data/ollama:/root/.ollama
    environment:
        # 允许局域网跨域形式访问API
        OLLAMA_HOST=0.0.0.0:11434
        OLLAMA_ORIGINS=*
```
### 1.4 修改 ollama 模型默认保存位置
`ollama` 下载的模型默认的存储目录如下:
- • macOS: `~/.ollama/models`
- • Linux: `/usr/share/ollama/.ollama/models`
- • Windows: `C:\Users\<username>\.ollama\models`
若默认位置存在磁盘空间告急的问题,可以通过设置环境变量 `OLLAMA_MODELS` 修改模型存储位置。示例:
```
# macOS / Linux写入环境变量配置到 ~/.bashrc 文件中
echo 'export OLLAMA_MODELS=/data/ollama/models' >> ~/.bashrc
source ~/.bashrc
# Windows按 \`WIN+R\` 组合键并输入 cmd 打开命令提示符
# 然后执行如下命令写入到系统环境变量中
setx OLLAMA_MODELS D:\data\ollama\models
```
如果已经下载过模型,可以从上述默认位置将 models 目录移动到新的位置。
对于 docker 安装模式,则可以通过挂载卷的方式修改模型存储位置。
### 1.5 使用:基于 API 形式访问 ollama 服务
ollama 安装完成并正常启动后,可以通过命令行形式运行模型(如:`ollama run deepseek-r1:1.5b`),并通过命令行交互的方式进行测试。
此外也可以通过访问 `http://localhost:11434` 以 API 调用的形式调用。示例:
```
curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:8b",
  "stream": false,
  "prompt": "你是谁"
}'
```
ollama API 文档参考:
- • https://ollama.readthedocs.io/api/
- • https://github.com/ollama/ollama/blob/main/docs/api.md
## 2 使用 ollama 下载和运行模型
### 2.1 使用 ollama 命令行下载和运行模型
执行如下命令下载并运行一个模型:
```
# 基本格式为:
ollama run <model_name:size>
# 例如下载并运行 deepseek-r1 的 1.5b 模型
# 如果下载模型速度开始较快后面变慢,可以 kill 当前进程并重新执行
ollama run deepseek-r1:1.5b
```
运行成功则会进入命令行交互模式,可以直接输入问题并获得应答反馈,也可以通过 API 调用方式测试和使用。
从如下地址可搜索 ollama 所有支持的模型:
- • 中文站https://ollama.org.cn/search
- • 官方站https://ollama.com/search
**从 HF 和魔塔社区下载模型**
ollama 还支持从 HF 和魔塔社区下载第三方开源模型。基本格式为:
```
# 从 HF(https://huggingface.co) 下载模型的格式
ollama run hf.co/{username}/{reponame}:latest
# 示例:
ollama run hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF:Q8_0
# 从魔塔社区(https://modelscope.cn)下载模型的格式
ollama run modelscope.cn/{username}/{model}
# 示例:
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF:Q3_K_M
```
### 2.2 使用 ollama create 导入本地模型
通过 `ollama run` 和 `ollama pull` 命令均是从官方地址下载模型,可能会遇到下载速度慢、下载失败等问题。
ollama 支持从本地导入模型。我们可以从第三方下载模型文件并使用 `ollama create` 命令导入到 ollama 中。
例如,假若我们下载了 `deepseek-r1:8b` 模型文件,并保存在 `/data/ollama/gguf/deepseek-r1-8b.gguf`,则可执行如下命令进行导入:
```
cd /data/ollama/gguf
echo "From ./deepeek-r1-8b.gguf" > modelfile-deepseek-r1-8b
ollama create deepseek-r1:8b -f modelfile-deepseek-r1-8b
# 查看模型信息
ollama list
ollama show deepseek-r1:8b
# 运行模型(以命令行交互模式使用)
ollama run deepseek-r1:8b
```
相关文档参考:
- • https://ollama.readthedocs.io/import/
- • https://ollama.readthedocs.io/modelfile/
## 3 ollama 常用命令参考
ollama 提供了丰富的命令行工具,方便用户对模型进行管理。
- • `ollama --help`:查看帮助信息。
- • `ollama serve`:启动 ollama 服务。
- • `ollama create <model-name> [-f Modelfile]`:根据一个 Modelfile 文件导入模型。
- • `ollama show <model-name:[size]>`:显示某个模型的详细信息。
- • `ollama run <model-name:[size]>`:运行一个模型。若模型不存在会先拉取它。
- • `ollama stop <model-name:[size]>`:停止一个正在运行的模型。
- • `ollama pull <model-name:[size]>`:拉取指定的模型。
- • `ollama push <model-name>`:将一个模型推送到远程模型仓库。
- • `ollama list`:列出所有模型。
- • `ollama ps`:列出所有正在运行的模型。
- • `ollama cp <source-model-name> <new-model-name>`:复制一个模型。
- • `ollama rm <model-name:[size]>`:删除一个模型。
## 4 ollama 安装使用常见问题及解决
### 4.1 ollama 模型下载慢:离线下载与安装模型
通过 ollama 官方命令拉取模型,可能会遇到网速慢、下载时间过长等问题。
#### 4.1.1 开始快后来慢:间隔性重启下载
由于模型文件较大,下载过程中可能会遇到开始网速还可以,后面变慢的情况。许多网友反馈退出然后重试则速度就可以上来了,所以可以尝试通过每隔一段时间退出并重新执行的方式以保持较快的下载速率。
以下是基于该逻辑实现的下载脚本,注意将其中的 `deepseek-r1:7b` 替换为你希望下载的模型版本。
Windows 下在 powershell 中执行:
```
while ($true) {
    $modelExists = ollama list | Select-String "deepseek-r1:7b"
    if ($modelExists) {
        Write-Host "模型已下载完成!"
        break
    }
    Write-Host "开始下载模型..."
    $process = Start-Process -FilePath "ollama" -ArgumentList "run", "deepseek-r1:7b" -PassThru -NoNewWindow
    # 等待60秒
    Start-Sleep -Seconds 60
    try {
        Stop-Process -Id $process.Id -Force -ErrorAction Stop
        Write-Host "已中断本次下载,准备重新尝试..."
    }
    catch {
        Write-Host "error"
    }
}
```
`macOS / Linux` 下在终端中执行:
```
#!/bin/bash
whiletrue; do
    # 检查模型是否已下载完成
    modelExists=$(ollama list | grep "deepseek-r1:7b")
    if [ -n "$modelExists" ]; then
        echo"模型已下载完成!"
        break
    fi
    # 启动ollama进程并记录
    echo"开始下载模型..."
    ollama run deepseek-r1:7b &  # 在后台启动进程
    processId=$!  # 获取最近启动的后台进程的PID
    # 等待60秒
    sleep 60
    # 尝试终止进程
    ifkill -0 $processId 2>/dev/null; then
        kill -9 $processId# 强制终止进程
        echo"已中断本次下载,准备重新尝试..."
    else
        echo"进程已结束,无需中断"
    fi
done
```
#### 4.1.2 通过网盘等第三方离线下载并导入 ollama 模型
可以通过国内的第三方离线下载模型文件,再导入到 ollama 中。详细参考 2.2 章节。
`deepseek-r1` 相关模型夸克网盘下载:
> 链接https://pan.quark.cn/s/7fa235cc64ef 提取码wasX
也可以从 魔塔社区、HuggingFace 等大模型社区搜索并下载 stuff 格式的模型文件。例如:
- • https://modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF/files
- • https://huggingface.co/unsloth/DeepSeek-R1-GGUF
#### 4.1.3 从国内大模型提供站下载模型
ollama 支持从魔塔社区直接下载模型。其基本格式为:
```
ollama run modelscope.cn/{model-id}
```
一个模型仓库可能包含多个模型,可以指定到具体的模型文件名以只下载它。示例:
```
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF
#
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF:qwen2.5-3b-instruct-q3_k_m.gguf
```
下载 `deepseek-r1` 模型命令参考:
```
# deepseek-r1:7b
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF:DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf
# deepseek-r1:14b
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-14B-GGUF:Q4_K_M
# deepseek-r1:32b
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-32B-GGUF:Q4_K_M
```
此外,也可以从 HF 的国内镜像站https://hf-mirror.com查找和拉取模型方法与上述类似
```
# 基本格式
ollama run hf-mirror.com/{username}/{reponame}:{label}
# 示例 - 拉取 deepseek-r1:7b
ollama run hf-mirror.com/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M
```
### 4.2 ollama 服务设置允许局域网访问
默认情况下 API 服务仅允许本机访问,若需要允许局域网其他设备直接访问,可修改环境变量 `OLLAMA_HOST` 为 `0.0.0.0`,并修改 `OLLAMA_ORIGINS` 为允许的域名或 IP 地址。
环境变量设置示例:
```
# windows 命令提示符下执行:
setx OLLAMA_HOST 0.0.0.0:11434
setx OLLAMA_ORIGINS *
# macOS 终端下执行:
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
launchctl setenv OLLAMA_ORIGINS "*"
```
**特别注意:**
- • **如果你是在云服务器等拥有公网IP的环境上部署请谨慎做此设置否则可能导致 API 服务被恶意调用。**
- • 若需要局域网其他设备访问,请确保防火墙等安全设置允许 11434 端口访问。
- • 若需要自定义访问端口号,可通过环境变量 `OLLAMA_HOST` 设置,如:`OLLAMA_HOST=0.0.0.0:11435`
### 4.3 为 ollama API 服务访问增加 API KEY 保护
**为云服务器部署的服务增加 API KEY 以保护服务**
如果你是通过云服务器部署,那么需要特别注意服务安全,避免被互联网工具扫描而泄露,导致资源被第三方利用。
可以通过部署 nginx 并设置代理转发,以增加 API KEY 以保护服务,同时需要屏蔽对 11434 端口的互联网直接访问形式。
`nginx` 配置:
```
server {
    # 用于公网访问的端口
    listen 8434;
    # 域名绑定,若无域名可移除
    server_name your_domain.com;
    location / {
        # 验证 API KEY。这里的 your_api_key 应随便修改为你希望设置的内容
        # 可通过 uuid 生成器工具随机生成一个https://tool.lzw.me/uuid-generator
        if ($http_authorization != "Bearer your_api_key") {
            return 403;
        }
        # 代理转发到 ollama 的 11434 端口
        proxy_pass http://localhost:11434;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
```
## 5 集成可视化工具
在部署了 ollama 并拉取了 deepseek 等模型后,即可通过命令行交互和 API 服务方式使用,但使用起来并不方便。
开源社区中有许多大模型相关的可视化工具,如 open-webui、chat-ui、cherry-studio、AnythingLLM 等,可以方便地集成 ollama API 服务提供图形化界面使用以实现聊天机器人、问答知识库等多元化应用。在官方文档中列举了大量较为流行的工具应用https://ollama.readthedocs.io/quickstart/#web
我们后续会选择其中较为典型的工具进行集成和介绍。
### 5.1 示例:基于 docker 部署 open-webui 并配置集成 ollama 服务
Open WebUI 是一个开源的大语言模型项目,通过部署它可以得到一个纯本地运行的基于浏览器访问的 Web 服务。它提供了可扩展、功能丰富、用户友好的自托管 AI Web 界面支持各种大型语言模型LLM运行器可以通过配置形式便捷的集成 ollama、OpenAI 等提供的 API。
通过 Open WebUI 可以实现聊天机器人、本地知识库、图像生成等丰富的大模型应用功能。
在开始之前,请确保你的系统已经安装了 docker。
接着拉取大语言模型 `deepseek-r1:8b` 和用于 RAG 构建本地知识库的嵌入模型 `bge-m3`
```
ollama pull deepseek-r1:8b
ollama pull bge-m3
```
然后新建文件 `docker-compose.yml`,内容参考:
```
services:
  open-webui:
    image:ghcr.io/open-webui/open-webui:main
    environment:
      -OLLAMA_API_BASE_URL=http://ollama:11434/api
      -HF_ENDPOINT=https://hf-mirror.com
      -WEBUI_NAME="LZW的LLM服务"
      # 禁用 OPENAI API 的请求。若你的网络环境无法访问 openai请务必设置该项为 false
      # 否则在登录成功时,会因为同时请求了 openai 接口而导致白屏时间过长
      -ENABLE_OPENAI_API=false
      # 设置允许跨域请求服务的域名。* 表示允许所有域名
      -CORS_ALLOW_ORIGIN=*
      # 开启图片生成
      -ENABLE_IMAGE_GENERATION=true
      # 默认模型
      -DEFAULT_MODELS=deepseek-r1:8b
      # RAG 构建本地知识库使用的默认嵌入域名
      -RAG_EMBEDDING_MODEL=bge-m3
    ports:
      -8080:8080
    volumes:
      -./open_webui_data:/app/backend/data
    extra_hosts:
      # - host.docker.internal:host-gateway
```
这里需注意 `environment` 环境变量部分的自定义设置。许多设置也可以通过登录后在 web 界面进行修改。
在该目录下执行该命令以启动服务:`docker-compose up -d`。成功后即可通过浏览器访问:`http://localhost:8080`
服务镜像更新参考:
```
# 拉取新镜像
docker-compose pull
# 重启服务
docker-compose up -d --remove-orphans
# 清理镜像
docker image prune
```
- • open-webui 详细文档参考https://docs.openwebui.com/getting-started/env-configuration
**可选:开启“联网搜索”功能**
操作路径:`设置 - 联网搜索 - 启用联网搜索`
当前已支持接入的联网搜索引擎中,在不需要魔法上网的情况下,有 bing 和 bocha 可以选择接入。基本只需要前往注册并获取 API KEY 回填到这里即可。如果需要保护隐私数据,请不要开启并配置该功能。
- • 博查文档https://aq6ky2b8nql.feishu.cn/wiki/XgeXwsn7oiDEC0kH6O3cUKtknSR
## 总结与参考
通过以上内容,我们了解了 ollama 在国内环境下的安装使用方法,并介绍了因为国内网络特色导致安装过程可能会遇到的常见问题及解决办法。希望这些内容对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言交流。
- ollama 官方站https://ollama.com
- ollama 中文站https://ollama.org.cn
- ollama 入门https://ollama.readthedocs.io/quickstart/
- ollama 常见问题https://ollama.readthedocs.io/faq/
- 魔塔社区https://modelscope.cn
- HF Mirrorhttps://hf-mirror.com
- • open-webui 文档https://docs.openwebui.com

View File

@@ -0,0 +1,62 @@
---
title: 𝗔𝗜 𝗶𝘀 𝗘𝗻𝘁𝗲𝗿𝗶𝗻𝗴 𝘁𝗵𝗲 𝗔𝗴𝗲 𝗼𝗳 𝗔𝗴𝗲𝗻𝗰𝘆 𝗠𝗼𝘃𝗶𝗻𝗴 𝗕𝗲𝘆𝗼𝗻𝗱 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗼𝗻
source: https://www.linkedin.com/posts/brijpandeyji_%F0%9D%97%94%F0%9D%97%9C-%F0%9D%97%B6%F0%9D%98%80-%F0%9D%97%98%F0%9D%97%BB%F0%9D%98%81%F0%9D%97%B2%F0%9D%97%BF%F0%9D%97%B6%F0%9D%97%BB%F0%9D%97%B4-%F0%9D%98%81%F0%9D%97%B5%F0%9D%97%B2-%F0%9D%97%94%F0%9D%97%B4%F0%9D%97%B2-activity-7300006199884738562-S9dc/?utm_medium=ios_app&rcm=ACoAADE1eGIB9ndhzD0qmslDUew4rjAk2upsYtg&utm_source=social_share_send&utm_campaign=copy_link
author:
published:
created: 2025-03-02
description:
tags:
- agentic-ai
- ai
---
𝗔𝗜 𝗶𝘀 𝗘𝗻𝘁𝗲𝗿𝗶𝗻𝗴 𝘁𝗵𝗲 𝗔𝗴𝗲 𝗼𝗳 𝗔𝗴𝗲𝗻𝗰𝘆 𝗠𝗼𝘃𝗶𝗻𝗴 𝗕𝗲𝘆𝗼𝗻𝗱 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗼𝗻
AI is no longer just about automating tasks—its evolving into Agentic AI, where systems think, decide, adapt, and interact intelligently.
These AI agents operate autonomously, learning from feedback and dynamically engaging with users and external environments.
But what does that mean?
Let's break it down with the Agentic AI Layers Framework:
1\. Governance & Auditability Building Trust & Compliance
• Transparent Decision Logs AI maintains an audit trail of its decisions.
• Regulatory Compliance Aligns with legal and ethical AI standards.
• Explainability AI justifies its reasoning for user confidence and accountability.
2\. Operational Independence AI That Thinks & Acts
• Self-Learning Improves continuously through real-world interactions.
• Autonomous Decision-Making Executes tasks independently within set guidelines.
• Automated Workflows Enhances efficiency by streamlining processes.
• Scalability & Real-Time Adaptation Dynamically adjusts to demand and insights.
3\. External Interactions & Multi-Modal Interfaces Seamless AI-Human Collaboration
• API Integrations AI connects with external data sources and tools.
• Multi-Modal Support Engages via text, voice, images, and beyond.
• Natural Language Understanding Processes and responds intelligently to human queries.
4\. Ethics & Safety Ensuring Responsible AI Development
• Privacy Protection Secure data handling in compliance with regulations.
• Bias Detection & Mitigation Actively identifies and corrects biases.
• Harm Prevention Prevents misinformation and harmful outputs.
5\. Knowledge Base & RAG (Retrieval-Augmented Generation) AI with a Stronger Memory
• Contextual Retrieval Fetches relevant information for precise, context-aware responses.
• Fact-Checking Cross-verifies data before generating content.
• Domain-Specific Intelligence AI tailored for finance, healthcare, legal, and other specialized fields.
6\. LLM & Generative Capabilities AI That Thinks Deeper
• Reasoning & Adaptability Understands complex queries and adapts to intent.
• Real-Time Data Access Enhances responses with up-to-date information.
• Continuous Fine-Tuning Learns and improves over time.
Why Does This Matter?
As AI shifts toward autonomy, balancing efficiency, transparency, and ethical responsibility is critical.
Industries like finance, healthcare, cybersecurity, and enterprise automation stand to gain immensely—but only if we build AI that operates responsibly.
Your Take?
Should AI be fully autonomous, or should human oversight always be required?
![Image](http://zipline.ishenwei.online/u/QLeQ9A.gif)

213
AI/🟠API Key.md Normal file
View File

@@ -0,0 +1,213 @@
#api-key #deepseek #gemini #google #aws #x #notion #n8n #github #wavespeed #siliconflow #airtable #brightdata #telegram
```table-of-contents
title:
style: nestedList # TOC style (nestedList|nestedOrderedList|inlineFirstLevel)
minLevel: 0 # Include headings from the specified level
maxLevel: 0 # Include headings up to the specified level
include:
exclude:
includeLinks: true # Make headings clickable
hideWhenEmpty: false # Hide TOC if no headings are found
debugInConsole: false # Print debug info in Obsidian console
```
## Gemini API Key #gemini
### ishenwei00@gmail.com
```
AIzaSyALe0MnjDmTRf7zgn87vxLUe7aKfzoZRgY
```
## DeepSeek #deepseek
```
sk-a309a673569743ebb05d0991d3f6e51a
```
---
## Telegram HTTP API #telegram
### ishenwei_bot
t.me/ishenwei_bot
```
8134005762:AAHVjACJ4egbEPNY0-oiihWTM30fVt4rIoc
```
### Telegram OpenClaw Bot
#### 星辉
t.me/shenwei_macmini_xinghui_bot
```
8709222939:AAEfvZrvvU5vZFsmacsR5nmpkJ2Jb5JgfRg
#telegram user id
5038825565
```
#### 星曜
t.me/shenwei_macmini_xingyao_bot
```
8414432613:AAG9hvKfILGSsbc1EMEZW1QVym9Quc5aHWk
```
## Google API Key #google
n8n-workflow OAuth 2.0 Client ID
```
109190465048-ndh8t3ngec7sqds0ll716knt7laffirk.apps.googleusercontent.com
```
Client Secret:
```
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
```
## AWS #aws
```
AWS Account: 551360491749
Access Key AKIAYAX5FODS42V2CYUQ
Secret Access Key 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
```
## News API Key
https://newsapi.org/
d2bf79c13a9e4feb80422c9d4ca6404a
Definition
```
GET https://newsapi.org/v2/everything?q=Apple&from=2025-03-08&sortBy=popularity&apiKey=API_KEY
```
Example request
```bash
curl https://newsapi.org/v2/everything -G \
-d q=Apple \
-d from=2025-03-08 \
-d sortBy=popularity \
-d apiKey=d2bf79c13a9e4feb80422c9d4ca6404a
```
## X #x
```
API Key: 3WzvwLqw5ZN1GsJzQ0W7K6t6H
API Key Secret: msYmcAuVKrBqMjfk6rgRucmuDwKRfhoZCTlgkaD4FKiOlAm57Y
OAUTH
Client ID: d3k2eVNoYXY0REFoX2dvVEg2a0E6MTpjaQ
Client Secret: wbPcvt-qAbigVFa4Jn9Bj0lyl4W6ie2bvZJrcfp81MF5Rptwps
```
## Notion #notion
https://www.notion.com/my-integrations
Internal Integration Secret:
```
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
```
任务调度
```
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
```
## Pexel #plex
```
uVZ6Benfr5yzaG8c8er1K6u4r3a4JXWw9AMsYIhorw9GhRfQ5Vzxd8S5
```
## Wavespeed API key #wavespeed
```
b023e330aef99c65cb2a1801d6042a70a020cb645cd7383d7ed0bc54a750ce35
```
## n8n API key #n8n
```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjOThlZjhiYS05ZTVlLTQ2ZGMtYWU0OC02YjMyN2FmYmY1MjUiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzcwOTcwNTQyfQ.lJvm9rWh4hRTKQ1OL-BgkwQnuoUyzgEo62OsD5JuThk
```
## Github Personal Access Token(classic) #github
Clawhub installation (only have public_repo readonly permission)
```
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
```
## Siliconflow API key #siliconflow
```
sk-ssdzoysqyppfaoubcpwrwzlcmbifoumpqchgisyawgwgrfia
```
## Stable Horde
```
7kvqIQs62Asyzj1I0UMhfQ
```
## BrightData #brightdata
```
011ac709c39e73762ef01946f0ca17b151e8c612e4c532e87764c23c61047ecf
```
## Airtable #airtable
```
patB48t4Nl1WKftUs.ef6e99b44095d7da80778b872addef3fa27b5079e7408e62afb3817c3479c8da
```
## OpenAI
### ishenwei@gmail.com
```
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
```
## OpenCode Zen
```
sk-70Kjcr1Au8CdM5CvIQz6FHvR5AfhtwtvuerY3sBsy6vaXGGkTcN2arhFmAV0auJh
```
## 飞书
App ID:
```
cli_a93a4a4624e19bc9
```
App Secret
```
xfZKkekUhARQ3DWQ65GOVhCqCNO4ckGV
```
Verification Token
```
nz3l8CEvSsUvmJb6LDhKrd24zjWKDxiM
```
8566920841:AAEfvOFAZ86fPKQdZ9Dm4-wnR46Asm7B7nU
## MiniMax
```
sk-cp-H0FwKNry9PnMJmLng7W51OfbN6XWbfN_9pfMnI89smCmbPNIHzUuOibPtzikdK8rzRuB9uuunGmN_SPoOBZOUgy2_D9Sm3_ivQ1LYc5Cm48cpC2mQ07hDnE
```
## Tavily API Key
```
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
```
## OpenRouter
For OpenClaw
```
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
```
For Claude Code
```
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
```

89
Archived/My Task.md Normal file
View File

@@ -0,0 +1,89 @@
---
kanban-plugin: board
---
## Backlog
- [ ] 🔼 Email to Nina about Achmea Pen Testing on EU3, WAF result reported
- [ ] 🔼 Prepare JATO UX update notification to impacted customers, send to PM for review first
- [ ] 🔺 Initial an email about WAF rules for OP
- [ ] ⏫ send email to Alex and Philipp about convince TechM to migrate their FinOps to OP
- [ ] ⏫ Onspring new evidence for TLS certificate
- [ ] ⏫ Talk to Ellar about ITOM work utilization data, increase the project percentage for some senior person
- [ ] 🔺 Check with Remi and Brindusa to add Time spent field in PCS for both Support and Service Request
- [ ] 🔺 Change people % in Ellar shared spreadsheet
- [ ] ⏫ Reply to Ken to provide more evidence and also check Onspring system the pending tasks
- [ ] ⏫ Reply email about new EU farm kick off plan after comments from Mark Peter
- [ ] Update, please attached the updated evidence to close Onspring requests Master33541 and Master33560 based on what we gave last September 2024.
- [ ] 🔼 Check EU28 Evonik customer license
- [ ] ⏫ Check OpsB/NOM customer license expiration date in CT
- [ ] 🔼 Raise ticket to request Power BI Pro license:
 Hello Wei, I have moved the ITOM Cloud Service Workspace to Fabric. You access should be restored.  View access is free. Content creators can request a Power BI Pro license through the software request workflow [https://go.opentext.com/softwarerequest](https://go.opentext.com/softwarerequest%20for%20$100) $100 USD annually.
-Garrett
- [ ] 🔼 Ask team to consolidate all important runbook and check who is the new owership of these runbooks
- [ ] ⏫ ADAM Q4 Project List
- [ ] ⏫ create unique DB user instead of smax-admin which can be cross used by OP/OpsB/NOM as tenant admin role
## WIP
- [ ] 🔽 Prepare a wiki page to describe 'Troubleshooting as a service'
- [ ] ⏫ Track incident: IM3660374
- [ ] 🔺 Offline pods incident follow up
- [ ] 🔽 Review the Incident Management Meeting (SM9) record to understand detail process on top of it.
- [ ] 🔺 Prepare SD draft for Premium DR service for SocGen
- [ ] ⏫ Give a mapping table about time spent on each SaaS offerings so that we can give a consolidated team effort on customer tickets
## Done
- [ ] 🔺 Refine the Premium DR service slides
- [ ] ⏫ Initial discussion about US24 unplanned maintenance which might have 2 hours downtime.
- [ ] 🔼 Give Wenjun a go command once confirmed Indra is ok with current proposals
- [ ] ⏫ Prepare the answers to Sales team about how we're going to perform the yearly DR testing
- [ ] ⏫ Provide Feb PCS, X4X data to Sajith
- [ ] 🔺 Update 25.1.2 customer notification with official doc link
- [ ] 🔼 Review ITOM AWS Cost Breakdown detail and reply to Samar and Melissa
- [ ] ⏫ Check with Wenjun about BI data stop sent since Feb 24
- [ ] 🔼 Update slides for SMAX/AC VDC readiness meeting
- [ ] 🔼 Schedule a meeting to discuss OT IT use case about direct access Vertica DB to fetch FinOps data
- [ ] 🔽 Prepare tomorrow's ESM Cloud Service weekly meeting
- [ ] ⏫ Prepare upgrade hyper care plan and detail explain what happened for US steel case
- [ ] 🔼 Check with Danny about how to submit security review request for OT IT vertica DB direct access case
- [ ] 🔼 Reply Ken's questions in team's chat
- [ ] ⏫ Send ESM RI plan to OT FinOps team
- [ ] 🔺 Send email notification to NOM customers for 3/9, 3/16 maintenance window about EKS upgrade
## Tracking
- [ ] ⏫ Review patch /upgrade notification content with Dean - Boglarka to drive this
- [ ] 🔼 Assign task about create Jenkins job to check AWS Supperession list
- [ ] ⏫ Ask wenjun to follow up Dean's request about include ITOM Aviator in SMAX premium trial tenant provision
## Archive
- [ ] ⏫ Update cost estimation about SG
- [ ] ⏫ Send ITOM ESM Monthly Report - Feb 2025
- [ ] ⏫ Schedule a meeting with team about Indra switch to OP
- [ ] 🔼 Update OT SM9 Assignment Group for Ops-ADM_ESM and Ops-ADM_OpsB to add new team members
- [ ] 🔼 Refine the on call list in Everbridge
- [ ] 🔺 Prepare ESM 25.1.2 Patch Notifications
- [ ] ⏫ Reply Florin's proposal
***
## Archive
- [ ] 🔼 Reply to Lihi about non-commercial cloud related efforts
%% kanban:settings
```
{"kanban-plugin":"board","list-collapse":[false,false,false,false,false],"full-list-lane-width":true}
```
%%

View File

@@ -0,0 +1,67 @@
---
kanban-plugin: board
---
## TikTok Shop Tasks
- [ ] ⏫ 等营业执照下来注册TikTok Shop
- [ ] ⏫ 学习Ushop使用方法了解整个订单流程
- [ ] 🔼 了解一下AMZ123网站
## Backlog
- [ ] ⏫ 学习并掌握Scrapy 爬虫工具的使用方法并结合n8n实现自动化
- [ ] ⏫ 尝试在本地搭建text to speech 的模型 并且通过API被n8n调用
- [ ] ⏫ 用pgAdmin连接NAS上postgres数据库
- [ ] ⏫ 尝试在本地使用n8n来调用comfyUI实现图生图自动化
- [ ] 🔼 Learn Google Trends Tutorials
- [ ] 🔼 学习如何使用Google趋势来查看目标国家的热门产品销售数据
- [ ] 🔼 升级Ubuntu1 Portainer 版本
- [ ] 🔼 有空时可以搞一下 爬虫爬 OdayDown.com的数据
- [ ] 🔽 利用ZBook Laptop搭建第二台Ubuntu Server
- [ ] 🔽 读原子习惯,掌握好习惯 中文版先读, 再读英文版
- [ ] 🔽 注册并试用kie.ai
- [ ] N8n调用第三方ApI 进行图片编辑
- [ ] 了解一下SerpAPI
## WIP
- [ ] ⏫ 尝试使用硅基流的 API来实现文生图并被n8n调用
## Done
- [ ] ⏫ 用n8n创建一个workflow可以把internet的图片转存到zipline,并返回图片公共链接
- [ ] 🔼 了解一下Homarr的具体用法
- [ ] 🔽 逐步淘汰Cpolar的使用并删除相关软件
## Tracking
- [ ] ⏫ 利用Qwan3-code来生成n8n代码
## Archive
- [ ] ⏫ 配置Obsidian使用ishenwei.online 域名的webdav
- [ ] ⏬ 在购买的RackNerd的VPS上安装n8n (需要额外考虑)
- [ ] ⏫ 在NAS上搭建一个图床应用
- [ ] ⏫ 在NAS上部署https://github.com/tt-rss/tt-rss
## Idea
- [ ] 🔼 利用Postgres里的RSS article数据来实现 n8n调用并通过AI来分析最新得到的RSS article给一个简报并通过邮件发送
%% kanban:settings
```
{"kanban-plugin":"board","list-collapse":[false,false,false,false,false,false,false]}
```
%%

View File

@@ -0,0 +1,15 @@
## 1. Review Upgrade Procedures Document with R&D team
## 2. Follow the Upgrade Procedures to perform Dev Farm upgrade validation
## 3. Send Notification to ESM Cloud Farm Customer about upcoming maintenance window
## 4. Maintenance Window Procedures
### 1. Set downtime of APM monitoring
### 2. Perform the upgrade change
### 3. Send notification to customer once all the change was done
### 4. Update Wiki Page about Version Tracking
### 5. Update System Health Page - Complete the Maintenance Window
### 6. Update PCS Product Version and Environment Version
### 7. Restore the APM monitoring and ensure all checks are good
## 5. Monitoring the farm metrics to ensure everything is working as expected

View File

@@ -0,0 +1,16 @@
Control Tower Link: https://backoffice.saas.microfocus.com/home/bl/desktop.html?TENANTID=1#/customers
- Request Access to Control Tower
-
- Customer Order Filter
- ESM Product Filter:
![Image](http://zipline.ishenwei.online/u/cu2uo8.png)
- APM/OpsB/NOM Product Filter
![Image](http://zipline.ishenwei.online/u/QPUhmO.png)
- SaaS Order In Control Tower
- CS Ops Fulfill the order and generate license
- SaaS Ops team download/allocate license and close the deal
- Control Tower order status change to "Provisioned", close the deal

View File

@@ -0,0 +1,15 @@
Wiki Page:
https://confluence.opentext.com/display/ICSD/Request+Unplanned+Change+in+Cloud+Production+Environment+Process
R&D SA Approver
- Gong Yi (SMAX)
- Danny Tian (SMAX)
- Spinu Corneliu (SMAX)
- Moldovan Vlad
- Diana Pop (CMS)
- Bianca Voina (CMS)
CSD Approver
- Shen Wei
- Ting Ye

View File

@@ -0,0 +1,32 @@
## Review R&D Major Release Plan & Patch Plan
- ESM RTE: Mihaela Claudia Chis <mchis@opentext.com>
- PI Planning Readout Slides
- ESM Patch Release Owner: Tanuj Raja Vunnava <tvunnava@opentext.com>
- Patch Release Kick Off email
- Other requirement about upgrade strategy
- Demo/PoC Request
- Customer commitment etc.
## Prepare Cloud Upgrade Plan
### Design Tool
### Plan Strategy
- US2 Dev Farm Upgrade Validation - 1~2 days prior MR release date
- Shared Service - ITOM Aviator US30 staging, EU30 production, EU32 production need to be upgraded first before other consume farm upgrade
- EU3/US7 Trial/PoC Farm Upgrade - 1~ 2 weeks after GA release date, Upgrade on Monday (working day)
- US2/US24 Opentext Internal Customer Production Farm - 1st Wave Production Farm Upgrade (Maintenance Window)
- US26 - SalesForce customer need alternative upgrade date this can be negotiated with CSM and customer
- US26/US6/AP10/CA16 External Customer Production Farm - 2nd Wave Production Farm Upgrade (Maintenance Window)
- EU8/EU18/EU28/BR14/JP12 External Customer Production Farm - 3nd Wave Production Farm Upgrade (Maintenance Window)
- If ESM farm enable Operation Platform, need to upgrade Operation Platform first before upgrade ESM farm
- Considering the 1st patch release, we can consider to adopt patch upgrade direct in the upgrade maintenance window (Need to clarify the dependencies)
- Try to avoid upgrade window before key teams public holiday. Usually some critical issues will be reported on Monday/Tuesday after version upgrade. Need people standby to support troubleshooting
### Publish and Notify the ESM Cloud Upgrade Plan
- ESM Cloud Upgrade Plan Wiki Page: https://confluence.opentext.com/display/ICSD/ESM+Cloud+Ops+Change+Calendar
- ESM Cloud Ops Change Calendar: https://opentextcorporation.sharepoint.com/sites/MFI-SMAXSaaSDevOps/Lists/ESM%20Cloud%20Calendar/calendar.aspx
- Internal Communication About ESM Cloud Upgrade Plan (Sample Email)
### Continuous to adjust the plan according to the changes
- Cancel/Postpone the upgrade according to critical defects
### Rollback the upgrade

View File

@@ -0,0 +1,22 @@
## ESM Cloud
- ESM Farm Information: https://confluence.opentext.com/display/ICSD/ITOM+ESM+Cloud+Farm+Information
- ESM Capability Introduction
- SMAX
- UCMDB, Native SACM, SAM
- HCMX/DnD
- OO
- AC
- FinOps Classic
- FinOps OP
- Operation Platform/Optic Data Lake (ODL)
- ITOM Aviator
- ESM Farm Version Tracking: https://confluence.opentext.com/display/ICSD/ITOM+Cloud+Applications+Version+Tracking
- ESM Customer Tenant Capabilities Enablement BI Report: https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/cf509ffe-325f-4c1b-a507-44b93e6d85ca/ReportSection3a054e35d20b9d533d81?experience=power-bi
## OpsB/NOM Cloud
- OpsB/NOM Cloud Deployments & Version Tracking:https://confluence.opentext.com/display/ICSD/OpsB+and+NOM+Cloud+Deployments+Version+Tracking
## APM Cloud
- APM Farm Information: https://confluence.opentext.com/display/ICSD/ITOM+APM+AppPluse+Cloud+Farm+Information

View File

@@ -0,0 +1,19 @@
- Major Incident Definition: https://confluence.opentext.com/display/ICSD/Major+Incident+Definition
- Major Incident Management & Best Practice:
- Identification and Detection
- Initial Assessment
- Incident Logging
- Incident in OT SM9
- Internal Practice: Create incident in PCS
- Communication
- Identify Incident Manager
- Create team chat group and involve all stakeholders
- Keeping update status
- Resolution
---Break---
- Oncall/Response
- Post Incident Review
- Continuous Improvement (CAPA)
- Monitoring & Alerting Enhancements
- Documentation & Knowledge base:

View File

@@ -0,0 +1,6 @@
BI report:
https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/1f4989a9-0127-4c6d-9375-f9dd9bda5d84/ReportSection?experience=power-bi
PCS Dahsboard:
https://pcs.saas.microfocus.com/dashboard

View File

@@ -0,0 +1,22 @@
PCS: https://pcs.saas.microfocus.com/homepage?AUTH=SAML
ITOM Cloud Ops Assignment Group:
- SD: ESM SaaS Ops
- SD: OpsB SaaS Ops
- SD: NOM SaaS Ops
- SD: DCA SaaS Ops
- ITOM Cloud Service Offerings
- Service Request vs Support Request
- Entitlement/Environment/Tenant/Product
- Service/Support Request triage & workflow
- Request -> Incident -> Change
- Escalations
BI report:
https://app.powerbi.com/groups/fac06a69-6340-4715-b8fe-4bdc0ca9af14/reports/1f4989a9-0127-4c6d-9375-f9dd9bda5d84/ReportSection?experience=power-bi
PCS Dahsboard:
https://pcs.saas.microfocus.com/dashboard

Some files were not shown because too many files have changed in this diff Show More